From 372c5bb4857f2676e547e481660fb27ba9a18895 Mon Sep 17 00:00:00 2001 From: 17602169347 Date: Wed, 6 Sep 2023 10:22:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 1 + .gitignore | 51 + Docker-HOWTO.md | 49 + Jenkinsfile | 60 + LICENSE | 20 + README.md | 333 + bin/deploy.sh | 160 + docker-compose.yml | 84 + docker.env | 25 + http-client.env.json | 20 + lombok.config | 4 + pom.xml | 118 + sql/mysql/yunxi-scm.sql | 3250 +++++ ...a6bd455b3cfa038d2360eb9c117463041008d0.png | Bin 0 -> 1322194 bytes ...13baea24b40a2806ab200c249ab7d53d779c85.png | Bin 0 -> 3242208 bytes ...c7f37500f2b5b3862943844284636d3e1b33a2.png | Bin 0 -> 4198565 bytes ...52fe478515e2e64e9f9e250cc79124c35c6f6.jpeg | Bin 0 -> 79416 bytes yarn.lock | 4 + yunxi-dependencies/pom.xml | 648 + yunxi-example/pom.xml | 22 + yunxi-example/yunxi-sso-demo-by-code/pom.xml | 65 + .../yunxi/scm/ssodemo/SSODemoApplication.java | 13 + .../scm/ssodemo/client/OAuth2Client.java | 157 + .../yunxi/scm/ssodemo/client/UserClient.java | 73 + .../scm/ssodemo/client/dto/CommonResult.java | 28 + .../dto/oauth2/OAuth2AccessTokenRespDTO.java | 45 + .../dto/oauth2/OAuth2CheckTokenRespDTO.java | 59 + .../client/dto/user/UserInfoRespDTO.java | 97 + .../client/dto/user/UserUpdateReqDTO.java | 35 + .../ssodemo/controller/AuthController.java | 63 + .../ssodemo/controller/UserController.java | 40 + .../config/SecurityConfiguration.java | 52 + .../scm/ssodemo/framework/core/LoginUser.java | 37 + .../filter/TokenAuthenticationFilter.java | 66 + .../core/handler/AccessDeniedHandlerImpl.java | 44 + .../handler/AuthenticationEntryPointImpl.java | 36 + .../framework/core/util/SecurityUtils.java | 103 + .../framework/core/util/ServletUtils.java | 32 + .../src/main/resources/application.yaml | 2 + .../src/main/resources/static/callback.html | 61 + .../src/main/resources/static/index.html | 159 + .../yunxi-sso-demo-by-password/pom.xml | 65 + .../yunxi/scm/ssodemo/SSODemoApplication.java | 13 + .../scm/ssodemo/client/OAuth2Client.java | 127 + .../yunxi/scm/ssodemo/client/UserClient.java | 73 + .../scm/ssodemo/client/dto/CommonResult.java | 28 + .../dto/oauth2/OAuth2AccessTokenRespDTO.java | 45 + .../dto/oauth2/OAuth2CheckTokenRespDTO.java | 59 + .../client/dto/user/UserInfoRespDTO.java | 97 + .../client/dto/user/UserUpdateReqDTO.java | 35 + .../ssodemo/controller/AuthController.java | 50 + .../ssodemo/controller/UserController.java | 40 + .../config/SecurityConfiguration.java | 52 + .../scm/ssodemo/framework/core/LoginUser.java | 37 + .../filter/TokenAuthenticationFilter.java | 66 + .../core/handler/AccessDeniedHandlerImpl.java | 44 + .../handler/AuthenticationEntryPointImpl.java | 36 + .../framework/core/util/SecurityUtils.java | 103 + .../framework/core/util/ServletUtils.java | 32 + .../src/main/resources/application.yaml | 2 + .../src/main/resources/static/index.html | 154 + .../src/main/resources/static/login.html | 74 + yunxi-framework/pom.xml | 60 + yunxi-framework/yunxi-common/pom.xml | 138 + .../common/core/IntArrayValuable.java | 15 + .../scm/framework/common/core/KeyValue.java | 20 + .../common/enums/CommonStatusEnum.java | 37 + .../framework/common/enums/DocumentEnum.java | 21 + .../framework/common/enums/TerminalEnum.java | 40 + .../framework/common/enums/UserTypeEnum.java | 39 + .../common/enums/WebFilterOrderEnum.java | 34 + .../framework/common/exception/ErrorCode.java | 32 + .../common/exception/ServerException.java | 60 + .../common/exception/ServiceException.java | 60 + .../enums/GlobalErrorCodeConstants.java | 40 + .../enums/ServiceErrorCodeRange.java | 43 + .../exception/util/ServiceExceptionUtil.java | 127 + .../scm/framework/common/package-info.java | 6 + .../framework/common/pojo/CommonResult.java | 112 + .../scm/framework/common/pojo/PageParam.java | 29 + .../scm/framework/common/pojo/PageResult.java | 41 + .../framework/common/pojo/SortingField.java | 56 + .../common/util/cache/CacheUtils.java | 25 + .../common/util/collection/ArrayUtils.java | 58 + .../util/collection/CollectionUtils.java | 204 + .../common/util/collection/MapUtils.java | 66 + .../common/util/collection/SetUtils.java | 19 + .../framework/common/util/date/DateUtils.java | 172 + .../common/util/date/LocalDateTimeUtils.java | 84 + .../framework/common/util/http/HttpUtils.java | 126 + .../framework/common/util/io/FileUtils.java | 84 + .../scm/framework/common/util/io/IoUtils.java | 28 + .../framework/common/util/json/JsonUtils.java | 159 + .../common/util/monitor/TracerUtils.java | 30 + .../common/util/number/NumberUtils.java | 16 + .../common/util/object/ObjectUtils.java | 63 + .../common/util/object/PageUtils.java | 16 + .../framework/common/util/package-info.java | 7 + .../common/util/servlet/ServletUtils.java | 110 + .../common/util/spring/SpringAopUtils.java | 46 + .../util/spring/SpringExpressionUtils.java | 133 + .../common/util/string/StrUtils.java | 53 + .../util/validation/ValidationUtils.java | 55 + .../framework/common/validation/InEnum.java | 35 + .../common/validation/InEnumValidator.java | 44 + .../framework/common/validation/Mobile.java | 28 + .../common/validation/MobileValidator.java | 25 + .../common/validation/package-info.java | 4 + ... Boot 参数校验 Validation 入门》.md | 1 + .../yunxi-spring-boot-starter-banner/pom.xml | 30 + .../config/YunxiBannerAutoConfiguration.java | 20 + .../banner/core/BannerApplicationRunner.java | 60 + .../scm/framework/banner/package-info.java | 6 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../src/main/resources/banner.txt | 17 + .../pom.xml | 52 + .../YunxiDataPermissionAutoConfiguration.java | 44 + ...xiDeptDataPermissionAutoConfiguration.java | 34 + .../core/annotation/DataPermission.java | 35 + .../aop/DataPermissionAnnotationAdvisor.java | 36 + .../DataPermissionAnnotationInterceptor.java | 72 + .../core/aop/DataPermissionContextHolder.java | 72 + .../db/DataPermissionDatabaseInterceptor.java | 639 + .../core/rule/DataPermissionRule.java | 36 + .../core/rule/DataPermissionRuleFactory.java | 28 + .../rule/DataPermissionRuleFactoryImpl.java | 62 + .../rule/dept/DeptDataPermissionRule.java | 208 + .../DeptDataPermissionRuleCustomizer.java | 20 + .../core/rule/dept/package-info.java | 6 + .../core/util/DataPermissionUtils.java | 43 + .../datapermission/package-info.java | 4 + ...ot.autoconfigure.AutoConfiguration.imports | 2 + ...taPermissionAnnotationInterceptorTest.java | 108 + .../aop/DataPermissionContextHolderTest.java | 66 + ...DataPermissionDatabaseInterceptorTest.java | 190 + ...ataPermissionDatabaseInterceptorTest2.java | 533 + .../DataPermissionRuleFactoryImplTest.java | 145 + .../rule/dept/DeptDataPermissionRuleTest.java | 238 + .../core/util/DataPermissionUtilsTest.java | 15 + .../pom.xml | 50 + .../config/YunxiDictAutoConfiguration.java | 18 + .../scm/framework/dict/core/package-info.java | 4 + .../dict/core/util/DictFrameworkUtils.java | 75 + .../scm/framework/dict/package-info.java | 6 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../core/util/DictFrameworkUtilsTest.java | 48 + .../pom.xml | 49 + .../errorcode/config/ErrorCodeProperties.java | 30 + .../config/YunxiErrorCodeConfiguration.java | 39 + .../generator/ErrorCodeAutoGenerator.java | 15 + .../generator/ErrorCodeAutoGeneratorImpl.java | 104 + .../core/loader/ErrorCodeLoader.java | 24 + .../core/loader/ErrorCodeLoaderImpl.java | 73 + .../scm/framework/errorcode/package-info.java | 10 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../yunxi-spring-boot-starter-biz-ip/pom.xml | 54 + .../com/yunxi/scm/framework/ip/core/Area.java | 55 + .../framework/ip/core/enums/AreaTypeEnum.java | 39 + .../framework/ip/core/utils/AreaUtils.java | 119 + .../scm/framework/ip/core/utils/IPUtils.java | 87 + .../yunxi/scm/framework/ip/package-info.java | 11 + .../src/main/resources/area.csv | 3608 ++++++ .../src/main/resources/ip2region.xdb | Bin 0 -> 6428681 bytes .../ip/core/utils/AreaUtilsTest.java | 36 + .../framework/ip/core/utils/IPUtilsTest.java | 47 + .../pom.xml | 51 + .../YunxiOperateLogAutoConfiguration.java | 23 + .../core/annotations/OperateLog.java | 57 + .../operatelog/core/aop/OperateLogAspect.java | 375 + .../core/enums/OperateTypeEnum.java | 55 + .../operatelog/core/package-info.java | 1 + .../operatelog/core/service/OperateLog.java | 110 + .../service/OperateLogFrameworkService.java | 17 + .../OperateLogFrameworkServiceImpl.java | 28 + .../operatelog/core/util/OperateLogUtils.java | 21 + .../framework/operatelog/package-info.java | 6 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../yunxi-spring-boot-starter-biz-pay/pom.xml | 76 + .../pay/config/YunxiPayAutoConfiguration.java | 22 + .../framework/pay/core/client/PayClient.java | 79 + .../pay/core/client/PayClientConfig.java | 30 + .../pay/core/client/PayClientFactory.java | 28 + .../client/dto/order/PayOrderRespDTO.java | 141 + .../dto/order/PayOrderUnifiedReqDTO.java | 92 + .../client/dto/refund/PayRefundRespDTO.java | 115 + .../dto/refund/PayRefundUnifiedReqDTO.java | 70 + .../core/client/exception/PayException.java | 17 + .../core/client/impl/AbstractPayClient.java | 193 + .../client/impl/PayClientFactoryImpl.java | 81 + .../impl/alipay/AbstractAlipayPayClient.java | 213 + .../impl/alipay/AlipayAppPayClient.java | 60 + .../impl/alipay/AlipayBarPayClient.java | 74 + .../impl/alipay/AlipayPayClientConfig.java | 109 + .../client/impl/alipay/AlipayPcPayClient.java | 70 + .../client/impl/alipay/AlipayQrPayClient.java | 57 + .../impl/alipay/AlipayWapPayClient.java | 59 + .../core/client/impl/mock/MockPayClient.java | 66 + .../client/impl/mock/MockPayClientConfig.java | 28 + .../impl/weixin/AbstractWxPayClient.java | 470 + .../client/impl/weixin/WxAppPayClient.java | 63 + .../client/impl/weixin/WxBarPayClient.java | 107 + .../client/impl/weixin/WxLitePayClient.java | 22 + .../client/impl/weixin/WxNativePayClient.java | 58 + .../client/impl/weixin/WxPayClientConfig.java | 110 + .../client/impl/weixin/WxPubPayClient.java | 80 + .../core/enums/channel/PayChannelEnum.java | 64 + .../enums/order/PayOrderDisplayModeEnum.java | 29 + .../enums/order/PayOrderStatusRespEnum.java | 56 + .../enums/refund/PayRefundStatusRespEnum.java | 32 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../PayClientFactoryImplIntegrationTest.java | 133 + .../impl/alipay/AlipayQrPayClientTest.java | 99 + .../weixin/WxBarPayClientIntegrationTest.java | 123 + .../WxNativePayClientIntegrationTest.java | 83 + .../yunxi-spring-boot-starter-biz-sms/pom.xml | 82 + .../sms/config/YunxiSmsAutoConfiguration.java | 21 + .../framework/sms/core/client/SmsClient.java | 54 + .../sms/core/client/SmsClientFactory.java | 36 + .../sms/core/client/SmsCodeMapping.java | 17 + .../sms/core/client/SmsCommonResult.java | 68 + .../core/client/dto/SmsReceiveRespDTO.java | 48 + .../sms/core/client/dto/SmsSendRespDTO.java | 18 + .../core/client/dto/SmsTemplateRespDTO.java | 33 + .../core/client/impl/AbstractSmsClient.java | 127 + .../client/impl/SmsClientFactoryImpl.java | 90 + .../client/impl/aliyun/AliyunSmsClient.java | 212 + .../impl/aliyun/AliyunSmsCodeMapping.java | 42 + .../impl/debug/DebugDingTalkCodeMapping.java | 22 + .../impl/debug/DebugDingTalkSmsClient.java | 96 + .../tencent/TencentSmsChannelProperties.java | 41 + .../client/impl/tencent/TencentSmsClient.java | 302 + .../impl/tencent/TencentSmsCodeMapping.java | 50 + .../sms/core/enums/SmsChannelEnum.java | 36 + .../enums/SmsFrameworkErrorCodeConstants.java | 50 + .../enums/SmsTemplateAuditStatusEnum.java | 21 + .../core/property/SmsChannelProperties.java | 52 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../AliyunSmsClientIntegrationTest.java | 55 + ...DebugDingTalkSmsClientIntegrationTest.java | 46 + .../impl/aliyun/AliyunSmsClientTest.java | 225 + .../impl/aliyun/AliyunSmsCodeMappingTest.java | 43 + .../impl/tencent/TencentSmsClientTest.java | 222 + .../tencent/TencentSmsCodeMappingTest.java | 50 + .../pom.xml | 56 + .../config/YunxiSocialAutoConfiguration.java | 36 + .../social/core/YunxiAuthRequestFactory.java | 85 + .../social/core/enums/AuthExtendSource.java | 45 + .../request/AuthWeChatMiniAppRequest.java | 97 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../pom.xml | 67 + .../tenant/config/TenantProperties.java | 42 + .../config/YunxiTenantAutoConfiguration.java | 135 + .../tenant/core/aop/TenantIgnore.java | 18 + .../tenant/core/aop/TenantIgnoreAspect.java | 35 + .../core/context/TenantContextHolder.java | 68 + .../tenant/core/db/TenantBaseDO.java | 21 + .../core/db/TenantDatabaseInterceptor.java | 43 + .../framework/tenant/core/job/TenantJob.java | 14 + .../core/job/TenantJobHandlerDecorator.java | 58 + .../mq/TenantRedisMessageInterceptor.java | 42 + .../core/redis/TenantRedisCacheManager.java | 37 + .../security/TenantSecurityWebFilter.java | 117 + .../core/service/TenantFrameworkService.java | 26 + .../service/TenantFrameworkServiceImpl.java | 73 + .../tenant/core/util/TenantUtils.java | 93 + .../core/web/TenantContextWebFilter.java | 37 + .../scm/framework/tenant/package-info.java | 17 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../tenant/core/job/TenantJobTest.java | 42 + .../framework/tenant/core/job/TestJob.java | 27 + .../pom.xml | 45 + .../scm/framework/weixin/package-info.java | 7 + .../scm/framework/weixin/WxMpServiceTest.java | 34 + .../resources/application.yml | 11 + .../yunxi-spring-boot-starter-captcha/pom.xml | 38 + .../config/YunxiCaptchaConfiguration.java | 29 + .../core/enums/CaptchaRedisKeyConstants.java | 28 + .../core/service/RedisCaptchaServiceImpl.java | 57 + .../scm/framework/captcha/package-info.java | 7 + ...ingyuv.captcha.service.CaptchaCacheService | 1 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../resources/images/jigsaw/original/bg1.png | Bin 0 -> 17827 bytes .../resources/images/jigsaw/original/bg2.png | Bin 0 -> 28732 bytes .../resources/images/jigsaw/original/bg3.png | Bin 0 -> 25814 bytes .../resources/images/jigsaw/original/bg4.png | Bin 0 -> 27859 bytes .../resources/images/jigsaw/original/bg5.png | Bin 0 -> 24036 bytes .../resources/images/jigsaw/original/bg6.png | Bin 0 -> 19160 bytes .../resources/images/jigsaw/original/bg7.png | Bin 0 -> 21445 bytes .../resources/images/jigsaw/original/bg8.png | Bin 0 -> 30332 bytes .../resources/images/jigsaw/original/bg9.png | Bin 0 -> 26977 bytes .../images/jigsaw/slidingBlock/1.png | Bin 0 -> 2158 bytes .../images/jigsaw/slidingBlock/11/10.png | Bin 0 -> 1657 bytes .../images/jigsaw/slidingBlock/11/11.png | Bin 0 -> 1657 bytes .../images/jigsaw/slidingBlock/11/12.png | Bin 0 -> 1657 bytes .../images/jigsaw/slidingBlock/11/13.png | Bin 0 -> 1873 bytes .../images/jigsaw/slidingBlock/11/14.png | Bin 0 -> 1872 bytes .../images/jigsaw/slidingBlock/11/15.png | Bin 0 -> 1872 bytes .../images/jigsaw/slidingBlock/11/16.png | Bin 0 -> 1838 bytes .../images/jigsaw/slidingBlock/11/17.png | Bin 0 -> 1839 bytes .../images/jigsaw/slidingBlock/11/18.png | Bin 0 -> 1836 bytes .../images/jigsaw/slidingBlock/11/19.png | Bin 0 -> 1838 bytes .../images/jigsaw/slidingBlock/11/8.png | Bin 0 -> 1657 bytes .../images/jigsaw/slidingBlock/11/9.png | Bin 0 -> 1657 bytes .../images/jigsaw/slidingBlock/2.png | Bin 0 -> 2297 bytes .../images/jigsaw/slidingBlock/3.png | Bin 0 -> 2241 bytes .../images/jigsaw/slidingBlock/4.png | Bin 0 -> 2255 bytes .../main/resources/images/pic-click/bg1.png | Bin 0 -> 24041 bytes .../main/resources/images/pic-click/bg10.png | Bin 0 -> 27872 bytes .../main/resources/images/pic-click/bg2.png | Bin 0 -> 28394 bytes .../main/resources/images/pic-click/bg3.png | Bin 0 -> 23407 bytes .../main/resources/images/pic-click/bg4.png | Bin 0 -> 25379 bytes .../main/resources/images/pic-click/bg5.png | Bin 0 -> 16422 bytes .../main/resources/images/pic-click/bg6.png | Bin 0 -> 23607 bytes .../main/resources/images/pic-click/bg7.png | Bin 0 -> 26113 bytes .../main/resources/images/pic-click/bg8.png | Bin 0 -> 27260 bytes .../main/resources/images/pic-click/bg9.png | Bin 0 -> 29878 bytes .../pom.xml | 38 + .../core/base/annotation/DesensitizeBy.java | 32 + .../base/handler/DesensitizationHandler.java | 21 + .../StringDesensitizeSerializer.java | 92 + .../desensitize/core/package-info.java | 4 + .../regex/annotation/EmailDesensitize.java | 36 + .../regex/annotation/RegexDesensitize.java | 38 + .../AbstractRegexDesensitizationHandler.java | 38 + .../DefaultRegexDesensitizationHandler.java | 21 + .../handler/EmailDesensitizationHandler.java | 22 + .../annotation/BankCardDesensitize.java | 40 + .../annotation/CarLicenseDesensitize.java | 40 + .../annotation/ChineseNameDesensitize.java | 40 + .../annotation/FixedPhoneDesensitize.java | 40 + .../slider/annotation/IdCardDesensitize.java | 40 + .../slider/annotation/MobileDesensitize.java | 40 + .../annotation/PasswordDesensitize.java | 42 + .../slider/annotation/SliderDesensitize.java | 43 + .../AbstractSliderDesensitizationHandler.java | 78 + .../handler/BankCardDesensitization.java | 27 + .../handler/CarLicenseDesensitization.java | 25 + .../handler/ChineseNameDesensitization.java | 27 + .../DefaultDesensitizationHandler.java | 25 + .../handler/FixedPhoneDesensitization.java | 25 + .../slider/handler/IdCardDesensitization.java | 25 + .../slider/handler/MobileDesensitization.java | 26 + .../handler/PasswordDesensitization.java | 25 + .../desensitize/core/DesensitizeTest.java | 98 + .../desensitize/core/annotation/Address.java | 30 + .../core/handler/AddressHandler.java | 19 + .../yunxi-spring-boot-starter-excel/pom.xml | 51 + .../excel/core/annotations/DictFormat.java | 22 + .../excel/core/convert/DictConvert.java | 72 + .../excel/core/convert/JsonConvert.java | 36 + .../excel/core/convert/MoneyConvert.java | 39 + .../excel/core/convert/MutilDictConvert.java | 81 + .../framework/excel/core/util/ExcelUtils.java | 48 + .../scm/framework/excel/package-info.java | 4 + .../yunxi-spring-boot-starter-file/pom.xml | 83 + .../config/YunxiFileAutoConfiguration.java | 21 + .../file/core/client/AbstractFileClient.java | 69 + .../file/core/client/FileClient.java | 43 + .../file/core/client/FileClientConfig.java | 16 + .../file/core/client/FileClientFactory.java | 22 + .../core/client/FileClientFactoryImpl.java | 56 + .../file/core/client/db/DBFileClient.java | 48 + .../core/client/db/DBFileClientConfig.java | 24 + .../client/db/DBFileContentFrameworkDAO.java | 36 + .../file/core/client/ftp/FtpFileClient.java | 77 + .../core/client/ftp/FtpFileClientConfig.java | 59 + .../core/client/local/LocalFileClient.java | 52 + .../client/local/LocalFileClientConfig.java | 30 + .../file/core/client/s3/S3FileClient.java | 120 + .../core/client/s3/S3FileClientConfig.java | 77 + .../file/core/client/sftp/SftpFileClient.java | 61 + .../client/sftp/SftpFileClientConfig.java | 52 + .../file/core/enums/FileStorageEnum.java | 55 + .../file/core/utils/FileTypeUtils.java | 48 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../framework/file/config/package-info.java | 4 + .../core/client/ftp/FtpFileClientTest.java | 39 + .../client/local/LocalFileClientTest.java | 27 + .../file/core/client/s3/S3FileClientTest.java | 117 + .../core/client/sftp/SftpFileClientTest.java | 37 + .../file/core/enums/package-info.java | 4 + .../src/test/resources/file/erweima.jpg | Bin 0 -> 18385 bytes .../pom.xml | 37 + .../config/YunxiFlowableConfiguration.java | 43 + .../framework/flowable/core/package-info.java | 1 + .../flowable/core/util/FlowableUtils.java | 82 + .../flowable/core/web/FlowableWebFilter.java | 35 + .../scm/framework/flowable/package-info.java | 1 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../yunxi-spring-boot-starter-job/pom.xml | 41 + .../config/YunxiAsyncAutoConfiguration.java | 36 + .../config/YunxiQuartzAutoConfiguration.java | 21 + .../quartz/core/enums/JobDataKeyEnum.java | 14 + .../quartz/core/handler/JobHandler.java | 19 + .../core/handler/JobHandlerInvoker.java | 114 + .../core/scheduler/SchedulerManager.java | 130 + .../core/service/JobLogFrameworkService.java | 44 + .../framework/quartz/core/util/CronUtils.java | 56 + .../scm/framework/quartz/package-info.java | 7 + ...ot.autoconfigure.AutoConfiguration.imports | 2 + ...道 Spring Boot 定时任务入门》.md | 1 + ...道 Spring Boot 异步任务入门》.md | 1 + .../yunxi-spring-boot-starter-monitor/pom.xml | 73 + .../tracer/config/TracerProperties.java | 14 + .../config/YunxiMetricsAutoConfiguration.java | 27 + .../config/YunxiTracerAutoConfiguration.java | 55 + .../tracer/core/annotation/BizTrace.java | 42 + .../tracer/core/aop/BizTraceAspect.java | 77 + .../tracer/core/filter/TraceFilter.java | 33 + .../core/util/TracerFrameworkUtils.java | 46 + .../scm/framework/tracer/package-info.java | 6 + ...ot.autoconfigure.AutoConfiguration.imports | 2 + ...pring Boot 监控工具 Admin 入门》.md | 1 + ...ng Boot 监控端点 Actuator 入门》.md | 1 + ... Boot 链路追踪 SkyWalking 入门》.md | 1 + .../yunxi-spring-boot-starter-mq/pom.xml | 26 + .../mq/config/YunxiMQAutoConfiguration.java | 170 + .../framework/mq/core/RedisMQTemplate.java | 87 + .../interceptor/RedisMessageInterceptor.java | 26 + .../mq/core/message/AbstractRedisMessage.java | 29 + .../core/pubsub/AbstractChannelMessage.java | 21 + .../AbstractChannelMessageListener.java | 103 + .../mq/core/stream/AbstractStreamMessage.java | 21 + .../stream/AbstractStreamMessageListener.java | 113 + .../mq/job/RedisPendingMessageResendJob.java | 100 + .../yunxi/scm/framework/mq/package-info.java | 6 + ...efaultStreamMessageListenerContainerX.java | 62 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../yunxi-spring-boot-starter-mybatis/pom.xml | 71 + .../YunxiDataSourceAutoConfiguration.java | 40 + .../datasource/core/enums/DataSourceEnum.java | 22 + .../core/filter/DruidAdRemoveFilter.java | 38 + .../framework/datasource/package-info.java | 5 + .../framework/expression/AndExpressionX.java | 24 + .../framework/expression/OrExpressionX.java | 24 + .../IdTypeEnvironmentPostProcessor.java | 108 + .../config/YunxiMybatisAutoConfiguration.java | 63 + .../mybatis/core/dataobject/BaseDO.java | 50 + .../mybatis/core/enums/SqlConstants.java | 21 + .../core/handler/DefaultDBFieldHandler.java | 62 + .../mybatis/core/mapper/BaseMapperX.java | 118 + .../core/query/LambdaQueryWrapperX.java | 135 + .../mybatis/core/query/QueryWrapperX.java | 166 + .../mybatis/core/type/EncryptTypeHandler.java | 76 + .../core/type/IntegerListTypeHandler.java | 56 + .../core/type/JsonLongSetTypeHandler.java | 31 + .../core/type/LongListTypeHandler.java | 57 + .../core/type/StringListTypeHandler.java | 58 + .../mybatis/core/util/JdbcUtils.java | 42 + .../mybatis/core/util/MyBatisUtils.java | 88 + .../scm/framework/mybatis/package-info.java | 4 + .../com/yunxi/scm/framework/package-info.java | 1 + .../main/resources/META-INF/spring.factories | 2 + ...ot.autoconfigure.AutoConfiguration.imports | 2 + ...《芋道 Spring Boot MyBatis 入门》.md | 1 + ...多数据源(读写分离)入门》.md | 1 + ...Spring Boot 数据库连接池入门》.md | 1 + .../pom.xml | 37 + .../config/YunxiIdempotentConfiguration.java | 40 + .../core/annotation/Idempotent.java | 46 + .../idempotent/core/aop/IdempotentAspect.java | 56 + .../keyresolver/IdempotentKeyResolver.java | 22 + .../impl/DefaultIdempotentKeyResolver.java | 25 + .../impl/ExpressionIdempotentKeyResolver.java | 63 + .../core/redis/IdempotentRedisDAO.java | 36 + .../framework/idempotent/package-info.java | 12 + .../config/YunxiLock4jConfiguration.java | 16 + .../core/DefaultLockFailureStrategy.java | 21 + .../lock4j/core/Lock4jRedisKeyConstants.java | 19 + .../scm/framework/lock4j/package-info.java | 4 + .../framework/resilience4j/package-info.java | 9 + ...oot 服务容错 Resilience4j 入门》.md | 1 + ...ot.autoconfigure.AutoConfiguration.imports | 2 + .../yunxi-spring-boot-starter-redis/pom.xml | 47 + .../config/YunxiCacheAutoConfiguration.java | 73 + .../config/YunxiRedisAutoConfiguration.java | 44 + .../redis/core/TimeoutRedisCacheManager.java | 51 + .../scm/framework/redis/package-info.java | 4 + ...ot.autoconfigure.AutoConfiguration.imports | 2 + .../《芋道 Spring Boot Cache 入门》.md | 1 + .../《芋道 Spring Boot Redis 入门》.md | 1 + .../pom.xml | 61 + .../config/AuthorizeRequestsCustomizer.java | 36 + .../security/config/SecurityProperties.java | 44 + .../YunxiSecurityAutoConfiguration.java | 102 + .../YunxiWebSecurityConfigurerAdapter.java | 188 + .../framework/security/core/LoginUser.java | 59 + .../core/annotations/PreAuthenticated.java | 17 + .../core/aop/PreAuthenticatedAspect.java | 25 + ...eadLocalSecurityContextHolderStrategy.java | 48 + .../filter/TokenAuthenticationFilter.java | 113 + .../core/handler/AccessDeniedHandlerImpl.java | 43 + .../handler/AuthenticationEntryPointImpl.java | 35 + .../service/SecurityFrameworkService.java | 59 + .../service/SecurityFrameworkServiceImpl.java | 57 + .../core/util/SecurityFrameworkUtils.java | 109 + .../scm/framework/security/package-info.java | 7 + ...ot.autoconfigure.AutoConfiguration.imports | 2 + ... 安全框架 Spring Security 入门》.md | 2 + .../yunxi-spring-boot-starter-test/pom.xml | 60 + .../test/config/RedisTestConfiguration.java | 35 + .../SqlInitializationTestConfiguration.java | 52 + .../test/core/ut/BaseDbAndRedisUnitTest.java | 50 + .../test/core/ut/BaseDbUnitTest.java | 43 + .../test/core/ut/BaseMockitoUnitTest.java | 13 + .../test/core/ut/BaseRedisUnitTest.java | 32 + .../framework/test/core/ut/package-info.java | 4 + .../framework/test/core/util/AssertUtils.java | 101 + .../framework/test/core/util/RandomUtils.java | 140 + .../scm/framework/test/package-info.java | 4 + ...Spring Boot 单元测试 Test 入门》.md | 1 + .../yunxi-spring-boot-starter-web/pom.xml | 73 + .../config/YunxiApiLogAutoConfiguration.java | 52 + .../core/filter/ApiAccessLogFilter.java | 110 + .../apilog/core/service/ApiAccessLog.java | 85 + .../service/ApiAccessLogFrameworkService.java | 17 + .../ApiAccessLogFrameworkServiceImpl.java | 28 + .../apilog/core/service/ApiErrorLog.java | 107 + .../service/ApiErrorLogFrameworkService.java | 17 + .../ApiErrorLogFrameworkServiceImpl.java | 28 + .../scm/framework/apilog/package-info.java | 8 + .../config/YunxiJacksonAutoConfiguration.java | 51 + .../databind/LocalDateTimeDeserializer.java | 26 + .../databind/LocalDateTimeSerializer.java | 24 + .../jackson/core/databind/LocalTimeJson.java | 21 + .../core/databind/NumberSerializer.java | 37 + .../framework/jackson/core/package-info.java | 1 + .../com/yunxi/scm/framework/package-info.java | 4 + .../swagger/config/SwaggerProperties.java | 60 + .../config/YunxiSwaggerAutoConfiguration.java | 155 + .../scm/framework/swagger/package-info.java | 6 + .../framework/web/config/WebProperties.java | 66 + .../web/config/YunxiWebAutoConfiguration.java | 128 + .../web/core/filter/ApiRequestFilter.java | 27 + .../core/filter/CacheRequestBodyFilter.java | 31 + .../core/filter/CacheRequestBodyWrapper.java | 68 + .../framework/web/core/filter/DemoFilter.java | 35 + .../core/handler/GlobalExceptionHandler.java | 324 + .../handler/GlobalResponseBodyHandler.java | 45 + .../web/core/util/WebFrameworkUtils.java | 128 + .../yunxi/scm/framework/web/package-info.java | 4 + .../framework/xss/config/XssProperties.java | 29 + .../xss/config/YunxiXssAutoConfiguration.java | 60 + .../xss/core/clean/JsoupXssCleaner.java | 64 + .../framework/xss/core/clean/XssCleaner.java | 16 + .../framework/xss/core/filter/XssFilter.java | 52 + .../xss/core/filter/XssRequestWrapper.java | 92 + .../core/json/XssStringJsonDeserializer.java | 59 + .../yunxi/scm/framework/xss/package-info.java | 6 + ...ot.autoconfigure.AutoConfiguration.imports | 6 + ...Boot API 接口文档 Swagger 入门》.md | 1 + ...芋道 Spring Boot SpringMVC 入门》.md | 1 + .../pom.xml | 37 + .../config/WebSocketHandlerConfig.java | 14 + .../websocket/config/WebSocketProperties.java | 29 + .../YunxiWebSocketAutoConfiguration.java | 34 + .../core/UserHandshakeInterceptor.java | 24 + .../websocket/core/WebSocketKeyDefine.java | 9 + .../websocket/core/WebSocketMessageDO.java | 24 + .../core/WebSocketSessionHandler.java | 36 + .../websocket/core/WebSocketUtils.java | 31 + .../core/YunxiWebSocketHandlerDecorator.java | 49 + .../scm/framework/websocket/package-info.java | 1 + ...ot.autoconfigure.AutoConfiguration.imports | 1 + yunxi-module-bpm/pom.xml | 27 + yunxi-module-bpm/yunxi-module-bpm-api/pom.xml | 33 + .../scm/module/bpm/api/package-info.java | 4 + .../bpm/api/task/BpmProcessInstanceApi.java | 23 + .../dto/BpmProcessInstanceCreateReqDTO.java | 33 + .../module/bpm/enums/DictTypeConstants.java | 13 + .../module/bpm/enums/ErrorCodeConstants.java | 64 + .../definition/BpmModelFormTypeEnum.java | 21 + .../definition/BpmTaskAssignRuleTypeEnum.java | 33 + .../definition/BpmTaskRuleScriptEnum.java | 30 + .../bpm/enums/message/BpmMessageEnum.java | 26 + .../BpmProcessInstanceDeleteReasonEnum.java | 58 + .../task/BpmProcessInstanceResultEnum.java | 48 + .../task/BpmProcessInstanceStatusEnum.java | 27 + yunxi-module-bpm/yunxi-module-bpm-biz/pom.xml | 72 + .../scm/module/bpm/api/package-info.java | 4 + .../api/task/BpmProcessInstanceApiImpl.java | 28 + .../admin/definition/BpmFormController.java | 79 + .../admin/definition/BpmModelController.java | 97 + .../BpmProcessDefinitionController.java | 59 + .../BpmTaskAssignRuleController.java | 58 + .../definition/BpmUserGroupController.java | 85 + .../definition/vo/form/BpmFormBaseVO.java | 24 + .../vo/form/BpmFormCreateReqVO.java | 22 + .../definition/vo/form/BpmFormPageReqVO.java | 18 + .../definition/vo/form/BpmFormRespVO.java | 31 + .../vo/form/BpmFormSimpleRespVO.java | 16 + .../vo/form/BpmFormUpdateReqVO.java | 25 + .../vo/group/BpmUserGroupBaseVO.java | 32 + .../vo/group/BpmUserGroupCreateReqVO.java | 11 + .../vo/group/BpmUserGroupPageReqVO.java | 29 + .../vo/group/BpmUserGroupRespVO.java | 20 + .../vo/group/BpmUserGroupSimpleRespVO.java | 20 + .../vo/group/BpmUserGroupUpdateReqVO.java | 17 + .../vo/model/BpmModeImportReqVO.java | 21 + .../definition/vo/model/BpmModelBaseVO.java | 40 + .../vo/model/BpmModelCreateReqVO.java | 25 + .../vo/model/BpmModelPageItemRespVO.java | 48 + .../vo/model/BpmModelPageReqVO.java | 25 + .../definition/vo/model/BpmModelRespVO.java | 25 + .../vo/model/BpmModelUpdateReqVO.java | 39 + .../vo/model/BpmModelUpdateStateReqVO.java | 20 + .../BpmProcessDefinitionListReqVO.java | 18 + .../BpmProcessDefinitionPageItemRespVO.java | 22 + .../BpmProcessDefinitionPageReqVO.java | 18 + .../process/BpmProcessDefinitionRespVO.java | 48 + .../vo/rule/BpmTaskAssignRuleBaseVO.java | 24 + .../vo/rule/BpmTaskAssignRuleCreateReqVO.java | 24 + .../vo/rule/BpmTaskAssignRuleRespVO.java | 28 + .../vo/rule/BpmTaskAssignRuleUpdateReqVO.java | 20 + .../admin/oa/BpmOALeaveController.http | 12 + .../admin/oa/BpmOALeaveController.java | 63 + .../bpm/controller/admin/oa/package-info.java | 5 + .../admin/oa/vo/BpmOALeaveBaseVO.java | 33 + .../admin/oa/vo/BpmOALeaveCreateReqVO.java | 20 + .../admin/oa/vo/BpmOALeavePageReqVO.java | 29 + .../admin/oa/vo/BpmOALeaveRespVO.java | 32 + .../admin/task/BpmActivityController.java | 39 + .../task/BpmProcessInstanceController.java | 59 + .../admin/task/BpmTaskController.java | 78 + .../task/vo/activity/BpmActivityRespVO.java | 25 + .../BpmProcessInstanceCancelReqVO.java | 20 + .../BpmProcessInstanceCreateReqVO.java | 20 + .../BpmProcessInstanceMyPageReqVO.java | 39 + .../BpmProcessInstancePageItemRespVO.java | 54 + .../vo/instance/BpmProcessInstanceRespVO.java | 94 + .../task/vo/task/BpmTaskApproveReqVO.java | 20 + .../vo/task/BpmTaskDonePageItemRespVO.java | 26 + .../task/vo/task/BpmTaskDonePageReqVO.java | 31 + .../task/vo/task/BpmTaskRejectReqVO.java | 20 + .../admin/task/vo/task/BpmTaskRespVO.java | 37 + .../vo/task/BpmTaskTodoPageItemRespVO.java | 53 + .../task/vo/task/BpmTaskTodoPageReqVO.java | 28 + .../vo/task/BpmTaskUpdateAssigneeReqVO.java | 21 + .../bpm/controller/app/package-info.java | 4 + .../module/bpm/controller/package-info.java | 6 + .../convert/definition/BpmFormConvert.java | 34 + .../convert/definition/BpmModelConvert.java | 141 + .../BpmProcessDefinitionConvert.java | 84 + .../definition/BpmTaskAssignRuleConvert.java | 40 + .../definition/BpmUserGroupConvert.java | 38 + .../convert/message/BpmMessageConvert.java | 21 + .../bpm/convert/oa/BpmOALeaveConvert.java | 30 + .../scm/module/bpm/convert/package-info.java | 6 + .../bpm/convert/task/BpmActivityConvert.java | 29 + .../task/BpmProcessInstanceConvert.java | 114 + .../bpm/convert/task/BpmTaskConvert.java | 144 + .../module/bpm/convert/task/package-info.java | 1 + ...g Boot 对象转换 MapStruct 入门》.md | 1 + .../dal/dataobject/definition/BpmFormDO.java | 57 + .../definition/BpmProcessDefinitionExtDO.java | 90 + .../definition/BpmTaskAssignRuleDO.java | 83 + .../definition/BpmTaskMessageRuleDO.java | 5 + .../dataobject/definition/BpmUserGroupDO.java | 52 + .../bpm/dal/dataobject/oa/BpmOALeaveDO.java | 73 + .../task/BpmProcessInstanceExtDO.java | 90 + .../bpm/dal/dataobject/task/BpmTaskExtDO.java | 85 + .../dal/mysql/definition/BpmFormMapper.java | 25 + .../BpmProcessDefinitionExtMapper.java | 22 + .../definition/BpmTaskAssignRuleMapper.java | 37 + .../mysql/definition/BpmUserGroupMapper.java | 32 + .../bpm/dal/mysql/oa/BpmOALeaveMapper.java | 29 + .../task/BpmProcessInstanceExtMapper.java | 34 + .../bpm/dal/mysql/task/BpmTaskExtMapper.java | 26 + .../bpm/config/BpmCommonConfiguration.java | 19 + .../bpm/config/BpmSecurityConfiguration.java | 28 + .../event/BpmProcessInstanceResultEvent.java | 44 + ...BpmProcessInstanceResultEventListener.java | 34 + ...pmProcessInstanceResultEventPublisher.java | 24 + .../bpm/core/event/package-info.java | 6 + .../bpm/framework/bpm/core/package-info.java | 4 + .../bpm/framework/bpm/package-info.java | 6 + .../config/BpmFlowableConfiguration.java | 46 + .../behavior/BpmActivityBehaviorFactory.java | 44 + .../BpmParallelMultiInstanceBehavior.java | 58 + .../behavior/BpmUserTaskActivityBehavior.java | 66 + .../behavior/script/BpmTaskAssignScript.java | 34 + .../BpmTaskAssignLeaderAbstractScript.java | 70 + .../impl/BpmTaskAssignLeaderX1Script.java | 27 + .../impl/BpmTaskAssignLeaderX2Script.java | 27 + .../impl/BpmTaskAssignStartUserScript.java | 40 + .../BpmProcessInstanceEventListener.java | 53 + .../core/listener/BpmTaskEventListener.java | 82 + .../module/bpm/framework/package-info.java | 6 + .../web/config/BpmWebConfiguration.java | 24 + .../bpm/framework/web/package-info.java | 4 + .../yunxi/scm/module/bpm/package-info.java | 12 + .../service/definition/BpmFormService.java | 99 + .../definition/BpmFormServiceImpl.java | 132 + .../service/definition/BpmModelService.java | 77 + .../definition/BpmModelServiceImpl.java | 287 + .../BpmProcessDefinitionService.java | 159 + .../BpmProcessDefinitionServiceImpl.java | 286 + .../definition/BpmTaskAssignRuleService.java | 97 + .../BpmTaskAssignRuleServiceImpl.java | 344 + .../definition/BpmUserGroupService.java | 82 + .../definition/BpmUserGroupServiceImpl.java | 111 + .../definition/dto/BpmFormFieldRespDTO.java | 25 + .../dto/BpmModelMetaInfoRespDTO.java | 39 + .../dto/BpmProcessDefinitionCreateReqDTO.java | 104 + .../service/message/BpmMessageService.java | 39 + .../message/BpmMessageServiceImpl.java | 68 + ...eSendWhenProcessInstanceApproveReqDTO.java | 27 + ...geSendWhenProcessInstanceRejectReqDTO.java | 33 + .../BpmMessageSendWhenTaskCreatedReqDTO.java | 46 + .../bpm/service/oa/BpmOALeaveService.java | 53 + .../bpm/service/oa/BpmOALeaveServiceImpl.java | 88 + .../oa/listener/BpmOALeaveResultListener.java | 32 + .../bpm/service/task/BpmActivityService.java | 31 + .../service/task/BpmActivityServiceImpl.java | 40 + .../task/BpmProcessInstanceService.java | 147 + .../task/BpmProcessInstanceServiceImpl.java | 1 + .../bpm/service/task/BpmTaskService.java | 131 + .../bpm/service/task/BpmTaskServiceImpl.java | 319 + .../module/bpm/service/task/package-info.java | 1 + .../impl/BpmTaskAssignLeaderX2ScriptTest.java | 104 + .../definition/BpmFormServiceTest.java | 145 + .../BpmTaskAssignRuleServiceImplTest.java | 227 + .../definition/BpmUserGroupServiceTest.java | 131 + .../test/resources/application-unit-test.yaml | 44 + .../src/test/resources/logback.xml | 4 + .../src/test/resources/sql/clean.sql | 2 + .../src/test/resources/sql/create_tables.sql | 28 + yunxi-module-demo/pom.xml | 24 + .../yunxi-module-demo-api/pom.xml | 28 + .../module/demo/enums/DictTypeConstants.java | 18 + .../module/demo/enums/ErrorCodeConstants.java | 9 + .../yunxi-module-demo-biz/pom.xml | 72 + .../controller/admin/DemoTestController.java | 119 + .../admin/pmaterial/PMaterialController.java | 101 + .../admin/pmaterial/vo/PMaterialBaseVO.java | 48 + .../pmaterial/vo/PMaterialCreateReqVO.java | 12 + .../admin/pmaterial/vo/PMaterialExcelVO.java | 56 + .../pmaterial/vo/PMaterialExportReqVO.java | 31 + .../pmaterial/vo/PMaterialExportTestVO.java | 21 + .../pmaterial/vo/PMaterialImportTestVO.java | 27 + .../pmaterial/vo/PMaterialPageReqVO.java | 36 + .../admin/pmaterial/vo/PMaterialRespVO.java | 19 + .../pmaterial/vo/PMaterialUpdateReqVO.java | 18 + .../controller/app/AppDemoTestController.java | 27 + .../convert/pmaterial/PMaterialConvert.java | 37 + .../convert/pmaterial/PMaterialXConvert.java | 24 + .../dal/dataobject/pmaterial/PMaterialDO.java | 71 + .../dataobject/pmaterial/PMaterialXDO.java | 30 + .../dal/mysql/pmaterial/PMaterialMapper.java | 41 + .../dal/mysql/pmaterial/PMaterialXMapper.java | 15 + .../demo/enums/pmaterial/CategoryEnum.java | 34 + .../web/config/DemoWebConfiguration.java | 24 + .../demo/framework/web/package-info.java | 4 + .../service/pmaterial/PMaterialService.java | 70 + .../pmaterial/PMaterialServiceImpl.java | 85 + .../mapper/pmaterial/PMaterialMapper.xml | 12 + .../pmaterial/MaterialServiceImplTest.java | 179 + .../src/test/resources/sql/clean.sql | 2 + .../src/test/resources/sql/create_tables.sql | 19 + .../src/test/resources/sql/menu.sql | 55 + yunxi-module-infra/pom.xml | 25 + .../yunxi-module-infra-api/pom.xml | 33 + .../scm/module/infra/api/file/FileApi.java | 41 + .../infra/api/logger/ApiAccessLogApi.java | 21 + .../infra/api/logger/ApiErrorLogApi.java | 21 + .../logger/dto/ApiAccessLogCreateReqDTO.java | 85 + .../logger/dto/ApiErrorLogCreateReqDTO.java | 107 + .../scm/module/infra/api/package-info.java | 4 + .../module/infra/enums/DictTypeConstants.java | 20 + .../infra/enums/ErrorCodeConstants.java | 57 + .../yunxi-module-infra-biz/pom.xml | 122 + .../module/infra/api/file/FileApiImpl.java | 26 + .../infra/api/logger/ApiAccessLogApiImpl.java | 27 + .../infra/api/logger/ApiErrorLogApiImpl.java | 27 + .../scm/module/infra/api/package-info.java | 1 + .../admin/codegen/CodegenController.java | 141 + .../codegen/vo/CodegenCreateListReqVO.java | 21 + .../admin/codegen/vo/CodegenDetailRespVO.java | 20 + .../codegen/vo/CodegenPreviewRespVO.java | 16 + .../admin/codegen/vo/CodegenUpdateReqVO.java | 59 + .../vo/column/CodegenColumnBaseVO.java | 85 + .../vo/column/CodegenColumnRespVO.java | 22 + .../codegen/vo/table/CodegenTableBaseVO.java | 61 + .../vo/table/CodegenTablePageReqVO.java | 33 + .../codegen/vo/table/CodegenTableRespVO.java | 28 + .../codegen/vo/table/DatabaseTableRespVO.java | 16 + .../admin/config/ConfigController.java | 105 + .../admin/config/vo/ConfigBaseVO.java | 40 + .../admin/config/vo/ConfigCreateReqVO.java | 20 + .../admin/config/vo/ConfigExcelVO.java | 46 + .../admin/config/vo/ConfigExportReqVO.java | 28 + .../admin/config/vo/ConfigPageReqVO.java | 33 + .../admin/config/vo/ConfigRespVO.java | 30 + .../admin/config/vo/ConfigUpdateReqVO.java | 20 + .../admin/db/DataSourceConfigController.java | 73 + .../admin/db/DatabaseDocController.java | 154 + .../admin/db/vo/DataSourceConfigBaseVO.java | 25 + .../db/vo/DataSourceConfigCreateReqVO.java | 17 + .../admin/db/vo/DataSourceConfigRespVO.java | 20 + .../db/vo/DataSourceConfigUpdateReqVO.java | 21 + .../admin/file/FileConfigController.http | 45 + .../admin/file/FileConfigController.java | 89 + .../controller/admin/file/FileController.java | 92 + .../file/vo/config/FileConfigBaseVO.java | 22 + .../file/vo/config/FileConfigCreateReqVO.java | 25 + .../file/vo/config/FileConfigPageReqVO.java | 30 + .../file/vo/config/FileConfigRespVO.java | 35 + .../file/vo/config/FileConfigUpdateReqVO.java | 25 + .../admin/file/vo/file/FilePageReqVO.java | 30 + .../admin/file/vo/file/FileRespVO.java | 36 + .../admin/file/vo/file/FileUploadReqVO.java | 20 + .../controller/admin/job/JobController.java | 145 + .../admin/job/JobLogController.java | 81 + .../admin/job/vo/job/JobBaseVO.java | 37 + .../admin/job/vo/job/JobCreateReqVO.java | 20 + .../admin/job/vo/job/JobExcelVO.java | 56 + .../admin/job/vo/job/JobExportReqVO.java | 19 + .../admin/job/vo/job/JobPageReqVO.java | 24 + .../admin/job/vo/job/JobRespVO.java | 30 + .../admin/job/vo/job/JobUpdateReqVO.java | 20 + .../admin/job/vo/log/JobLogBaseVO.java | 53 + .../admin/job/vo/log/JobLogExcelVO.java | 53 + .../admin/job/vo/log/JobLogExportReqVO.java | 32 + .../admin/job/vo/log/JobLogPageReqVO.java | 37 + .../admin/job/vo/log/JobLogRespVO.java | 22 + .../admin/logger/ApiAccessLogController.java | 60 + .../admin/logger/ApiErrorLogController.java | 74 + .../vo/apiaccesslog/ApiAccessLogBaseVO.java | 75 + .../vo/apiaccesslog/ApiAccessLogExcelVO.java | 65 + .../apiaccesslog/ApiAccessLogExportReqVO.java | 37 + .../apiaccesslog/ApiAccessLogPageReqVO.java | 42 + .../vo/apiaccesslog/ApiAccessLogRespVO.java | 22 + .../vo/apierrorlog/ApiErrorLogBaseVO.java | 95 + .../vo/apierrorlog/ApiErrorLogExcelVO.java | 90 + .../apierrorlog/ApiErrorLogExportReqVO.java | 34 + .../vo/apierrorlog/ApiErrorLogPageReqVO.java | 39 + .../vo/apierrorlog/ApiErrorLogRespVO.java | 28 + .../admin/redis/RedisController.http | 4 + .../admin/redis/RedisController.java | 43 + .../admin/redis/vo/RedisMonitorRespVO.java | 43 + .../admin/test/TestDemoController.http | 19 + .../admin/test/TestDemoController.java | 97 + .../admin/test/vo/TestDemoBaseVO.java | 32 + .../admin/test/vo/TestDemoCreateReqVO.java | 11 + .../admin/test/vo/TestDemoExcelVO.java | 38 + .../admin/test/vo/TestDemoExportReqVO.java | 33 + .../admin/test/vo/TestDemoPageReqVO.java | 36 + .../admin/test/vo/TestDemoRespVO.java | 19 + .../admin/test/vo/TestDemoUpdateReqVO.java | 16 + .../infra/controller/app/package-info.java | 4 + .../module/infra/controller/package-info.java | 6 + .../infra/convert/codegen/CodegenConvert.java | 93 + .../infra/convert/config/ConfigConvert.java | 33 + .../convert/db/DataSourceConfigConvert.java | 30 + .../infra/convert/file/FileConfigConvert.java | 36 + .../infra/convert/file/FileConvert.java | 18 + .../module/infra/convert/job/JobConvert.java | 36 + .../infra/convert/job/JobLogConvert.java | 30 + .../convert/logger/ApiAccessLogConvert.java | 33 + .../convert/logger/ApiErrorLogConvert.java | 31 + .../module/infra/convert/package-info.java | 6 + .../infra/convert/redis/RedisConvert.java | 29 + .../infra/convert/test/TestDemoConvert.java | 36 + ...g Boot 对象转换 MapStruct 入门》.md | 1 + .../dataobject/codegen/CodegenColumnDO.java | 142 + .../dataobject/codegen/CodegenTableDO.java | 119 + .../infra/dal/dataobject/config/ConfigDO.java | 64 + .../dal/dataobject/db/DataSourceConfigDO.java | 48 + .../dal/dataobject/file/FileConfigDO.java | 58 + .../dal/dataobject/file/FileContentDO.java | 47 + .../infra/dal/dataobject/file/FileDO.java | 55 + .../infra/dal/dataobject/job/JobDO.java | 74 + .../infra/dal/dataobject/job/JobLogDO.java | 82 + .../dal/dataobject/logger/ApiAccessLogDO.java | 109 + .../dal/dataobject/logger/ApiErrorLogDO.java | 156 + .../infra/dal/dataobject/test/TestDemoDO.java | 50 + .../mysql/codegen/CodegenColumnMapper.java | 24 + .../dal/mysql/codegen/CodegenTableMapper.java | 32 + .../infra/dal/mysql/config/ConfigMapper.java | 36 + .../dal/mysql/db/DataSourceConfigMapper.java | 14 + .../dal/mysql/file/FileConfigMapper.java | 27 + .../dal/mysql/file/FileContentDAOImpl.java | 46 + .../dal/mysql/file/FileContentMapper.java | 9 + .../infra/dal/mysql/file/FileMapper.java | 26 + .../infra/dal/mysql/job/JobLogMapper.java | 43 + .../module/infra/dal/mysql/job/JobMapper.java | 41 + .../dal/mysql/logger/ApiAccessLogMapper.java | 47 + .../dal/mysql/logger/ApiErrorLogMapper.java | 45 + .../infra/dal/mysql/test/TestDemoMapper.java | 45 + .../codegen/CodegenColumnHtmlTypeEnum.java | 29 + .../CodegenColumnListConditionEnum.java | 27 + .../enums/codegen/CodegenFrontTypeEnum.java | 26 + .../infra/enums/codegen/CodegenSceneEnum.java | 41 + .../codegen/CodegenTemplateTypeEnum.java | 24 + .../infra/enums/config/ConfigTypeEnum.java | 21 + .../infra/enums/job/JobLogStatusEnum.java | 24 + .../module/infra/enums/job/JobStatusEnum.java | 42 + .../logger/ApiErrorLogProcessStatusEnum.java | 28 + .../scm/module/infra/enums/package-info.java | 4 + .../codegen/config/CodegenConfiguration.java | 9 + .../codegen/config/CodegenProperties.java | 37 + .../infra/framework/codegen/package-info.java | 4 + .../config/AdminServerConfiguration.java | 9 + .../infra/framework/monitor/package-info.java | 4 + ...pring Boot 监控工具 Admin 入门》.md | 1 + .../module/infra/framework/package-info.java | 6 + .../config/SecurityConfiguration.java | 49 + .../framework/security/core/package-info.java | 4 + .../web/config/InfraWebConfiguration.java | 24 + .../infra/framework/web/package-info.java | 4 + .../infra/mq/consumer/package-info.java | 4 + .../module/infra/mq/message/package-info.java | 4 + .../infra/mq/producer/package-info.java | 4 + .../yunxi/scm/module/infra/package-info.java | 9 + .../infra/service/codegen/CodegenService.java | 94 + .../service/codegen/CodegenServiceImpl.java | 253 + .../service/codegen/inner/CodegenBuilder.java | 213 + .../service/codegen/inner/CodegenEngine.java | 301 + .../infra/service/config/ConfigService.java | 75 + .../service/config/ConfigServiceImpl.java | 123 + .../service/db/DataSourceConfigService.java | 54 + .../db/DataSourceConfigServiceImpl.java | 107 + .../service/db/DatabaseTableService.java | 33 + .../service/db/DatabaseTableServiceImpl.java | 69 + .../infra/service/file/FileConfigService.java | 87 + .../service/file/FileConfigServiceImpl.java | 201 + .../infra/service/file/FileService.java | 48 + .../infra/service/file/FileServiceImpl.java | 98 + .../infra/service/job/JobLogService.java | 51 + .../infra/service/job/JobLogServiceImpl.java | 73 + .../module/infra/service/job/JobService.java | 91 + .../infra/service/job/JobServiceImpl.java | 173 + .../service/logger/ApiAccessLogService.java | 41 + .../logger/ApiAccessLogServiceImpl.java | 44 + .../service/logger/ApiErrorLogService.java | 50 + .../logger/ApiErrorLogServiceImpl.java | 65 + .../infra/service/test/TestDemoService.java | 75 + .../service/test/TestDemoServiceImpl.java | 91 + .../infra/websocket/SemaphoreUtils.java | 45 + .../infra/websocket/WebSocketConfig.java | 16 + .../infra/websocket/WebSocketServer.java | 86 + .../infra/websocket/WebSocketUsers.java | 178 + .../codegen/java/controller/controller.vm | 111 + .../codegen/java/controller/vo/_column.vm | 13 + .../codegen/java/controller/vo/baseVO.vm | 39 + .../codegen/java/controller/vo/createReqVO.vm | 30 + .../codegen/java/controller/vo/excelVO.vm | 45 + .../codegen/java/controller/vo/exportReqVO.vm | 39 + .../codegen/java/controller/vo/pageReqVO.vm | 41 + .../codegen/java/controller/vo/respVO.vm | 25 + .../codegen/java/controller/vo/updateReqVO.vm | 30 + .../resources/codegen/java/convert/convert.vm | 34 + .../src/main/resources/codegen/java/dal/do.vm | 47 + .../main/resources/codegen/java/dal/mapper.vm | 66 + .../resources/codegen/java/dal/mapper.xml.vm | 12 + .../resources/codegen/java/enums/errorcode.vm | 3 + .../resources/codegen/java/service/service.vm | 70 + .../codegen/java/service/serviceImpl.vm | 82 + .../codegen/java/test/serviceTest.vm | 165 + .../src/main/resources/codegen/sql/h2.vm | 35 + .../src/main/resources/codegen/sql/sql.vm | 28 + .../main/resources/codegen/vue/api/api.js.vm | 55 + .../resources/codegen/vue/views/index.vue.vm | 369 + .../main/resources/codegen/vue3/api/api.ts.vm | 46 + .../resources/codegen/vue3/views/form.vue.vm | 234 + .../resources/codegen/vue3/views/index.vue.vm | 287 + .../codegen/vue3_schema/api/api.ts.vm | 46 + .../codegen/vue3_schema/views/data.ts.vm | 129 + .../codegen/vue3_schema/views/form.vue.vm | 65 + .../codegen/vue3_schema/views/index.vue.vm | 85 + .../resources/codegen/vue3_vben/api/api.ts.vm | 32 + .../codegen/vue3_vben/views/data.ts.vm | 208 + .../codegen/vue3_vben/views/form.vue.vm | 57 + .../codegen/vue3_vben/views/index.vue.vm | 92 + .../src/main/resources/file/erweima.jpg | Bin 0 -> 18385 bytes .../src/main/resources/mapper/null/.gitkeep | 0 .../resources/mapper/test/TestDemoMapper.xml | 16 + .../mysql/codegen/SchemaColumnMapperTest.java | 23 + .../module/infra/dal/mysql/package-info.java | 4 + .../scm/module/infra/dal/package-info.java | 4 + .../service/codegen/CodegenEngineTest.java | 34 + .../service/codegen/CodegenSQLParserTest.java | 29 + .../codegen/CodegenServiceImplTest.java | 20 + .../module/infra/service/package-info.java | 4 + .../test/BaseDbAndRedisIntegrationTest.java | 38 + .../infra/test/BaseRedisIntegrationTest.java | 23 + .../service/DefaultDatabaseQueryTest.java | 37 + .../service/config/ConfigServiceImplTest.java | 253 + .../db/DataSourceConfigServiceImplTest.java | 204 + .../db/DatabaseTableServiceImplTest.java | 89 + .../file/FileConfigServiceImplTest.java | 273 + .../service/file/FileServiceImplTest.java | 142 + .../service/job/JobLogServiceImplTest.java | 203 + .../infra/service/job/JobServiceImplTest.java | 290 + .../logger/ApiAccessLogServiceImplTest.java | 133 + .../logger/ApiErrorLogServiceImplTest.java | 184 + .../service/test/TestDemoServiceImplTest.java | 186 + .../test/resources/application-unit-test.yaml | 52 + .../src/test/resources/logback.xml | 4 + .../src/test/resources/sql/clean.sql | 10 + .../src/test/resources/sql/create_tables.sql | 172 + yunxi-module-mall/pom.xml | 29 + .../yunxi-module-product-api/pom.xml | 34 + .../api/comment/ProductCommentApi.java | 20 + .../dto/ProductCommentCreateReqDTO.java | 59 + .../scm/module/product/api/package-info.java | 4 + .../api/property/ProductPropertyValueApi.java | 23 + .../ProductPropertyValueDetailRespDTO.java | 33 + .../module/product/api/sku/ProductSkuApi.java | 48 + .../api/sku/dto/ProductSkuRespDTO.java | 63 + .../sku/dto/ProductSkuUpdateStockReqDTO.java | 47 + .../module/product/api/spu/ProductSpuApi.java | 24 + .../api/spu/dto/ProductSpuRespDTO.java | 130 + .../product/enums/DictTypeConstants.java | 13 + .../product/enums/ErrorCodeConstants.java | 55 + .../product/enums/ProductConstants.java | 15 + .../ProductCommentAuditStatusEnum.java | 38 + .../comment/ProductCommentScoresEnum.java | 41 + .../enums/group/ProductGroupStyleEnum.java | 38 + .../enums/spu/ProductSpuStatusEnum.java | 48 + .../yunxi-module-product-biz/pom.xml | 77 + .../api/comment/ProductCommentApiImpl.java | 27 + .../scm/module/product/api/package-info.java | 1 + .../property/ProductPropertyValueApiImpl.java | 31 + .../product/api/sku/ProductSkuApiImpl.java | 59 + .../product/api/spu/ProductSpuApiImpl.java | 38 + .../admin/brand/ProductBrandController.java | 92 + .../admin/brand/vo/ProductBrandBaseVO.java | 34 + .../brand/vo/ProductBrandCreateReqVO.java | 14 + .../admin/brand/vo/ProductBrandListReqVO.java | 13 + .../admin/brand/vo/ProductBrandPageReqVO.java | 30 + .../admin/brand/vo/ProductBrandRespVO.java | 22 + .../brand/vo/ProductBrandSimpleRespVO.java | 20 + .../brand/vo/ProductBrandUpdateReqVO.java | 20 + .../category/ProductCategoryController.java | 76 + .../category/vo/ProductCategoryBaseVO.java | 38 + .../vo/ProductCategoryCreateReqVO.java | 19 + .../category/vo/ProductCategoryListReqVO.java | 19 + .../category/vo/ProductCategoryRespVO.java | 22 + .../vo/ProductCategoryUpdateReqVO.java | 24 + .../comment/ProductCommentController.http | 0 .../comment/ProductCommentController.java | 62 + .../comment/vo/ProductCommentBaseVO.java | 49 + .../comment/vo/ProductCommentCreateReqVO.java | 14 + .../comment/vo/ProductCommentPageReqVO.java | 45 + .../comment/vo/ProductCommentReplyReqVO.java | 23 + .../comment/vo/ProductCommentRespVO.java | 55 + .../vo/ProductCommentUpdateVisibleReqVO.java | 22 + .../property/ProductPropertyController.java | 100 + .../ProductPropertyValueController.java | 75 + .../ProductPropertyAndValueRespVO.java | 35 + .../vo/property/ProductPropertyBaseVO.java | 22 + .../property/ProductPropertyCreateReqVO.java | 15 + .../vo/property/ProductPropertyListReqVO.java | 17 + .../vo/property/ProductPropertyPageReqVO.java | 30 + .../vo/property/ProductPropertyRespVO.java | 22 + .../property/ProductPropertyUpdateReqVO.java | 20 + .../vo/value/ProductPropertyValueBaseVO.java | 27 + .../ProductPropertyValueCreateReqVO.java | 14 + .../ProductPropertyValueDetailRespVO.java | 22 + .../value/ProductPropertyValuePageReqVO.java | 24 + .../vo/value/ProductPropertyValueRespVO.java | 22 + .../ProductPropertyValueUpdateReqVO.java | 20 + .../admin/sku/ProductSkuController.java | 57 + .../admin/sku/vo/ProductSkuBaseVO.java | 82 + .../sku/vo/ProductSkuCreateOrUpdateReqVO.java | 16 + .../admin/sku/vo/ProductSkuOptionRespVO.java | 30 + .../admin/sku/vo/ProductSkuRespVO.java | 18 + .../admin/spu/ProductSpuController.http | 4 + .../admin/spu/ProductSpuController.java | 134 + .../admin/spu/vo/ProductSpuBaseVO.java | 114 + .../admin/spu/vo/ProductSpuCreateReqVO.java | 24 + .../admin/spu/vo/ProductSpuDetailRespVO.java | 34 + .../admin/spu/vo/ProductSpuExcelVO.java | 112 + .../admin/spu/vo/ProductSpuExportReqVO.java | 32 + .../admin/spu/vo/ProductSpuPageReqVO.java | 58 + .../admin/spu/vo/ProductSpuRespVO.java | 40 + .../admin/spu/vo/ProductSpuSimpleRespVO.java | 41 + .../admin/spu/vo/ProductSpuUpdateReqVO.java | 41 + .../spu/vo/ProductSpuUpdateStatusReqVO.java | 23 + .../app/category/AppCategoryController.java | 38 + .../app/category/vo/AppCategoryRespVO.java | 28 + .../app/comment/AppCommentController.http | 0 .../comment/AppProductCommentController.java | 82 + .../app/comment/vo/AppCommentPageReqVO.java | 38 + .../vo/AppCommentStatisticsRespVO.java | 24 + .../comment/vo/AppProductCommentRespVO.java | 98 + .../app/favorite/AppFavoriteController.java | 91 + .../favorite/vo/AppFavoriteBatchReqVO.java | 19 + .../app/favorite/vo/AppFavoritePageReqVO.java | 10 + .../app/favorite/vo/AppFavoriteReqVO.java | 18 + .../app/favorite/vo/AppFavoriteRespVO.java | 28 + .../controller/app/property/package-info.java | 4 + .../property/vo/property/package-info.java | 4 + .../AppProductPropertyValueDetailRespVO.java | 22 + .../app/spu/AppProductSpuController.http | 18 + .../app/spu/AppProductSpuController.java | 83 + .../app/spu/vo/AppProductSpuDetailRespVO.java | 109 + .../app/spu/vo/AppProductSpuPageReqVO.java | 52 + .../app/spu/vo/AppProductSpuPageRespVO.java | 57 + .../convert/brand/ProductBrandConvert.java | 36 + .../category/ProductCategoryConvert.java | 32 + .../comment/ProductCommentConvert.java | 109 + .../favorite/ProductFavoriteConvert.java | 37 + .../property/ProductPropertyConvert.java | 57 + .../ProductPropertyValueConvert.java | 55 + .../convert/sku/ProductSkuConvert.java | 80 + .../convert/spu/ProductSpuConvert.java | 124 + .../dal/dataobject/brand/ProductBrandDO.java | 53 + .../category/ProductCategoryDO.java | 68 + .../dataobject/comment/ProductCommentDO.java | 143 + .../favorite/ProductFavoriteDO.java | 43 + .../property/ProductPropertyDO.java | 51 + .../property/ProductPropertyValueDO.java | 55 + .../dal/dataobject/sku/ProductSkuDO.java | 156 + .../dal/dataobject/spu/ProductSpuDO.java | 212 + .../dal/mysql/brand/ProductBrandMapper.java | 37 + .../mysql/category/ProductCategoryMapper.java | 35 + .../mysql/comment/ProductCommentMapper.java | 79 + .../mysql/favorite/ProductFavoriteMapper.java | 24 + .../mysql/property/ProductPropertyMapper.java | 32 + .../property/ProductPropertyValueMapper.java | 43 + .../dal/mysql/sku/ProductSkuMapper.java | 63 + .../dal/mysql/spu/ProductSpuMapper.java | 169 + .../product/framework/package-info.java | 6 + .../web/config/ProductWebConfiguration.java | 24 + .../product/framework/web/package-info.java | 4 + .../scm/module/product/package-info.java | 8 + .../service/brand/ProductBrandService.java | 86 + .../brand/ProductBrandServiceImpl.java | 122 + .../category/ProductCategoryService.java | 78 + .../category/ProductCategoryServiceImpl.java | 149 + .../comment/ProductCommentService.java | 94 + .../comment/ProductCommentServiceImpl.java | 162 + .../favorite/ProductFavoriteService.java | 48 + .../favorite/ProductFavoriteServiceImpl.java | 63 + .../property/ProductPropertyService.java | 73 + .../property/ProductPropertyServiceImpl.java | 119 + .../property/ProductPropertyValueService.java | 90 + .../ProductPropertyValueServiceImpl.java | 134 + .../bo/ProductPropertyValueDetailRespBO.java | 33 + .../service/sku/ProductSkuService.java | 127 + .../service/sku/ProductSkuServiceImpl.java | 274 + .../service/spu/ProductSpuService.java | 139 + .../service/spu/ProductSpuServiceImpl.java | 252 + .../brand/ProductBrandServiceImplTest.java | 133 + .../ProductCategoryServiceImplTest.java | 161 + .../ProductCommentServiceImplTest.java | 196 + .../service/sku/ProductSkuServiceTest.java | 205 + .../spu/ProductSpuServiceImplTest.java | 503 + .../test/resources/application-unit-test.yaml | 50 + .../src/test/resources/logback.xml | 4 + .../src/test/resources/sql/clean.sql | 7 + .../src/test/resources/sql/create_tables.sql | 157 + .../yunxi-module-promotion-api/pom.xml | 40 + .../api/combination/CombinationApi.java | 49 + .../dto/CombinationRecordReqDTO.java | 78 + .../promotion/api/coupon/CouponApi.java | 31 + .../api/coupon/dto/CouponRespDTO.java | 109 + .../api/coupon/dto/CouponUseReqDTO.java | 33 + .../api/coupon/dto/CouponValidReqDTO.java | 27 + .../api/discount/DiscountActivityApi.java | 23 + .../discount/dto/DiscountProductRespDTO.java | 48 + .../module/promotion/api/price/PriceApi.java | 21 + .../api/price/dto/CouponMeetRespDTO.java | 35 + .../api/price/dto/PriceCalculateReqDTO.java | 62 + .../api/price/dto/PriceCalculateRespDTO.java | 252 + .../api/reward/RewardActivityApi.java | 24 + .../dto/RewardActivityMatchRespDTO.java | 77 + .../promotion/enums/ErrorCodeConstants.java | 69 + .../CombinationRecordStatusEnum.java | 39 + .../common/PromotionActivityStatusEnum.java | 39 + .../common/PromotionConditionTypeEnum.java | 37 + .../common/PromotionDiscountTypeEnum.java | 38 + .../common/PromotionProductScopeEnum.java | 38 + .../enums/common/PromotionTypeEnum.java | 45 + .../enums/coupon/CouponStatusEnum.java | 39 + .../enums/coupon/CouponTakeTypeEnum.java | 37 + .../CouponTemplateValidityTypeEnum.java | 38 + .../enums/decorate/DecorateComponentEnum.java | 32 + .../enums/decorate/DecoratePageEnum.java | 36 + .../yunxi-module-promotion-biz/pom.xml | 77 + .../api/combination/CombinationApiImpl.java | 42 + .../promotion/api/coupon/CouponApiImpl.java | 37 + .../api/discount/DiscountActivityApiImpl.java | 28 + .../promotion/api/price/PriceApiImpl.java | 28 + .../api/reward/RewardActivityApiImpl.java | 27 + .../admin/banner/BannerController.java | 74 + .../admin/banner/vo/BannerBaseVO.java | 42 + .../admin/banner/vo/BannerCreateReqVO.java | 17 + .../admin/banner/vo/BannerPageReqVO.java | 37 + .../admin/banner/vo/BannerRespVO.java | 15 + .../admin/banner/vo/BannerUpdateReqVO.java | 23 + .../CombinationActivityController.java | 114 + .../activity/CombinationActivityBaseVO.java | 49 + .../CombinationActivityCreateReqVO.java | 22 + .../activity/CombinationActivityExcelVO.java | 65 + .../CombinationActivityExportReqVO.java | 61 + .../CombinationActivityPageReqVO.java | 65 + .../activity/CombinationActivityRespVO.java | 56 + .../CombinationActivityUpdateReqVO.java | 27 + .../vo/product/CombinationProductBaseVO.java | 27 + .../CombinationProductCreateReqVO.java | 14 + .../vo/product/CombinationProductExcelVO.java | 44 + .../CombinationProductExportReqVO.java | 43 + .../product/CombinationProductPageReqVO.java | 47 + .../vo/product/CombinationProductRespVO.java | 22 + .../CombinationProductUpdateReqVO.java | 14 + .../admin/coupon/CouponController.java | 75 + .../coupon/CouponTemplateController.java | 79 + .../admin/coupon/vo/coupon/CouponBaseVO.java | 103 + .../vo/coupon/CouponPageItemRespVO.java | 17 + .../coupon/vo/coupon/CouponPageReqVO.java | 33 + .../admin/coupon/vo/coupon/CouponRespVO.java | 22 + .../vo/template/CouponTemplateBaseVO.java | 154 + .../template/CouponTemplateCreateReqVO.java | 14 + .../vo/template/CouponTemplatePageReqVO.java | 33 + .../vo/template/CouponTemplateRespVO.java | 34 + .../template/CouponTemplateUpdateReqVO.java | 20 + .../CouponTemplateUpdateStatusReqVO.java | 23 + .../decorate/DecorateComponentController.java | 46 + .../decorate/vo/DecorateComponentRespVO.java | 33 + .../vo/DecorateComponentSaveReqVO.java | 44 + .../discount/DiscountActivityController.java | 87 + .../discount/vo/DiscountActivityBaseVO.java | 81 + .../vo/DiscountActivityCreateReqVO.java | 25 + .../vo/DiscountActivityDetailRespVO.java | 21 + .../vo/DiscountActivityPageReqVO.java | 30 + .../discount/vo/DiscountActivityRespVO.java | 27 + .../vo/DiscountActivityUpdateReqVO.java | 30 + .../reward/RewardActivityController.java | 83 + .../admin/reward/vo/RewardActivityBaseVO.java | 98 + .../reward/vo/RewardActivityCreateReqVO.java | 14 + .../reward/vo/RewardActivityPageReqVO.java | 21 + .../admin/reward/vo/RewardActivityRespVO.java | 25 + .../reward/vo/RewardActivityUpdateReqVO.java | 20 + .../seckill/SeckillActivityController.java | 103 + .../seckill/SeckillConfigController.java | 94 + .../vo/activity/SeckillActivityBaseVO.java | 58 + .../activity/SeckillActivityCreateReqVO.java | 21 + .../activity/SeckillActivityDetailRespVO.java | 21 + .../vo/activity/SeckillActivityPageReqVO.java | 36 + .../vo/activity/SeckillActivityRespVO.java | 51 + .../activity/SeckillActivityUpdateReqVO.java | 23 + .../vo/config/SeckillConfigBaseVO.java | 53 + .../vo/config/SeckillConfigCreateReqVO.java | 14 + .../vo/config/SeckillConfigPageReqVO.java | 21 + .../vo/config/SeckillConfigRespVO.java | 25 + .../vo/config/SeckillConfigSimpleRespVO.java | 24 + .../vo/config/SeckillConfigUpdateReqVO.java | 20 + .../SeckillConfigUpdateStatusReqVo.java | 23 + .../vo/product/SeckillProductBaseVO.java | 29 + .../vo/product/SeckillProductCreateReqVO.java | 13 + .../vo/product/SeckillProductRespVO.java | 22 + .../vo/product/SeckillProductUpdateReqVO.java | 14 + .../app/activity/AppActivityController.java | 66 + .../app/activity/vo/AppActivityRespVO.java | 28 + .../article/AppArticleCategoryController.java | 39 + .../app/article/AppArticleController.java | 90 + .../vo/article/AppArticlePageReqVO.java | 14 + .../article/vo/article/AppArticleRespVO.java | 49 + .../vo/category/AppArticleCategoryRespVO.java | 26 + .../app/banner/AppBannerController.java | 42 + .../app/banner/vo/AppBannerRespVO.java | 20 + .../bargain/AppBargainActivityController.java | 110 + .../app/bargain/AppBargainHelpController.java | 45 + .../bargain/AppBargainRecordController.java | 145 + .../AppBargainActivityDetailRespVO.java | 54 + .../vo/activity/AppBargainActivityRespVO.java | 42 + .../vo/help/AppBargainHelpCreateReqVO.java | 16 + .../bargain/vo/help/AppBargainHelpRespVO.java | 24 + .../record/AppBargainRecordCreateReqVO.java | 16 + .../record/AppBargainRecordDetailRespVO.java | 33 + .../vo/record/AppBargainRecordRespVO.java | 32 + .../record/AppBargainRecordSummaryRespVO.java | 33 + .../AppCombinationActivityController.java | 129 + .../AppCombinationRecordController.java | 109 + .../AppCombinationActivityDetailRespVO.java | 58 + .../AppCombinationActivityRespVO.java | 34 + .../AppCombinationRecordDetailRespVO.java | 22 + .../vo/record/AppCombinationRecordRespVO.java | 45 + .../AppCombinationRecordSummaryRespVO.java | 18 + .../app/coupon/AppCouponController.java | 96 + .../coupon/AppCouponTemplateController.java | 114 + .../coupon/vo/coupon/AppCouponMatchReqVO.java | 30 + .../vo/coupon/AppCouponMatchRespVO.java | 16 + .../coupon/vo/coupon/AppCouponPageReqVO.java | 18 + .../app/coupon/vo/coupon/AppCouponRespVO.java | 45 + .../coupon/vo/coupon/AppCouponTakeReqVO.java | 16 + .../template/AppCouponTemplatePageReqVO.java | 19 + .../vo/template/AppCouponTemplateRespVO.java | 69 + .../app/decorate/AppDecorateController.java | 39 + .../vo/AppDecorateComponentRespVO.java | 30 + .../seckill/AppSeckillActivityController.java | 136 + .../seckill/AppSeckillConfigController.java | 36 + .../AppSeckillActivityDetailRespVO.java | 63 + .../activity/AppSeckillActivityNowRespVO.java | 19 + .../activity/AppSeckillActivityPageReqVO.java | 18 + .../vo/activity/AppSeckillActivityRespVO.java | 37 + .../vo/config/AppSeckillConfigRespVO.java | 23 + .../convert/banner/BannerConvert.java | 28 + .../CombinationActivityConvert.java | 138 + .../convert/coupon/CouponConvert.java | 24 + .../convert/coupon/CouponTemplateConvert.java | 29 + .../decorate/DecorateComponentConvert.java | 42 + .../discount/DiscountActivityConvert.java | 90 + .../promotion/convert/price/PriceConvert.java | 49 + .../convert/reward/RewardActivityConvert.java | 29 + .../SeckillActivityConvert.java | 102 + .../seckillconfig/SeckillConfigConvert.java | 36 + .../dal/dataobject/banner/BannerDO.java | 53 + .../CombinationActivityDO.java | 90 + .../CombinationProductDO.java | 60 + .../CombinationRecordDO.java | 110 + .../dal/dataobject/coupon/CouponDO.java | 139 + .../dataobject/coupon/CouponTemplateDO.java | 162 + .../decorate/DecorateComponentDO.java | 50 + .../discount/DiscountActivityDO.java | 58 + .../discount/DiscountProductDO.java | 68 + .../dataobject/reward/RewardActivityDO.java | 134 + .../seckillactivity/SeckillActivityDO.java | 98 + .../seckillactivity/SeckillProductDO.java | 81 + .../seckillconfig/SeckillConfigDO.java | 58 + .../dal/mysql/banner/BannerMapper.java | 26 + .../CombinationActivityMapper.java | 39 + .../CombinationProductMapper.java | 52 + .../CombinationRecordMapper.java | 33 + .../dal/mysql/coupon/CouponMapper.java | 52 + .../mysql/coupon/CouponTemplateMapper.java | 30 + .../decorate/DecorateComponentMapper.java | 20 + .../discount/DiscountActivityMapper.java | 30 + .../mysql/discount/DiscountProductMapper.java | 26 + .../mysql/reward/RewardActivityMapper.java | 38 + .../SeckillActivityMapper.java | 35 + .../seckillactivity/SeckillProductMapper.java | 39 + .../seckillconfig/SeckillConfigMapper.java | 26 + .../promotion/framework/package-info.java | 6 + .../web/config/PromotionWebConfiguration.java | 24 + .../promotion/framework/web/package-info.java | 4 + .../scm/module/promotion/package-info.java | 8 + .../service/banner/BannerService.java | 63 + .../service/banner/BannerServiceImpl.java | 78 + .../CombinationActivityService.java | 123 + .../CombinationActivityServiceImpl.java | 286 + .../service/coupon/CouponService.java | 70 + .../service/coupon/CouponServiceImpl.java | 123 + .../service/coupon/CouponTemplateService.java | 72 + .../coupon/CouponTemplateServiceImpl.java | 94 + .../decorate/DecorateComponentService.java | 30 + .../DecorateComponentServiceImpl.java | 48 + .../discount/DiscountActivityService.java | 84 + .../discount/DiscountActivityServiceImpl.java | 178 + .../promotion/service/price/PriceService.java | 23 + .../service/price/PriceServiceImpl.java | 96 + .../service/reward/RewardActivityService.java | 74 + .../reward/RewardActivityServiceImpl.java | 166 + .../SeckillActivityService.java | 90 + .../SeckillActivityServiceImpl.java | 238 + .../seckillconfig/SeckillConfigService.java | 87 + .../SeckillConfigServiceImpl.java | 160 + .../module/promotion/util/PromotionUtils.java | 46 + .../mapper/coupon/CouponTemplateMapper.xml | 11 + .../CombinationActivityServiceImplTest.java | 252 + .../coupon/CouponTemplateServiceImplTest.java | 147 + .../DecorateComponentServiceImplTest.java | 46 + .../DiscountActivityServiceImplTest.java | 210 + .../service/price/PriceServiceTest.java | 104 + .../reward/RewardActivityServiceImplTest.java | 218 + .../SeckillActivityServiceImplTest.java | 171 + .../SeckillConfigServiceImplTest.java | 190 + .../test/resources/application-unit-test.yaml | 49 + .../src/test/resources/logback.xml | 4 + .../src/test/resources/sql/clean.sql | 8 + .../src/test/resources/sql/create_tables.sql | 183 + .../yunxi-module-trade-api/pom.xml | 26 + .../module/trade/api/order/TradeOrderApi.java | 19 + .../api/order/dto/TradeOrderRespDTO.java | 87 + .../scm/module/trade/api/package-info.java | 1 + .../trade/enums/ErrorCodeConstants.java | 78 + .../aftersale/AfterSaleOperateTypeEnum.java | 28 + .../aftersale/TradeAfterSaleStatusEnum.java | 82 + .../aftersale/TradeAfterSaleTypeEnum.java | 37 + .../aftersale/TradeAfterSaleWayEnum.java | 37 + .../DeliveryExpressChargeModeEnum.java | 43 + .../enums/delivery/DeliveryTypeEnum.java | 38 + .../enums/order/TradeOrderCancelTypeEnum.java | 39 + .../order/TradeOrderDeliveryStatusEnum.java | 28 + .../TradeOrderItemAfterSaleStatusEnum.java | 49 + .../order/TradeOrderRefundStatusEnum.java | 38 + .../enums/order/TradeOrderStatusEnum.java | 116 + .../trade/enums/order/TradeOrderTypeEnum.java | 40 + .../yunxi-module-trade-biz/pom.xml | 103 + .../trade/api/order/TradeOrderApiImpl.java | 35 + .../scm/module/trade/api/package-info.java | 1 + .../aftersale/TradeAfterSaleController.http | 4 + .../aftersale/TradeAfterSaleController.java | 113 + .../aftersale/vo/TradeAfterSaleBaseVO.java | 119 + .../vo/TradeAfterSaleDisagreeReqVO.java | 21 + .../aftersale/vo/TradeAfterSalePageReqVO.java | 49 + .../vo/TradeAfterSaleRefuseReqVO.java | 20 + .../vo/TradeAfterSaleRespPageItemVO.java | 35 + .../vo/log/TradeAfterSaleLogRespVO.java | 50 + .../admin/base/member/package-info.java | 4 + .../base/member/user/MemberUserRespVO.java | 19 + .../controller/admin/base/package-info.java | 4 + .../ProductPropertyValueDetailRespVO.java | 22 + .../delivery/DeliveryExpressController.java | 89 + .../DeliveryExpressTemplateController.java | 90 + .../DeliveryPickUpStoreController.java | 99 + .../vo/express/DeliveryExpressBaseVO.java | 34 + .../express/DeliveryExpressCreateReqVO.java | 12 + .../vo/express/DeliveryExpressExcelVO.java | 39 + .../express/DeliveryExpressExportReqVO.java | 28 + .../vo/express/DeliveryExpressPageReqVO.java | 31 + .../vo/express/DeliveryExpressRespVO.java | 22 + .../express/DeliveryExpressUpdateReqVO.java | 20 + .../DeliveryExpressTemplateBaseVO.java | 27 + .../DeliveryExpressTemplateCreateReqVO.java | 26 + .../DeliveryExpressTemplateDetailRespVO.java | 25 + .../DeliveryExpressTemplatePageReqVO.java | 30 + .../DeliveryExpressTemplateRespVO.java | 22 + .../DeliveryExpressTemplateSimpleRespVO.java | 21 + .../DeliveryExpressTemplateUpdateReqVO.java | 56 + .../ExpressTemplateChargeBaseVO.java | 35 + .../ExpressTemplateFreeBaseVO.java | 28 + .../vo/pickup/DeliveryPickUpStoreBaseVO.java | 68 + .../DeliveryPickUpStoreCreateReqVO.java | 14 + .../vo/pickup/DeliveryPickUpStoreExcelVO.java | 58 + .../DeliveryPickUpStoreExportReqVO.java | 34 + .../pickup/DeliveryPickUpStorePageReqVO.java | 40 + .../vo/pickup/DeliveryPickUpStoreRespVO.java | 22 + .../DeliveryPickUpStoreUpdateReqVO.java | 20 + .../admin/order/TradeOrderController.http | 9 + .../admin/order/TradeOrderController.java | 97 + .../admin/order/vo/TradeOrderBaseVO.java | 138 + .../order/vo/TradeOrderDeliveryReqVO.java | 41 + .../order/vo/TradeOrderDetailRespVO.java | 38 + .../admin/order/vo/TradeOrderItemBaseVO.java | 67 + .../order/vo/TradeOrderPageItemRespVO.java | 39 + .../admin/order/vo/TradeOrderPageReqVO.java | 58 + .../AppTradeAfterSaleController.java | 103 + .../vo/AppTradeAfterSaleCreateReqVO.java | 40 + .../vo/AppTradeAfterSaleDeliveryReqVO.java | 30 + .../vo/AppTradeAfterSalePageItemRespVO.java | 103 + .../controller/app/base/package-info.java | 4 + .../AppProductPropertyValueDetailRespVO.java | 22 + .../app/base/sku/AppProductSkuBaseRespVO.java | 34 + .../app/base/spu/AppProductSpuBaseRespVO.java | 25 + .../app/cart/TradeCartController.http | 42 + .../app/cart/TradeCartController.java | 90 + .../app/cart/vo/AppTradeCartAddReqVO.java | 24 + .../app/cart/vo/AppTradeCartDetailRespVO.java | 117 + .../AppTradeCartItemUpdateSelectedReqVO.java | 21 + .../app/cart/vo/AppTradeCartListRespVO.java | 45 + .../app/cart/vo/AppTradeCartResetReqVO.java | 26 + .../app/cart/vo/AppTradeCartUpdateReqVO.java | 22 + .../delivery/AppDeliverConfigController.java | 26 + .../AppDeliverPickUpStoreController.java | 72 + .../vo/config/AppDeliveryConfigRespVO.java | 17 + .../pickup/AppDeliveryPickUpStoreRespVO.java | 40 + .../app/order/AppTradeOrderController.http | 37 + .../app/order/AppTradeOrderController.java | 165 + .../order/vo/AppTradeOrderCreateReqVO.java | 13 + .../order/vo/AppTradeOrderCreateRespVO.java | 16 + .../order/vo/AppTradeOrderDetailRespVO.java | 128 + .../order/vo/AppTradeOrderPageItemRespVO.java | 53 + .../app/order/vo/AppTradeOrderPageReqVO.java | 20 + .../vo/AppTradeOrderSettlementReqVO.java | 86 + .../vo/AppTradeOrderSettlementRespVO.java | 117 + .../AppTradeOrderItemCommentCreateReqVO.java | 39 + .../vo/item/AppTradeOrderItemRespVO.java | 52 + .../module/trade/controller/package-info.java | 6 + .../aftersale/TradeAfterSaleConvert.java | 88 + .../trade/convert/cart/TradeCartConvert.java | 52 + .../delivery/DeliveryExpressConvert.java | 32 + .../DeliveryExpressTemplateConvert.java | 96 + .../delivery/DeliveryPickUpStoreConvert.java | 43 + .../convert/order/TradeOrderConvert.java | 350 + .../aftersale/TradeAfterSaleDO.java | 201 + .../aftersale/TradeAfterSaleLogDO.java | 64 + .../dal/dataobject/cart/TradeCartDO.java | 86 + .../delivery/DeliveryExpressDO.java | 60 + .../DeliveryExpressTemplateChargeDO.java | 67 + .../delivery/DeliveryExpressTemplateDO.java | 43 + .../DeliveryExpressTemplateFreeDO.java | 57 + .../delivery/DeliveryPickUpStoreDO.java | 84 + .../delivery/DeliveryPickUpStoreStaffDO.java | 49 + .../dal/dataobject/order/TradeOrderDO.java | 256 + .../order/TradeOrderDeliveryDO.java | 60 + .../dataobject/order/TradeOrderItemDO.java | 207 + .../aftersale/TradeAfterSaleLogMapper.java | 9 + .../mysql/aftersale/TradeAfterSaleMapper.java | 35 + .../trade/dal/mysql/cart/TradeCartMapper.java | 80 + .../mysql/delivery/DeliveryExpressMapper.java | 43 + .../DeliveryExpressTemplateChargeMapper.java | 33 + .../DeliveryExpressTemplateFreeMapper.java | 31 + .../DeliveryExpressTemplateMapper.java | 26 + .../delivery/DeliveryPickUpStoreMapper.java | 39 + .../DeliveryPickUpStoreStaffMapper.java | 14 + .../mysql/order/TradeOrderDeliveryMapper.java | 24 + .../dal/mysql/order/TradeOrderItemMapper.java | 33 + .../dal/mysql/order/TradeOrderMapper.java | 60 + .../module/trade/dal/mysql/package-info.java | 4 + .../config/AfterSaleLogConfiguration.java | 22 + .../core/annotations/AfterSaleLog.java | 36 + .../core/aop/AfterSaleLogAspect.java | 88 + .../dto/TradeAfterSaleLogCreateReqDTO.java | 46 + .../core/service/AfterSaleLogService.java | 23 + .../delivery/config/ExpressClientConfig.java | 32 + .../config/TradeExpressProperties.java | 80 + .../delivery/core/client/ExpressClient.java | 23 + .../core/client/ExpressClientFactory.java | 24 + .../client/convert/ExpressQueryConvert.java | 27 + .../client/dto/ExpressTrackQueryReqDTO.java | 31 + .../core/client/dto/ExpressTrackRespDTO.java | 24 + .../dto/kd100/Kd100ExpressQueryReqDTO.java | 48 + .../dto/kd100/Kd100ExpressQueryRespDTO.java | 59 + .../dto/kdniao/KdNiaoExpressQueryReqDTO.java | 32 + .../dto/kdniao/KdNiaoExpressQueryRespDTO.java | 75 + .../client/impl/ExpressClientFactoryImpl.java | 54 + .../client/impl/NoProvideExpressClient.java | 24 + .../client/impl/kd100/Kd100ExpressClient.java | 102 + .../impl/kdniao/KdNiaoExpressClient.java | 118 + .../core/enums/ExpressClientEnum.java | 28 + .../order/config/TradeOrderConfig.java | 14 + .../order/config/TradeOrderProperties.java | 33 + .../module/trade/framework/package-info.java | 6 + .../web/config/TradeWebConfiguration.java | 24 + .../trade/framework/web/package-info.java | 4 + .../yunxi/scm/module/trade/package-info.java | 8 + .../aftersale/TradeAfterSaleService.java | 94 + .../aftersale/TradeAfterSaleServiceImpl.java | 425 + .../trade/service/cart/TradeCartService.java | 90 + .../service/cart/TradeCartServiceImpl.java | 206 + .../delivery/DeliveryExpressService.java | 74 + .../delivery/DeliveryExpressServiceImpl.java | 102 + .../DeliveryExpressTemplateService.java | 95 + .../DeliveryExpressTemplateServiceImpl.java | 251 + .../delivery/DeliveryPickUpStoreService.java | 72 + .../DeliveryPickUpStoreServiceImpl.java | 84 + .../bo/DeliveryExpressTemplateRespBO.java | 80 + .../service/order/TradeOrderService.java | 190 + .../service/order/TradeOrderServiceImpl.java | 723 ++ .../service/price/TradePriceService.java | 23 + .../service/price/TradePriceServiceImpl.java | 99 + .../price/bo/TradePriceCalculateReqBO.java | 93 + .../price/bo/TradePriceCalculateRespBO.java | 277 + .../TradeCouponPriceCalculator.java | 110 + .../TradeDeliveryPriceCalculator.java | 223 + .../TradeDiscountActivityPriceCalculator.java | 83 + .../calculator/TradePriceCalculator.java | 25 + .../TradePriceCalculatorHelper.java | 266 + .../TradeRewardActivityPriceCalculator.java | 136 + .../client/impl/Kd100ExpressClientTest.java | 59 + .../client/impl/KdNiaoExpressClientTest.java | 59 + .../impl/NoProvideExpressClientTest.java | 53 + .../aftersale/TradeAfterSaleServiceTest.java | 152 + .../service/order/TradeOrderServiceTest.java | 318 + .../price/TradePriceServiceImplTest.java | 135 + .../TradeCouponPriceCalculatorTest.java | 144 + .../TradeDeliveryPriceCalculatorTest.java | 159 + ...deDiscountActivityPriceCalculatorTest.java | 118 + ...radeRewardActivityPriceCalculatorTest.java | 232 + .../test/resources/application-unit-test.yaml | 61 + .../src/test/resources/logback.xml | 4 + .../src/test/resources/sql/clean.sql | 4 + .../src/test/resources/sql/create_tables.sql | 128 + yunxi-module-member/pom.xml | 24 + .../yunxi-module-member-api/pom.xml | 26 + .../module/member/api/address/AddressApi.java | 29 + .../api/address/dto/AddressRespDTO.java | 42 + .../scm/module/member/api/package-info.java | 4 + .../module/member/api/user/MemberUserApi.java | 60 + .../api/user/dto/MemberUserRespDTO.java | 37 + .../member/enums/ErrorCodeConstants.java | 37 + .../yunxi-module-member-biz/pom.xml | 99 + .../member/api/address/AddressApiImpl.java | 33 + .../scm/module/member/api/package-info.java | 1 + .../member/api/user/MemberUserApiImpl.java | 47 + .../admin/address/package-info.java | 1 + .../point/MemberPointConfigController.java | 45 + .../point/MemberPointRecordController.java | 58 + .../vo/config/MemberPointConfigBaseVO.java | 29 + .../vo/config/MemberPointConfigRespVO.java | 13 + .../vo/config/MemberPointConfigSaveReqVO.java | 13 + .../vo/recrod/MemberPointRecordBaseVO.java | 64 + .../recrod/MemberPointRecordCreateReqVO.java | 12 + .../recrod/MemberPointRecordExportReqVO.java | 25 + .../vo/recrod/MemberPointRecordPageReqVO.java | 28 + .../vo/recrod/MemberPointRecordRespVO.java | 19 + .../recrod/MemberPointRecordUpdateReqVO.java | 18 + .../signin/MemberSignInConfigController.java | 74 + .../signin/MemberSignInRecordController.java | 57 + .../signin/vo/MemberSignInConfigBaseVO.java | 19 + .../vo/MemberSignInConfigCreateReqVO.java | 12 + .../vo/MemberSignInConfigPageReqVO.java | 16 + .../signin/vo/MemberSignInConfigRespVO.java | 19 + .../vo/MemberSignInConfigUpdateReqVO.java | 18 + .../signin/vo/MemberSignInRecordBaseVO.java | 22 + .../vo/MemberSignInRecordCreateReqVO.java | 14 + .../vo/MemberSignInRecordPageReqVO.java | 30 + .../signin/vo/MemberSignInRecordRespVO.java | 22 + .../vo/MemberSignInRecordUpdateReqVO.java | 20 + .../controller/admin/user/package-info.java | 1 + .../app/address/AppAddressController.http | 54 + .../app/address/AppAddressController.java | 75 + .../app/address/vo/AppAddressBaseVO.java | 35 + .../app/address/vo/AppAddressCreateReqVO.java | 11 + .../app/address/vo/AppAddressRespVO.java | 20 + .../app/address/vo/AppAddressUpdateReqVO.java | 16 + .../app/auth/AppAuthController.http | 51 + .../app/auth/AppAuthController.java | 121 + .../app/auth/vo/AppAuthCheckCodeReqVO.java | 41 + .../app/auth/vo/AppAuthLoginReqVO.java | 56 + .../app/auth/vo/AppAuthLoginRespVO.java | 30 + .../auth/vo/AppAuthResetPasswordReqVO.java | 39 + .../app/auth/vo/AppAuthSmsLoginReqVO.java | 58 + .../app/auth/vo/AppAuthSmsSendReqVO.java | 26 + .../app/auth/vo/AppAuthSocialLoginReqVO.java | 34 + .../auth/vo/AppAuthUpdatePasswordReqVO.java | 30 + .../vo/AppAuthWeixinMiniAppLoginReqVO.java | 26 + .../app/social/AppSocialUserController.java | 42 + .../app/social/vo/AppSocialUserBindReqVO.java | 34 + .../social/vo/AppSocialUserUnbindReqVO.java | 30 + .../app/user/AppUserController.http | 14 + .../app/user/AppUserController.java | 71 + .../app/user/vo/AppUserInfoRespVO.java | 22 + .../app/user/vo/AppUserUpdateMobileReqVO.java | 48 + .../member/controller/package-info.java | 6 + .../convert/address/AddressConvert.java | 42 + .../member/convert/auth/AuthConvert.java | 28 + .../module/member/convert/package-info.java | 6 + .../point/MemberPointConfigConvert.java | 26 + .../point/MemberPointRecordConvert.java | 29 + .../signin/MemberSignInConfigConvert.java | 33 + .../signin/MemberSignInRecordConvert.java | 29 + .../convert/social/SocialUserConvert.java | 19 + .../member/convert/user/UserConvert.java | 22 + ...g Boot 对象转换 MapStruct 入门》.md | 1 + .../dataobject/address/MemberAddressDO.java | 54 + .../dataobject/point/MemberPointConfigDO.java | 50 + .../dataobject/point/MemberPointRecordDO.java | 81 + .../signin/MemberSignInConfigDO.java | 38 + .../signin/MemberSignInRecordDO.java | 42 + .../dal/dataobject/user/MemberUserDO.java | 78 + .../dal/mysql/address/AddressMapper.java | 22 + .../mysql/point/MemberPointConfigMapper.java | 14 + .../mysql/point/MemberPointRecordMapper.java | 28 + .../signin/MemberSignInConfigMapper.java | 33 + .../signin/MemberSignInRecordMapper.java | 26 + .../dal/mysql/user/MemberUserMapper.java | 27 + .../scm/module/member/dal/package-info.java | 9 + .../module/member/dal/redis/package-info.java | 4 + .../module/member/framework/package-info.java | 6 + .../web/config/MemberWebConfiguration.java | 24 + .../member/framework/web/package-info.java | 4 + .../yunxi/scm/module/member/package-info.java | 8 + .../service/address/AddressService.java | 67 + .../service/address/AddressServiceImpl.java | 97 + .../service/auth/MemberAuthService.java | 93 + .../service/auth/MemberAuthServiceImpl.java | 302 + .../point/MemberPointConfigService.java | 29 + .../point/MemberPointConfigServiceImpl.java | 45 + .../point/MemberPointRecordService.java | 42 + .../point/MemberPointRecordServiceImpl.java | 57 + .../signin/MemberSignInConfigService.java | 56 + .../signin/MemberSignInConfigServiceImpl.java | 97 + .../signin/MemberSignInRecordService.java | 37 + .../signin/MemberSignInRecordServiceImpl.java | 51 + .../service/user/MemberUserService.java | 99 + .../service/user/MemberUserServiceImpl.java | 170 + .../address/AddressServiceImplTest.java | 98 + .../service/auth/MemberAuthServiceTest.java | 126 + .../user/MemberUserServiceImplTest.java | 137 + .../test/resources/application-unit-test.yaml | 49 + .../src/test/resources/logback.xml | 4 + .../src/test/resources/sql/clean.sql | 2 + .../src/test/resources/sql/create_tables.sql | 35 + yunxi-module-mp/pom.xml | 24 + yunxi-module-mp/yunxi-module-mp-api/pom.xml | 26 + .../module/mp/enums/ErrorCodeConstants.java | 64 + .../enums/message/MpAutoReplyMatchEnum.java | 28 + .../mp/enums/message/MpAutoReplyTypeEnum.java | 29 + .../enums/message/MpMessageSendFromEnum.java | 28 + .../com/yunxi/scm/module/mp/package-info.java | 8 + yunxi-module-mp/yunxi-module-mp-biz/pom.xml | 94 + .../admin/account/MpAccountController.java | 98 + .../admin/account/vo/MpAccountBaseVO.java | 43 + .../account/vo/MpAccountCreateReqVO.java | 14 + .../admin/account/vo/MpAccountPageReqVO.java | 24 + .../admin/account/vo/MpAccountRespVO.java | 25 + .../account/vo/MpAccountSimpleRespVO.java | 16 + .../account/vo/MpAccountUpdateReqVO.java | 20 + .../admin/material/MpMaterialController.http | 5 + .../admin/material/MpMaterialController.java | 74 + .../material/vo/MpMaterialPageReqVO.java | 27 + .../admin/material/vo/MpMaterialRespVO.java | 47 + .../vo/MpMaterialUploadNewsImageReqVO.java | 23 + .../vo/MpMaterialUploadPermanentReqVO.java | 53 + .../material/vo/MpMaterialUploadRespVO.java | 16 + .../vo/MpMaterialUploadTemporaryReqVO.java | 28 + .../admin/menu/MpMenuController.http | 50 + .../admin/menu/MpMenuController.java | 57 + .../admin/menu/vo/MpMenuBaseVO.java | 115 + .../admin/menu/vo/MpMenuRespVO.java | 28 + .../admin/menu/vo/MpMenuSaveReqVO.java | 34 + .../admin/message/MpAutoReplyController.http | 5 + .../admin/message/MpAutoReplyController.java | 74 + .../admin/message/MpMessageController.http | 33 + .../admin/message/MpMessageController.java | 47 + .../vo/autoreply/MpAutoReplyBaseVO.java | 109 + .../vo/autoreply/MpAutoReplyCreateReqVO.java | 20 + .../vo/autoreply/MpAutoReplyPageReqVO.java | 21 + .../vo/autoreply/MpAutoReplyRespVO.java | 27 + .../vo/autoreply/MpAutoReplyUpdateReqVO.java | 20 + .../vo/message/MpMessagePageReqVO.java | 35 + .../message/vo/message/MpMessageRespVO.java | 101 + .../vo/message/MpMessageSendReqVO.java | 58 + .../admin/news/MpDraftController.http | 54 + .../admin/news/MpDraftController.java | 136 + .../admin/news/MpFreePublishController.http | 13 + .../admin/news/MpFreePublishController.java | 119 + .../admin/news/vo/MpDraftPageReqVO.java | 21 + .../admin/news/vo/MpFreePublishPageReqVO.java | 21 + .../admin/open/MpOpenController.java | 116 + .../open/vo/MpOpenCheckSignatureReqVO.java | 29 + .../open/vo/MpOpenHandleMessageReqVO.java | 37 + .../statistics/MpStatisticsController.java | 68 + .../statistics/vo/MpStatisticsGetReqVO.java | 25 + .../MpStatisticsInterfaceSummaryRespVO.java | 27 + .../vo/MpStatisticsUpstreamMessageRespVO.java | 21 + .../vo/MpStatisticsUserCumulateRespVO.java | 18 + .../vo/MpStatisticsUserSummaryRespVO.java | 24 + .../controller/admin/tag/MpTagController.http | 39 + .../controller/admin/tag/MpTagController.java | 88 + .../controller/admin/tag/vo/MpTagBaseVO.java | 21 + .../admin/tag/vo/MpTagCreateReqVO.java | 20 + .../admin/tag/vo/MpTagPageReqVO.java | 24 + .../controller/admin/tag/vo/MpTagRespVO.java | 25 + .../admin/tag/vo/MpTagSimpleRespVO.java | 19 + .../admin/tag/vo/MpTagUpdateReqVO.java | 20 + .../admin/user/MpUserController.http | 18 + .../admin/user/MpUserController.java | 65 + .../admin/user/vo/MpUserPageReqVO.java | 27 + .../admin/user/vo/MpUserRespVO.java | 53 + .../admin/user/vo/MpUserUpdateReqVO.java | 26 + .../module/mp/controller/package-info.java | 6 + .../mp/convert/account/MpAccountConvert.java | 31 + .../convert/material/MpMaterialConvert.java | 47 + .../module/mp/convert/menu/MpMenuConvert.java | 48 + .../convert/message/MpAutoReplyConvert.java | 37 + .../mp/convert/message/MpMessageConvert.java | 172 + .../statistics/MpStatisticsConvert.java | 40 + .../module/mp/convert/tag/MpTagConvert.java | 44 + .../module/mp/convert/user/MpUserConvert.java | 55 + .../dal/dataobject/account/MpAccountDO.java | 62 + .../dal/dataobject/material/MpMaterialDO.java | 99 + .../mp/dal/dataobject/menu/MpMenuDO.java | 184 + .../dal/dataobject/message/MpAutoReplyDO.java | 164 + .../dal/dataobject/message/MpMessageDO.java | 255 + .../module/mp/dal/dataobject/tag/MpTagDO.java | 58 + .../mp/dal/dataobject/user/MpUserDO.java | 110 + .../mp/dal/mysql/account/MpAccountMapper.java | 31 + .../dal/mysql/material/MpMaterialMapper.java | 33 + .../mp/dal/mysql/menu/MpMenuMapper.java | 25 + .../dal/mysql/message/MpAutoReplyMapper.java | 70 + .../mp/dal/mysql/message/MpMessageMapper.java | 22 + .../module/mp/dal/mysql/tag/MpTagMapper.java | 26 + .../mp/dal/mysql/user/MpUserMapper.java | 35 + .../framework/mp/config/MpConfiguration.java | 54 + .../mp/core/DefaultMpServiceFactory.java | 177 + .../framework/mp/core/MpServiceFactory.java | 66 + .../mp/core/context/MpContextHolder.java | 53 + .../mp/framework/mp/core/util/MpUtils.java | 167 + .../scm/module/mp/framework/package-info.java | 6 + .../web/config/MpWebConfiguration.java | 24 + .../module/mp/framework/web/package-info.java | 4 + .../com/yunxi/scm/module/mp/package-info.java | 8 + .../mp/service/account/MpAccountService.java | 110 + .../service/account/MpAccountServiceImpl.java | 229 + .../mp/service/handler/menu/MenuHandler.java | 37 + .../message/MessageAutoReplyHandler.java | 41 + .../message/MessageReceiveHandler.java | 36 + .../handler/other/KfSessionHandler.java | 26 + .../mp/service/handler/other/NullHandler.java | 24 + .../mp/service/handler/other/ScanHandler.java | 25 + .../other/StoreCheckNotifyHandler.java | 24 + .../service/handler/other/package-info.java | 4 + .../service/handler/user/LocationHandler.java | 49 + .../handler/user/SubscribeHandler.java | 52 + .../handler/user/UnsubscribeHandler.java | 39 + .../service/material/MpMaterialService.java | 84 + .../material/MpMaterialServiceImpl.java | 224 + .../module/mp/service/menu/MpMenuService.java | 49 + .../mp/service/menu/MpMenuServiceImpl.java | 171 + .../service/message/MpAutoReplyService.java | 75 + .../message/MpAutoReplyServiceImpl.java | 202 + .../mp/service/message/MpMessageService.java | 58 + .../service/message/MpMessageServiceImpl.java | 148 + .../message/bo/MpMessageSendOutReqBO.java | 110 + .../statistics/MpStatisticsService.java | 54 + .../statistics/MpStatisticsServiceImpl.java | 77 + .../module/mp/service/tag/MpTagService.java | 65 + .../mp/service/tag/MpTagServiceImpl.java | 164 + .../module/mp/service/user/MpUserService.java | 102 + .../mp/service/user/MpUserServiceImpl.java | 215 + yunxi-module-pay/pom.xml | 25 + yunxi-module-pay/yunxi-module-pay-api/pom.xml | 33 + .../api/notify/dto/PayOrderNotifyReqDTO.java | 34 + .../api/notify/dto/PayRefundNotifyReqDTO.java | 35 + .../module/pay/api/notify/package-info.java | 4 + .../scm/module/pay/api/order/PayOrderApi.java | 32 + .../api/order/dto/PayOrderCreateReqDTO.java | 63 + .../pay/api/order/dto/PayOrderRespDTO.java | 46 + .../module/pay/api/refund/PayRefundApi.java | 31 + .../api/refund/dto/PayRefundCreateReqDTO.java | 58 + .../pay/api/refund/dto/PayRefundRespDTO.java | 43 + .../module/pay/enums/DictTypeConstants.java | 18 + .../module/pay/enums/ErrorCodeConstants.java | 56 + .../enums/member/WalletOperateTypeEnum.java | 21 + .../member/WalletTransactionGategoryEnum.java | 26 + .../pay/enums/notify/PayNotifyStatusEnum.java | 32 + .../pay/enums/notify/PayNotifyTypeEnum.java | 28 + .../pay/enums/order/PayOrderStatusEnum.java | 64 + .../pay/enums/refund/PayRefundStatusEnum.java | 32 + .../yunxi/scm/module/pay/package-info.java | 1 + yunxi-module-pay/yunxi-module-pay-biz/pom.xml | 79 + .../module/pay/api/order/PayOrderApiImpl.java | 34 + .../pay/api/refund/PayRefundApiImpl.java | 34 + .../admin/app/PayAppController.java | 108 + .../controller/admin/app/vo/PayAppBaseVO.java | 39 + .../admin/app/vo/PayAppCreateReqVO.java | 11 + .../admin/app/vo/PayAppPageItemRespVO.java | 26 + .../admin/app/vo/PayAppPageReqVO.java | 30 + .../controller/admin/app/vo/PayAppRespVO.java | 19 + .../admin/app/vo/PayAppUpdateReqVO.java | 16 + .../admin/app/vo/PayAppUpdateStatusReqVO.java | 20 + .../admin/channel/PayChannelController.java | 82 + .../admin/channel/vo/PayChannelBaseVO.java | 31 + .../channel/vo/PayChannelCreateReqVO.java | 25 + .../admin/channel/vo/PayChannelRespVO.java | 25 + .../channel/vo/PayChannelUpdateReqVO.java | 20 + .../admin/demo/PayDemoOrderController.java | 78 + .../demo/vo/PayDemoOrderCreateReqVO.java | 17 + .../admin/demo/vo/PayDemoOrderRespVO.java | 54 + .../admin/notify/PayNotifyController.java | 130 + .../admin/notify/vo/PayNotifyTaskBaseVO.java | 45 + .../notify/vo/PayNotifyTaskDetailRespVO.java | 54 + .../notify/vo/PayNotifyTaskPageReqVO.java | 39 + .../admin/notify/vo/PayNotifyTaskRespVO.java | 22 + .../admin/order/PayOrderController.java | 111 + .../admin/order/vo/PayOrderBaseVO.java | 89 + .../admin/order/vo/PayOrderDetailsRespVO.java | 45 + .../admin/order/vo/PayOrderExcelVO.java | 67 + .../admin/order/vo/PayOrderExportReqVO.java | 37 + .../order/vo/PayOrderPageItemRespVO.java | 25 + .../admin/order/vo/PayOrderPageReqVO.java | 42 + .../admin/order/vo/PayOrderRespVO.java | 22 + .../admin/order/vo/PayOrderSubmitReqVO.java | 33 + .../admin/order/vo/PayOrderSubmitRespVO.java | 18 + .../admin/refund/PayRefundController.java | 96 + .../admin/refund/vo/PayRefundBaseVO.java | 78 + .../refund/vo/PayRefundDetailsRespVO.java | 40 + .../admin/refund/vo/PayRefundExcelVO.java | 61 + .../admin/refund/vo/PayRefundExportReqVO.java | 40 + .../refund/vo/PayRefundPageItemRespVO.java | 25 + .../admin/refund/vo/PayRefundPageReqVO.java | 45 + .../app/channel/AppPayChannelController.java | 39 + .../app/order/AppPayOrderController.http | 63 + .../app/order/AppPayOrderController.java | 47 + .../app/order/vo/AppPayOrderSubmitReqVO.java | 15 + .../app/order/vo/AppPayOrderSubmitRespVO.java | 15 + .../controller/app/refund/package-info.java | 4 + .../module/pay/controller/package-info.java | 6 + .../module/pay/convert/app/PayAppConvert.java | 49 + .../convert/channel/PayChannelConvert.java | 28 + .../pay/convert/demo/PayDemoOrderConvert.java | 26 + .../convert/notify/PayNotifyTaskConvert.java | 43 + .../pay/convert/order/PayOrderConvert.java | 74 + .../scm/module/pay/convert/package-info.java | 6 + .../pay/convert/refund/PayRefundConvert.java | 56 + ...g Boot 对象转换 MapStruct 入门》.md | 1 + .../pay/dal/dataobject/app/PayAppDO.java | 57 + .../dal/dataobject/channel/PayChannelDO.java | 69 + .../dal/dataobject/demo/PayDemoOrderDO.java | 87 + .../dal/dataobject/member/MemberWalletDO.java | 49 + .../member/MemberWalletTransactionDO.java | 86 + .../dal/dataobject/notify/PayNotifyLogDO.java | 51 + .../dataobject/notify/PayNotifyTaskDO.java | 96 + .../pay/dal/dataobject/order/PayOrderDO.java | 138 + .../dataobject/order/PayOrderExtensionDO.java | 96 + .../dal/dataobject/refund/PayRefundDO.java | 160 + .../pay/dal/mysql/app/PayAppMapper.java | 22 + .../dal/mysql/channel/PayChannelMapper.java | 34 + .../dal/mysql/demo/PayDemoOrderMapper.java | 28 + .../dal/mysql/member/MemberWalletMapper.java | 15 + .../member/MemberWalletTransactionMapper.java | 15 + .../dal/mysql/notify/PayNotifyLogMapper.java | 16 + .../dal/mysql/notify/PayNotifyTaskMapper.java | 44 + .../mysql/order/PayOrderExtensionMapper.java | 33 + .../pay/dal/mysql/order/PayOrderMapper.java | 62 + .../pay/dal/mysql/refund/PayRefundMapper.java | 75 + .../pay/dal/redis/RedisKeyConstants.java | 27 + .../pay/dal/redis/no/PayNoRedisDAO.java | 31 + .../redis/notify/PayNotifyLockRedisDAO.java | 39 + .../job/config/PayJobConfiguration.java | 28 + .../pay/framework/job/core/package-info.java | 4 + .../module/pay/framework/package-info.java | 6 + .../pay/config/PayConfiguration.java | 9 + .../framework/pay/config/PayProperties.java | 52 + .../pay/framework/pay/core/package-info.java | 4 + .../web/config/PayWebConfiguration.java | 24 + .../pay/framework/web/package-info.java | 4 + .../module/pay/job/notify/PayNotifyJob.java | 31 + .../pay/job/order/PayOrderExpireJob.java | 31 + .../module/pay/job/order/PayOrderSyncJob.java | 43 + .../pay/job/refund/PayRefundSyncJob.java | 31 + .../yunxi/scm/module/pay/package-info.java | 10 + .../module/pay/service/app/PayAppService.java | 105 + .../pay/service/app/PayAppServiceImpl.java | 126 + .../service/channel/PayChannelService.java | 95 + .../channel/PayChannelServiceImpl.java | 225 + .../pay/service/demo/PayDemoOrderService.java | 66 + .../service/demo/PayDemoOrderServiceImpl.java | 265 + .../pay/service/notify/PayNotifyService.java | 57 + .../service/notify/PayNotifyServiceImpl.java | 294 + .../pay/service/order/PayOrderService.java | 124 + .../service/order/PayOrderServiceImpl.java | 549 + .../pay/service/refund/PayRefundService.java | 74 + .../service/refund/PayRefundServiceImpl.java | 330 + .../yunxi/scm/module/pay/util/MoneyUtils.java | 27 + .../scm/module/pay/util/PaySeqUtils.java | 54 + .../dataobject/merchant/PayChannelDOTest.java | 29 + .../PayChannelMapperIntegrationTest.java | 80 + .../order/PayOrderServiceIntegrationTest.java | 51 + .../scm/module/pay/service/package-info.java | 1 + .../test/BaseDbAndRedisIntegrationTest.java | 38 + .../pay/test/BaseDbIntegrationTest.java | 30 + .../pay/test/BaseRedisIntegrationTest.java | 23 + .../application-integration-test.yaml | 93 + .../pay/service/app/PayAppServiceTest.java | 258 + .../channel/PayChannelServiceTest.java | 365 + .../service/notify/PayNotifyServiceTest.java | 351 + .../service/order/PayOrderServiceTest.java | 1105 ++ .../service/refund/PayRefundServiceTest.java | 703 + .../test/resources/application-unit-test.yaml | 49 + .../src/test/resources/logback.xml | 4 + .../src/test/resources/sql/clean.sql | 7 + .../src/test/resources/sql/create_tables.sql | 146 + yunxi-module-report/pom.xml | 23 + .../yunxi-module-report-api/pom.xml | 26 + .../scm/module/report/api/package-info.java | 4 + .../report/enums/ErrorCodeConstants.java | 15 + .../yunxi-module-report-biz/pom.xml | 78 + .../admin/ajreport/package-info.java | 1 + .../admin/goview/GoViewDataController.java | 66 + .../admin/goview/GoViewProjectController.java | 77 + .../vo/data/GoViewDataGetBySqlReqVO.java | 16 + .../goview/vo/data/GoViewDataRespVO.java | 19 + .../vo/project/GoViewProjectCreateReqVO.java | 15 + .../vo/project/GoViewProjectRespVO.java | 36 + .../vo/project/GoViewProjectUpdateReqVO.java | 34 + .../report/controller/package-info.java | 6 + .../report/convert/ajreport/package-info.java | 4 + .../convert/goview/GoViewProjectConvert.java | 24 + .../dal/dataobject/ajreport/package-info.java | 4 + .../dataobject/goview/GoViewProjectDO.java | 57 + .../dal/mysql/ajreport/package-info.java | 4 + .../dal/mysql/goview/GoViewProjectMapper.java | 19 + .../config/JmReportConfiguration.java | 26 + .../service/JmReportTokenServiceImpl.java | 131 + .../jmreport/core/web/package-info.java | 4 + .../module/report/framework/package-info.java | 6 + .../config/SecurityConfiguration.java | 28 + .../framework/security/core/package-info.java | 4 + .../framework/ureport/package-info.java | 7 + .../yunxi/scm/module/report/package-info.java | 9 + .../report/service/ajreport/package-info.java | 4 + .../service/goview/GoViewDataService.java | 20 + .../service/goview/GoViewDataServiceImpl.java | 55 + .../service/goview/GoViewProjectService.java | 57 + .../goview/GoViewProjectServiceImpl.java | 74 + .../goview/GoViewDataServiceImplTest.java | 58 + .../goview/GoViewProjectServiceImplTest.java | 135 + .../test/resources/application-unit-test.yaml | 55 + .../src/test/resources/logback.xml | 4 + .../src/test/resources/sql/clean.sql | 1 + .../src/test/resources/sql/create_tables.sql | 14 + yunxi-module-system/pom.xml | 24 + .../yunxi-module-system-api/pom.xml | 34 + .../scm/module/system/api/dept/DeptApi.java | 54 + .../scm/module/system/api/dept/PostApi.java | 21 + .../system/api/dept/dto/DeptRespDTO.java | 37 + .../module/system/api/dict/DictDataApi.java | 42 + .../system/api/dict/dto/DictDataRespDTO.java | 33 + .../system/api/errorcode/ErrorCodeApi.java | 35 + .../dto/ErrorCodeAutoGenerateReqDTO.java | 34 + .../api/errorcode/dto/ErrorCodeRespDTO.java | 28 + .../module/system/api/logger/LoginLogApi.java | 21 + .../system/api/logger/OperateLogApi.java | 21 + .../api/logger/dto/LoginLogCreateReqDTO.java | 62 + .../logger/dto/OperateLogCreateReqDTO.java | 123 + .../module/system/api/mail/MailSendApi.java | 34 + .../mail/dto/MailSendSingleToUserReqDTO.java | 37 + .../api/notify/NotifyMessageSendApi.java | 35 + .../dto/NotifySendSingleToUserReqDTO.java | 33 + .../api/notify/dto/NotifyTemplateReqDTO.java | 34 + .../system/api/oauth2/OAuth2TokenApi.java | 49 + .../dto/OAuth2AccessTokenCheckRespDTO.java | 33 + .../dto/OAuth2AccessTokenCreateReqDTO.java | 40 + .../oauth2/dto/OAuth2AccessTokenRespDTO.java | 39 + .../scm/module/system/api/package-info.java | 4 + .../system/api/permission/PermissionApi.java | 49 + .../module/system/api/permission/RoleApi.java | 21 + .../dto/DeptDataPermissionRespDTO.java | 35 + .../api/sensitiveword/SensitiveWordApi.java | 30 + .../scm/module/system/api/sms/SmsCodeApi.java | 40 + .../scm/module/system/api/sms/SmsSendApi.java | 34 + .../api/sms/dto/code/SmsCodeSendReqDTO.java | 37 + .../api/sms/dto/code/SmsCodeUseReqDTO.java | 42 + .../sms/dto/code/SmsCodeValidateReqDTO.java | 37 + .../dto/send/SmsSendSingleToUserReqDTO.java | 36 + .../system/api/social/SocialUserApi.java | 53 + .../api/social/dto/SocialUserBindReqDTO.java | 52 + .../social/dto/SocialUserUnbindReqDTO.java | 44 + .../module/system/api/tenant/TenantApi.java | 26 + .../module/system/api/user/AdminUserApi.java | 69 + .../system/api/user/dto/AdminUserRespDTO.java | 44 + .../system/enums/DictTypeConstants.java | 29 + .../system/enums/ErrorCodeConstants.java | 166 + .../module/system/enums/common/SexEnum.java | 27 + .../module/system/enums/dept/DeptIdEnum.java | 20 + .../enums/errorcode/ErrorCodeTypeEnum.java | 39 + .../system/enums/logger/LoginLogTypeEnum.java | 27 + .../system/enums/logger/LoginResultEnum.java | 26 + .../system/enums/mail/MailSendStatusEnum.java | 24 + .../system/enums/notice/NoticeTypeEnum.java | 23 + .../enums/notify/NotifyTemplateTypeEnum.java | 26 + .../enums/oauth2/OAuth2ClientConstants.java | 12 + .../enums/oauth2/OAuth2GrantTypeEnum.java | 29 + .../enums/permission/DataScopeEnum.java | 30 + .../system/enums/permission/MenuTypeEnum.java | 25 + .../system/enums/permission/RoleCodeEnum.java | 31 + .../system/enums/permission/RoleTypeEnum.java | 21 + .../enums/sms/SmsReceiveStatusEnum.java | 23 + .../module/system/enums/sms/SmsSceneEnum.java | 50 + .../system/enums/sms/SmsSendStatusEnum.java | 24 + .../system/enums/sms/SmsTemplateTypeEnum.java | 25 + .../system/enums/social/SocialTypeEnum.java | 72 + .../yunxi-module-system-biz/pom.xml | 124 + .../module/system/api/dept/DeptApiImpl.java | 41 + .../module/system/api/dept/PostApiImpl.java | 25 + .../system/api/dict/DictDataApiImpl.java | 40 + .../api/errorcode/ErrorCodeApiImpl.java | 33 + .../system/api/logger/LoginLogApiImpl.java | 27 + .../system/api/logger/OperateLogApiImpl.java | 27 + .../system/api/mail/MailSendApiImpl.java | 34 + .../api/notify/NotifyMessageSendApiImpl.java | 43 + .../system/api/oauth2/OAuth2TokenApiImpl.java | 48 + .../api/permission/PermissionApiImpl.java | 42 + .../system/api/permission/RoleApiImpl.java | 24 + .../sensitiveword/SensitiveWordApiImpl.java | 29 + .../module/system/api/sms/SmsCodeApiImpl.java | 39 + .../module/system/api/sms/SmsSendApiImpl.java | 34 + .../system/api/social/SocialUserApiImpl.java | 44 + .../system/api/tenant/TenantApiImpl.java | 30 + .../system/api/user/AdminUserApiImpl.java | 53 + .../controller/admin/auth/AuthController.http | 33 + .../controller/admin/auth/AuthController.java | 156 + .../admin/auth/vo/AuthLoginReqVO.java | 69 + .../admin/auth/vo/AuthLoginRespVO.java | 30 + .../admin/auth/vo/AuthMenuRespVO.java | 53 + .../auth/vo/AuthPermissionInfoRespVO.java | 93 + .../admin/auth/vo/AuthSmsLoginReqVO.java | 28 + .../admin/auth/vo/AuthSmsSendReqVO.java | 32 + .../admin/auth/vo/AuthSocialLoginReqVO.java | 34 + .../admin/captcha/CaptchaController.java | 61 + .../controller/admin/dept/DeptController.java | 93 + .../controller/admin/dept/PostController.java | 99 + .../admin/dept/vo/dept/DeptBaseVO.java | 47 + .../admin/dept/vo/dept/DeptCreateReqVO.java | 12 + .../admin/dept/vo/dept/DeptListReqVO.java | 16 + .../admin/dept/vo/dept/DeptRespVO.java | 23 + .../admin/dept/vo/dept/DeptSimpleRespVO.java | 26 + .../admin/dept/vo/dept/DeptUpdateReqVO.java | 18 + .../admin/dept/vo/post/PostBaseVO.java | 36 + .../admin/dept/vo/post/PostCreateReqVO.java | 11 + .../admin/dept/vo/post/PostExcelVO.java | 31 + .../admin/dept/vo/post/PostExportReqVO.java | 19 + .../admin/dept/vo/post/PostListReqVO.java | 18 + .../admin/dept/vo/post/PostPageReqVO.java | 22 + .../admin/dept/vo/post/PostRespVO.java | 20 + .../admin/dept/vo/post/PostSimpleRespVO.java | 20 + .../admin/dept/vo/post/PostUpdateReqVO.java | 18 + .../admin/dict/DictDataController.http | 4 + .../admin/dict/DictDataController.java | 95 + .../admin/dict/DictTypeController.java | 95 + .../admin/dict/vo/data/DictDataBaseVO.java | 49 + .../dict/vo/data/DictDataCreateReqVO.java | 12 + .../admin/dict/vo/data/DictDataExcelVO.java | 34 + .../dict/vo/data/DictDataExportReqVO.java | 23 + .../admin/dict/vo/data/DictDataPageReqVO.java | 26 + .../admin/dict/vo/data/DictDataRespVO.java | 24 + .../dict/vo/data/DictDataSimpleRespVO.java | 25 + .../dict/vo/data/DictDataUpdateReqVO.java | 18 + .../admin/dict/vo/type/DictTypeBaseVO.java | 29 + .../dict/vo/type/DictTypeCreateReqVO.java | 20 + .../admin/dict/vo/type/DictTypeExcelVO.java | 28 + .../dict/vo/type/DictTypeExportReqVO.java | 28 + .../admin/dict/vo/type/DictTypePageReqVO.java | 33 + .../admin/dict/vo/type/DictTypeRespVO.java | 27 + .../dict/vo/type/DictTypeSimpleRespVO.java | 23 + .../dict/vo/type/DictTypeUpdateReqVO.java | 18 + .../admin/errorcode/ErrorCodeController.http | 13 + .../admin/errorcode/ErrorCodeController.java | 89 + .../admin/errorcode/vo/ErrorCodeBaseVO.java | 30 + .../errorcode/vo/ErrorCodeCreateReqVO.java | 14 + .../admin/errorcode/vo/ErrorCodeExcelVO.java | 40 + .../errorcode/vo/ErrorCodeExportReqVO.java | 31 + .../errorcode/vo/ErrorCodePageReqVO.java | 36 + .../admin/errorcode/vo/ErrorCodeRespVO.java | 25 + .../errorcode/vo/ErrorCodeUpdateReqVO.java | 20 + .../controller/admin/ip/AreaController.http | 5 + .../controller/admin/ip/AreaController.java | 72 + .../admin/ip/vo/AreaNodeRespVO.java | 23 + .../admin/ip/vo/AreaNodeSimpleRespVO.java | 19 + .../admin/logger/LoginLogController.java | 59 + .../admin/logger/OperateLogController.http | 4 + .../admin/logger/OperateLogController.java | 85 + .../logger/vo/loginlog/LoginLogBaseVO.java | 42 + .../logger/vo/loginlog/LoginLogExcelVO.java | 40 + .../vo/loginlog/LoginLogExportReqVO.java | 28 + .../logger/vo/loginlog/LoginLogPageReqVO.java | 31 + .../logger/vo/loginlog/LoginLogRespVO.java | 30 + .../vo/operatelog/OperateLogBaseVO.java | 85 + .../vo/operatelog/OperateLogExcelVO.java | 42 + .../vo/operatelog/OperateLogExportReqVO.java | 31 + .../vo/operatelog/OperateLogPageReqVO.java | 32 + .../vo/operatelog/OperateLogRespVO.java | 20 + .../admin/mail/MailAccountController.java | 78 + .../admin/mail/MailLogController.java | 49 + .../admin/mail/MailTemplateController.http | 14 + .../admin/mail/MailTemplateController.java | 89 + .../mail/vo/account/MailAccountBaseVO.java | 41 + .../vo/account/MailAccountCreateReqVO.java | 14 + .../mail/vo/account/MailAccountPageReqVO.java | 21 + .../mail/vo/account/MailAccountRespVO.java | 24 + .../vo/account/MailAccountSimpleRespVO.java | 16 + .../vo/account/MailAccountUpdateReqVO.java | 20 + .../admin/mail/vo/log/MailLogBaseVO.java | 75 + .../admin/mail/vo/log/MailLogPageReqVO.java | 42 + .../admin/mail/vo/log/MailLogRespVO.java | 19 + .../mail/vo/template/MailTemplateBaseVO.java | 46 + .../vo/template/MailTemplateCreateReqVO.java | 14 + .../vo/template/MailTemplatePageReqVO.java | 36 + .../mail/vo/template/MailTemplateRespVO.java | 26 + .../vo/template/MailTemplateSendReqVO.java | 25 + .../vo/template/MailTemplateSimpleRespVO.java | 16 + .../vo/template/MailTemplateUpdateReqVO.java | 20 + .../admin/notice/NoticeController.java | 72 + .../admin/notice/vo/NoticeBaseVO.java | 32 + .../admin/notice/vo/NoticeCreateReqVO.java | 11 + .../admin/notice/vo/NoticePageReqVO.java | 19 + .../admin/notice/vo/NoticeRespVO.java | 20 + .../admin/notice/vo/NoticeUpdateReqVO.java | 18 + .../admin/notify/NotifyMessageController.java | 95 + .../notify/NotifyTemplateController.java | 83 + .../vo/message/NotifyMessageBaseVO.java | 60 + .../vo/message/NotifyMessageMyPageReqVO.java | 27 + .../vo/message/NotifyMessagePageReqVO.java | 36 + .../vo/message/NotifyMessageRespVO.java | 19 + .../vo/template/NotifyTemplateBaseVO.java | 46 + .../template/NotifyTemplateCreateReqVO.java | 11 + .../vo/template/NotifyTemplatePageReqVO.java | 33 + .../vo/template/NotifyTemplateRespVO.java | 22 + .../vo/template/NotifyTemplateSendReqVO.java | 24 + .../template/NotifyTemplateUpdateReqVO.java | 17 + .../admin/oauth2/OAuth2ClientController.http | 23 + .../admin/oauth2/OAuth2ClientController.java | 74 + .../admin/oauth2/OAuth2OpenController.http | 54 + .../admin/oauth2/OAuth2OpenController.java | 302 + .../admin/oauth2/OAuth2TokenController.java | 50 + .../admin/oauth2/OAuth2UserController.http | 14 + .../admin/oauth2/OAuth2UserController.java | 80 + .../oauth2/vo/client/OAuth2ClientBaseVO.java | 82 + .../vo/client/OAuth2ClientCreateReqVO.java | 12 + .../vo/client/OAuth2ClientPageReqVO.java | 19 + .../oauth2/vo/client/OAuth2ClientRespVO.java | 22 + .../vo/client/OAuth2ClientUpdateReqVO.java | 20 + .../vo/open/OAuth2OpenAccessTokenRespVO.java | 34 + .../open/OAuth2OpenAuthorizeInfoRespVO.java | 38 + .../vo/open/OAuth2OpenCheckTokenRespVO.java | 40 + .../vo/token/OAuth2AccessTokenPageReqVO.java | 22 + .../vo/token/OAuth2AccessTokenRespVO.java | 40 + .../oauth2/vo/user/OAuth2UserInfoRespVO.java | 70 + .../oauth2/vo/user/OAuth2UserUpdateReqVO.java | 34 + .../admin/permission/MenuController.http | 4 + .../admin/permission/MenuController.java | 87 + .../permission/PermissionController.java | 82 + .../admin/permission/RoleController.http | 42 + .../admin/permission/RoleController.java | 106 + .../admin/permission/vo/menu/MenuBaseVO.java | 65 + .../permission/vo/menu/MenuCreateReqVO.java | 10 + .../permission/vo/menu/MenuListReqVO.java | 16 + .../admin/permission/vo/menu/MenuRespVO.java | 27 + .../permission/vo/menu/MenuSimpleRespVO.java | 28 + .../permission/vo/menu/MenuUpdateReqVO.java | 17 + .../PermissionAssignRoleDataScopeReqVO.java | 26 + .../PermissionAssignRoleMenuReqVO.java | 21 + .../PermissionAssignUserRoleReqVO.java | 21 + .../admin/permission/vo/role/RoleBaseVO.java | 34 + .../permission/vo/role/RoleCreateReqVO.java | 12 + .../admin/permission/vo/role/RoleExcelVO.java | 34 + .../permission/vo/role/RoleExportReqVO.java | 28 + .../permission/vo/role/RolePageReqVO.java | 31 + .../admin/permission/vo/role/RoleRespVO.java | 37 + .../permission/vo/role/RoleSimpleRespVO.java | 20 + .../permission/vo/role/RoleUpdateReqVO.java | 18 + .../vo/role/RoleUpdateStatusReqVO.java | 23 + .../SensitiveWordController.http | 4 + .../SensitiveWordController.java | 104 + .../sensitiveword/vo/SensitiveWordBaseVO.java | 31 + .../vo/SensitiveWordCreateReqVO.java | 14 + .../vo/SensitiveWordExcelVO.java | 40 + .../vo/SensitiveWordExportReqVO.java | 28 + .../vo/SensitiveWordPageReqVO.java | 33 + .../sensitiveword/vo/SensitiveWordRespVO.java | 22 + .../vo/SensitiveWordUpdateReqVO.java | 20 + .../admin/sms/SmsCallbackController.java | 48 + .../admin/sms/SmsChannelController.java | 80 + .../admin/sms/SmsLogController.java | 60 + .../admin/sms/SmsTemplateController.http | 14 + .../admin/sms/SmsTemplateController.java | 98 + .../sms/vo/channel/SmsChannelBaseVO.java | 37 + .../sms/vo/channel/SmsChannelCreateReqVO.java | 20 + .../sms/vo/channel/SmsChannelPageReqVO.java | 30 + .../sms/vo/channel/SmsChannelRespVO.java | 25 + .../vo/channel/SmsChannelSimpleRespVO.java | 23 + .../sms/vo/channel/SmsChannelUpdateReqVO.java | 20 + .../admin/sms/vo/log/SmsLogExcelVO.java | 100 + .../admin/sms/vo/log/SmsLogExportReqVO.java | 38 + .../admin/sms/vo/log/SmsLogPageReqVO.java | 43 + .../admin/sms/vo/log/SmsLogRespVO.java | 88 + .../sms/vo/template/SmsTemplateBaseVO.java | 45 + .../vo/template/SmsTemplateCreateReqVO.java | 13 + .../sms/vo/template/SmsTemplateExcelVO.java | 55 + .../vo/template/SmsTemplateExportReqVO.java | 37 + .../sms/vo/template/SmsTemplatePageReqVO.java | 42 + .../sms/vo/template/SmsTemplateRespVO.java | 29 + .../sms/vo/template/SmsTemplateSendReqVO.java | 24 + .../vo/template/SmsTemplateUpdateReqVO.java | 20 + .../admin/socail/SocialUserController.java | 42 + .../admin/socail/vo/SocialUserBindReqVO.java | 34 + .../socail/vo/SocialUserUnbindReqVO.java | 30 + .../admin/tenant/TenantController.http | 21 + .../admin/tenant/TenantController.java | 98 + .../admin/tenant/TenantPackageController.java | 81 + .../vo/packages/TenantPackageBaseVO.java | 31 + .../vo/packages/TenantPackageCreateReqVO.java | 14 + .../vo/packages/TenantPackagePageReqVO.java | 32 + .../vo/packages/TenantPackageRespVO.java | 22 + .../packages/TenantPackageSimpleRespVO.java | 20 + .../vo/packages/TenantPackageUpdateReqVO.java | 17 + .../admin/tenant/vo/tenant/TenantBaseVO.java | 46 + .../tenant/vo/tenant/TenantCreateReqVO.java | 29 + .../admin/tenant/vo/tenant/TenantExcelVO.java | 39 + .../tenant/vo/tenant/TenantExportReqVO.java | 31 + .../tenant/vo/tenant/TenantPageReqVO.java | 36 + .../admin/tenant/vo/tenant/TenantRespVO.java | 20 + .../tenant/vo/tenant/TenantUpdateReqVO.java | 17 + .../controller/admin/user/UserController.http | 4 + .../controller/admin/user/UserController.java | 206 + .../admin/user/UserProfileController.http | 4 + .../admin/user/UserProfileController.java | 108 + .../user/vo/profile/UserProfileRespVO.java | 103 + .../UserProfileUpdatePasswordReqVO.java | 23 + .../vo/profile/UserProfileUpdateReqVO.java | 31 + .../admin/user/vo/user/UserBaseVO.java | 54 + .../admin/user/vo/user/UserCreateReqVO.java | 20 + .../admin/user/vo/user/UserExcelVO.java | 52 + .../admin/user/vo/user/UserExportReqVO.java | 35 + .../admin/user/vo/user/UserImportExcelVO.java | 46 + .../admin/user/vo/user/UserImportRespVO.java | 24 + .../user/vo/user/UserPageItemRespVO.java | 33 + .../admin/user/vo/user/UserPageReqVO.java | 38 + .../admin/user/vo/user/UserRespVO.java | 34 + .../admin/user/vo/user/UserSimpleRespVO.java | 23 + .../user/vo/user/UserUpdatePasswordReqVO.java | 23 + .../admin/user/vo/user/UserUpdateReqVO.java | 18 + .../user/vo/user/UserUpdateStatusReqVO.java | 23 + .../app/dict/AppDictDataController.java | 4 + .../controller/app/ip/AppAreaController.java | 34 + .../app/ip/vo/AppAreaNodeRespVO.java | 23 + .../system/controller/app/package-info.java | 4 + .../app/weixin/AppWxMpController.http | 4 + .../app/weixin/AppWxMpController.java | 38 + .../system/controller/package-info.java | 6 + .../system/convert/auth/AuthConvert.java | 83 + .../convert/auth/OAuth2ClientConvert.java | 33 + .../convert/auth/OAuth2TokenConvert.java | 22 + .../system/convert/dept/DeptConvert.java | 34 + .../system/convert/dept/PostConvert.java | 28 + .../system/convert/dict/DictDataConvert.java | 32 + .../system/convert/dict/DictTypeConvert.java | 28 + .../convert/errorcode/ErrorCodeConvert.java | 42 + .../module/system/convert/ip/AreaConvert.java | 33 + .../convert/logger/LoginLogConvert.java | 24 + .../convert/logger/OperateLogConvert.java | 41 + .../convert/mail/MailAccountConvert.java | 35 + .../system/convert/mail/MailLogConvert.java | 18 + .../convert/mail/MailTemplateConvert.java | 26 + .../system/convert/notice/NoticeConvert.java | 24 + .../convert/notify/NotifyMessageConvert.java | 28 + .../convert/notify/NotifyTemplateConvert.java | 34 + .../convert/oauth2/OAuth2OpenConvert.java | 57 + .../convert/oauth2/OAuth2UserConvert.java | 25 + .../module/system/convert/package-info.java | 6 + .../convert/permission/MenuConvert.java | 28 + .../convert/permission/RoleConvert.java | 28 + .../sensitiveword/SensitiveWordConvert.java | 36 + .../system/convert/sms/SmsChannelConvert.java | 39 + .../system/convert/sms/SmsLogConvert.java | 30 + .../convert/sms/SmsTemplateConvert.java | 31 + .../convert/social/SocialUserConvert.java | 19 + .../system/convert/tenant/TenantConvert.java | 45 + .../convert/tenant/TenantPackageConvert.java | 37 + .../system/convert/user/UserConvert.java | 55 + ...g Boot 对象转换 MapStruct 入门》.md | 1 + .../system/dal/dataobject/dept/DeptDO.java | 67 + .../system/dal/dataobject/dept/PostDO.java | 50 + .../dal/dataobject/dept/UserPostDO.java | 40 + .../dal/dataobject/dict/DictDataDO.java | 65 + .../dal/dataobject/dict/DictTypeDO.java | 57 + .../dal/dataobject/errorcode/ErrorCodeDO.java | 52 + .../dal/dataobject/logger/LoginLogDO.java | 72 + .../dal/dataobject/logger/OperateLogDO.java | 144 + .../dal/dataobject/mail/MailAccountDO.java | 53 + .../system/dal/dataobject/mail/MailLogDO.java | 121 + .../dal/dataobject/mail/MailTemplateDO.java | 71 + .../dal/dataobject/notice/NoticeDO.java | 47 + .../dataobject/notify/NotifyMessageDO.java | 101 + .../dataobject/notify/NotifyTemplateDO.java | 72 + .../oauth2/OAuth2AccessTokenDO.java | 69 + .../dataobject/oauth2/OAuth2ApproveDO.java | 63 + .../dal/dataobject/oauth2/OAuth2ClientDO.java | 107 + .../dal/dataobject/oauth2/OAuth2CodeDO.java | 68 + .../oauth2/OAuth2RefreshTokenDO.java | 63 + .../dal/dataobject/permission/MenuDO.java | 107 + .../dal/dataobject/permission/RoleDO.java | 78 + .../dal/dataobject/permission/RoleMenuDO.java | 35 + .../dal/dataobject/permission/UserRoleDO.java | 35 + .../sensitiveword/SensitiveWordDO.java | 58 + .../dal/dataobject/sms/SmsChannelDO.java | 62 + .../system/dal/dataobject/sms/SmsCodeDO.java | 65 + .../system/dal/dataobject/sms/SmsLogDO.java | 175 + .../dal/dataobject/sms/SmsTemplateDO.java | 91 + .../dataobject/social/SocialUserBindDO.java | 56 + .../dal/dataobject/social/SocialUserDO.java | 73 + .../dal/dataobject/tenant/TenantDO.java | 82 + .../dataobject/tenant/TenantPackageDO.java | 52 + .../dal/dataobject/user/AdminUserDO.java | 96 + .../system/dal/mysql/dept/DeptMapper.java | 33 + .../system/dal/mysql/dept/PostMapper.java | 46 + .../system/dal/mysql/dept/UserPostMapper.java | 32 + .../system/dal/mysql/dict/DictDataMapper.java | 51 + .../system/dal/mysql/dict/DictTypeMapper.java | 48 + .../dal/mysql/errorcode/ErrorCodeMapper.java | 51 + .../dal/mysql/logger/LoginLogMapper.java | 45 + .../dal/mysql/logger/OperateLogMapper.java | 48 + .../dal/mysql/mail/MailAccountMapper.java | 20 + .../system/dal/mysql/mail/MailLogMapper.java | 25 + .../dal/mysql/mail/MailTemplateMapper.java | 35 + .../system/dal/mysql/notice/NoticeMapper.java | 20 + .../dal/mysql/notify/NotifyMessageMapper.java | 70 + .../mysql/notify/NotifyTemplateMapper.java | 26 + .../mysql/oauth2/OAuth2AccessTokenMapper.java | 33 + .../dal/mysql/oauth2/OAuth2ApproveMapper.java | 28 + .../dal/mysql/oauth2/OAuth2ClientMapper.java | 30 + .../dal/mysql/oauth2/OAuth2CodeMapper.java | 14 + .../oauth2/OAuth2RefreshTokenMapper.java | 20 + .../module/system/dal/mysql/package-info.java | 9 + .../dal/mysql/permission/MenuMapper.java | 31 + .../dal/mysql/permission/RoleMapper.java | 48 + .../dal/mysql/permission/RoleMenuMapper.java | 40 + .../dal/mysql/permission/UserRoleMapper.java | 36 + .../sensitiveword/SensitiveWordMapper.java | 48 + .../dal/mysql/sms/SmsChannelMapper.java | 27 + .../system/dal/mysql/sms/SmsCodeMapper.java | 28 + .../system/dal/mysql/sms/SmsLogMapper.java | 40 + .../dal/mysql/sms/SmsTemplateMapper.java | 48 + .../mysql/social/SocialUserBindMapper.java | 37 + .../dal/mysql/social/SocialUserMapper.java | 28 + .../system/dal/mysql/tenant/TenantMapper.java | 53 + .../dal/mysql/tenant/TenantPackageMapper.java | 32 + .../dal/mysql/user/AdminUserMapper.java | 69 + .../system/dal/redis/RedisKeyConstants.java | 101 + .../oauth2/OAuth2AccessTokenRedisDAO.java | 59 + .../config/DataPermissionConfiguration.java | 28 + .../datapermission/package-info.java | 4 + .../module/system/framework/package-info.java | 6 + .../framework/sms/SmsCodeConfiguration.java | 9 + .../framework/sms/SmsCodeProperties.java | 41 + .../web/config/SystemWebConfiguration.java | 24 + .../system/framework/web/package-info.java | 4 + .../yunxi/scm/module/system/job/DemoJob.java | 27 + .../scm/module/system/job/package-info.java | 1 + .../mq/consumer/mail/MailSendConsumer.java | 30 + .../mq/consumer/sms/SmsSendConsumer.java | 29 + .../mq/message/mail/MailSendMessage.java | 55 + .../system/mq/message/sms/SmsSendMessage.java | 50 + .../system/mq/producer/mail/MailProducer.java | 41 + .../system/mq/producer/sms/SmsProducer.java | 41 + .../yunxi/scm/module/system/package-info.java | 8 + .../system/service/auth/AdminAuthService.java | 73 + .../service/auth/AdminAuthServiceImpl.java | 249 + .../system/service/dept/DeptService.java | 104 + .../system/service/dept/DeptServiceImpl.java | 205 + .../system/service/dept/PostService.java | 98 + .../system/service/dept/PostServiceImpl.java | 151 + .../system/service/dict/DictDataService.java | 108 + .../service/dict/DictDataServiceImpl.java | 184 + .../system/service/dict/DictTypeService.java | 80 + .../service/dict/DictTypeServiceImpl.java | 150 + .../service/errorcode/ErrorCodeService.java | 87 + .../errorcode/ErrorCodeServiceImpl.java | 174 + .../service/logger/LoginLogService.java | 40 + .../service/logger/LoginLogServiceImpl.java | 42 + .../service/logger/OperateLogService.java | 41 + .../service/logger/OperateLogServiceImpl.java | 75 + .../service/mail/MailAccountService.java | 73 + .../service/mail/MailAccountServiceImpl.java | 101 + .../system/service/mail/MailLogService.java | 61 + .../service/mail/MailLogServiceImpl.java | 79 + .../system/service/mail/MailSendService.java | 60 + .../service/mail/MailSendServiceImpl.java | 167 + .../service/mail/MailTemplateService.java | 91 + .../service/mail/MailTemplateServiceImpl.java | 139 + .../system/service/member/MemberService.java | 26 + .../service/member/MemberServiceImpl.java | 54 + .../system/service/member/package-info.java | 4 + .../system/service/notice/NoticeService.java | 52 + .../service/notice/NoticeServiceImpl.java | 74 + .../service/notify/NotifyMessageService.java | 97 + .../notify/NotifyMessageServiceImpl.java | 77 + .../service/notify/NotifySendService.java | 55 + .../service/notify/NotifySendServiceImpl.java | 86 + .../service/notify/NotifyTemplateService.java | 74 + .../notify/NotifyTemplateServiceImpl.java | 138 + .../service/oauth2/OAuth2ApproveService.java | 52 + .../oauth2/OAuth2ApproveServiceImpl.java | 103 + .../service/oauth2/OAuth2ClientService.java | 91 + .../oauth2/OAuth2ClientServiceImpl.java | 154 + .../service/oauth2/OAuth2CodeService.java | 39 + .../service/oauth2/OAuth2CodeServiceImpl.java | 64 + .../service/oauth2/OAuth2GrantService.java | 113 + .../oauth2/OAuth2GrantServiceImpl.java | 104 + .../service/oauth2/OAuth2TokenService.java | 80 + .../oauth2/OAuth2TokenServiceImpl.java | 166 + .../service/permission/MenuService.java | 88 + .../service/permission/MenuServiceImpl.java | 208 + .../service/permission/PermissionService.java | 146 + .../permission/PermissionServiceImpl.java | 335 + .../service/permission/RoleService.java | 142 + .../service/permission/RoleServiceImpl.java | 257 + .../permission/bo/RoleCreateReqBO.java | 49 + .../sensitiveword/SensitiveWordService.java | 99 + .../SensitiveWordServiceImpl.java | 250 + .../system/service/sms/SmsChannelService.java | 70 + .../service/sms/SmsChannelServiceImpl.java | 144 + .../system/service/sms/SmsCodeService.java | 40 + .../service/sms/SmsCodeServiceImpl.java | 111 + .../system/service/sms/SmsLogService.java | 77 + .../system/service/sms/SmsLogServiceImpl.java | 88 + .../system/service/sms/SmsSendService.java | 78 + .../service/sms/SmsSendServiceImpl.java | 188 + .../service/sms/SmsTemplateService.java | 94 + .../service/sms/SmsTemplateServiceImpl.java | 194 + .../service/social/SocialUserService.java | 78 + .../service/social/SocialUserServiceImpl.java | 167 + .../service/tenant/TenantPackageService.java | 73 + .../tenant/TenantPackageServiceImpl.java | 115 + .../system/service/tenant/TenantService.java | 131 + .../service/tenant/TenantServiceImpl.java | 286 + .../tenant/handler/TenantInfoHandler.java | 21 + .../tenant/handler/TenantMenuHandler.java | 21 + .../system/service/user/AdminUserService.java | 215 + .../service/user/AdminUserServiceImpl.java | 461 + .../system/util/collection/SimpleTrie.java | 145 + .../system/util/oauth2/OAuth2Utils.java | 103 + .../scm/module/system/util/package-info.java | 4 + .../Mapper/usergroup/UserGroupMapper.xml | 12 + .../system/job/SchedulerManagerTest.java | 53 + .../scm/module/system/mq/RedisStreamTest.java | 62 + .../module/system/service/package-info.java | 4 + .../sms/SmsServiceIntegrationTest.java | 55 + .../test/BaseDbAndRedisIntegrationTest.java | 38 + .../system/test/BaseRedisIntegrationTest.java | 23 + .../application-integration-test.yaml | 108 + .../oauth2/OAuth2OpenControllerTest.java | 337 + .../auth/AdminAuthServiceImplTest.java | 371 + .../service/dept/DeptServiceImplTest.java | 297 + .../service/dept/PostServiceImplTest.java | 254 + .../service/dict/DictDataServiceImplTest.java | 371 + .../service/dict/DictTypeServiceImplTest.java | 304 + .../errorcode/ErrorCodeServiceTest.java | 328 + .../logger/LoginLogServiceImplTest.java | 110 + .../logger/OperateLogServiceImplTest.java | 155 + .../mail/MailAccountServiceImplTest.java | 179 + .../service/mail/MailLogServiceImplTest.java | 183 + .../service/mail/MailSendServiceImplTest.java | 332 + .../mail/MailTemplateServiceImplTest.java | 215 + .../service/notice/NoticeServiceImplTest.java | 130 + .../notify/NotifyMessageServiceImplTest.java | 280 + .../notify/NotifySendServiceImplTest.java | 176 + .../notify/NotifyTemplateServiceImplTest.java | 178 + .../oauth2/OAuth2ApproveServiceImplTest.java | 269 + .../oauth2/OAuth2ClientServiceImplTest.java | 220 + .../oauth2/OAuth2CodeServiceImplTest.java | 99 + .../oauth2/OAuth2GrantServiceImplTest.java | 173 + .../oauth2/OAuth2TokenServiceImplTest.java | 289 + .../permission/MenuServiceImplTest.java | 295 + .../permission/PermissionServiceTest.java | 527 + .../permission/RoleServiceImplTest.java | 386 + .../SensitiveWordServiceImplTest.java | 267 + .../service/sms/SmsChannelServiceTest.java | 202 + .../service/sms/SmsCodeServiceImplTest.java | 209 + .../service/sms/SmsLogServiceImplTest.java | 239 + .../service/sms/SmsSendServiceImplTest.java | 289 + .../sms/SmsTemplateServiceImplTest.java | 339 + .../social/SocialUserServiceImplTest.java | 256 + .../tenant/TenantPackageServiceImplTest.java | 235 + .../service/tenant/TenantServiceImplTest.java | 484 + .../user/AdminUserServiceImplTest.java | 784 ++ .../test/resources/application-unit-test.yaml | 55 + .../src/test/resources/logback.xml | 4 + .../src/test/resources/sql/clean.sql | 34 + .../src/test/resources/sql/create_tables.sql | 630 + yunxi-module-xxjj/pom.xml | 25 + .../yunxi-module-xxjj-api/pom.xml | 27 + .../materialcategory/MaterialCategoryApi.java | 54 + .../dto/MaterialCategoryRespDTO.java | 30 + .../MaterialCategoryIdEnum.java | 20 + .../yunxi-module-xxjj-biz/pom.xml | 62 + .../controller/admin/DemoTest2Controller.java | 25 + .../brandlibrary/BrandLibraryController.java | 121 + .../brandlibrary/vo/BrandLibraryBaseVO.java | 34 + .../vo/BrandLibraryCreateReqVO.java | 14 + .../brandlibrary/vo/BrandLibraryExcelVO.java | 40 + .../vo/BrandLibraryExportReqVO.java | 29 + .../vo/BrandLibraryPageReqVO.java | 31 + .../brandlibrary/vo/BrandLibraryRespVO.java | 19 + .../vo/BrandLibraryUpdateReqVO.java | 18 + .../businessline/BusinessLineController.java | 110 + .../businessline/vo/BusinessLineBaseVO.java | 86 + .../vo/BusinessLineCreateReqVO.java | 14 + .../businessline/vo/BusinessLineExcelVO.java | 71 + .../vo/BusinessLineExportReqVO.java | 48 + .../vo/BusinessLinePageReqVO.java | 50 + .../businessline/vo/BusinessLineRespVO.java | 19 + .../vo/BusinessLineUpdateReqVO.java | 18 + .../admin/customer/CustomerController.java | 131 + .../admin/customer/vo/CustomerBaseVO.java | 47 + .../customer/vo/CustomerCreateReqVO.java | 14 + .../admin/customer/vo/CustomerExcelVO.java | 52 + .../customer/vo/CustomerExportReqVO.java | 48 + .../admin/customer/vo/CustomerPageReqVO.java | 50 + .../admin/customer/vo/CustomerRespVO.java | 22 + .../customer/vo/CustomerUpdateReqVO.java | 18 + .../enterprise/EnterpriseController.java | 102 + .../admin/enterprise/vo/EnterpriseBaseVO.java | 39 + .../enterprise/vo/EnterpriseCreateReqVO.java | 167 + .../enterprise/vo/EnterpriseExcelVO.java | 49 + .../enterprise/vo/EnterpriseExportReqVO.java | 29 + .../enterprise/vo/EnterprisePageReqVO.java | 31 + .../admin/enterprise/vo/EnterpriseRespVO.java | 19 + .../enterprise/vo/EnterpriseUpdateReqVO.java | 171 + .../EnterpriseContractController.java | 102 + .../vo/EnterpriseContractBaseVO.java | 79 + .../vo/EnterpriseContractCreateReqVO.java | 14 + .../vo/EnterpriseContractExcelVO.java | 88 + .../vo/EnterpriseContractExportReqVO.java | 61 + .../vo/EnterpriseContractPageReqVO.java | 63 + .../vo/EnterpriseContractRespVO.java | 19 + .../vo/EnterpriseContractUpdateReqVO.java | 18 + .../admin/material/MaterialController.java | 99 + .../admin/material/vo/MaterialBaseVO.java | 84 + .../material/vo/MaterialCreateReqVO.java | 12 + .../admin/material/vo/MaterialExcelVO.java | 77 + .../material/vo/MaterialExportReqVO.java | 65 + .../admin/material/vo/MaterialPageReqVO.java | 66 + .../admin/material/vo/MaterialRespVO.java | 19 + .../material/vo/MaterialUpdateReqVO.java | 18 + .../MaterialBrandController.java | 102 + .../materialbrand/vo/MaterialBrandBaseVO.java | 36 + .../vo/MaterialBrandCreateReqVO.java | 12 + .../vo/MaterialBrandExcelVO.java | 44 + .../vo/MaterialBrandExportReqVO.java | 29 + .../vo/MaterialBrandPageReqVO.java | 31 + .../materialbrand/vo/MaterialBrandRespVO.java | 19 + .../vo/MaterialBrandUpdateReqVO.java | 18 + .../MaterialCategoryController.java | 85 + .../vo/MaterialCategoryBaseVO.java | 34 + .../vo/MaterialCategoryCreateReqVO.java | 12 + .../vo/MaterialCategoryListReqVO.java | 13 + .../vo/MaterialCategoryRespVO.java | 20 + .../vo/MaterialCategorySimpleRespVO.java | 26 + .../vo/MaterialCategoryUpdateReqVO.java | 18 + .../MaterialIndustryController.java | 102 + .../vo/MaterialIndustryBaseVO.java | 25 + .../vo/MaterialIndustryCreateReqVO.java | 12 + .../vo/MaterialIndustryExcelVO.java | 34 + .../vo/MaterialIndustryExportReqVO.java | 26 + .../vo/MaterialIndustryPageReqVO.java | 28 + .../vo/MaterialIndustryRespVO.java | 19 + .../vo/MaterialIndustryUpdateReqVO.java | 18 + .../MaterialQualityController.java | 102 + .../vo/MaterialQualityBaseVO.java | 33 + .../vo/MaterialQualityCreateReqVO.java | 14 + .../vo/MaterialQualityExcelVO.java | 46 + .../vo/MaterialQualityExportReqVO.java | 35 + .../vo/MaterialQualityPageReqVO.java | 37 + .../vo/MaterialQualityRespVO.java | 19 + .../vo/MaterialQualityUpdateReqVO.java | 18 + .../materialtype/MaterialTypeController.java | 102 + .../materialtype/vo/MaterialTypeBaseVO.java | 29 + .../vo/MaterialTypeCreateReqVO.java | 12 + .../materialtype/vo/MaterialTypeExcelVO.java | 34 + .../vo/MaterialTypeExportReqVO.java | 29 + .../vo/MaterialTypePageReqVO.java | 31 + .../materialtype/vo/MaterialTypeRespVO.java | 19 + .../vo/MaterialTypeUpdateReqVO.java | 18 + .../ProductionProcessesController.java | 102 + .../vo/ProductionProcessesBaseVO.java | 37 + .../vo/ProductionProcessesCreateReqVO.java | 14 + .../vo/ProductionProcessesExcelVO.java | 49 + .../vo/ProductionProcessesExportReqVO.java | 35 + .../vo/ProductionProcessesPageReqVO.java | 37 + .../vo/ProductionProcessesRespVO.java | 19 + .../vo/ProductionProcessesUpdateReqVO.java | 18 + .../admin/supplier/SupplierController.java | 114 + .../admin/supplier/vo/SupplierBaseVO.java | 46 + .../supplier/vo/SupplierCreateReqVO.java | 14 + .../admin/supplier/vo/SupplierExcelVO.java | 51 + .../supplier/vo/SupplierExportReqVO.java | 48 + .../admin/supplier/vo/SupplierPageReqVO.java | 50 + .../admin/supplier/vo/SupplierRespVO.java | 22 + .../supplier/vo/SupplierUpdateReqVO.java | 18 + .../unitlibrary/UnitLibraryController.java | 122 + .../unitlibrary/vo/UnitLibraryBaseVO.java | 31 + .../vo/UnitLibraryCreateReqVO.java | 14 + .../unitlibrary/vo/UnitLibraryExcelVO.java | 37 + .../vo/UnitLibraryExportReqVO.java | 29 + .../unitlibrary/vo/UnitLibraryPageReqVO.java | 31 + .../unitlibrary/vo/UnitLibraryRespVO.java | 19 + .../vo/UnitLibraryUpdateReqVO.java | 18 + .../admin/warehouse/WarehouseController.java | 102 + .../admin/warehouse/vo/WarehouseBaseVO.java | 63 + .../warehouse/vo/WarehouseCreateReqVO.java | 14 + .../admin/warehouse/vo/WarehouseExcelVO.java | 53 + .../warehouse/vo/WarehouseExportReqVO.java | 39 + .../warehouse/vo/WarehousePageReqVO.java | 41 + .../admin/warehouse/vo/WarehouseRespVO.java | 19 + .../warehouse/vo/WarehouseUpdateReqVO.java | 18 + .../warehouseout/WarehouseOutController.java | 102 + .../warehouseout/vo/WarehouseOutBaseVO.java | 51 + .../vo/WarehouseOutCreateReqVO.java | 14 + .../warehouseout/vo/WarehouseOutExcelVO.java | 52 + .../vo/WarehouseOutExportReqVO.java | 43 + .../vo/WarehouseOutPageReqVO.java | 45 + .../warehouseout/vo/WarehouseOutRespVO.java | 19 + .../vo/WarehouseOutUpdateReqVO.java | 18 + .../WarehouseReceiptController.java | 102 + .../vo/WarehouseReceiptBaseVO.java | 46 + .../vo/WarehouseReceiptCreateReqVO.java | 14 + .../vo/WarehouseReceiptExcelVO.java | 49 + .../vo/WarehouseReceiptExportReqVO.java | 39 + .../vo/WarehouseReceiptPageReqVO.java | 41 + .../vo/WarehouseReceiptRespVO.java | 19 + .../vo/WarehouseReceiptUpdateReqVO.java | 18 + .../admin/workorder/WorkOrderController.java | 102 + .../admin/workorder/vo/WorkOrderBaseVO.java | 39 + .../workorder/vo/WorkOrderCreateReqVO.java | 14 + .../admin/workorder/vo/WorkOrderExcelVO.java | 46 + .../workorder/vo/WorkOrderExportReqVO.java | 41 + .../workorder/vo/WorkOrderPageReqVO.java | 43 + .../admin/workorder/vo/WorkOrderRespVO.java | 19 + .../workorder/vo/WorkOrderUpdateReqVO.java | 18 + .../app/AppDemoTest2Controller.java | 25 + .../brandlibrary/BrandLibraryConvert.java | 34 + .../businessline/BusinessLineConvert.java | 34 + .../convert/customer/CustomerConvert.java | 34 + .../convert/enterprise/EnterpriseConvert.java | 34 + .../EnterpriseContractConvert.java | 34 + .../convert/material/MaterialConvert.java | 37 + .../materialbrand/MaterialBrandConvert.java | 37 + .../MaterialCategoryConvert.java | 34 + .../MaterialIndustryConvert.java | 37 + .../MaterialQualityConvert.java | 34 + .../materialtype/MaterialTypeConvert.java | 37 + .../ProductionProcessesConvert.java | 34 + .../convert/supplier/SupplierConvert.java | 34 + .../unitlibrary/UnitLibraryConvert.java | 34 + .../convert/warehouse/WarehouseConvert.java | 34 + .../warehouseout/WarehouseOutConvert.java | 34 + .../WarehouseReceiptConvert.java | 34 + .../convert/workorder/WorkOrderConvert.java | 34 + .../brandlibrary/BrandLibraryDO.java | 51 + .../businessline/BusinessLineDO.java | 99 + .../dal/dataobject/customer/CustomerDO.java | 68 + .../dataobject/enterprise/EnterpriseDO.java | 255 + .../EnterpriseContractDO.java | 112 + .../dal/dataobject/material/MaterialDO.java | 111 + .../materialbrand/MaterialBrandDO.java | 50 + .../materialcategory/MaterialCategoryDO.java | 48 + .../materialindustry/MaterialIndustryDO.java | 36 + .../materialquality/MaterialQualityDO.java | 57 + .../materialtype/MaterialTypeDO.java | 40 + .../ProductionProcessesDO.java | 61 + .../dal/dataobject/supplier/SupplierDO.java | 65 + .../dataobject/unitlibrary/UnitLibraryDO.java | 47 + .../dal/dataobject/warehouse/WarehouseDO.java | 75 + .../warehouseout/WarehouseOutDO.java | 63 + .../warehousereceipt/WarehouseReceiptDO.java | 60 + .../dal/dataobject/workorder/WorkOrderDO.java | 59 + .../brandlibrary/BrandLibraryMapper.java | 38 + .../businessline/BusinessLineMapper.java | 52 + .../dal/mysql/customer/CustomerMapper.java | 55 + .../mysql/enterprise/EnterpriseMapper.java | 38 + .../EnterpriseContractMapper.java | 56 + .../dal/mysql/material/MaterialMapper.java | 63 + .../materialbrand/MaterialBrandMapper.java | 39 + .../MaterialCategoryMapper.java | 27 + .../MaterialIndustryMapper.java | 37 + .../MaterialQualityMapper.java | 42 + .../materialtype/MaterialTypeMapper.java | 39 + .../ProductionProcessesMapper.java | 42 + .../dal/mysql/supplier/SupplierMapper.java | 57 + .../mysql/unitlibrary/UnitLibraryMapper.java | 38 + .../dal/mysql/warehouse/WarehouseMapper.java | 47 + .../warehouseout/WarehouseOutMapper.java | 46 + .../WarehouseReceiptMapper.java | 44 + .../dal/mysql/workorder/WorkOrderMapper.java | 46 + .../module/xxjj/enums/ErrorCodeConstants.java | 50 + .../brandlibrary/BrandLibraryService.java | 70 + .../brandlibrary/BrandLibraryServiceImpl.java | 82 + .../businessline/BusinessLineService.java | 78 + .../businessline/BusinessLineServiceImpl.java | 106 + .../service/customer/CustomerService.java | 77 + .../service/customer/CustomerServiceImpl.java | 87 + .../service/enterprise/EnterpriseService.java | 70 + .../enterprise/EnterpriseServiceImpl.java | 82 + .../EnterpriseContractService.java | 70 + .../EnterpriseContractServiceImpl.java | 82 + .../service/material/MaterialService.java | 74 + .../service/material/MaterialServiceImpl.java | 120 + .../materialbrand/MaterialBrandService.java | 74 + .../MaterialBrandServiceImpl.java | 85 + .../MaterialCategoryService.java | 105 + .../MaterialCategoryServiceImpl.java | 175 + .../MaterialIndustryService.java | 74 + .../MaterialIndustryServiceImpl.java | 84 + .../MaterialQualityService.java | 70 + .../MaterialQualityServiceImpl.java | 82 + .../materialtype/MaterialTypeService.java | 74 + .../materialtype/MaterialTypeServiceImpl.java | 86 + .../ProductionProcessesService.java | 70 + .../ProductionProcessesServiceImpl.java | 82 + .../service/supplier/SupplierService.java | 79 + .../service/supplier/SupplierServiceImpl.java | 87 + .../unitlibrary/UnitLibraryService.java | 70 + .../unitlibrary/UnitLibraryServiceImpl.java | 82 + .../service/warehouse/WarehouseService.java | 70 + .../warehouse/WarehouseServiceImpl.java | 82 + .../warehouseout/WarehouseOutService.java | 70 + .../warehouseout/WarehouseOutServiceImpl.java | 82 + .../WarehouseReceiptService.java | 70 + .../WarehouseReceiptServiceImpl.java | 82 + .../service/workorder/WorkOrderService.java | 70 + .../workorder/WorkOrderServiceImpl.java | 82 + .../brandlibrary/BrandLibraryMapper.xml | 12 + .../businessline/BusinessLineMapper.xml | 9 + .../mapper/customer/CustomerMapper.xml | 10 + .../mapper/enterprise/EnterpriseMapper.xml | 12 + .../EnterpriseContractMapper.xml | 12 + .../mapper/material/MaterialMapper.xml | 12 + .../materialbrand/MaterialBrandMapper.xml | 12 + .../MaterialIndustryMapper.xml | 12 + .../materialquality/MaterialQualityMapper.xml | 12 + .../materialtype/MaterialTypeMapper.xml | 12 + .../ProductionProcessesMapper.xml | 12 + .../mapper/supplier/SupplierMapper.xml | 12 + .../mapper/unitlibrary/UnitLibraryMapper.xml | 12 + .../mapper/warehouse/WarehouseMapper.xml | 10 + .../warehouseout/WarehouseOutMapper.xml | 12 + .../WarehouseReceiptMapper.xml | 12 + .../mapper/workorder/WorkOrderMapper.xml | 12 + .../BrandLibraryServiceImplTest.java | 175 + .../BusinessLineServiceImplTest.java | 223 + .../customer/CustomerServiceImplTest.java | 223 + .../enterprise/EnterpriseServiceImplTest.java | 175 + .../EnterpriseContractServiceImplTest.java | 255 + .../material/MaterialServiceImplTest.java | 190 + .../MaterialBrandServiceImplTest.java | 174 + .../MaterialIndustryServiceImplTest.java | 166 + .../MaterialQualityServiceImplTest.java | 191 + .../MaterialTypeServiceImplTest.java | 174 + .../ProductionProcessesServiceImplTest.java | 191 + .../supplier/SupplierServiceImplTest.java | 215 + .../UnitLibraryServiceImplTest.java | 175 + .../warehouse/WarehouseServiceImplTest.java | 199 + .../WarehouseOutServiceImplTest.java | 207 + .../WarehouseReceiptServiceImplTest.java | 199 + .../workorder/WorkOrderServiceImplTest.java | 207 + yunxi-server/Dockerfile | 23 + yunxi-server/pom.xml | 142 + .../scm/server/YunxiServerApplication.java | 34 + .../server/controller/DefaultController.java | 50 + .../src/main/resources/application-dev.yaml | 197 + .../src/main/resources/application-local.yaml | 228 + .../src/main/resources/application.yaml | 214 + .../src/main/resources/logback-spring.xml | 76 + .../static/MP_verify_DKOvVzFP7vPwwHx2.txt | 1 + .../src/main/resources/static/READMD.md | 13 + .../src/main/resources/static/pay_wx_pub.html | 120 + .../java/com/yunxi/scm/ProjectReactor.java | 146 + yunxi-ui-admin-uniapp/.gitignore | 16 + yunxi-ui-admin-uniapp/App.vue | 34 + yunxi-ui-admin-uniapp/LICENSE | 21 + yunxi-ui-admin-uniapp/api/login.js | 34 + yunxi-ui-admin-uniapp/api/system/user.js | 42 + .../components/uni-section/uni-section.vue | 167 + .../components/verifition/Verify.vue | 469 + .../components/verifition/utils/ase.js | 14 + .../components/verifition/utils/request.js | 17 + .../verifition/verifyPoint/verifyPoint.vue | 557 + .../verifition/verifySlider/verifySlider.vue | 661 + yunxi-ui-admin-uniapp/config.js | 27 + yunxi-ui-admin-uniapp/main.js | 17 + yunxi-ui-admin-uniapp/manifest.json | 69 + yunxi-ui-admin-uniapp/package.json | 5 + yunxi-ui-admin-uniapp/pages.json | 97 + .../pages/common/textview/index.vue | 43 + .../pages/common/webview/index.vue | 34 + yunxi-ui-admin-uniapp/pages/index.vue | 43 + yunxi-ui-admin-uniapp/pages/login.vue | 168 + .../pages/mine/about/index.vue | 75 + .../pages/mine/avatar/index.vue | 631 + .../pages/mine/help/index.vue | 112 + yunxi-ui-admin-uniapp/pages/mine/index.vue | 198 + .../pages/mine/info/edit.vue | 128 + .../pages/mine/info/index.vue | 44 + .../pages/mine/pwd/index.vue | 85 + .../pages/mine/setting/index.vue | 78 + yunxi-ui-admin-uniapp/pages/work/index.vue | 183 + yunxi-ui-admin-uniapp/permission.js | 39 + yunxi-ui-admin-uniapp/plugins/auth.js | 60 + yunxi-ui-admin-uniapp/plugins/index.js | 14 + yunxi-ui-admin-uniapp/plugins/modal.js | 74 + yunxi-ui-admin-uniapp/plugins/tab.js | 30 + yunxi-ui-admin-uniapp/static/favicon.ico | Bin 0 -> 18875 bytes .../static/font/iconfont.css | 90 + .../static/font/iconfont.ttf | Bin 0 -> 6724 bytes .../static/images/banner/banner01.jpg | Bin 0 -> 44454 bytes .../static/images/banner/banner02.jpg | Bin 0 -> 37061 bytes .../static/images/banner/banner03.jpg | Bin 0 -> 38123 bytes .../static/images/default.jpg | Bin 0 -> 20200 bytes .../static/images/profile.jpg | Bin 0 -> 81131 bytes .../static/images/tabbar/home.png | Bin 0 -> 3265 bytes .../static/images/tabbar/home_.png | Bin 0 -> 3229 bytes .../static/images/tabbar/mine.png | Bin 0 -> 4235 bytes .../static/images/tabbar/mine_.png | Bin 0 -> 4219 bytes .../static/images/tabbar/work.png | Bin 0 -> 4108 bytes .../static/images/tabbar/work_.png | Bin 0 -> 5008 bytes yunxi-ui-admin-uniapp/static/index.html | 20 + yunxi-ui-admin-uniapp/static/logo.png | Bin 0 -> 5748 bytes yunxi-ui-admin-uniapp/static/logo200.png | Bin 0 -> 7995 bytes yunxi-ui-admin-uniapp/static/scss/colorui.css | 3912 ++++++ yunxi-ui-admin-uniapp/static/scss/global.scss | 90 + yunxi-ui-admin-uniapp/static/scss/index.scss | 6 + yunxi-ui-admin-uniapp/store/getters.js | 8 + yunxi-ui-admin-uniapp/store/index.js | 15 + yunxi-ui-admin-uniapp/store/modules/user.js | 98 + yunxi-ui-admin-uniapp/uni.scss | 64 + .../uni_modules/uni-badge/changelog.md | 29 + .../components/uni-badge/uni-badge.vue | 268 + .../uni_modules/uni-badge/package.json | 88 + .../uni_modules/uni-badge/readme.md | 10 + .../uni_modules/uni-breadcrumb/changelog.md | 6 + .../uni-breadcrumb-item.vue | 121 + .../uni-breadcrumb/uni-breadcrumb.vue | 41 + .../uni_modules/uni-breadcrumb/package.json | 88 + .../uni_modules/uni-breadcrumb/readme.md | 66 + .../uni_modules/uni-calendar/changelog.md | 16 + .../components/uni-calendar/calendar.js | 546 + .../components/uni-calendar/i18n/en.json | 12 + .../components/uni-calendar/i18n/index.js | 8 + .../components/uni-calendar/i18n/zh-Hans.json | 12 + .../components/uni-calendar/i18n/zh-Hant.json | 12 + .../uni-calendar/uni-calendar-item.vue | 188 + .../components/uni-calendar/uni-calendar.vue | 562 + .../components/uni-calendar/util.js | 350 + .../uni_modules/uni-calendar/package.json | 88 + .../uni_modules/uni-calendar/readme.md | 103 + .../uni_modules/uni-card/changelog.md | 26 + .../uni-card/components/uni-card/uni-card.vue | 270 + .../uni_modules/uni-card/package.json | 90 + .../uni_modules/uni-card/readme.md | 12 + .../uni_modules/uni-collapse/changelog.md | 36 + .../uni-collapse-item/uni-collapse-item.vue | 402 + .../components/uni-collapse/uni-collapse.vue | 147 + .../uni_modules/uni-collapse/package.json | 89 + .../uni_modules/uni-collapse/readme.md | 12 + .../uni_modules/uni-combox/changelog.md | 15 + .../components/uni-combox/uni-combox.vue | 275 + .../uni_modules/uni-combox/package.json | 90 + .../uni_modules/uni-combox/readme.md | 11 + .../uni_modules/uni-countdown/changelog.md | 24 + .../components/uni-countdown/i18n/en.json | 6 + .../components/uni-countdown/i18n/index.js | 8 + .../uni-countdown/i18n/zh-Hans.json | 6 + .../uni-countdown/i18n/zh-Hant.json | 6 + .../uni-countdown/uni-countdown.vue | 271 + .../uni_modules/uni-countdown/package.json | 86 + .../uni_modules/uni-countdown/readme.md | 10 + .../uni-data-checkbox/changelog.md | 43 + .../uni-data-checkbox/uni-data-checkbox.vue | 817 ++ .../uni-data-checkbox/package.json | 87 + .../uni_modules/uni-data-checkbox/readme.md | 18 + .../uni_modules/uni-data-picker/changelog.md | 64 + .../components/uni-data-picker/keypress.js | 45 + .../uni-data-picker/uni-data-picker.vue | 554 + .../uni-data-pickerview/uni-data-picker.js | 563 + .../uni-data-pickerview.vue | 333 + .../uni_modules/uni-data-picker/package.json | 93 + .../uni_modules/uni-data-picker/readme.md | 22 + .../uni_modules/uni-data-select/changelog.md | 16 + .../uni-data-select/uni-data-select.vue | 426 + .../uni_modules/uni-data-select/package.json | 88 + .../uni_modules/uni-data-select/readme.md | 8 + .../uni_modules/uni-dateformat/changelog.md | 10 + .../components/uni-dateformat/date-format.js | 200 + .../uni-dateformat/uni-dateformat.vue | 88 + .../uni_modules/uni-dateformat/package.json | 88 + .../uni_modules/uni-dateformat/readme.md | 11 + .../uni-datetime-picker/changelog.md | 93 + .../uni-datetime-picker/calendar-item.vue | 185 + .../uni-datetime-picker/calendar.vue | 907 ++ .../uni-datetime-picker/i18n/en.json | 22 + .../uni-datetime-picker/i18n/index.js | 8 + .../uni-datetime-picker/i18n/zh-Hans.json | 22 + .../uni-datetime-picker/i18n/zh-Hant.json | 22 + .../uni-datetime-picker/keypress.js | 45 + .../uni-datetime-picker/time-picker.vue | 927 ++ .../uni-datetime-picker.vue | 1012 ++ .../components/uni-datetime-picker/util.js | 410 + .../uni-datetime-picker/package.json | 90 + .../uni_modules/uni-datetime-picker/readme.md | 21 + .../uni_modules/uni-drawer/changelog.md | 13 + .../components/uni-drawer/keypress.js | 45 + .../components/uni-drawer/uni-drawer.vue | 183 + .../uni_modules/uni-drawer/package.json | 87 + .../uni_modules/uni-drawer/readme.md | 10 + .../uni_modules/uni-easyinput/changelog.md | 47 + .../components/uni-easyinput/common.js | 56 + .../uni-easyinput/uni-easyinput.vue | 593 + .../uni_modules/uni-easyinput/package.json | 90 + .../uni_modules/uni-easyinput/readme.md | 11 + .../uni_modules/uni-fab/changelog.md | 17 + .../uni-fab/components/uni-fab/uni-fab.vue | 475 + .../uni_modules/uni-fab/package.json | 87 + .../uni_modules/uni-fab/readme.md | 9 + .../uni_modules/uni-fav/changelog.md | 19 + .../uni-fav/components/uni-fav/i18n/en.json | 4 + .../uni-fav/components/uni-fav/i18n/index.js | 8 + .../components/uni-fav/i18n/zh-Hans.json | 4 + .../components/uni-fav/i18n/zh-Hant.json | 4 + .../uni-fav/components/uni-fav/uni-fav.vue | 161 + .../uni_modules/uni-fav/package.json | 89 + .../uni_modules/uni-fav/readme.md | 10 + .../uni_modules/uni-file-picker/changelog.md | 63 + .../uni-file-picker/choose-and-upload-file.js | 224 + .../uni-file-picker/uni-file-picker.vue | 656 + .../uni-file-picker/upload-file.vue | 325 + .../uni-file-picker/upload-image.vue | 292 + .../components/uni-file-picker/utils.js | 109 + .../uni_modules/uni-file-picker/package.json | 86 + .../uni_modules/uni-file-picker/readme.md | 11 + .../uni_modules/uni-forms/changelog.md | 86 + .../uni-forms-item/uni-forms-item.vue | 627 + .../components/uni-forms/uni-forms.vue | 397 + .../uni-forms/components/uni-forms/utils.js | 293 + .../components/uni-forms/validate.js | 486 + .../uni_modules/uni-forms/package.json | 91 + .../uni_modules/uni-forms/readme.md | 23 + .../uni_modules/uni-goods-nav/changelog.md | 18 + .../components/uni-goods-nav/i18n/en.json | 6 + .../components/uni-goods-nav/i18n/index.js | 8 + .../uni-goods-nav/i18n/zh-Hans.json | 6 + .../uni-goods-nav/i18n/zh-Hant.json | 6 + .../uni-goods-nav/uni-goods-nav.vue | 229 + .../uni_modules/uni-goods-nav/package.json | 88 + .../uni_modules/uni-goods-nav/readme.md | 10 + .../uni_modules/uni-grid/changelog.md | 13 + .../uni-grid-item/uni-grid-item.vue | 127 + .../uni-grid/components/uni-grid/uni-grid.vue | 142 + .../uni_modules/uni-grid/package.json | 86 + .../uni_modules/uni-grid/readme.md | 11 + .../uni_modules/uni-group/changelog.md | 16 + .../components/uni-group/uni-group.vue | 134 + .../uni_modules/uni-group/package.json | 87 + .../uni_modules/uni-group/readme.md | 9 + .../uni_modules/uni-icons/changelog.md | 22 + .../uni-icons/components/uni-icons/icons.js | 1169 ++ .../components/uni-icons/uni-icons.vue | 96 + .../components/uni-icons/uniicons.css | 663 + .../components/uni-icons/uniicons.ttf | Bin 0 -> 35760 bytes .../uni_modules/uni-icons/package.json | 86 + .../uni_modules/uni-icons/readme.md | 8 + .../uni_modules/uni-indexed-list/changelog.md | 17 + .../uni-indexed-list-item.vue | 144 + .../uni-indexed-list/uni-indexed-list.vue | 367 + .../uni_modules/uni-indexed-list/package.json | 89 + .../uni_modules/uni-indexed-list/readme.md | 11 + .../uni_modules/uni-link/changelog.md | 17 + .../uni-link/components/uni-link/uni-link.vue | 128 + .../uni_modules/uni-link/package.json | 87 + .../uni_modules/uni-link/readme.md | 11 + .../uni_modules/uni-list/changelog.md | 20 + .../components/uni-list-ad/uni-list-ad.vue | 107 + .../uni-list-chat/uni-list-chat.scss | 58 + .../uni-list-chat/uni-list-chat.vue | 538 + .../uni-list-item/uni-list-item.vue | 454 + .../uni-list/components/uni-list/uni-list.vue | 108 + .../components/uni-list/uni-refresh.vue | 65 + .../components/uni-list/uni-refresh.wxs | 87 + .../uni_modules/uni-list/package.json | 91 + .../uni_modules/uni-list/readme.md | 346 + .../uni_modules/uni-load-more/changelog.md | 19 + .../components/uni-load-more/i18n/en.json | 5 + .../components/uni-load-more/i18n/index.js | 8 + .../uni-load-more/i18n/zh-Hans.json | 5 + .../uni-load-more/i18n/zh-Hant.json | 5 + .../uni-load-more/uni-load-more.vue | 399 + .../uni_modules/uni-load-more/package.json | 86 + .../uni_modules/uni-load-more/readme.md | 14 + .../uni_modules/uni-nav-bar/changelog.md | 41 + .../components/uni-nav-bar/uni-nav-bar.vue | 348 + .../components/uni-nav-bar/uni-status-bar.vue | 27 + .../uni_modules/uni-nav-bar/package.json | 89 + .../uni_modules/uni-nav-bar/readme.md | 15 + .../uni_modules/uni-notice-bar/changelog.md | 16 + .../uni-notice-bar/uni-notice-bar.vue | 395 + .../uni_modules/uni-notice-bar/package.json | 90 + .../uni_modules/uni-notice-bar/readme.md | 13 + .../uni_modules/uni-number-box/changelog.md | 25 + .../uni-number-box/uni-number-box.vue | 221 + .../uni_modules/uni-number-box/package.json | 85 + .../uni_modules/uni-number-box/readme.md | 13 + .../uni_modules/uni-pagination/changelog.md | 20 + .../components/uni-pagination/i18n/en.json | 4 + .../components/uni-pagination/i18n/es.json | 4 + .../components/uni-pagination/i18n/fr.json | 4 + .../components/uni-pagination/i18n/index.js | 12 + .../uni-pagination/i18n/zh-Hans.json | 4 + .../uni-pagination/i18n/zh-Hant.json | 4 + .../uni-pagination/uni-pagination.vue | 409 + .../uni_modules/uni-pagination/package.json | 86 + .../uni_modules/uni-pagination/readme.md | 13 + .../uni_modules/uni-popup/changelog.md | 60 + .../components/uni-popup-dialog/keypress.js | 45 + .../uni-popup-dialog/uni-popup-dialog.vue | 271 + .../uni-popup-message/uni-popup-message.vue | 143 + .../uni-popup-share/uni-popup-share.vue | 187 + .../components/uni-popup/i18n/en.json | 7 + .../components/uni-popup/i18n/index.js | 8 + .../components/uni-popup/i18n/zh-Hans.json | 7 + .../components/uni-popup/i18n/zh-Hant.json | 7 + .../components/uni-popup/keypress.js | 45 + .../uni-popup/components/uni-popup/popup.js | 26 + .../components/uni-popup/uni-popup.vue | 474 + .../uni_modules/uni-popup/package.json | 90 + .../uni_modules/uni-popup/readme.md | 17 + .../uni_modules/uni-rate/changelog.md | 25 + .../uni-rate/components/uni-rate/uni-rate.vue | 361 + .../uni_modules/uni-rate/package.json | 88 + .../uni_modules/uni-rate/readme.md | 12 + .../uni_modules/uni-row/changelog.md | 10 + .../uni-row/components/uni-col/uni-col.vue | 317 + .../uni-row/components/uni-row/uni-row.vue | 190 + .../uni_modules/uni-row/package.json | 87 + .../uni_modules/uni-row/readme.md | 10 + .../uni_modules/uni-scss/changelog.md | 8 + .../uni_modules/uni-scss/index.scss | 1 + .../uni_modules/uni-scss/package.json | 82 + .../uni_modules/uni-scss/readme.md | 4 + .../uni_modules/uni-scss/styles/index.scss | 7 + .../uni-scss/styles/setting/_border.scss | 3 + .../uni-scss/styles/setting/_color.scss | 66 + .../uni-scss/styles/setting/_radius.scss | 55 + .../uni-scss/styles/setting/_space.scss | 56 + .../uni-scss/styles/setting/_styles.scss | 167 + .../uni-scss/styles/setting/_text.scss | 24 + .../uni-scss/styles/setting/_variables.scss | 146 + .../uni-scss/styles/tools/functions.scss | 19 + .../uni_modules/uni-scss/theme.scss | 31 + .../uni_modules/uni-scss/variables.scss | 62 + .../uni_modules/uni-search-bar/changelog.md | 33 + .../components/uni-search-bar/i18n/en.json | 4 + .../components/uni-search-bar/i18n/index.js | 8 + .../uni-search-bar/i18n/zh-Hans.json | 4 + .../uni-search-bar/i18n/zh-Hant.json | 4 + .../uni-search-bar/uni-search-bar.vue | 298 + .../uni_modules/uni-search-bar/package.json | 89 + .../uni_modules/uni-search-bar/readme.md | 14 + .../uni-segmented-control/changelog.md | 9 + .../uni-segmented-control.vue | 145 + .../uni-segmented-control/package.json | 87 + .../uni-segmented-control/readme.md | 13 + .../uni_modules/uni-steps/changelog.md | 16 + .../components/uni-steps/uni-steps.vue | 269 + .../uni_modules/uni-steps/package.json | 89 + .../uni_modules/uni-steps/readme.md | 13 + .../uni_modules/uni-swipe-action/changelog.md | 41 + .../uni-swipe-action-item/bindingx.js | 302 + .../components/uni-swipe-action-item/isPC.js | 12 + .../uni-swipe-action-item/mpalipay.js | 193 + .../uni-swipe-action-item/mpother.js | 259 + .../components/uni-swipe-action-item/mpwxs.js | 83 + .../uni-swipe-action-item/render.js | 270 + .../uni-swipe-action-item.vue | 347 + .../components/uni-swipe-action-item/wx.wxs | 341 + .../uni-swipe-action/uni-swipe-action.vue | 60 + .../uni_modules/uni-swipe-action/package.json | 87 + .../uni_modules/uni-swipe-action/readme.md | 11 + .../uni_modules/uni-swiper-dot/changelog.md | 12 + .../uni-swiper-dot/uni-swiper-dot.vue | 218 + .../uni_modules/uni-swiper-dot/package.json | 87 + .../uni_modules/uni-swiper-dot/readme.md | 11 + .../uni_modules/uni-table/changelog.md | 23 + .../components/uni-table/uni-table.vue | 455 + .../components/uni-tbody/uni-tbody.vue | 29 + .../uni-table/components/uni-td/uni-td.vue | 90 + .../components/uni-th/filter-dropdown.vue | 503 + .../uni-table/components/uni-th/uni-th.vue | 278 + .../components/uni-thead/uni-thead.vue | 129 + .../components/uni-tr/table-checkbox.vue | 179 + .../uni-table/components/uni-tr/uni-tr.vue | 171 + .../uni_modules/uni-table/i18n/en.json | 9 + .../uni_modules/uni-table/i18n/es.json | 9 + .../uni_modules/uni-table/i18n/fr.json | 9 + .../uni_modules/uni-table/i18n/index.js | 12 + .../uni_modules/uni-table/i18n/zh-Hans.json | 9 + .../uni_modules/uni-table/i18n/zh-Hant.json | 9 + .../uni_modules/uni-table/package.json | 86 + .../uni_modules/uni-table/readme.md | 13 + .../uni_modules/uni-tag/changelog.md | 21 + .../uni-tag/components/uni-tag/uni-tag.vue | 252 + .../uni_modules/uni-tag/package.json | 87 + .../uni_modules/uni-tag/readme.md | 13 + .../uni_modules/uni-title/changelog.md | 10 + .../components/uni-title/uni-title.vue | 171 + .../uni_modules/uni-title/package.json | 88 + .../uni_modules/uni-title/readme.md | 14 + .../uni_modules/uni-tooltip/changelog.md | 10 + .../components/uni-tooltip/uni-tooltip.vue | 68 + .../uni_modules/uni-tooltip/package.json | 88 + .../uni_modules/uni-tooltip/readme.md | 8 + .../uni_modules/uni-transition/changelog.md | 20 + .../uni-transition/createAnimation.js | 128 + .../uni-transition/uni-transition.vue | 277 + .../uni_modules/uni-transition/package.json | 87 + .../uni_modules/uni-transition/readme.md | 11 + yunxi-ui-admin-uniapp/utils/auth.js | 22 + yunxi-ui-admin-uniapp/utils/common.js | 54 + yunxi-ui-admin-uniapp/utils/constant.js | 8 + yunxi-ui-admin-uniapp/utils/errorCode.js | 6 + yunxi-ui-admin-uniapp/utils/permission.js | 51 + yunxi-ui-admin-uniapp/utils/request.js | 76 + yunxi-ui-admin-uniapp/utils/ruoyi.js | 47 + yunxi-ui-admin-uniapp/utils/storage.js | 33 + yunxi-ui-admin-uniapp/utils/upload.js | 73 + yunxi-ui-admin/.dockerignore | 3 + yunxi-ui-admin/.editorconfig | 22 + yunxi-ui-admin/.env.dev | 23 + yunxi-ui-admin/.env.front | 23 + yunxi-ui-admin/.env.prod | 25 + yunxi-ui-admin/.env.stage | 25 + yunxi-ui-admin/.env.static | 27 + yunxi-ui-admin/.eslintignore | 10 + yunxi-ui-admin/.eslintrc.js | 192 + yunxi-ui-admin/.gitignore | 22 + yunxi-ui-admin/.npmrc | 4 + yunxi-ui-admin/Dockerfile | 21 + yunxi-ui-admin/Jenkinsfile | 44 + yunxi-ui-admin/babel.config.js | 13 + yunxi-ui-admin/bin/build.bat | 12 + yunxi-ui-admin/bin/package.bat | 12 + yunxi-ui-admin/bin/run-web.bat | 12 + yunxi-ui-admin/build/index.js | 35 + yunxi-ui-admin/nginx.conf | 26 + yunxi-ui-admin/package.json | 112 + yunxi-ui-admin/public/favicon.ico | Bin 0 -> 5663 bytes yunxi-ui-admin/public/html/ie.html | 45 + yunxi-ui-admin/public/index.html | 208 + .../browser/ui/codicons/codicon/codicon.ttf | Bin 0 -> 65176 bytes .../vs/base/worker/workerMain.js | 12 + .../vs/basic-languages/abap/abap.js | 7 + .../vs/basic-languages/apex/apex.js | 7 + .../vs/basic-languages/azcli/azcli.js | 7 + .../vs/basic-languages/bat/bat.js | 7 + .../vs/basic-languages/cameligo/cameligo.js | 7 + .../vs/basic-languages/clojure/clojure.js | 7 + .../vs/basic-languages/coffee/coffee.js | 7 + .../vs/basic-languages/cpp/cpp.js | 7 + .../vs/basic-languages/csharp/csharp.js | 7 + .../vs/basic-languages/csp/csp.js | 7 + .../vs/basic-languages/css/css.js | 7 + .../vs/basic-languages/dart/dart.js | 7 + .../basic-languages/dockerfile/dockerfile.js | 7 + .../vs/basic-languages/ecl/ecl.js | 7 + .../vs/basic-languages/fsharp/fsharp.js | 7 + .../monaco-editor/vs/basic-languages/go/go.js | 7 + .../vs/basic-languages/graphql/graphql.js | 7 + .../basic-languages/handlebars/handlebars.js | 7 + .../vs/basic-languages/hcl/hcl.js | 7 + .../vs/basic-languages/html/html.js | 7 + .../vs/basic-languages/ini/ini.js | 7 + .../vs/basic-languages/java/java.js | 7 + .../basic-languages/javascript/javascript.js | 7 + .../vs/basic-languages/julia/julia.js | 7 + .../vs/basic-languages/kotlin/kotlin.js | 7 + .../vs/basic-languages/less/less.js | 7 + .../vs/basic-languages/lexon/lexon.js | 7 + .../vs/basic-languages/lua/lua.js | 7 + .../monaco-editor/vs/basic-languages/m3/m3.js | 7 + .../vs/basic-languages/markdown/markdown.js | 7 + .../vs/basic-languages/mips/mips.js | 7 + .../vs/basic-languages/msdax/msdax.js | 7 + .../vs/basic-languages/mysql/mysql.js | 7 + .../objective-c/objective-c.js | 7 + .../vs/basic-languages/pascal/pascal.js | 7 + .../vs/basic-languages/pascaligo/pascaligo.js | 7 + .../vs/basic-languages/perl/perl.js | 7 + .../vs/basic-languages/pgsql/pgsql.js | 7 + .../vs/basic-languages/php/php.js | 7 + .../vs/basic-languages/postiats/postiats.js | 7 + .../basic-languages/powerquery/powerquery.js | 7 + .../basic-languages/powershell/powershell.js | 7 + .../vs/basic-languages/pug/pug.js | 7 + .../vs/basic-languages/python/python.js | 7 + .../monaco-editor/vs/basic-languages/r/r.js | 7 + .../vs/basic-languages/razor/razor.js | 7 + .../vs/basic-languages/redis/redis.js | 7 + .../vs/basic-languages/redshift/redshift.js | 7 + .../restructuredtext/restructuredtext.js | 7 + .../vs/basic-languages/ruby/ruby.js | 7 + .../vs/basic-languages/rust/rust.js | 7 + .../monaco-editor/vs/basic-languages/sb/sb.js | 7 + .../vs/basic-languages/scala/scala.js | 7 + .../vs/basic-languages/scheme/scheme.js | 7 + .../vs/basic-languages/scss/scss.js | 7 + .../vs/basic-languages/shell/shell.js | 7 + .../vs/basic-languages/solidity/solidity.js | 7 + .../vs/basic-languages/sophia/sophia.js | 7 + .../vs/basic-languages/sql/sql.js | 7 + .../monaco-editor/vs/basic-languages/st/st.js | 7 + .../vs/basic-languages/swift/swift.js | 10 + .../systemverilog/systemverilog.js | 7 + .../vs/basic-languages/tcl/tcl.js | 7 + .../vs/basic-languages/twig/twig.js | 7 + .../basic-languages/typescript/typescript.js | 7 + .../monaco-editor/vs/basic-languages/vb/vb.js | 7 + .../vs/basic-languages/xml/xml.js | 7 + .../vs/basic-languages/yaml/yaml.js | 7 + .../monaco-editor/vs/editor/editor.main.css | 6 + .../monaco-editor/vs/editor/editor.main.js | 755 ++ .../vs/editor/editor.main.nls.de.js | 8 + .../vs/editor/editor.main.nls.es.js | 8 + .../vs/editor/editor.main.nls.fr.js | 8 + .../vs/editor/editor.main.nls.it.js | 6 + .../vs/editor/editor.main.nls.ja.js | 8 + .../vs/editor/editor.main.nls.js | 1 + .../vs/editor/editor.main.nls.ko.js | 6 + .../vs/editor/editor.main.nls.ru.js | 8 + .../vs/editor/editor.main.nls.zh-cn.js | 8 + .../vs/editor/editor.main.nls.zh-tw.js | 6 + .../monaco-editor/vs/language/css/cssMode.js | 7 + .../vs/language/css/cssWorker.js | 7 + .../vs/language/html/htmlMode.js | 7 + .../vs/language/html/htmlWorker.js | 7 + .../vs/language/json/jsonMode.js | 7 + .../vs/language/json/jsonWorker.js | 7 + .../vs/language/typescript/tsMode.js | 7 + .../vs/language/typescript/tsWorker.js | 21 + .../public/libs/monaco-editor/vs/loader.js | 8 + yunxi-ui-admin/public/robots.txt | 2 + yunxi-ui-admin/src/App.vue | 28 + yunxi-ui-admin/src/api/bpm/activity.js | 9 + yunxi-ui-admin/src/api/bpm/definition.js | 24 + yunxi-ui-admin/src/api/bpm/form.js | 52 + yunxi-ui-admin/src/api/bpm/leave.js | 27 + yunxi-ui-admin/src/api/bpm/model.js | 58 + yunxi-ui-admin/src/api/bpm/processInstance.js | 35 + yunxi-ui-admin/src/api/bpm/task.js | 63 + yunxi-ui-admin/src/api/bpm/taskAssignRule.js | 25 + yunxi-ui-admin/src/api/bpm/userGroup.js | 52 + yunxi-ui-admin/src/api/demo/material.js | 54 + yunxi-ui-admin/src/api/infra/apiAccessLog.js | 20 + yunxi-ui-admin/src/api/infra/apiErrorLog.js | 28 + yunxi-ui-admin/src/api/infra/codegen.js | 90 + yunxi-ui-admin/src/api/infra/config.js | 62 + .../src/api/infra/dataSourceConfig.js | 43 + yunxi-ui-admin/src/api/infra/dbDoc.js | 26 + yunxi-ui-admin/src/api/infra/file.js | 18 + yunxi-ui-admin/src/api/infra/fileConfig.js | 59 + yunxi-ui-admin/src/api/infra/job.js | 82 + yunxi-ui-admin/src/api/infra/jobLog.js | 28 + yunxi-ui-admin/src/api/infra/redis.js | 9 + yunxi-ui-admin/src/api/infra/testDemo.js | 54 + yunxi-ui-admin/src/api/login.js | 148 + yunxi-ui-admin/src/api/mall/market/banner.js | 54 + yunxi-ui-admin/src/api/mall/product/brand.js | 63 + .../src/api/mall/product/category.js | 44 + .../src/api/mall/product/property.js | 113 + yunxi-ui-admin/src/api/mall/product/sku.js | 9 + yunxi-ui-admin/src/api/mall/product/spu.js | 52 + .../src/api/mall/promotion/coupon.js | 18 + .../src/api/mall/promotion/couponTemplate.js | 67 + .../api/mall/promotion/discountActivity.js | 52 + .../src/api/mall/promotion/rewardActivity.js | 52 + .../src/api/mall/promotion/seckillActivity.js | 52 + .../src/api/mall/promotion/seckillTime.js | 62 + .../src/api/mall/trade/afterSale.js | 18 + yunxi-ui-admin/src/api/mall/trade/order.js | 18 + yunxi-ui-admin/src/api/mp/account.js | 68 + yunxi-ui-admin/src/api/mp/autoReply.js | 44 + yunxi-ui-admin/src/api/mp/draft.js | 38 + yunxi-ui-admin/src/api/mp/freePublish.js | 26 + yunxi-ui-admin/src/api/mp/material.js | 18 + yunxi-ui-admin/src/api/mp/menu.js | 29 + yunxi-ui-admin/src/api/mp/message.js | 19 + yunxi-ui-admin/src/api/mp/mpuser.js | 35 + yunxi-ui-admin/src/api/mp/statistics.js | 37 + yunxi-ui-admin/src/api/mp/tag.js | 60 + yunxi-ui-admin/src/api/pay/app.js | 65 + yunxi-ui-admin/src/api/pay/channel.js | 41 + yunxi-ui-admin/src/api/pay/demo.js | 35 + yunxi-ui-admin/src/api/pay/notify.js | 18 + yunxi-ui-admin/src/api/pay/order.js | 53 + yunxi-ui-admin/src/api/pay/refund.js | 54 + yunxi-ui-admin/src/api/system/area.js | 17 + yunxi-ui-admin/src/api/system/dept.js | 60 + yunxi-ui-admin/src/api/system/dict/data.js | 70 + yunxi-ui-admin/src/api/system/dict/type.js | 62 + yunxi-ui-admin/src/api/system/errorCode.js | 54 + yunxi-ui-admin/src/api/system/loginlog.js | 20 + yunxi-ui-admin/src/api/system/mail/account.js | 52 + yunxi-ui-admin/src/api/system/mail/log.js | 18 + .../src/api/system/mail/template.js | 53 + yunxi-ui-admin/src/api/system/menu.js | 52 + yunxi-ui-admin/src/api/system/notice.js | 44 + .../src/api/system/notify/message.js | 52 + .../src/api/system/notify/template.js | 64 + .../src/api/system/oauth2/oauth2Client.js | 44 + .../src/api/system/oauth2/oauth2Token.js | 18 + yunxi-ui-admin/src/api/system/operatelog.js | 20 + yunxi-ui-admin/src/api/system/permission.js | 44 + yunxi-ui-admin/src/api/system/post.js | 62 + yunxi-ui-admin/src/api/system/role.js | 75 + .../src/api/system/sensitiveWord.js | 71 + .../src/api/system/sms/smsChannel.js | 52 + yunxi-ui-admin/src/api/system/sms/smsLog.js | 20 + .../src/api/system/sms/smsTemplate.js | 64 + yunxi-ui-admin/src/api/system/socialUser.js | 26 + yunxi-ui-admin/src/api/system/tenant.js | 65 + .../src/api/system/tenantPackage.js | 52 + yunxi-ui-admin/src/api/system/user.js | 145 + yunxi-ui-admin/src/api/xxjj/brandLibrary.js | 62 + yunxi-ui-admin/src/api/xxjj/businessLine.js | 62 + yunxi-ui-admin/src/api/xxjj/customer.js | 71 + yunxi-ui-admin/src/api/xxjj/enterprise.js | 54 + .../src/api/xxjj/enterpriseContract.js | 54 + yunxi-ui-admin/src/api/xxjj/material.js | 54 + .../src/api/xxjj/material/material.js | 54 + .../src/api/xxjj/material/materialCategory.js | 60 + .../src/api/xxjj/material/materialIndustry.js | 54 + .../src/api/xxjj/material/materialType.js | 54 + .../src/api/xxjj/materialCategory.js | 60 + .../src/api/xxjj/materialIndustry.js | 54 + .../src/api/xxjj/materialQuality.js | 54 + yunxi-ui-admin/src/api/xxjj/materialType.js | 54 + .../src/api/xxjj/productionProcesses.js | 54 + yunxi-ui-admin/src/api/xxjj/supplier.js | 62 + yunxi-ui-admin/src/api/xxjj/unitLibrary.js | 61 + yunxi-ui-admin/src/api/xxjj/warehouse.js | 54 + yunxi-ui-admin/src/api/xxjj/warehouseOut.js | 54 + .../src/api/xxjj/warehouseReceipt.js | 54 + yunxi-ui-admin/src/assets/401_images/401.gif | Bin 0 -> 5580 bytes yunxi-ui-admin/src/assets/404_images/404.png | Bin 0 -> 17840 bytes .../src/assets/404_images/404_cloud.png | Bin 0 -> 2411 bytes yunxi-ui-admin/src/assets/icons/index.js | 9 + yunxi-ui-admin/src/assets/icons/svg/404.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/bug.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/build.svg | 1 + .../src/assets/icons/svg/button.svg | 1 + .../src/assets/icons/svg/cascader.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/chart.svg | 1 + .../src/assets/icons/svg/checkbox.svg | 1 + .../src/assets/icons/svg/clipboard.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/code.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/color.svg | 1 + .../src/assets/icons/svg/component.svg | 1 + .../src/assets/icons/svg/config.svg | 1 + .../src/assets/icons/svg/dashboard.svg | 1 + .../src/assets/icons/svg/date-range.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/date.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/dict.svg | 1 + .../src/assets/icons/svg/documentation.svg | 1 + .../src/assets/icons/svg/download.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/drag.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/druid.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/edit.svg | 1 + .../src/assets/icons/svg/education.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/email.svg | 1 + .../src/assets/icons/svg/example.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/excel.svg | 1 + .../src/assets/icons/svg/exit-fullscreen.svg | 1 + .../src/assets/icons/svg/eye-open.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/eye.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/form.svg | 1 + .../src/assets/icons/svg/fullscreen.svg | 1 + .../src/assets/icons/svg/github.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/guide.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/icon.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/input.svg | 1 + .../src/assets/icons/svg/international.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/job.svg | 1 + .../src/assets/icons/svg/language.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/link.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/list.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/lock.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/log.svg | 1 + .../src/assets/icons/svg/logininfor.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/map.svg | 1 + .../src/assets/icons/svg/merchant.svg | 1 + .../src/assets/icons/svg/message.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/money.svg | 1 + .../src/assets/icons/svg/monitor.svg | 1 + .../src/assets/icons/svg/nested.svg | 1 + .../src/assets/icons/svg/number.svg | 1 + .../src/assets/icons/svg/online.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/order.svg | 1 + .../src/assets/icons/svg/password.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/pay.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/pdf.svg | 1 + .../src/assets/icons/svg/people.svg | 1 + .../src/assets/icons/svg/peoples.svg | 1 + .../src/assets/icons/svg/percentSign.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/phone.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/post.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/qq.svg | 1 + .../src/assets/icons/svg/question.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/radio.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/rate.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/redis.svg | 1 + .../src/assets/icons/svg/rich-text.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/row.svg | 1 + .../src/assets/icons/svg/search.svg | 1 + .../src/assets/icons/svg/select.svg | 1 + .../src/assets/icons/svg/server.svg | 1 + .../src/assets/icons/svg/shopping.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/size.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/skill.svg | 1 + .../src/assets/icons/svg/slider.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/star.svg | 1 + .../src/assets/icons/svg/swagger.svg | 1 + .../src/assets/icons/svg/switch.svg | 1 + .../src/assets/icons/svg/system.svg | 2 + yunxi-ui-admin/src/assets/icons/svg/tab.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/table.svg | 1 + .../src/assets/icons/svg/textarea.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/theme.svg | 1 + .../src/assets/icons/svg/time-range.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/time.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/tool.svg | 1 + .../src/assets/icons/svg/tree-table.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/tree.svg | 1 + .../src/assets/icons/svg/upload.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/user.svg | 1 + .../src/assets/icons/svg/validCode.svg | 1 + .../src/assets/icons/svg/wechat.svg | 1 + yunxi-ui-admin/src/assets/icons/svg/zip.svg | 1 + yunxi-ui-admin/src/assets/icons/svgo.yml | 22 + .../src/assets/images/bg-mobile.png | Bin 0 -> 11090 bytes yunxi-ui-admin/src/assets/images/bg.png | Bin 0 -> 61222 bytes yunxi-ui-admin/src/assets/images/dark.svg | 1 + yunxi-ui-admin/src/assets/images/default.jpg | Bin 0 -> 20200 bytes yunxi-ui-admin/src/assets/images/icon.png | Bin 0 -> 229 bytes yunxi-ui-admin/src/assets/images/light.svg | 1 + .../src/assets/images/pay/icon/alipay_app.svg | 1 + .../src/assets/images/pay/icon/alipay_bar.svg | 2 + .../src/assets/images/pay/icon/alipay_pc.svg | 1 + .../src/assets/images/pay/icon/alipay_qr.svg | 2 + .../src/assets/images/pay/icon/alipay_wap.svg | 1 + .../src/assets/images/pay/icon/mock.svg | 1 + .../src/assets/images/pay/icon/wx_app.svg | 2 + .../src/assets/images/pay/icon/wx_bar.svg | 1 + .../src/assets/images/pay/icon/wx_lite.svg | 1 + .../src/assets/images/pay/icon/wx_native.svg | 1 + .../src/assets/images/pay/icon/wx_pub.svg | 2 + yunxi-ui-admin/src/assets/images/pic.png | Bin 0 -> 26025 bytes yunxi-ui-admin/src/assets/images/profile.jpg | Bin 0 -> 7885 bytes yunxi-ui-admin/src/assets/images/wechat.png | Bin 0 -> 1881 bytes yunxi-ui-admin/src/assets/logo/login-logo.png | Bin 0 -> 4439 bytes yunxi-ui-admin/src/assets/logo/logo.png | Bin 0 -> 5695 bytes yunxi-ui-admin/src/assets/styles/btn.scss | 99 + .../src/assets/styles/element-ui.scss | 92 + .../src/assets/styles/element-variables.scss | 31 + yunxi-ui-admin/src/assets/styles/index.scss | 191 + yunxi-ui-admin/src/assets/styles/login.scss | 388 + yunxi-ui-admin/src/assets/styles/mixin.scss | 66 + yunxi-ui-admin/src/assets/styles/ruoyi.scss | 286 + yunxi-ui-admin/src/assets/styles/sidebar.scss | 227 + .../src/assets/styles/transition.scss | 53 + .../src/assets/styles/variables.scss | 54 + .../src/components/Breadcrumb/index.vue | 75 + yunxi-ui-admin/src/components/Crontab/day.vue | 160 + .../src/components/Crontab/hour.vue | 114 + .../src/components/Crontab/index.vue | 430 + yunxi-ui-admin/src/components/Crontab/min.vue | 116 + .../src/components/Crontab/month.vue | 114 + .../src/components/Crontab/result.vue | 559 + .../src/components/Crontab/second.vue | 117 + .../src/components/Crontab/week.vue | 202 + .../src/components/Crontab/year.vue | 131 + .../src/components/DictTag/index.vue | 28 + .../src/components/DocAlert/index.vue | 33 + .../src/components/Editor/index.vue | 279 + .../src/components/FileUpload/index.vue | 220 + .../src/components/Hamburger/index.vue | 44 + .../src/components/HeaderSearch/index.vue | 187 + .../src/components/IconSelect/index.vue | 68 + .../src/components/IconSelect/requireIcons.js | 11 + .../src/components/ImagePreview/index.vue | 90 + .../src/components/ImageUpload/index.vue | 205 + .../src/components/Pagination/index.vue | 114 + .../src/components/PanThumb/index.vue | 141 + .../src/components/ParentView/index.vue | 3 + yunxi-ui-admin/src/components/RADME.md | 21 + .../src/components/RightPanel/index.vue | 143 + .../src/components/RightToolbar/index.vue | 104 + .../src/components/RuoYi/Doc/index.vue | 21 + .../src/components/RuoYi/Git/index.vue | 21 + .../src/components/Screenfull/index.vue | 57 + .../src/components/SizeSelect/index.vue | 57 + .../src/components/SvgIcon/index.vue | 61 + .../src/components/ThemePicker/index.vue | 173 + .../src/components/TopNav/index.vue | 188 + .../src/components/Verifition/Verify.vue | 462 + .../Verifition/Verify/VerifyPoints.vue | 265 + .../Verifition/Verify/VerifySlide.vue | 382 + .../src/components/Verifition/utils/util.js | 36 + .../src/components/VideoUpload/index.vue | 214 + .../package/designer/ProcessDesigner.vue | 476 + .../package/designer/ProcessViewer.vue | 487 + .../package/designer/index.js | 8 + .../package/designer/index2.js | 8 + .../plugins/content-pad/contentPadProvider.js | 390 + .../designer/plugins/content-pad/index.js | 6 + .../package/designer/plugins/defaultEmpty.js | 24 + .../descriptor/activitiDescriptor.json | 1071 ++ .../plugins/descriptor/camundaDescriptor.json | 1087 ++ .../descriptor/flowableDescriptor.json | 1210 ++ .../activiti/activitiExtension.js | 74 + .../extension-moddle/activiti/index.js | 9 + .../extension-moddle/camunda/extension.js | 146 + .../plugins/extension-moddle/camunda/index.js | 6 + .../flowable/flowableExtension.js | 74 + .../extension-moddle/flowable/index.js | 9 + .../designer/plugins/palette/CustomPalette.js | 156 + .../package/designer/plugins/palette/index.js | 22 + .../plugins/palette/paletteProvider.js | 160 + .../plugins/translate/customTranslate.js | 41 + .../package/designer/plugins/translate/zh.js | 238 + .../bpmnProcessDesigner/package/index.js | 21 + .../package/palette/ProcessPalette.vue | 48 + .../package/penal/PropertiesPanel.vue | 197 + .../package/penal/base/ElementBaseInfo.vue | 147 + .../penal/flow-condition/FlowCondition.vue | 142 + .../package/penal/form/ElementForm.vue | 361 + .../package/penal/index.js | 7 + .../penal/listeners/ElementListeners.vue | 296 + .../penal/listeners/UserTaskListeners.vue | 319 + .../package/penal/listeners/template.js | 178 + .../package/penal/listeners/utilSelf.js | 62 + .../multi-instance/ElementMultiInstance.vue | 192 + .../penal/other/ElementOtherConfig.vue | 59 + .../penal/properties/ElementProperties.vue | 135 + .../penal/signal-message/SignalAndMessage.vue | 104 + .../package/penal/task/ElementTask.vue | 72 + .../task/task-components/ReceiveTask.vue | 97 + .../penal/task/task-components/ScriptTask.vue | 85 + .../penal/task/task-components/UserTask.vue | 89 + .../package/theme/element-variables.scss | 70 + .../package/theme/index.scss | 2 + .../package/theme/process-designer.scss | 156 + .../package/theme/process-panel.scss | 107 + .../bpmnProcessDesigner/package/utils.js | 69 + .../src/highlight/index.js | 5 + .../modules/custom-renderer/CustomRenderer.js | 14 + .../src/modules/custom-renderer/index.js | 6 + .../src/modules/rules/CustomRules.js | 16 + .../src/modules/rules/index.js | 6 + .../bpmnProcessDesigner/src/translations.js | 25 + .../src/utils/directive/clickOutSide.js | 39 + .../bpmnProcessDesigner/src/utils/index.js | 10 + .../bpmnProcessDesigner/src/utils/log.js | 63 + .../bpmnProcessDesigner/src/utils/xml2json.js | 50 + .../src/components/generator/config.js | 630 + .../src/components/generator/css.js | 18 + .../components/generator/drawingDefalut.js | 37 + .../src/components/generator/html.js | 399 + yunxi-ui-admin/src/components/generator/js.js | 271 + .../src/components/generator/ruleTrigger.js | 16 + .../src/components/iFrame/index.vue | 36 + .../src/components/parser/Parser.vue | 233 + .../src/components/parser/README.md | 17 + .../src/components/parser/example/Index.vue | 324 + yunxi-ui-admin/src/components/parser/index.js | 3 + .../src/components/parser/package.json | 25 + .../src/components/render/package.json | 19 + .../src/components/render/render.js | 122 + .../src/components/render/slots/el-button.js | 5 + .../render/slots/el-checkbox-group.js | 13 + .../src/components/render/slots/el-input.js | 8 + .../components/render/slots/el-radio-group.js | 13 + .../src/components/render/slots/el-select.js | 9 + .../src/components/render/slots/el-upload.js | 17 + .../src/components/tinymce/README.md | 3 + .../src/components/tinymce/config.js | 8 + .../src/components/tinymce/example/Index.vue | 38 + .../src/components/tinymce/index.js | 3 + .../src/components/tinymce/index.vue | 88 + .../src/components/tinymce/package.json | 28 + .../src/components/tinymce/zh_CN.js | 420 + yunxi-ui-admin/src/directive/dialog/drag.js | 63 + .../src/directive/dialog/dragHeight.js | 34 + .../src/directive/dialog/dragWidth.js | 30 + yunxi-ui-admin/src/directive/index.js | 24 + .../src/directive/module/clipboard.js | 54 + .../src/directive/permission/hasPermi.js | 27 + .../src/directive/permission/hasRole.js | 28 + .../src/layout/components/AppMain.vue | 61 + .../layout/components/IframeToggle/index.vue | 24 + .../src/layout/components/InnerLink/index.vue | 47 + .../src/layout/components/Message/index.vue | 83 + .../src/layout/components/Navbar.vue | 210 + .../src/layout/components/Settings/index.vue | 257 + .../layout/components/Sidebar/FixiOSBug.js | 25 + .../src/layout/components/Sidebar/Item.vue | 33 + .../src/layout/components/Sidebar/Link.vue | 43 + .../src/layout/components/Sidebar/Logo.vue | 93 + .../layout/components/Sidebar/SidebarItem.vue | 96 + .../src/layout/components/Sidebar/index.vue | 58 + .../layout/components/TagsView/ScrollPane.vue | 92 + .../src/layout/components/TagsView/index.vue | 333 + yunxi-ui-admin/src/layout/components/index.js | 5 + yunxi-ui-admin/src/layout/index.vue | 111 + .../src/layout/mixin/ResizeHandler.js | 45 + yunxi-ui-admin/src/main.js | 99 + yunxi-ui-admin/src/permission.js | 61 + yunxi-ui-admin/src/plugins/auth.js | 60 + yunxi-ui-admin/src/plugins/cache.js | 77 + yunxi-ui-admin/src/plugins/download.js | 41 + yunxi-ui-admin/src/plugins/index.js | 20 + yunxi-ui-admin/src/plugins/modal.js | 83 + yunxi-ui-admin/src/plugins/tab.js | 70 + yunxi-ui-admin/src/router/index.js | 253 + yunxi-ui-admin/src/settings.js | 45 + yunxi-ui-admin/src/store/getters.js | 23 + yunxi-ui-admin/src/store/index.js | 25 + yunxi-ui-admin/src/store/modules/app.js | 66 + yunxi-ui-admin/src/store/modules/dict.js | 52 + .../src/store/modules/permission.js | 130 + yunxi-ui-admin/src/store/modules/settings.js | 42 + yunxi-ui-admin/src/store/modules/tagsView.js | 228 + yunxi-ui-admin/src/store/modules/user.js | 142 + yunxi-ui-admin/src/styles/home.scss | 271 + yunxi-ui-admin/src/styles/index.scss | 146 + yunxi-ui-admin/src/styles/mixin.scss | 33 + yunxi-ui-admin/src/tongji.js | 21 + yunxi-ui-admin/src/utils/ase.js | 21 + yunxi-ui-admin/src/utils/auth.js | 99 + yunxi-ui-admin/src/utils/constants.js | 380 + yunxi-ui-admin/src/utils/dateUtils.js | 75 + yunxi-ui-admin/src/utils/db.js | 54 + yunxi-ui-admin/src/utils/dict.js | 180 + yunxi-ui-admin/src/utils/errorCode.js | 6 + yunxi-ui-admin/src/utils/formGenerator.js | 32 + yunxi-ui-admin/src/utils/icon.json | 1 + yunxi-ui-admin/src/utils/index.js | 440 + yunxi-ui-admin/src/utils/jsencrypt.js | 30 + yunxi-ui-admin/src/utils/loadBeautifier.js | 28 + yunxi-ui-admin/src/utils/loadMonaco.js | 40 + yunxi-ui-admin/src/utils/loadScript.js | 60 + yunxi-ui-admin/src/utils/loadTinymce.js | 29 + yunxi-ui-admin/src/utils/permission.js | 47 + yunxi-ui-admin/src/utils/pluginsConfig.js | 13 + yunxi-ui-admin/src/utils/request.js | 199 + yunxi-ui-admin/src/utils/ruoyi.js | 253 + yunxi-ui-admin/src/utils/scroll-to.js | 60 + yunxi-ui-admin/src/utils/validate.js | 81 + .../src/views/bpm/definition/index.vue | 174 + .../src/views/bpm/form/formEditor.vue | 567 + yunxi-ui-admin/src/views/bpm/form/index.vue | 161 + yunxi-ui-admin/src/views/bpm/group/index.vue | 246 + yunxi-ui-admin/src/views/bpm/model/index.vue | 548 + .../src/views/bpm/model/modelEditor.vue | 170 + .../src/views/bpm/oa/leave/create.vue | 75 + .../src/views/bpm/oa/leave/detail.vue | 59 + .../src/views/bpm/oa/leave/index.vue | 173 + .../src/views/bpm/processInstance/create.vue | 168 + .../src/views/bpm/processInstance/detail.vue | 400 + .../src/views/bpm/processInstance/index.vue | 182 + .../src/views/bpm/task/done/index.vue | 120 + .../src/views/bpm/task/todo/index.vue | 107 + .../taskAssignRule/taskAssignRuleDialog.vue | 337 + .../views/components/icons/element-icons.js | 3 + .../src/views/components/icons/index.vue | 87 + .../src/views/components/icons/svg-icons.js | 10 + .../src/views/dashboard/BarChart.vue | 102 + .../src/views/dashboard/LineChart.vue | 135 + .../src/views/dashboard/PanelGroup.vue | 180 + .../src/views/dashboard/PieChart.vue | 79 + .../src/views/dashboard/RaddarChart.vue | 116 + .../src/views/dashboard/mixins/resize.js | 56 + .../src/views/demo/material/index.vue | 300 + yunxi-ui-admin/src/views/error/401.vue | 88 + yunxi-ui-admin/src/views/error/404.vue | 233 + yunxi-ui-admin/src/views/index.vue | 98 + .../src/views/infra/apiAccessLog/index.vue | 210 + .../src/views/infra/apiErrorLog/index.vue | 228 + yunxi-ui-admin/src/views/infra/build/App.vue | 22 + .../src/views/infra/build/CodeTypeDialog.vue | 110 + .../src/views/infra/build/DraggableItem.vue | 120 + .../src/views/infra/build/FormDrawer.vue | 331 + .../src/views/infra/build/IconsDialog.vue | 123 + .../src/views/infra/build/JsonDrawer.vue | 144 + .../src/views/infra/build/README.md | 0 .../src/views/infra/build/ResourceDialog.vue | 116 + .../src/views/infra/build/RightPanel.vue | 1050 ++ .../src/views/infra/build/TreeNodeDialog.vue | 158 + .../src/views/infra/build/index.vue | 470 + yunxi-ui-admin/src/views/infra/build/main.js | 19 + .../src/views/infra/codegen/basicInfoForm.vue | 67 + .../src/views/infra/codegen/editTable.vue | 235 + .../src/views/infra/codegen/genInfoForm.vue | 339 + .../src/views/infra/codegen/importTable.vue | 114 + .../src/views/infra/codegen/index.vue | 317 + .../src/views/infra/config/index.vue | 262 + .../views/infra/dataSourceConfig/index.vue | 166 + .../src/views/infra/dbDoc/index.vue | 70 + .../src/views/infra/druid/index.vue | 32 + yunxi-ui-admin/src/views/infra/file/index.vue | 216 + .../src/views/infra/fileConfig/index.vue | 305 + yunxi-ui-admin/src/views/infra/job/index.vue | 378 + yunxi-ui-admin/src/views/infra/job/log.vue | 181 + .../src/views/infra/redis/index.vue | 157 + .../src/views/infra/server/index.vue | 30 + .../src/views/infra/skywalking/index.vue | 30 + .../src/views/infra/swagger/index.vue | 31 + .../src/views/infra/testDemo/index.vue | 257 + .../src/views/infra/webSocket/index.vue | 92 + yunxi-ui-admin/src/views/login.vue | 352 + .../src/views/mall/market/banner/index.vue | 261 + .../src/views/mall/product/brand/index.vue | 247 + .../src/views/mall/product/category/index.vue | 270 + .../src/views/mall/product/property/index.vue | 207 + .../src/views/mall/product/property/value.vue | 240 + .../src/views/mall/product/spu/index.vue | 392 + .../src/views/mall/product/spu/save.vue | 580 + .../src/views/mall/promotion/coupon/index.vue | 164 + .../mall/promotion/couponTemplate/index.vue | 404 + .../mall/promotion/discountActivity/index.vue | 383 + .../mall/promotion/rewardActivity/index.vue | 306 + .../seckill/seckillActivity/index.vue | 491 + .../promotion/seckill/seckillTime/index.vue | 198 + .../src/views/mall/trade/afterSale/index.vue | 229 + .../src/views/mall/trade/order/detail.vue | 279 + .../src/views/mall/trade/order/index.vue | 281 + yunxi-ui-admin/src/views/mp/account/index.vue | 290 + .../src/views/mp/autoReply/index.vue | 384 + .../mp/components/wx-editor/WxEditor.vue | 230 + .../views/mp/components/wx-location/main.vue | 36 + .../mp/components/wx-material-select/main.vue | 247 + .../src/views/mp/components/wx-msg/card.scss | 101 + .../views/mp/components/wx-msg/comment.scss | 88 + .../src/views/mp/components/wx-msg/main.vue | 294 + .../src/views/mp/components/wx-music/main.vue | 52 + .../src/views/mp/components/wx-news/main.vue | 104 + .../src/views/mp/components/wx-reply/main.vue | 547 + .../mp/components/wx-video-play/main.vue | 91 + .../mp/components/wx-voice-play/main.vue | 98 + yunxi-ui-admin/src/views/mp/draft/index.vue | 700 + .../src/views/mp/freePublish/index.vue | 395 + .../src/views/mp/material/index.vue | 440 + .../src/views/mp/menu/assets/demo.png | Bin 0 -> 38335 bytes .../views/mp/menu/assets/iphone_backImg.png | Bin 0 -> 34272 bytes .../src/views/mp/menu/assets/logo.png | Bin 0 -> 6849 bytes .../src/views/mp/menu/assets/menu_foot.png | Bin 0 -> 1348 bytes .../src/views/mp/menu/assets/menu_head.png | Bin 0 -> 12673 bytes yunxi-ui-admin/src/views/mp/menu/index.vue | 714 ++ yunxi-ui-admin/src/views/mp/message/index.vue | 238 + .../src/views/mp/statistics/index.vue | 364 + yunxi-ui-admin/src/views/mp/tag/index.vue | 243 + yunxi-ui-admin/src/views/mp/user/index.vue | 236 + .../pay/app/components/alipayChannelForm.vue | 263 + .../pay/app/components/mockChannelForm.vue | 107 + .../pay/app/components/weixinChannelForm.vue | 257 + yunxi-ui-admin/src/views/pay/app/index.vue | 409 + .../src/views/pay/cashier/index.vue | 403 + yunxi-ui-admin/src/views/pay/demo/index.vue | 218 + yunxi-ui-admin/src/views/pay/notify/index.vue | 222 + yunxi-ui-admin/src/views/pay/order/index.vue | 327 + yunxi-ui-admin/src/views/pay/refund/index.vue | 323 + yunxi-ui-admin/src/views/redirect.vue | 12 + .../src/views/report/goview/index.vue | 18 + .../src/views/report/jmreport/index.vue | 19 + yunxi-ui-admin/src/views/socialLogin.vue | 192 + yunxi-ui-admin/src/views/sso.vue | 194 + .../src/views/system/area/index.vue | 114 + .../src/views/system/dept/index.vue | 317 + yunxi-ui-admin/src/views/system/dict/data.vue | 304 + .../src/views/system/dict/index.vue | 251 + .../src/views/system/errorCode/index.vue | 247 + .../src/views/system/loginlog/index.vue | 134 + .../src/views/system/mail/account/index.vue | 225 + .../src/views/system/mail/log/index.vue | 226 + .../src/views/system/mail/template/index.vue | 349 + .../src/views/system/menu/index.vue | 406 + .../src/views/system/notice/index.vue | 244 + .../src/views/system/notify/message/index.vue | 179 + .../src/views/system/notify/my/index.vue | 139 + .../views/system/notify/template/index.vue | 340 + .../src/views/system/oauth2/client/index.vue | 305 + .../src/views/system/oauth2/token/index.vue | 116 + .../src/views/system/operatelog/index.vue | 211 + .../src/views/system/post/index.vue | 243 + .../src/views/system/role/index.vue | 495 + .../src/views/system/sensitiveWord/index.vue | 332 + .../src/views/system/sms/channel/index.vue | 242 + .../src/views/system/sms/log/index.vue | 293 + .../src/views/system/sms/template/index.vue | 396 + .../src/views/system/tenant/index.vue | 314 + .../src/views/system/tenantPackage/index.vue | 285 + .../src/views/system/user/index.vue | 641 + .../src/views/system/user/profile/index.vue | 100 + .../views/system/user/profile/resetPwd.vue | 71 + .../views/system/user/profile/userAvatar.vue | 171 + .../views/system/user/profile/userInfo.vue | 75 + .../views/system/user/profile/userSocial.vue | 100 + .../src/views/xxjj/brandLibrary/index.vue | 323 + .../views/xxjj/businessAndWarehouse/index.vue | 1097 ++ .../src/views/xxjj/businessLine/index.vue | 535 + .../src/views/xxjj/customer/index.vue | 695 + .../src/views/xxjj/enterprise/index.vue | 453 + .../views/xxjj/enterpriseContract/index.vue | 389 + .../src/views/xxjj/material/index.vue | 553 + .../src/views/xxjj/materialCategory/index.vue | 265 + .../src/views/xxjj/materialIndustry/index.vue | 219 + .../src/views/xxjj/materialQuality/index.vue | 274 + .../src/views/xxjj/materialType/index.vue | 229 + .../src/views/xxjj/product/index.vue | 1113 ++ .../src/views/xxjj/productCategory/index.vue | 265 + .../views/xxjj/productionProcesses/index.vue | 282 + .../src/views/xxjj/supplier/index.vue | 549 + .../src/views/xxjj/unitLibrary/index.vue | 315 + .../src/views/xxjj/warehouse/index.vue | 444 + .../src/views/xxjj/warehouseOut/index.vue | 457 + .../src/views/xxjj/warehouseReceipt/index.vue | 284 + yunxi-ui-admin/vue.config.js | 138 + yunxi-ui-admin/yarn.lock | 10612 ++++++++++++++++ yunxi-ui-app/.editorconfig | 22 + yunxi-ui-app/.gitignore | 7 + yunxi-ui-app/App.vue | 34 + yunxi-ui-app/api/address.js | 15 + yunxi-ui-app/api/auth.js | 15 + yunxi-ui-app/api/cart.js | 5 + yunxi-ui-app/api/category.js | 5 + yunxi-ui-app/api/index.js | 7 + yunxi-ui-app/api/order.js | 6 + yunxi-ui-app/api/product.js | 8 + yunxi-ui-app/api/user.js | 14 + yunxi-ui-app/app.scss | 8 + yunxi-ui-app/common/config.js | 13 + yunxi-ui-app/common/mixin.js | 5 + yunxi-ui-app/common/orderStatus.js | 7 + yunxi-ui-app/common/props.js | 3 + .../components/w-picker/areadata/areadata.js | 1 + .../components/w-picker/date-picker.vue | 742 ++ .../components/w-picker/half-picker.vue | 345 + .../components/w-picker/linkage-picker.vue | 274 + .../components/w-picker/range-picker.vue | 344 + .../components/w-picker/region-picker.vue | 183 + .../components/w-picker/selector-picker.vue | 129 + .../components/w-picker/shortterm-picker.vue | 250 + .../components/w-picker/time-picker.vue | 218 + yunxi-ui-app/components/w-picker/w-picker.css | 26 + yunxi-ui-app/components/w-picker/w-picker.vue | 340 + .../yd-address-select/yd-address-select.vue | 106 + .../components/yd-banner/yd-banner.vue | 58 + .../yd-cart-product/yd-cart-product.vue | 116 + .../yd-order-product/yd-order-product.vue | 100 + .../yd-product-box/yd-product-box.vue | 173 + .../yd-product-more/yd-product-more.vue | 114 + .../yd-text-price/yd-text-price.vue | 73 + yunxi-ui-app/index.html | 20 + yunxi-ui-app/main.js | 26 + yunxi-ui-app/manifest.json | 72 + yunxi-ui-app/pages.json | 156 + yunxi-ui-app/pages/address/create.vue | 148 + yunxi-ui-app/pages/address/list.vue | 116 + yunxi-ui-app/pages/address/update.vue | 178 + yunxi-ui-app/pages/cart/cart.vue | 225 + yunxi-ui-app/pages/category/category.vue | 205 + yunxi-ui-app/pages/category/product-list.vue | 164 + yunxi-ui-app/pages/checkout/checkout.vue | 219 + yunxi-ui-app/pages/forgot/forgot.vue | 157 + yunxi-ui-app/pages/index/index.vue | 149 + yunxi-ui-app/pages/login/mobile.vue | 197 + yunxi-ui-app/pages/login/social.vue | 117 + yunxi-ui-app/pages/order/confirm.vue | 63 + yunxi-ui-app/pages/order/detail.vue | 252 + yunxi-ui-app/pages/order/list.vue | 195 + yunxi-ui-app/pages/product/product.vue | 576 + yunxi-ui-app/pages/profile/profile.vue | 128 + yunxi-ui-app/pages/search/search.vue | 19 + yunxi-ui-app/pages/setting/setting.vue | 62 + yunxi-ui-app/pages/user/user.vue | 203 + yunxi-ui-app/sitemap.json | 7 + yunxi-ui-app/static/images/empty/address.png | Bin 0 -> 19443 bytes yunxi-ui-app/static/images/empty/cart.png | Bin 0 -> 28547 bytes yunxi-ui-app/static/images/empty/comment.png | Bin 0 -> 13930 bytes yunxi-ui-app/static/images/empty/coupon.png | Bin 0 -> 23450 bytes yunxi-ui-app/static/images/empty/data.png | Bin 0 -> 17165 bytes yunxi-ui-app/static/images/empty/favor.png | Bin 0 -> 16647 bytes yunxi-ui-app/static/images/empty/history.png | Bin 0 -> 26607 bytes yunxi-ui-app/static/images/empty/list.png | Bin 0 -> 17619 bytes yunxi-ui-app/static/images/empty/message.png | Bin 0 -> 16362 bytes yunxi-ui-app/static/images/empty/news.png | Bin 0 -> 16711 bytes yunxi-ui-app/static/images/empty/order.png | Bin 0 -> 16135 bytes yunxi-ui-app/static/images/empty/page.png | Bin 0 -> 28220 bytes .../static/images/empty/permission.png | Bin 0 -> 19627 bytes yunxi-ui-app/static/images/empty/search.png | Bin 0 -> 18545 bytes yunxi-ui-app/static/images/empty/wifi.png | Bin 0 -> 21381 bytes .../static/images/tabbar/cart-active.png | Bin 0 -> 6304 bytes yunxi-ui-app/static/images/tabbar/cart.png | Bin 0 -> 6169 bytes .../static/images/tabbar/category-active.png | Bin 0 -> 8172 bytes .../static/images/tabbar/category.png | Bin 0 -> 7893 bytes .../static/images/tabbar/index-active.png | Bin 0 -> 6891 bytes yunxi-ui-app/static/images/tabbar/index.png | Bin 0 -> 6766 bytes .../static/images/tabbar/user-active.png | Bin 0 -> 8298 bytes yunxi-ui-app/static/images/tabbar/user.png | Bin 0 -> 8070 bytes yunxi-ui-app/store/getters.js | 7 + yunxi-ui-app/store/index.js | 17 + yunxi-ui-app/store/mudules/cart.js | 28 + yunxi-ui-app/store/mudules/user.js | 101 + yunxi-ui-app/styles/base.scss | 5 + yunxi-ui-app/uni.scss | 60 + yunxi-ui-app/uni_modules/uview-ui/LICENSE | 21 + yunxi-ui-app/uni_modules/uview-ui/README.md | 66 + .../uni_modules/uview-ui/changelog.md | 357 + .../uview-ui/components/u--form/u--form.vue | 78 + .../uview-ui/components/u--image/u--image.vue | 47 + .../uview-ui/components/u--input/u--input.vue | 73 + .../uview-ui/components/u--text/u--text.vue | 44 + .../components/u--textarea/u--textarea.vue | 48 + .../components/u-action-sheet/props.js | 54 + .../u-action-sheet/u-action-sheet.vue | 278 + .../uview-ui/components/u-album/props.js | 59 + .../uview-ui/components/u-album/u-album.vue | 259 + .../uview-ui/components/u-alert/props.js | 44 + .../uview-ui/components/u-alert/u-alert.vue | 243 + .../components/u-avatar-group/props.js | 52 + .../u-avatar-group/u-avatar-group.vue | 103 + .../uview-ui/components/u-avatar/props.js | 78 + .../uview-ui/components/u-avatar/u-avatar.vue | 172 + .../uview-ui/components/u-back-top/props.js | 54 + .../components/u-back-top/u-back-top.vue | 129 + .../uview-ui/components/u-badge/props.js | 72 + .../uview-ui/components/u-badge/u-badge.vue | 171 + .../uview-ui/components/u-button/nvue.scss | 46 + .../uview-ui/components/u-button/props.js | 161 + .../uview-ui/components/u-button/u-button.vue | 490 + .../uview-ui/components/u-button/vue.scss | 80 + .../uview-ui/components/u-calendar/header.vue | 99 + .../uview-ui/components/u-calendar/month.vue | 579 + .../uview-ui/components/u-calendar/props.js | 144 + .../components/u-calendar/u-calendar.vue | 384 + .../uview-ui/components/u-calendar/util.js | 85 + .../components/u-car-keyboard/props.js | 14 + .../u-car-keyboard/u-car-keyboard.vue | 311 + .../uview-ui/components/u-cell-group/props.js | 14 + .../components/u-cell-group/u-cell-group.vue | 61 + .../uview-ui/components/u-cell/props.js | 110 + .../uview-ui/components/u-cell/u-cell.vue | 229 + .../components/u-checkbox-group/props.js | 82 + .../u-checkbox-group/u-checkbox-group.vue | 103 + .../uview-ui/components/u-checkbox/props.js | 69 + .../components/u-checkbox/u-checkbox.vue | 344 + .../components/u-circle-progress/props.js | 8 + .../u-circle-progress/u-circle-progress.vue | 198 + .../uview-ui/components/u-code-input/props.js | 79 + .../components/u-code-input/u-code-input.vue | 252 + .../uview-ui/components/u-code/props.js | 34 + .../uview-ui/components/u-code/u-code.vue | 129 + .../uview-ui/components/u-col/props.js | 29 + .../uview-ui/components/u-col/u-col.vue | 162 + .../components/u-collapse-item/props.js | 59 + .../u-collapse-item/u-collapse-item.vue | 225 + .../uview-ui/components/u-collapse/props.js | 19 + .../components/u-collapse/u-collapse.vue | 90 + .../components/u-column-notice/props.js | 55 + .../u-column-notice/u-column-notice.vue | 160 + .../uview-ui/components/u-count-down/props.js | 24 + .../components/u-count-down/u-count-down.vue | 163 + .../uview-ui/components/u-count-down/utils.js | 62 + .../uview-ui/components/u-count-to/props.js | 59 + .../components/u-count-to/u-count-to.vue | 184 + .../components/u-datetime-picker/props.js | 116 + .../u-datetime-picker/u-datetime-picker.vue | 360 + .../uview-ui/components/u-divider/props.js | 44 + .../components/u-divider/u-divider.vue | 116 + .../components/u-dropdown-item/props.js | 36 + .../u-dropdown-item/u-dropdown-item.vue | 127 + .../uview-ui/components/u-dropdown/props.js | 65 + .../components/u-dropdown/u-dropdown.vue | 127 + .../uview-ui/components/u-empty/props.js | 59 + .../uview-ui/components/u-empty/u-empty.vue | 128 + .../uview-ui/components/u-form-item/props.js | 48 + .../components/u-form-item/u-form-item.vue | 235 + .../uview-ui/components/u-form/props.js | 45 + .../uview-ui/components/u-form/u-form.vue | 214 + .../uview-ui/components/u-gap/props.js | 24 + .../uview-ui/components/u-gap/u-gap.vue | 38 + .../uview-ui/components/u-grid-item/props.js | 14 + .../components/u-grid-item/u-grid-item.vue | 209 + .../uview-ui/components/u-grid/props.js | 19 + .../uview-ui/components/u-grid/u-grid.vue | 97 + .../uview-ui/components/u-icon/icons.js | 214 + .../uview-ui/components/u-icon/props.js | 89 + .../uview-ui/components/u-icon/u-icon.vue | 234 + .../uview-ui/components/u-image/props.js | 84 + .../uview-ui/components/u-image/u-image.vue | 232 + .../components/u-index-anchor/props.js | 29 + .../u-index-anchor/u-index-anchor.vue | 91 + .../uview-ui/components/u-index-item/props.js | 5 + .../components/u-index-item/u-index-item.vue | 87 + .../uview-ui/components/u-index-list/props.js | 29 + .../components/u-index-list/u-index-list.vue | 440 + .../uview-ui/components/u-input/props.js | 187 + .../uview-ui/components/u-input/u-input.vue | 354 + .../uview-ui/components/u-keyboard/props.js | 84 + .../components/u-keyboard/u-keyboard.vue | 164 + .../components/u-line-progress/props.js | 28 + .../u-line-progress/u-line-progress.vue | 144 + .../uview-ui/components/u-line/props.js | 33 + .../uview-ui/components/u-line/u-line.vue | 62 + .../uview-ui/components/u-link/props.js | 39 + .../uview-ui/components/u-link/u-link.vue | 83 + .../uview-ui/components/u-list-item/props.js | 9 + .../components/u-list-item/u-list-item.vue | 116 + .../uview-ui/components/u-list/props.js | 76 + .../uview-ui/components/u-list/u-list.vue | 157 + .../components/u-loading-icon/props.js | 59 + .../u-loading-icon/u-loading-icon.vue | 343 + .../components/u-loading-page/props.js | 49 + .../u-loading-page/u-loading-page.vue | 115 + .../uview-ui/components/u-loadmore/props.js | 94 + .../components/u-loadmore/u-loadmore.vue | 150 + .../uview-ui/components/u-modal/props.js | 84 + .../uview-ui/components/u-modal/u-modal.vue | 227 + .../uview-ui/components/u-navbar/props.js | 84 + .../uview-ui/components/u-navbar/u-navbar.vue | 186 + .../uview-ui/components/u-no-network/props.js | 19 + .../components/u-no-network/u-no-network.vue | 220 + .../uview-ui/components/u-notice-bar/props.js | 70 + .../components/u-notice-bar/u-notice-bar.vue | 101 + .../uview-ui/components/u-notify/props.js | 49 + .../uview-ui/components/u-notify/u-notify.vue | 211 + .../uview-ui/components/u-number-box/props.js | 109 + .../components/u-number-box/u-number-box.vue | 416 + .../components/u-number-keyboard/props.js | 19 + .../u-number-keyboard/u-number-keyboard.vue | 196 + .../uview-ui/components/u-overlay/props.js | 24 + .../components/u-overlay/u-overlay.vue | 68 + .../uview-ui/components/u-parse/node/node.vue | 499 + .../uview-ui/components/u-parse/parser.js | 1075 ++ .../uview-ui/components/u-parse/props.js | 45 + .../uview-ui/components/u-parse/u-parse.vue | 366 + .../components/u-picker-column/props.js | 5 + .../u-picker-column/u-picker-column.vue | 27 + .../uview-ui/components/u-picker/props.js | 79 + .../uview-ui/components/u-picker/u-picker.vue | 283 + .../uview-ui/components/u-popup/props.js | 79 + .../uview-ui/components/u-popup/u-popup.vue | 304 + .../components/u-radio-group/props.js | 85 + .../u-radio-group/u-radio-group.vue | 108 + .../uview-ui/components/u-radio/props.js | 64 + .../uview-ui/components/u-radio/u-radio.vue | 339 + .../uview-ui/components/u-rate/props.js | 69 + .../uview-ui/components/u-rate/u-rate.vue | 306 + .../uview-ui/components/u-read-more/props.js | 61 + .../components/u-read-more/u-read-more.vue | 157 + .../uview-ui/components/u-row-notice/props.js | 39 + .../components/u-row-notice/u-row-notice.vue | 330 + .../uview-ui/components/u-row/props.js | 19 + .../uview-ui/components/u-row/u-row.vue | 93 + .../components/u-safe-bottom/props.js | 5 + .../u-safe-bottom/u-safe-bottom.vue | 56 + .../uview-ui/components/u-scroll-list/nvue.js | 28 + .../components/u-scroll-list/other.js | 0 .../components/u-scroll-list/props.js | 34 + .../components/u-scroll-list/scrollWxs.wxs | 50 + .../u-scroll-list/u-scroll-list.vue | 224 + .../uview-ui/components/u-search/props.js | 118 + .../uview-ui/components/u-search/u-search.vue | 303 + .../uview-ui/components/u-skeleton/props.js | 59 + .../components/u-skeleton/u-skeleton.vue | 244 + .../uview-ui/components/u-slider/mpother.js | 113 + .../uview-ui/components/u-slider/mpwxs.js | 42 + .../uview-ui/components/u-slider/mpwxs.wxs | 121 + .../components/u-slider/nvue - 副本.js | 180 + .../uview-ui/components/u-slider/nvue.js | 193 + .../uview-ui/components/u-slider/props.js | 54 + .../uview-ui/components/u-slider/u-slider.vue | 55 + .../uview-ui/components/u-status-bar/props.js | 8 + .../components/u-status-bar/u-status-bar.vue | 46 + .../uview-ui/components/u-steps-item/props.js | 24 + .../components/u-steps-item/u-steps-item.vue | 316 + .../uview-ui/components/u-steps/props.js | 39 + .../uview-ui/components/u-steps/u-steps.vue | 80 + .../uview-ui/components/u-sticky/props.js | 40 + .../uview-ui/components/u-sticky/u-sticky.vue | 212 + .../uview-ui/components/u-subsection/props.js | 49 + .../components/u-subsection/u-subsection.vue | 299 + .../u-swipe-action-item/index - backup.wxs | 256 + .../components/u-swipe-action-item/index.wxs | 225 + .../u-swipe-action-item/nvue - backup.js | 270 + .../components/u-swipe-action-item/nvue.js | 174 + .../components/u-swipe-action-item/props.js | 41 + .../u-swipe-action-item.vue | 190 + .../components/u-swipe-action-item/wxs.js | 15 + .../components/u-swipe-action/props.js | 9 + .../u-swipe-action/u-swipe-action.vue | 67 + .../components/u-swiper-indicator/props.js | 29 + .../u-swiper-indicator/u-swiper-indicator.vue | 110 + .../uview-ui/components/u-swiper/props.js | 125 + .../uview-ui/components/u-swiper/u-swiper.vue | 255 + .../uview-ui/components/u-switch/props.js | 54 + .../uview-ui/components/u-switch/u-switch.vue | 177 + .../components/u-tabbar-item/props.js | 35 + .../u-tabbar-item/u-tabbar-item.vue | 142 + .../uview-ui/components/u-tabbar/props.js | 44 + .../uview-ui/components/u-tabbar/u-tabbar.vue | 141 + .../uview-ui/components/u-table/props.js | 5 + .../uview-ui/components/u-table/u-table.vue | 29 + .../uview-ui/components/u-tabs-item/props.js | 5 + .../components/u-tabs-item/u-tabs-item.vue | 29 + .../uview-ui/components/u-tabs/props.js | 64 + .../uview-ui/components/u-tabs/u-tabs.vue | 354 + .../uview-ui/components/u-tag/props.js | 84 + .../uview-ui/components/u-tag/u-tag.vue | 358 + .../uview-ui/components/u-td/props.js | 5 + .../uview-ui/components/u-td/u-td.vue | 31 + .../uview-ui/components/u-text/props.js | 110 + .../uview-ui/components/u-text/u-text.vue | 223 + .../uview-ui/components/u-text/value.js | 85 + .../uview-ui/components/u-textarea/props.js | 119 + .../components/u-textarea/u-textarea.vue | 239 + .../uview-ui/components/u-toast/u-toast.vue | 291 + .../uview-ui/components/u-toolbar/props.js | 34 + .../components/u-toolbar/u-toolbar.vue | 102 + .../components/u-tooltip/clipboard.min.js | 58 + .../uview-ui/components/u-tooltip/props.js | 59 + .../components/u-tooltip/u-tooltip.vue | 365 + .../uview-ui/components/u-tr/props.js | 5 + .../uview-ui/components/u-tr/u-tr.vue | 31 + .../components/u-transition/nvue.ani-map.js | 68 + .../uview-ui/components/u-transition/props.js | 24 + .../components/u-transition/transition.js | 157 + .../components/u-transition/u-transition.vue | 92 + .../u-transition/vue.ani-style.scss | 113 + .../uview-ui/components/u-upload/mixin.js | 21 + .../uview-ui/components/u-upload/props.js | 124 + .../uview-ui/components/u-upload/u-upload.vue | 558 + .../uview-ui/components/u-upload/utils.js | 151 + .../uview-ui/components/uview-ui/uview-ui.vue | 15 + yunxi-ui-app/uni_modules/uview-ui/index.js | 79 + yunxi-ui-app/uni_modules/uview-ui/index.scss | 23 + .../uni_modules/uview-ui/libs/config/color.js | 17 + .../uview-ui/libs/config/config.js | 34 + .../uni_modules/uview-ui/libs/config/props.js | 190 + .../uview-ui/libs/config/props/actionSheet.js | 25 + .../uview-ui/libs/config/props/album.js | 25 + .../uview-ui/libs/config/props/alert.js | 22 + .../uview-ui/libs/config/props/avatar.js | 28 + .../uview-ui/libs/config/props/avatarGroup.js | 23 + .../uview-ui/libs/config/props/backtop.js | 27 + .../uview-ui/libs/config/props/badge.js | 27 + .../uview-ui/libs/config/props/button.js | 42 + .../uview-ui/libs/config/props/calendar.js | 42 + .../uview-ui/libs/config/props/carKeyboard.js | 15 + .../uview-ui/libs/config/props/cell.js | 35 + .../uview-ui/libs/config/props/cellGroup.js | 17 + .../uview-ui/libs/config/props/checkbox.js | 27 + .../libs/config/props/checkboxGroup.js | 29 + .../libs/config/props/circleProgress.js | 15 + .../uview-ui/libs/config/props/code.js | 21 + .../uview-ui/libs/config/props/codeInput.js | 29 + .../uview-ui/libs/config/props/col.js | 19 + .../uview-ui/libs/config/props/collapse.js | 17 + .../libs/config/props/collapseItem.js | 25 + .../libs/config/props/columnNotice.js | 24 + .../uview-ui/libs/config/props/countDown.js | 18 + .../uview-ui/libs/config/props/countTo.js | 25 + .../libs/config/props/datetimePicker.js | 36 + .../uview-ui/libs/config/props/divider.js | 23 + .../uview-ui/libs/config/props/empty.js | 26 + .../uview-ui/libs/config/props/form.js | 22 + .../uview-ui/libs/config/props/formItem.js | 23 + .../uview-ui/libs/config/props/gap.js | 19 + .../uview-ui/libs/config/props/grid.js | 17 + .../uview-ui/libs/config/props/gridItem.js | 16 + .../uview-ui/libs/config/props/icon.js | 36 + .../uview-ui/libs/config/props/image.js | 30 + .../uview-ui/libs/config/props/indexAnchor.js | 19 + .../uview-ui/libs/config/props/indexList.js | 19 + .../uview-ui/libs/config/props/input.js | 48 + .../uview-ui/libs/config/props/keyboard.js | 30 + .../uview-ui/libs/config/props/line.js | 20 + .../libs/config/props/lineProgress.js | 19 + .../uview-ui/libs/config/props/link.js | 26 + .../uview-ui/libs/config/props/list.js | 28 + .../uview-ui/libs/config/props/listItem.js | 15 + .../uview-ui/libs/config/props/loadingIcon.js | 30 + .../uview-ui/libs/config/props/loadingPage.js | 23 + .../uview-ui/libs/config/props/loadmore.js | 32 + .../uview-ui/libs/config/props/modal.js | 30 + .../uview-ui/libs/config/props/navbar.js | 32 + .../uview-ui/libs/config/props/noNetwork.js | 18 + .../uview-ui/libs/config/props/noticeBar.js | 27 + .../uview-ui/libs/config/props/notify.js | 22 + .../uview-ui/libs/config/props/numberBox.js | 35 + .../libs/config/props/numberKeyboard.js | 17 + .../uview-ui/libs/config/props/overlay.js | 18 + .../uview-ui/libs/config/props/parse.js | 22 + .../uview-ui/libs/config/props/picker.js | 29 + .../uview-ui/libs/config/props/popup.js | 29 + .../uview-ui/libs/config/props/radio.js | 27 + .../uview-ui/libs/config/props/radioGroup.js | 30 + .../uview-ui/libs/config/props/rate.js | 26 + .../uview-ui/libs/config/props/readMore.js | 22 + .../uview-ui/libs/config/props/row.js | 17 + .../uview-ui/libs/config/props/rowNotice.js | 21 + .../uview-ui/libs/config/props/scrollList.js | 20 + .../uview-ui/libs/config/props/search.js | 37 + .../uview-ui/libs/config/props/section.js | 24 + .../uview-ui/libs/config/props/skeleton.js | 25 + .../uview-ui/libs/config/props/slider.js | 25 + .../uview-ui/libs/config/props/statusBar.js | 15 + .../uview-ui/libs/config/props/steps.js | 21 + .../uview-ui/libs/config/props/stepsItem.js | 18 + .../uview-ui/libs/config/props/sticky.js | 20 + .../uview-ui/libs/config/props/subsection.js | 23 + .../uview-ui/libs/config/props/swipeAction.js | 15 + .../libs/config/props/swipeActionItem.js | 21 + .../uview-ui/libs/config/props/swiper.js | 39 + .../libs/config/props/swipterIndicator.js | 19 + .../uview-ui/libs/config/props/switch.js | 24 + .../uview-ui/libs/config/props/tabbar.js | 22 + .../uview-ui/libs/config/props/tabbarItem.js | 20 + .../uview-ui/libs/config/props/tabs.js | 32 + .../uview-ui/libs/config/props/tag.js | 29 + .../uview-ui/libs/config/props/text.js | 38 + .../uview-ui/libs/config/props/textarea.js | 36 + .../uview-ui/libs/config/props/toast.js | 30 + .../uview-ui/libs/config/props/toolbar.js | 21 + .../uview-ui/libs/config/props/tooltip.js | 25 + .../uview-ui/libs/config/props/transition.js | 18 + .../uview-ui/libs/config/props/upload.js | 36 + .../uview-ui/libs/config/zIndex.js | 20 + .../uni_modules/uview-ui/libs/css/color.scss | 155 + .../uni_modules/uview-ui/libs/css/common.scss | 97 + .../uview-ui/libs/css/components.scss | 15 + .../uni_modules/uview-ui/libs/css/flex.scss | 257 + .../uni_modules/uview-ui/libs/css/h5.scss | 0 .../uni_modules/uview-ui/libs/css/mixin.scss | 8 + .../uni_modules/uview-ui/libs/css/mp.scss | 0 .../uni_modules/uview-ui/libs/css/nvue.scss | 0 .../uni_modules/uview-ui/libs/css/vue.scss | 27 + .../uview-ui/libs/function/colorGradient.js | 134 + .../uview-ui/libs/function/debounce.js | 29 + .../uview-ui/libs/function/digit.js | 167 + .../uview-ui/libs/function/index.js | 705 + .../uview-ui/libs/function/platform.js | 75 + .../uview-ui/libs/function/test.js | 288 + .../uview-ui/libs/function/throttle.js | 30 + .../libs/luch-request/adapters/index.js | 97 + .../luch-request/core/InterceptorManager.js | 50 + .../libs/luch-request/core/Request.js | 198 + .../libs/luch-request/core/buildFullPath.js | 20 + .../libs/luch-request/core/defaults.js | 29 + .../libs/luch-request/core/dispatchRequest.js | 3 + .../libs/luch-request/core/mergeConfig.js | 103 + .../uview-ui/libs/luch-request/core/settle.js | 16 + .../libs/luch-request/helpers/buildURL.js | 69 + .../libs/luch-request/helpers/combineURLs.js | 14 + .../luch-request/helpers/isAbsoluteURL.js | 14 + .../uview-ui/libs/luch-request/index.d.ts | 116 + .../uview-ui/libs/luch-request/index.js | 3 + .../uview-ui/libs/luch-request/utils.js | 131 + .../uview-ui/libs/luch-request/utils/clone.js | 264 + .../uni_modules/uview-ui/libs/mixin/button.js | 13 + .../uni_modules/uview-ui/libs/mixin/mixin.js | 160 + .../uview-ui/libs/mixin/mpMixin.js | 8 + .../uview-ui/libs/mixin/mpShare.js | 13 + .../uview-ui/libs/mixin/openType.js | 25 + .../uni_modules/uview-ui/libs/mixin/style.js | 228 + .../uni_modules/uview-ui/libs/mixin/touch.js | 59 + .../uview-ui/libs/util/async-validator.js | 1343 ++ .../uview-ui/libs/util/calendar.js | 546 + .../uni_modules/uview-ui/libs/util/dayjs.js | 308 + .../uni_modules/uview-ui/libs/util/emitter.js | 51 + .../uni_modules/uview-ui/libs/util/route.js | 124 + .../uni_modules/uview-ui/package.json | 84 + yunxi-ui-app/uni_modules/uview-ui/theme.scss | 44 + yunxi-ui-app/utils/request/errorCode.js | 6 + yunxi-ui-app/utils/request/index.js | 14 + .../utils/request/requestInterceptors.js | 20 + .../utils/request/responseInterceptors.js | 101 + yunxi-ui-app/utils/tree.js | 59 + yunxi-ui-app/vue.config.js | 10 + 4343 files changed, 348440 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 Docker-HOWTO.md create mode 100644 Jenkinsfile create mode 100644 LICENSE create mode 100644 README.md create mode 100644 bin/deploy.sh create mode 100644 docker-compose.yml create mode 100644 docker.env create mode 100644 http-client.env.json create mode 100644 lombok.config create mode 100644 pom.xml create mode 100644 sql/mysql/yunxi-scm.sql create mode 100644 upload/0b0f51ca9272a2d00d2f1333c9a6bd455b3cfa038d2360eb9c117463041008d0.png create mode 100644 upload/a2e6ea97f03adecbc3e631ea9613baea24b40a2806ab200c249ab7d53d779c85.png create mode 100644 upload/d2076e458dd7fe2873dd6c3916c7f37500f2b5b3862943844284636d3e1b33a2.png create mode 100644 upload/d768f99f9fe69e8e8eee92e66b652fe478515e2e64e9f9e250cc79124c35c6f6.jpeg create mode 100644 yarn.lock create mode 100644 yunxi-dependencies/pom.xml create mode 100644 yunxi-example/pom.xml create mode 100644 yunxi-example/yunxi-sso-demo-by-code/pom.xml create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/SSODemoApplication.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/client/OAuth2Client.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/client/UserClient.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/client/dto/CommonResult.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/client/dto/oauth2/OAuth2AccessTokenRespDTO.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/client/dto/oauth2/OAuth2CheckTokenRespDTO.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/client/dto/user/UserInfoRespDTO.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/client/dto/user/UserUpdateReqDTO.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/controller/AuthController.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/controller/UserController.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/framework/config/SecurityConfiguration.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/framework/core/LoginUser.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/framework/core/filter/TokenAuthenticationFilter.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/framework/core/handler/AccessDeniedHandlerImpl.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/framework/core/handler/AuthenticationEntryPointImpl.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/framework/core/util/SecurityUtils.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/java/com/yunxi/scm/ssodemo/framework/core/util/ServletUtils.java create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/resources/application.yaml create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/resources/static/callback.html create mode 100644 yunxi-example/yunxi-sso-demo-by-code/src/main/resources/static/index.html create mode 100644 yunxi-example/yunxi-sso-demo-by-password/pom.xml create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/SSODemoApplication.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/client/OAuth2Client.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/client/UserClient.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/client/dto/CommonResult.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/client/dto/oauth2/OAuth2AccessTokenRespDTO.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/client/dto/oauth2/OAuth2CheckTokenRespDTO.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/client/dto/user/UserInfoRespDTO.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/client/dto/user/UserUpdateReqDTO.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/controller/AuthController.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/controller/UserController.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/framework/config/SecurityConfiguration.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/framework/core/LoginUser.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/framework/core/filter/TokenAuthenticationFilter.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/framework/core/handler/AccessDeniedHandlerImpl.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/framework/core/handler/AuthenticationEntryPointImpl.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/framework/core/util/SecurityUtils.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/java/com/yunxi/scm/ssodemo/framework/core/util/ServletUtils.java create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/resources/application.yaml create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/resources/static/index.html create mode 100644 yunxi-example/yunxi-sso-demo-by-password/src/main/resources/static/login.html create mode 100644 yunxi-framework/pom.xml create mode 100644 yunxi-framework/yunxi-common/pom.xml create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/core/IntArrayValuable.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/core/KeyValue.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/enums/CommonStatusEnum.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/enums/DocumentEnum.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/enums/TerminalEnum.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/enums/UserTypeEnum.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/enums/WebFilterOrderEnum.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/exception/ErrorCode.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/exception/ServerException.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/exception/ServiceException.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/exception/enums/GlobalErrorCodeConstants.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/exception/enums/ServiceErrorCodeRange.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/exception/util/ServiceExceptionUtil.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/package-info.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/pojo/CommonResult.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/pojo/PageParam.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/pojo/PageResult.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/pojo/SortingField.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/cache/CacheUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/collection/ArrayUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/collection/CollectionUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/collection/MapUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/collection/SetUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/date/DateUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/date/LocalDateTimeUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/http/HttpUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/io/FileUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/io/IoUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/json/JsonUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/monitor/TracerUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/number/NumberUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/object/ObjectUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/object/PageUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/package-info.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/servlet/ServletUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/spring/SpringAopUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/spring/SpringExpressionUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/string/StrUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/util/validation/ValidationUtils.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/validation/InEnum.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/validation/InEnumValidator.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/validation/Mobile.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/validation/MobileValidator.java create mode 100644 yunxi-framework/yunxi-common/src/main/java/com/yunxi/scm/framework/common/validation/package-info.java create mode 100644 yunxi-framework/yunxi-common/《芋道 Spring Boot 参数校验 Validation 入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-banner/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-banner/src/main/java/com/yunxi/scm/framework/banner/config/YunxiBannerAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-banner/src/main/java/com/yunxi/scm/framework/banner/core/BannerApplicationRunner.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-banner/src/main/java/com/yunxi/scm/framework/banner/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-banner/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-banner/src/main/resources/banner.txt create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/config/YunxiDataPermissionAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/config/YunxiDeptDataPermissionAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/core/annotation/DataPermission.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/core/aop/DataPermissionAnnotationAdvisor.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/core/aop/DataPermissionAnnotationInterceptor.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/core/aop/DataPermissionContextHolder.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/core/db/DataPermissionDatabaseInterceptor.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/core/rule/DataPermissionRule.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/core/rule/DataPermissionRuleFactory.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/core/rule/DataPermissionRuleFactoryImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/core/rule/dept/DeptDataPermissionRuleCustomizer.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/core/rule/dept/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/core/util/DataPermissionUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/java/com/yunxi/scm/framework/datapermission/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/test/java/com/yunxi/scm/framework/datapermission/core/aop/DataPermissionAnnotationInterceptorTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/test/java/com/yunxi/scm/framework/datapermission/core/aop/DataPermissionContextHolderTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/test/java/com/yunxi/scm/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/test/java/com/yunxi/scm/framework/datapermission/core/db/DataPermissionDatabaseInterceptorTest2.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/test/java/com/yunxi/scm/framework/datapermission/core/rule/DataPermissionRuleFactoryImplTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/test/java/com/yunxi/scm/framework/datapermission/core/rule/dept/DeptDataPermissionRuleTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-data-permission/src/test/java/com/yunxi/scm/framework/datapermission/core/util/DataPermissionUtilsTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-dict/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-dict/src/main/java/com/yunxi/scm/framework/dict/config/YunxiDictAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-dict/src/main/java/com/yunxi/scm/framework/dict/core/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-dict/src/main/java/com/yunxi/scm/framework/dict/core/util/DictFrameworkUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-dict/src/main/java/com/yunxi/scm/framework/dict/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-dict/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-dict/src/test/java/com/yunxi/scm/framework/dict/core/util/DictFrameworkUtilsTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-error-code/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-error-code/src/main/java/com/yunxi/scm/framework/errorcode/config/ErrorCodeProperties.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-error-code/src/main/java/com/yunxi/scm/framework/errorcode/config/YunxiErrorCodeConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-error-code/src/main/java/com/yunxi/scm/framework/errorcode/core/generator/ErrorCodeAutoGenerator.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-error-code/src/main/java/com/yunxi/scm/framework/errorcode/core/generator/ErrorCodeAutoGeneratorImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-error-code/src/main/java/com/yunxi/scm/framework/errorcode/core/loader/ErrorCodeLoader.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-error-code/src/main/java/com/yunxi/scm/framework/errorcode/core/loader/ErrorCodeLoaderImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-error-code/src/main/java/com/yunxi/scm/framework/errorcode/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-error-code/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-ip/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-ip/src/main/java/com/yunxi/scm/framework/ip/core/Area.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-ip/src/main/java/com/yunxi/scm/framework/ip/core/enums/AreaTypeEnum.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-ip/src/main/java/com/yunxi/scm/framework/ip/core/utils/AreaUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-ip/src/main/java/com/yunxi/scm/framework/ip/core/utils/IPUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-ip/src/main/java/com/yunxi/scm/framework/ip/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-ip/src/main/resources/area.csv create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-ip/src/main/resources/ip2region.xdb create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-ip/src/test/java/com/yunxi/scm/framework/ip/core/utils/AreaUtilsTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-ip/src/test/java/com/yunxi/scm/framework/ip/core/utils/IPUtilsTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-operatelog/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-operatelog/src/main/java/com/yunxi/scm/framework/operatelog/config/YunxiOperateLogAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-operatelog/src/main/java/com/yunxi/scm/framework/operatelog/core/annotations/OperateLog.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-operatelog/src/main/java/com/yunxi/scm/framework/operatelog/core/aop/OperateLogAspect.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-operatelog/src/main/java/com/yunxi/scm/framework/operatelog/core/enums/OperateTypeEnum.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-operatelog/src/main/java/com/yunxi/scm/framework/operatelog/core/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-operatelog/src/main/java/com/yunxi/scm/framework/operatelog/core/service/OperateLog.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-operatelog/src/main/java/com/yunxi/scm/framework/operatelog/core/service/OperateLogFrameworkService.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-operatelog/src/main/java/com/yunxi/scm/framework/operatelog/core/service/OperateLogFrameworkServiceImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-operatelog/src/main/java/com/yunxi/scm/framework/operatelog/core/util/OperateLogUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-operatelog/src/main/java/com/yunxi/scm/framework/operatelog/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-operatelog/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/config/YunxiPayAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/PayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/PayClientConfig.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/PayClientFactory.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/dto/order/PayOrderRespDTO.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/dto/order/PayOrderUnifiedReqDTO.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/dto/refund/PayRefundRespDTO.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/dto/refund/PayRefundUnifiedReqDTO.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/exception/PayException.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/AbstractPayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/PayClientFactoryImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/alipay/AbstractAlipayPayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/alipay/AlipayAppPayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/alipay/AlipayBarPayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/alipay/AlipayPayClientConfig.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/alipay/AlipayPcPayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/alipay/AlipayQrPayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/alipay/AlipayWapPayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/mock/MockPayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/mock/MockPayClientConfig.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/weixin/WxAppPayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/weixin/WxBarPayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/weixin/WxLitePayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/weixin/WxNativePayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/weixin/WxPayClientConfig.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/client/impl/weixin/WxPubPayClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/enums/channel/PayChannelEnum.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/enums/order/PayOrderDisplayModeEnum.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/enums/order/PayOrderStatusRespEnum.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/java/com/yunxi/scm/framework/pay/core/enums/refund/PayRefundStatusRespEnum.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/test/java/com/yunxi/scm/framework/pay/core/client/impl/PayClientFactoryImplIntegrationTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/test/java/com/yunxi/scm/framework/pay/core/client/impl/alipay/AlipayQrPayClientTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/test/java/com/yunxi/scm/framework/pay/core/client/impl/weixin/WxBarPayClientIntegrationTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-pay/src/test/java/com/yunxi/scm/framework/pay/core/client/impl/weixin/WxNativePayClientIntegrationTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/config/YunxiSmsAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/SmsClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/SmsClientFactory.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/SmsCodeMapping.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/SmsCommonResult.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/dto/SmsReceiveRespDTO.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/dto/SmsSendRespDTO.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/dto/SmsTemplateRespDTO.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/impl/AbstractSmsClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/impl/SmsClientFactoryImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/impl/aliyun/AliyunSmsClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/impl/aliyun/AliyunSmsCodeMapping.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/impl/debug/DebugDingTalkCodeMapping.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/impl/debug/DebugDingTalkSmsClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/impl/tencent/TencentSmsChannelProperties.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/impl/tencent/TencentSmsClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/client/impl/tencent/TencentSmsCodeMapping.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/enums/SmsChannelEnum.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/enums/SmsFrameworkErrorCodeConstants.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/enums/SmsTemplateAuditStatusEnum.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/java/com/yunxi/scm/framework/sms/core/property/SmsChannelProperties.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/test-integration/java/com/yunxi/scm/framework/sms/core/client/impl/aliyun/AliyunSmsClientIntegrationTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/test-integration/java/com/yunxi/scm/framework/sms/core/client/impl/debug/DebugDingTalkSmsClientIntegrationTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/test/java/com/yunxi/scm/framework/sms/core/client/impl/aliyun/AliyunSmsClientTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/test/java/com/yunxi/scm/framework/sms/core/client/impl/aliyun/AliyunSmsCodeMappingTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/test/java/com/yunxi/scm/framework/sms/core/client/impl/tencent/TencentSmsClientTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-sms/src/test/java/com/yunxi/scm/framework/sms/core/client/impl/tencent/TencentSmsCodeMappingTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-social/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-social/src/main/java/com/yunxi/scm/framework/social/config/YunxiSocialAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-social/src/main/java/com/yunxi/scm/framework/social/core/YunxiAuthRequestFactory.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-social/src/main/java/com/yunxi/scm/framework/social/core/enums/AuthExtendSource.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-social/src/main/java/com/yunxi/scm/framework/social/core/request/AuthWeChatMiniAppRequest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-social/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/config/TenantProperties.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/config/YunxiTenantAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/aop/TenantIgnore.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/aop/TenantIgnoreAspect.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/context/TenantContextHolder.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/db/TenantBaseDO.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/db/TenantDatabaseInterceptor.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/job/TenantJob.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/job/TenantJobHandlerDecorator.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/mq/TenantRedisMessageInterceptor.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/redis/TenantRedisCacheManager.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/security/TenantSecurityWebFilter.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/service/TenantFrameworkService.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/service/TenantFrameworkServiceImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/util/TenantUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/core/web/TenantContextWebFilter.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/java/com/yunxi/scm/framework/tenant/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/test/java/com/yunxi/scm/framework/tenant/core/job/TenantJobTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-tenant/src/test/java/com/yunxi/scm/framework/tenant/core/job/TestJob.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-weixin/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-weixin/src/main/java/com/yunxi/scm/framework/weixin/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-weixin/src/test-integration/java/com/yunxi/scm/framework/weixin/WxMpServiceTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-biz-weixin/src/test-integration/resources/application.yml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/java/com/yunxi/scm/framework/captcha/config/YunxiCaptchaConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/java/com/yunxi/scm/framework/captcha/core/enums/CaptchaRedisKeyConstants.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/java/com/yunxi/scm/framework/captcha/core/service/RedisCaptchaServiceImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/java/com/yunxi/scm/framework/captcha/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/META-INF/services/com.xingyuv.captcha.service.CaptchaCacheService create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg1.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg2.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg3.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg4.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg5.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg6.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg7.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg8.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/original/bg9.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/1.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/10.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/11.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/12.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/13.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/14.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/15.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/16.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/17.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/18.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/19.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/8.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/11/9.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/2.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/3.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/jigsaw/slidingBlock/4.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg1.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg10.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg2.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg3.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg4.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg5.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg6.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg7.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg8.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-captcha/src/main/resources/images/pic-click/bg9.png create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/base/annotation/DesensitizeBy.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/base/handler/DesensitizationHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/base/serializer/StringDesensitizeSerializer.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/regex/annotation/EmailDesensitize.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/regex/annotation/RegexDesensitize.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/regex/handler/AbstractRegexDesensitizationHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/regex/handler/DefaultRegexDesensitizationHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/regex/handler/EmailDesensitizationHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/annotation/BankCardDesensitize.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/annotation/CarLicenseDesensitize.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/annotation/ChineseNameDesensitize.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/annotation/FixedPhoneDesensitize.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/annotation/IdCardDesensitize.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/annotation/MobileDesensitize.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/annotation/PasswordDesensitize.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/annotation/SliderDesensitize.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/handler/AbstractSliderDesensitizationHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/handler/BankCardDesensitization.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/handler/CarLicenseDesensitization.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/handler/ChineseNameDesensitization.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/handler/DefaultDesensitizationHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/handler/FixedPhoneDesensitization.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/handler/IdCardDesensitization.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/handler/MobileDesensitization.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/main/java/com/yunxi/scm/framework/desensitize/core/slider/handler/PasswordDesensitization.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/test/java/com/yunxi/scm/framework/desensitize/core/DesensitizeTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/test/java/com/yunxi/scm/framework/desensitize/core/annotation/Address.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-desensitize/src/test/java/com/yunxi/scm/framework/desensitize/core/handler/AddressHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-excel/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-excel/src/main/java/com/yunxi/scm/framework/excel/core/annotations/DictFormat.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-excel/src/main/java/com/yunxi/scm/framework/excel/core/convert/DictConvert.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-excel/src/main/java/com/yunxi/scm/framework/excel/core/convert/JsonConvert.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-excel/src/main/java/com/yunxi/scm/framework/excel/core/convert/MoneyConvert.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-excel/src/main/java/com/yunxi/scm/framework/excel/core/convert/MutilDictConvert.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-excel/src/main/java/com/yunxi/scm/framework/excel/core/util/ExcelUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-excel/src/main/java/com/yunxi/scm/framework/excel/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/config/YunxiFileAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/AbstractFileClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/FileClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/FileClientConfig.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/FileClientFactory.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/FileClientFactoryImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/db/DBFileClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/db/DBFileClientConfig.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/db/DBFileContentFrameworkDAO.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/ftp/FtpFileClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/ftp/FtpFileClientConfig.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/local/LocalFileClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/local/LocalFileClientConfig.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/s3/S3FileClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/s3/S3FileClientConfig.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/sftp/SftpFileClient.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/client/sftp/SftpFileClientConfig.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/enums/FileStorageEnum.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/java/com/yunxi/scm/framework/file/core/utils/FileTypeUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/test/java/com/yunxi/scm/framework/file/config/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/test/java/com/yunxi/scm/framework/file/core/client/ftp/FtpFileClientTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/test/java/com/yunxi/scm/framework/file/core/client/local/LocalFileClientTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/test/java/com/yunxi/scm/framework/file/core/client/s3/S3FileClientTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/test/java/com/yunxi/scm/framework/file/core/client/sftp/SftpFileClientTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/test/java/com/yunxi/scm/framework/file/core/enums/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-file/src/test/resources/file/erweima.jpg create mode 100644 yunxi-framework/yunxi-spring-boot-starter-flowable/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-flowable/src/main/java/com/yunxi/scm/framework/flowable/config/YunxiFlowableConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-flowable/src/main/java/com/yunxi/scm/framework/flowable/core/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-flowable/src/main/java/com/yunxi/scm/framework/flowable/core/util/FlowableUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-flowable/src/main/java/com/yunxi/scm/framework/flowable/core/web/FlowableWebFilter.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-flowable/src/main/java/com/yunxi/scm/framework/flowable/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-flowable/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-job/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-job/src/main/java/com/yunxi/scm/framework/quartz/config/YunxiAsyncAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-job/src/main/java/com/yunxi/scm/framework/quartz/config/YunxiQuartzAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-job/src/main/java/com/yunxi/scm/framework/quartz/core/enums/JobDataKeyEnum.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-job/src/main/java/com/yunxi/scm/framework/quartz/core/handler/JobHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-job/src/main/java/com/yunxi/scm/framework/quartz/core/handler/JobHandlerInvoker.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-job/src/main/java/com/yunxi/scm/framework/quartz/core/scheduler/SchedulerManager.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-job/src/main/java/com/yunxi/scm/framework/quartz/core/service/JobLogFrameworkService.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-job/src/main/java/com/yunxi/scm/framework/quartz/core/util/CronUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-job/src/main/java/com/yunxi/scm/framework/quartz/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-job/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-job/《芋道 Spring Boot 定时任务入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-job/《芋道 Spring Boot 异步任务入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-monitor/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-monitor/src/main/java/com/yunxi/scm/framework/tracer/config/TracerProperties.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-monitor/src/main/java/com/yunxi/scm/framework/tracer/config/YunxiMetricsAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-monitor/src/main/java/com/yunxi/scm/framework/tracer/config/YunxiTracerAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-monitor/src/main/java/com/yunxi/scm/framework/tracer/core/annotation/BizTrace.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-monitor/src/main/java/com/yunxi/scm/framework/tracer/core/aop/BizTraceAspect.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-monitor/src/main/java/com/yunxi/scm/framework/tracer/core/filter/TraceFilter.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-monitor/src/main/java/com/yunxi/scm/framework/tracer/core/util/TracerFrameworkUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-monitor/src/main/java/com/yunxi/scm/framework/tracer/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-monitor/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-monitor/《芋道 Spring Boot 监控工具 Admin 入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-monitor/《芋道 Spring Boot 监控端点 Actuator 入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-monitor/《芋道 Spring Boot 链路追踪 SkyWalking 入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mq/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mq/src/main/java/com/yunxi/scm/framework/mq/config/YunxiMQAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mq/src/main/java/com/yunxi/scm/framework/mq/core/RedisMQTemplate.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mq/src/main/java/com/yunxi/scm/framework/mq/core/interceptor/RedisMessageInterceptor.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mq/src/main/java/com/yunxi/scm/framework/mq/core/message/AbstractRedisMessage.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mq/src/main/java/com/yunxi/scm/framework/mq/core/pubsub/AbstractChannelMessage.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mq/src/main/java/com/yunxi/scm/framework/mq/core/pubsub/AbstractChannelMessageListener.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mq/src/main/java/com/yunxi/scm/framework/mq/core/stream/AbstractStreamMessage.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mq/src/main/java/com/yunxi/scm/framework/mq/core/stream/AbstractStreamMessageListener.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mq/src/main/java/com/yunxi/scm/framework/mq/job/RedisPendingMessageResendJob.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mq/src/main/java/com/yunxi/scm/framework/mq/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mq/src/main/java/org/springframework/data/redis/stream/DefaultStreamMessageListenerContainerX.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mq/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/datasource/config/YunxiDataSourceAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/datasource/core/enums/DataSourceEnum.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/datasource/core/filter/DruidAdRemoveFilter.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/datasource/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/expression/AndExpressionX.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/expression/OrExpressionX.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/config/YunxiMybatisAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/core/dataobject/BaseDO.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/core/enums/SqlConstants.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/core/handler/DefaultDBFieldHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/core/mapper/BaseMapperX.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/core/query/LambdaQueryWrapperX.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/core/query/QueryWrapperX.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/core/type/EncryptTypeHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/core/type/IntegerListTypeHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/core/type/JsonLongSetTypeHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/core/type/LongListTypeHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/core/type/StringListTypeHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/core/util/JdbcUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/core/util/MyBatisUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/mybatis/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/java/com/yunxi/scm/framework/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/resources/META-INF/spring.factories create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/《芋道 Spring Boot MyBatis 入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/《芋道 Spring Boot 多数据源(读写分离)入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-mybatis/《芋道 Spring Boot 数据库连接池入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/idempotent/config/YunxiIdempotentConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/idempotent/core/annotation/Idempotent.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/idempotent/core/aop/IdempotentAspect.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/idempotent/core/keyresolver/IdempotentKeyResolver.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/idempotent/core/keyresolver/impl/DefaultIdempotentKeyResolver.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/idempotent/core/keyresolver/impl/ExpressionIdempotentKeyResolver.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/idempotent/core/redis/IdempotentRedisDAO.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/idempotent/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/lock4j/config/YunxiLock4jConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/lock4j/core/DefaultLockFailureStrategy.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/lock4j/core/Lock4jRedisKeyConstants.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/lock4j/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/resilience4j/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/java/com/yunxi/scm/framework/resilience4j/《芋道 Spring Boot 服务容错 Resilience4j 入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-protection/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-redis/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-redis/src/main/java/com/yunxi/scm/framework/redis/config/YunxiCacheAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-redis/src/main/java/com/yunxi/scm/framework/redis/config/YunxiRedisAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-redis/src/main/java/com/yunxi/scm/framework/redis/core/TimeoutRedisCacheManager.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-redis/src/main/java/com/yunxi/scm/framework/redis/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-redis/《芋道 Spring Boot Cache 入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-redis/《芋道 Spring Boot Redis 入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/config/AuthorizeRequestsCustomizer.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/config/SecurityProperties.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/config/YunxiSecurityAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/config/YunxiWebSecurityConfigurerAdapter.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/core/LoginUser.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/core/annotations/PreAuthenticated.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/core/aop/PreAuthenticatedAspect.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/core/context/TransmittableThreadLocalSecurityContextHolderStrategy.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/core/filter/TokenAuthenticationFilter.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/core/handler/AccessDeniedHandlerImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/core/handler/AuthenticationEntryPointImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/core/service/SecurityFrameworkService.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/core/service/SecurityFrameworkServiceImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/core/util/SecurityFrameworkUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/java/com/yunxi/scm/framework/security/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-security/《芋道 Spring Boot 安全框架 Spring Security 入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-test/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-test/src/main/java/com/yunxi/scm/framework/test/config/RedisTestConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-test/src/main/java/com/yunxi/scm/framework/test/config/SqlInitializationTestConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-test/src/main/java/com/yunxi/scm/framework/test/core/ut/BaseDbAndRedisUnitTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-test/src/main/java/com/yunxi/scm/framework/test/core/ut/BaseDbUnitTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-test/src/main/java/com/yunxi/scm/framework/test/core/ut/BaseMockitoUnitTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-test/src/main/java/com/yunxi/scm/framework/test/core/ut/BaseRedisUnitTest.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-test/src/main/java/com/yunxi/scm/framework/test/core/ut/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-test/src/main/java/com/yunxi/scm/framework/test/core/util/AssertUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-test/src/main/java/com/yunxi/scm/framework/test/core/util/RandomUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-test/src/main/java/com/yunxi/scm/framework/test/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-test/《芋道 Spring Boot 单元测试 Test 入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/apilog/config/YunxiApiLogAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/apilog/core/filter/ApiAccessLogFilter.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/apilog/core/service/ApiAccessLog.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/apilog/core/service/ApiAccessLogFrameworkService.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/apilog/core/service/ApiAccessLogFrameworkServiceImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/apilog/core/service/ApiErrorLog.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/apilog/core/service/ApiErrorLogFrameworkService.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/apilog/core/service/ApiErrorLogFrameworkServiceImpl.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/apilog/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/jackson/config/YunxiJacksonAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/jackson/core/databind/LocalDateTimeDeserializer.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/jackson/core/databind/LocalDateTimeSerializer.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/jackson/core/databind/LocalTimeJson.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/jackson/core/databind/NumberSerializer.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/jackson/core/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/swagger/config/SwaggerProperties.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/swagger/config/YunxiSwaggerAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/swagger/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/web/config/WebProperties.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/web/config/YunxiWebAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/web/core/filter/ApiRequestFilter.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/web/core/filter/CacheRequestBodyFilter.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/web/core/filter/CacheRequestBodyWrapper.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/web/core/filter/DemoFilter.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/web/core/handler/GlobalExceptionHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/web/core/handler/GlobalResponseBodyHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/web/core/util/WebFrameworkUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/web/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/xss/config/XssProperties.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/xss/config/YunxiXssAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/xss/core/clean/JsoupXssCleaner.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/xss/core/clean/XssCleaner.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/xss/core/filter/XssFilter.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/xss/core/filter/XssRequestWrapper.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/xss/core/json/XssStringJsonDeserializer.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/java/com/yunxi/scm/framework/xss/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/《芋道 Spring Boot API 接口文档 Swagger 入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-web/《芋道 Spring Boot SpringMVC 入门》.md create mode 100644 yunxi-framework/yunxi-spring-boot-starter-websocket/pom.xml create mode 100644 yunxi-framework/yunxi-spring-boot-starter-websocket/src/main/java/com/yunxi/scm/framework/websocket/config/WebSocketHandlerConfig.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-websocket/src/main/java/com/yunxi/scm/framework/websocket/config/WebSocketProperties.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-websocket/src/main/java/com/yunxi/scm/framework/websocket/config/YunxiWebSocketAutoConfiguration.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-websocket/src/main/java/com/yunxi/scm/framework/websocket/core/UserHandshakeInterceptor.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-websocket/src/main/java/com/yunxi/scm/framework/websocket/core/WebSocketKeyDefine.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-websocket/src/main/java/com/yunxi/scm/framework/websocket/core/WebSocketMessageDO.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-websocket/src/main/java/com/yunxi/scm/framework/websocket/core/WebSocketSessionHandler.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-websocket/src/main/java/com/yunxi/scm/framework/websocket/core/WebSocketUtils.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-websocket/src/main/java/com/yunxi/scm/framework/websocket/core/YunxiWebSocketHandlerDecorator.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-websocket/src/main/java/com/yunxi/scm/framework/websocket/package-info.java create mode 100644 yunxi-framework/yunxi-spring-boot-starter-websocket/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 yunxi-module-bpm/pom.xml create mode 100644 yunxi-module-bpm/yunxi-module-bpm-api/pom.xml create mode 100644 yunxi-module-bpm/yunxi-module-bpm-api/src/main/java/com/yunxi/scm/module/bpm/api/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-api/src/main/java/com/yunxi/scm/module/bpm/api/task/BpmProcessInstanceApi.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-api/src/main/java/com/yunxi/scm/module/bpm/api/task/dto/BpmProcessInstanceCreateReqDTO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-api/src/main/java/com/yunxi/scm/module/bpm/enums/DictTypeConstants.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-api/src/main/java/com/yunxi/scm/module/bpm/enums/ErrorCodeConstants.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-api/src/main/java/com/yunxi/scm/module/bpm/enums/definition/BpmModelFormTypeEnum.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-api/src/main/java/com/yunxi/scm/module/bpm/enums/definition/BpmTaskAssignRuleTypeEnum.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-api/src/main/java/com/yunxi/scm/module/bpm/enums/definition/BpmTaskRuleScriptEnum.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-api/src/main/java/com/yunxi/scm/module/bpm/enums/message/BpmMessageEnum.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-api/src/main/java/com/yunxi/scm/module/bpm/enums/task/BpmProcessInstanceDeleteReasonEnum.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-api/src/main/java/com/yunxi/scm/module/bpm/enums/task/BpmProcessInstanceResultEnum.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-api/src/main/java/com/yunxi/scm/module/bpm/enums/task/BpmProcessInstanceStatusEnum.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/pom.xml create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/api/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/api/task/BpmProcessInstanceApiImpl.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/BpmFormController.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/BpmModelController.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/BpmProcessDefinitionController.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/BpmTaskAssignRuleController.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/BpmUserGroupController.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/form/BpmFormBaseVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/form/BpmFormCreateReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/form/BpmFormPageReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/form/BpmFormRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/form/BpmFormSimpleRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/form/BpmFormUpdateReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/group/BpmUserGroupBaseVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/group/BpmUserGroupCreateReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/group/BpmUserGroupPageReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/group/BpmUserGroupRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/group/BpmUserGroupSimpleRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/group/BpmUserGroupUpdateReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/model/BpmModeImportReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/model/BpmModelBaseVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/model/BpmModelCreateReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/model/BpmModelPageItemRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/model/BpmModelPageReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/model/BpmModelRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/model/BpmModelUpdateStateReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionListReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageItemRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionPageReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/process/BpmProcessDefinitionRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleBaseVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleCreateReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/definition/vo/rule/BpmTaskAssignRuleUpdateReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/oa/BpmOALeaveController.http create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/oa/BpmOALeaveController.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/oa/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/oa/vo/BpmOALeaveBaseVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/oa/vo/BpmOALeaveCreateReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/oa/vo/BpmOALeavePageReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/oa/vo/BpmOALeaveRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/BpmActivityController.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/BpmProcessInstanceController.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/BpmTaskController.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/activity/BpmActivityRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCancelReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceCreateReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceMyPageReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/instance/BpmProcessInstancePageItemRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/task/BpmTaskApproveReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageItemRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/task/BpmTaskDonePageReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/task/BpmTaskRejectReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageItemRespVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/task/BpmTaskTodoPageReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/admin/task/vo/task/BpmTaskUpdateAssigneeReqVO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/app/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/controller/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/convert/definition/BpmFormConvert.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/convert/definition/BpmModelConvert.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/convert/definition/BpmProcessDefinitionConvert.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/convert/definition/BpmTaskAssignRuleConvert.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/convert/definition/BpmUserGroupConvert.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/convert/message/BpmMessageConvert.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/convert/oa/BpmOALeaveConvert.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/convert/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/convert/task/BpmActivityConvert.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/convert/task/BpmProcessInstanceConvert.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/convert/task/BpmTaskConvert.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/convert/task/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/dataobject/definition/BpmFormDO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/dataobject/definition/BpmProcessDefinitionExtDO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/dataobject/definition/BpmTaskAssignRuleDO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/dataobject/definition/BpmTaskMessageRuleDO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/dataobject/task/BpmProcessInstanceExtDO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/dataobject/task/BpmTaskExtDO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/mysql/definition/BpmFormMapper.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/mysql/definition/BpmUserGroupMapper.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/mysql/oa/BpmOALeaveMapper.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/mysql/task/BpmProcessInstanceExtMapper.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/dal/mysql/task/BpmTaskExtMapper.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/bpm/config/BpmCommonConfiguration.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/bpm/config/BpmSecurityConfiguration.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/bpm/core/event/BpmProcessInstanceResultEvent.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/bpm/core/event/BpmProcessInstanceResultEventListener.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/bpm/core/event/BpmProcessInstanceResultEventPublisher.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/bpm/core/event/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/bpm/core/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/bpm/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/flowable/config/BpmFlowableConfiguration.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/flowable/core/behavior/BpmActivityBehaviorFactory.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/flowable/core/behavior/BpmParallelMultiInstanceBehavior.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/flowable/core/behavior/BpmUserTaskActivityBehavior.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/flowable/core/behavior/script/BpmTaskAssignScript.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderAbstractScript.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderX1Script.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderX2Script.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignStartUserScript.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/flowable/core/listener/BpmProcessInstanceEventListener.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/flowable/core/listener/BpmTaskEventListener.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/web/config/BpmWebConfiguration.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/framework/web/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/definition/BpmFormService.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/definition/BpmFormServiceImpl.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/definition/BpmModelService.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/definition/BpmModelServiceImpl.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/definition/BpmProcessDefinitionService.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/definition/BpmTaskAssignRuleService.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/definition/BpmUserGroupService.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/definition/BpmUserGroupServiceImpl.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/definition/dto/BpmFormFieldRespDTO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/definition/dto/BpmModelMetaInfoRespDTO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/definition/dto/BpmProcessDefinitionCreateReqDTO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/message/BpmMessageService.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/message/BpmMessageServiceImpl.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/message/dto/BpmMessageSendWhenProcessInstanceApproveReqDTO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/message/dto/BpmMessageSendWhenProcessInstanceRejectReqDTO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/message/dto/BpmMessageSendWhenTaskCreatedReqDTO.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/oa/BpmOALeaveService.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/oa/BpmOALeaveServiceImpl.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/oa/listener/BpmOALeaveResultListener.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/task/BpmActivityService.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/task/BpmActivityServiceImpl.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/task/BpmProcessInstanceService.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/task/BpmProcessInstanceServiceImpl.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/task/BpmTaskService.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/task/BpmTaskServiceImpl.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/main/java/com/yunxi/scm/module/bpm/service/task/package-info.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/test/java/com/yunxi/scm/module/bpm/framework/flowable/core/behavior/script/impl/BpmTaskAssignLeaderX2ScriptTest.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/test/java/com/yunxi/scm/module/bpm/service/definition/BpmFormServiceTest.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/test/java/com/yunxi/scm/module/bpm/service/definition/BpmTaskAssignRuleServiceImplTest.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/test/java/com/yunxi/scm/module/bpm/service/definition/BpmUserGroupServiceTest.java create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/test/resources/application-unit-test.yaml create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/test/resources/logback.xml create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/test/resources/sql/clean.sql create mode 100644 yunxi-module-bpm/yunxi-module-bpm-biz/src/test/resources/sql/create_tables.sql create mode 100644 yunxi-module-demo/pom.xml create mode 100644 yunxi-module-demo/yunxi-module-demo-api/pom.xml create mode 100644 yunxi-module-demo/yunxi-module-demo-api/src/main/java/com/yunxi/scm/module/demo/enums/DictTypeConstants.java create mode 100644 yunxi-module-demo/yunxi-module-demo-api/src/main/java/com/yunxi/scm/module/demo/enums/ErrorCodeConstants.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/pom.xml create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/controller/admin/DemoTestController.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/controller/admin/pmaterial/PMaterialController.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/controller/admin/pmaterial/vo/PMaterialBaseVO.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/controller/admin/pmaterial/vo/PMaterialCreateReqVO.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/controller/admin/pmaterial/vo/PMaterialExcelVO.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/controller/admin/pmaterial/vo/PMaterialExportReqVO.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/controller/admin/pmaterial/vo/PMaterialExportTestVO.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/controller/admin/pmaterial/vo/PMaterialImportTestVO.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/controller/admin/pmaterial/vo/PMaterialPageReqVO.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/controller/admin/pmaterial/vo/PMaterialRespVO.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/controller/admin/pmaterial/vo/PMaterialUpdateReqVO.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/controller/app/AppDemoTestController.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/convert/pmaterial/PMaterialConvert.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/convert/pmaterial/PMaterialXConvert.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/dal/dataobject/pmaterial/PMaterialDO.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/dal/dataobject/pmaterial/PMaterialXDO.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/dal/mysql/pmaterial/PMaterialMapper.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/dal/mysql/pmaterial/PMaterialXMapper.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/enums/pmaterial/CategoryEnum.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/framework/web/config/DemoWebConfiguration.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/framework/web/package-info.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/service/pmaterial/PMaterialService.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/java/com/yunxi/scm/module/demo/service/pmaterial/PMaterialServiceImpl.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/main/resources/mapper/pmaterial/PMaterialMapper.xml create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/test/java/com/yunxi/scm/module/demo/service/pmaterial/MaterialServiceImplTest.java create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/test/resources/sql/clean.sql create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/test/resources/sql/create_tables.sql create mode 100644 yunxi-module-demo/yunxi-module-demo-biz/src/test/resources/sql/menu.sql create mode 100644 yunxi-module-infra/pom.xml create mode 100644 yunxi-module-infra/yunxi-module-infra-api/pom.xml create mode 100644 yunxi-module-infra/yunxi-module-infra-api/src/main/java/com/yunxi/scm/module/infra/api/file/FileApi.java create mode 100644 yunxi-module-infra/yunxi-module-infra-api/src/main/java/com/yunxi/scm/module/infra/api/logger/ApiAccessLogApi.java create mode 100644 yunxi-module-infra/yunxi-module-infra-api/src/main/java/com/yunxi/scm/module/infra/api/logger/ApiErrorLogApi.java create mode 100644 yunxi-module-infra/yunxi-module-infra-api/src/main/java/com/yunxi/scm/module/infra/api/logger/dto/ApiAccessLogCreateReqDTO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-api/src/main/java/com/yunxi/scm/module/infra/api/logger/dto/ApiErrorLogCreateReqDTO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-api/src/main/java/com/yunxi/scm/module/infra/api/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-api/src/main/java/com/yunxi/scm/module/infra/enums/DictTypeConstants.java create mode 100644 yunxi-module-infra/yunxi-module-infra-api/src/main/java/com/yunxi/scm/module/infra/enums/ErrorCodeConstants.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/pom.xml create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/api/file/FileApiImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/api/logger/ApiAccessLogApiImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/api/logger/ApiErrorLogApiImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/api/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/codegen/CodegenController.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/codegen/vo/CodegenCreateListReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/codegen/vo/CodegenDetailRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/codegen/vo/CodegenPreviewRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/codegen/vo/column/CodegenColumnBaseVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/codegen/vo/column/CodegenColumnRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/codegen/vo/table/CodegenTableBaseVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/codegen/vo/table/CodegenTablePageReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/codegen/vo/table/CodegenTableRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/codegen/vo/table/DatabaseTableRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/config/ConfigController.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/config/vo/ConfigBaseVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/config/vo/ConfigCreateReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/config/vo/ConfigExcelVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/config/vo/ConfigExportReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/config/vo/ConfigPageReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/config/vo/ConfigRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/config/vo/ConfigUpdateReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/db/DataSourceConfigController.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/db/DatabaseDocController.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/db/vo/DataSourceConfigBaseVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/db/vo/DataSourceConfigCreateReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/db/vo/DataSourceConfigRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/db/vo/DataSourceConfigUpdateReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/file/FileConfigController.http create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/file/FileConfigController.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/file/FileController.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/file/vo/config/FileConfigBaseVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/file/vo/config/FileConfigCreateReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/file/vo/config/FileConfigRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/file/vo/config/FileConfigUpdateReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/file/vo/file/FilePageReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/file/vo/file/FileRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/file/vo/file/FileUploadReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/JobController.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/JobLogController.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/vo/job/JobBaseVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/vo/job/JobCreateReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/vo/job/JobExcelVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/vo/job/JobExportReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/vo/job/JobPageReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/vo/job/JobRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/vo/job/JobUpdateReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/vo/log/JobLogBaseVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/vo/log/JobLogExcelVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/vo/log/JobLogExportReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/vo/log/JobLogPageReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/job/vo/log/JobLogRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/logger/ApiAccessLogController.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/logger/ApiErrorLogController.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogBaseVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogExcelVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogExportReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogPageReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogBaseVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogExcelVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogExportReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogPageReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/redis/RedisController.http create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/redis/RedisController.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/redis/vo/RedisMonitorRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/test/TestDemoController.http create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/test/TestDemoController.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/test/vo/TestDemoBaseVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/test/vo/TestDemoCreateReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/test/vo/TestDemoExcelVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/test/vo/TestDemoExportReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/test/vo/TestDemoPageReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/test/vo/TestDemoRespVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/admin/test/vo/TestDemoUpdateReqVO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/app/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/controller/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/convert/codegen/CodegenConvert.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/convert/config/ConfigConvert.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/convert/db/DataSourceConfigConvert.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/convert/file/FileConfigConvert.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/convert/file/FileConvert.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/convert/job/JobConvert.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/convert/job/JobLogConvert.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/convert/logger/ApiAccessLogConvert.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/convert/logger/ApiErrorLogConvert.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/convert/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/convert/redis/RedisConvert.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/convert/test/TestDemoConvert.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/dataobject/codegen/CodegenColumnDO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/dataobject/codegen/CodegenTableDO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/dataobject/config/ConfigDO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/dataobject/db/DataSourceConfigDO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/dataobject/file/FileConfigDO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/dataobject/file/FileContentDO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/dataobject/file/FileDO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/dataobject/job/JobDO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/dataobject/job/JobLogDO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/dataobject/logger/ApiAccessLogDO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/dataobject/logger/ApiErrorLogDO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/dataobject/test/TestDemoDO.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/mysql/codegen/CodegenColumnMapper.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/mysql/codegen/CodegenTableMapper.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/mysql/config/ConfigMapper.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/mysql/db/DataSourceConfigMapper.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/mysql/file/FileConfigMapper.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/mysql/file/FileContentDAOImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/mysql/file/FileContentMapper.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/mysql/file/FileMapper.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/mysql/job/JobLogMapper.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/mysql/job/JobMapper.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/mysql/logger/ApiAccessLogMapper.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/mysql/logger/ApiErrorLogMapper.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/dal/mysql/test/TestDemoMapper.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/enums/codegen/CodegenColumnHtmlTypeEnum.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/enums/codegen/CodegenColumnListConditionEnum.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/enums/codegen/CodegenFrontTypeEnum.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/enums/codegen/CodegenSceneEnum.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/enums/codegen/CodegenTemplateTypeEnum.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/enums/config/ConfigTypeEnum.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/enums/job/JobLogStatusEnum.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/enums/job/JobStatusEnum.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/enums/logger/ApiErrorLogProcessStatusEnum.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/enums/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/framework/codegen/config/CodegenConfiguration.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/framework/codegen/config/CodegenProperties.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/framework/codegen/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/framework/monitor/config/AdminServerConfiguration.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/framework/monitor/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/framework/monitor/《芋道 Spring Boot 监控工具 Admin 入门》.md create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/framework/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/framework/security/config/SecurityConfiguration.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/framework/security/core/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/framework/web/config/InfraWebConfiguration.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/framework/web/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/mq/consumer/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/mq/message/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/mq/producer/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/codegen/CodegenService.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/codegen/CodegenServiceImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/codegen/inner/CodegenBuilder.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/codegen/inner/CodegenEngine.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/config/ConfigService.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/config/ConfigServiceImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/db/DataSourceConfigService.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/db/DataSourceConfigServiceImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/db/DatabaseTableService.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/db/DatabaseTableServiceImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/file/FileConfigService.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/file/FileConfigServiceImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/file/FileService.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/file/FileServiceImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/job/JobLogService.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/job/JobLogServiceImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/job/JobService.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/job/JobServiceImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/logger/ApiAccessLogService.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/logger/ApiAccessLogServiceImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/logger/ApiErrorLogService.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/logger/ApiErrorLogServiceImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/test/TestDemoService.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/service/test/TestDemoServiceImpl.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/websocket/SemaphoreUtils.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/websocket/WebSocketConfig.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/websocket/WebSocketServer.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/java/com/yunxi/scm/module/infra/websocket/WebSocketUsers.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/controller/controller.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/controller/vo/_column.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/controller/vo/baseVO.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/controller/vo/createReqVO.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/controller/vo/excelVO.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/controller/vo/exportReqVO.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/controller/vo/pageReqVO.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/controller/vo/respVO.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/controller/vo/updateReqVO.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/convert/convert.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/dal/do.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/dal/mapper.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/dal/mapper.xml.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/enums/errorcode.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/service/service.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/service/serviceImpl.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/java/test/serviceTest.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/sql/h2.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/sql/sql.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/vue/api/api.js.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/vue/views/index.vue.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/vue3/api/api.ts.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/vue3/views/form.vue.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/vue3_schema/api/api.ts.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/vue3_schema/views/data.ts.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/vue3_schema/views/form.vue.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/vue3_schema/views/index.vue.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/vue3_vben/api/api.ts.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/vue3_vben/views/data.ts.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/vue3_vben/views/form.vue.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/codegen/vue3_vben/views/index.vue.vm create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/file/erweima.jpg create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/mapper/null/.gitkeep create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/main/resources/mapper/test/TestDemoMapper.xml create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test-integration/java/com/yunxi/scm/module/infra/dal/mysql/codegen/SchemaColumnMapperTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test-integration/java/com/yunxi/scm/module/infra/dal/mysql/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test-integration/java/com/yunxi/scm/module/infra/dal/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test-integration/java/com/yunxi/scm/module/infra/service/codegen/CodegenEngineTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test-integration/java/com/yunxi/scm/module/infra/service/codegen/CodegenSQLParserTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test-integration/java/com/yunxi/scm/module/infra/service/codegen/CodegenServiceImplTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test-integration/java/com/yunxi/scm/module/infra/service/package-info.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test-integration/java/com/yunxi/scm/module/infra/test/BaseDbAndRedisIntegrationTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test-integration/java/com/yunxi/scm/module/infra/test/BaseRedisIntegrationTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/java/com/yunxi/scm/module/infra/service/DefaultDatabaseQueryTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/java/com/yunxi/scm/module/infra/service/config/ConfigServiceImplTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/java/com/yunxi/scm/module/infra/service/db/DataSourceConfigServiceImplTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/java/com/yunxi/scm/module/infra/service/db/DatabaseTableServiceImplTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/java/com/yunxi/scm/module/infra/service/file/FileConfigServiceImplTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/java/com/yunxi/scm/module/infra/service/file/FileServiceImplTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/java/com/yunxi/scm/module/infra/service/job/JobLogServiceImplTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/java/com/yunxi/scm/module/infra/service/job/JobServiceImplTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/java/com/yunxi/scm/module/infra/service/logger/ApiAccessLogServiceImplTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/java/com/yunxi/scm/module/infra/service/logger/ApiErrorLogServiceImplTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/java/com/yunxi/scm/module/infra/service/test/TestDemoServiceImplTest.java create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/resources/application-unit-test.yaml create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/resources/logback.xml create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/resources/sql/clean.sql create mode 100644 yunxi-module-infra/yunxi-module-infra-biz/src/test/resources/sql/create_tables.sql create mode 100644 yunxi-module-mall/pom.xml create mode 100644 yunxi-module-mall/yunxi-module-product-api/pom.xml create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/api/comment/ProductCommentApi.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/api/comment/dto/ProductCommentCreateReqDTO.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/api/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/api/property/ProductPropertyValueApi.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/api/property/dto/ProductPropertyValueDetailRespDTO.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/api/sku/ProductSkuApi.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/api/sku/dto/ProductSkuRespDTO.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/api/sku/dto/ProductSkuUpdateStockReqDTO.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/api/spu/ProductSpuApi.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/api/spu/dto/ProductSpuRespDTO.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/enums/DictTypeConstants.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/enums/ErrorCodeConstants.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/enums/ProductConstants.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/enums/comment/ProductCommentAuditStatusEnum.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/enums/comment/ProductCommentScoresEnum.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/enums/group/ProductGroupStyleEnum.java create mode 100644 yunxi-module-mall/yunxi-module-product-api/src/main/java/com/yunxi/scm/module/product/enums/spu/ProductSpuStatusEnum.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/pom.xml create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/api/comment/ProductCommentApiImpl.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/api/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/api/property/ProductPropertyValueApiImpl.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/api/sku/ProductSkuApiImpl.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/api/spu/ProductSpuApiImpl.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/brand/ProductBrandController.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/brand/vo/ProductBrandBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/brand/vo/ProductBrandCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/brand/vo/ProductBrandListReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/brand/vo/ProductBrandPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/brand/vo/ProductBrandRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/brand/vo/ProductBrandSimpleRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/brand/vo/ProductBrandUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/category/ProductCategoryController.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/category/vo/ProductCategoryBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/category/vo/ProductCategoryCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/category/vo/ProductCategoryListReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/category/vo/ProductCategoryRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/category/vo/ProductCategoryUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/comment/ProductCommentController.http create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/comment/ProductCommentController.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/comment/vo/ProductCommentBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/comment/vo/ProductCommentCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/comment/vo/ProductCommentPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/comment/vo/ProductCommentReplyReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/comment/vo/ProductCommentRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/comment/vo/ProductCommentUpdateVisibleReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/ProductPropertyController.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/ProductPropertyValueController.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/vo/property/ProductPropertyAndValueRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/vo/property/ProductPropertyBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/vo/property/ProductPropertyCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/vo/property/ProductPropertyListReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/vo/property/ProductPropertyPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/vo/property/ProductPropertyRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/vo/property/ProductPropertyUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/vo/value/ProductPropertyValueBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/vo/value/ProductPropertyValueCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/vo/value/ProductPropertyValueDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/vo/value/ProductPropertyValuePageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/vo/value/ProductPropertyValueRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/property/vo/value/ProductPropertyValueUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/sku/ProductSkuController.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/sku/vo/ProductSkuBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/sku/vo/ProductSkuCreateOrUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/sku/vo/ProductSkuOptionRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/sku/vo/ProductSkuRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/spu/ProductSpuController.http create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/spu/ProductSpuController.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/spu/vo/ProductSpuBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/spu/vo/ProductSpuCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/spu/vo/ProductSpuDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/spu/vo/ProductSpuExcelVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/spu/vo/ProductSpuExportReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/spu/vo/ProductSpuPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/spu/vo/ProductSpuRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/spu/vo/ProductSpuSimpleRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/spu/vo/ProductSpuUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/admin/spu/vo/ProductSpuUpdateStatusReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/category/AppCategoryController.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/category/vo/AppCategoryRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/comment/AppCommentController.http create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/comment/AppProductCommentController.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/comment/vo/AppCommentPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/comment/vo/AppCommentStatisticsRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/comment/vo/AppProductCommentRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/favorite/AppFavoriteController.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/favorite/vo/AppFavoriteBatchReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/favorite/vo/AppFavoritePageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/favorite/vo/AppFavoriteReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/favorite/vo/AppFavoriteRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/property/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/property/vo/property/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/property/vo/value/AppProductPropertyValueDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/spu/AppProductSpuController.http create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/spu/AppProductSpuController.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/spu/vo/AppProductSpuDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/spu/vo/AppProductSpuPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/controller/app/spu/vo/AppProductSpuPageRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/convert/brand/ProductBrandConvert.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/convert/category/ProductCategoryConvert.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/convert/comment/ProductCommentConvert.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/convert/favorite/ProductFavoriteConvert.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/convert/property/ProductPropertyConvert.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/convert/propertyvalue/ProductPropertyValueConvert.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/convert/sku/ProductSkuConvert.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/convert/spu/ProductSpuConvert.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/dataobject/brand/ProductBrandDO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/dataobject/category/ProductCategoryDO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/dataobject/comment/ProductCommentDO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/dataobject/favorite/ProductFavoriteDO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/dataobject/property/ProductPropertyDO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/dataobject/property/ProductPropertyValueDO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/dataobject/sku/ProductSkuDO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/dataobject/spu/ProductSpuDO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/mysql/brand/ProductBrandMapper.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/mysql/category/ProductCategoryMapper.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/mysql/comment/ProductCommentMapper.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/mysql/favorite/ProductFavoriteMapper.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/mysql/property/ProductPropertyMapper.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/mysql/property/ProductPropertyValueMapper.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/mysql/sku/ProductSkuMapper.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/dal/mysql/spu/ProductSpuMapper.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/framework/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/framework/web/config/ProductWebConfiguration.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/framework/web/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/brand/ProductBrandService.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/brand/ProductBrandServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/category/ProductCategoryService.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/category/ProductCategoryServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/comment/ProductCommentService.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/comment/ProductCommentServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/favorite/ProductFavoriteService.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/favorite/ProductFavoriteServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/property/ProductPropertyService.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/property/ProductPropertyServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/property/ProductPropertyValueService.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/property/ProductPropertyValueServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/property/bo/ProductPropertyValueDetailRespBO.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/sku/ProductSkuService.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/sku/ProductSkuServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/spu/ProductSpuService.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/main/java/com/yunxi/scm/module/product/service/spu/ProductSpuServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/test/java/com/yunxi/scm/module/product/service/brand/ProductBrandServiceImplTest.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/test/java/com/yunxi/scm/module/product/service/category/ProductCategoryServiceImplTest.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/test/java/com/yunxi/scm/module/product/service/comment/ProductCommentServiceImplTest.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/test/java/com/yunxi/scm/module/product/service/sku/ProductSkuServiceTest.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/test/java/com/yunxi/scm/module/product/service/spu/ProductSpuServiceImplTest.java create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/test/resources/application-unit-test.yaml create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/test/resources/logback.xml create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/test/resources/sql/clean.sql create mode 100644 yunxi-module-mall/yunxi-module-product-biz/src/test/resources/sql/create_tables.sql create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/pom.xml create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/combination/CombinationApi.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/combination/dto/CombinationRecordReqDTO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/coupon/CouponApi.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/coupon/dto/CouponRespDTO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/coupon/dto/CouponUseReqDTO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/coupon/dto/CouponValidReqDTO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/discount/DiscountActivityApi.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/discount/dto/DiscountProductRespDTO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/price/PriceApi.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/price/dto/CouponMeetRespDTO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/price/dto/PriceCalculateReqDTO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/price/dto/PriceCalculateRespDTO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/reward/RewardActivityApi.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/api/reward/dto/RewardActivityMatchRespDTO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/enums/ErrorCodeConstants.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/enums/combination/CombinationRecordStatusEnum.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/enums/common/PromotionActivityStatusEnum.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/enums/common/PromotionConditionTypeEnum.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/enums/common/PromotionDiscountTypeEnum.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/enums/common/PromotionProductScopeEnum.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/enums/common/PromotionTypeEnum.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/enums/coupon/CouponStatusEnum.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/enums/coupon/CouponTakeTypeEnum.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/enums/coupon/CouponTemplateValidityTypeEnum.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/enums/decorate/DecorateComponentEnum.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-api/src/main/java/com/yunxi/scm/module/promotion/enums/decorate/DecoratePageEnum.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/pom.xml create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/api/combination/CombinationApiImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/api/coupon/CouponApiImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/api/discount/DiscountActivityApiImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/api/price/PriceApiImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/api/reward/RewardActivityApiImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/banner/BannerController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/banner/vo/BannerBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/banner/vo/BannerCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/banner/vo/BannerPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/banner/vo/BannerRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/banner/vo/BannerUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/CombinationActivityController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/activity/CombinationActivityBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/activity/CombinationActivityCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/activity/CombinationActivityExcelVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/activity/CombinationActivityExportReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/activity/CombinationActivityPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/activity/CombinationActivityRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/activity/CombinationActivityUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/product/CombinationProductBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/product/CombinationProductCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/product/CombinationProductExcelVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/product/CombinationProductExportReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/product/CombinationProductPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/product/CombinationProductRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/combination/vo/product/CombinationProductUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/coupon/CouponController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/coupon/CouponTemplateController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/coupon/vo/coupon/CouponBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/coupon/vo/coupon/CouponPageItemRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/coupon/vo/coupon/CouponPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/coupon/vo/coupon/CouponRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/coupon/vo/template/CouponTemplateBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/coupon/vo/template/CouponTemplateCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/coupon/vo/template/CouponTemplatePageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/coupon/vo/template/CouponTemplateRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/coupon/vo/template/CouponTemplateUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/coupon/vo/template/CouponTemplateUpdateStatusReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/decorate/DecorateComponentController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/decorate/vo/DecorateComponentRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/decorate/vo/DecorateComponentSaveReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/discount/DiscountActivityController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/discount/vo/DiscountActivityBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/discount/vo/DiscountActivityCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/discount/vo/DiscountActivityDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/discount/vo/DiscountActivityPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/discount/vo/DiscountActivityRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/discount/vo/DiscountActivityUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/reward/RewardActivityController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/reward/vo/RewardActivityBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/reward/vo/RewardActivityCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/reward/vo/RewardActivityPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/reward/vo/RewardActivityRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/reward/vo/RewardActivityUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/SeckillActivityController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/SeckillConfigController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/activity/SeckillActivityUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/config/SeckillConfigBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/config/SeckillConfigCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/config/SeckillConfigPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/config/SeckillConfigRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/config/SeckillConfigSimpleRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/config/SeckillConfigUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/config/SeckillConfigUpdateStatusReqVo.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/product/SeckillProductBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/product/SeckillProductCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/product/SeckillProductRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/admin/seckill/vo/product/SeckillProductUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/activity/AppActivityController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/activity/vo/AppActivityRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/article/AppArticleCategoryController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/article/AppArticleController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/article/vo/article/AppArticlePageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/article/vo/article/AppArticleRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/article/vo/category/AppArticleCategoryRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/banner/AppBannerController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/banner/vo/AppBannerRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/bargain/AppBargainActivityController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/bargain/AppBargainHelpController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/bargain/AppBargainRecordController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/bargain/vo/activity/AppBargainActivityDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/bargain/vo/activity/AppBargainActivityRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/bargain/vo/help/AppBargainHelpCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/bargain/vo/help/AppBargainHelpRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/bargain/vo/record/AppBargainRecordCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/bargain/vo/record/AppBargainRecordDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/bargain/vo/record/AppBargainRecordRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/bargain/vo/record/AppBargainRecordSummaryRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/combination/AppCombinationActivityController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/combination/AppCombinationRecordController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/combination/vo/activity/AppCombinationActivityDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/combination/vo/activity/AppCombinationActivityRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/combination/vo/record/AppCombinationRecordDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/combination/vo/record/AppCombinationRecordRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/combination/vo/record/AppCombinationRecordSummaryRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/coupon/AppCouponController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/coupon/AppCouponTemplateController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/coupon/vo/coupon/AppCouponMatchReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/coupon/vo/coupon/AppCouponMatchRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/coupon/vo/coupon/AppCouponPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/coupon/vo/coupon/AppCouponRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/coupon/vo/coupon/AppCouponTakeReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/coupon/vo/template/AppCouponTemplatePageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/coupon/vo/template/AppCouponTemplateRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/decorate/AppDecorateController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/decorate/vo/AppDecorateComponentRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/seckill/AppSeckillActivityController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/seckill/AppSeckillConfigController.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityNowRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/seckill/vo/activity/AppSeckillActivityRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/controller/app/seckill/vo/config/AppSeckillConfigRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/convert/banner/BannerConvert.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/convert/combination/CombinationActivityConvert.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/convert/coupon/CouponConvert.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/convert/coupon/CouponTemplateConvert.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/convert/decorate/DecorateComponentConvert.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/convert/discount/DiscountActivityConvert.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/convert/price/PriceConvert.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/convert/reward/RewardActivityConvert.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/convert/seckill/seckillactivity/SeckillActivityConvert.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/convert/seckill/seckillconfig/SeckillConfigConvert.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/dataobject/banner/BannerDO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/dataobject/combination/combinationactivity/CombinationActivityDO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/dataobject/combination/combinationactivity/CombinationProductDO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/dataobject/combination/combinationactivity/CombinationRecordDO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/dataobject/coupon/CouponDO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/dataobject/coupon/CouponTemplateDO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/dataobject/decorate/DecorateComponentDO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/dataobject/discount/DiscountActivityDO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/dataobject/discount/DiscountProductDO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/dataobject/reward/RewardActivityDO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/dataobject/seckill/seckillactivity/SeckillActivityDO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/dataobject/seckill/seckillactivity/SeckillProductDO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/dataobject/seckill/seckillconfig/SeckillConfigDO.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/mysql/banner/BannerMapper.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/mysql/combination/combinationactivity/CombinationActivityMapper.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/mysql/combination/combinationactivity/CombinationProductMapper.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/mysql/combination/combinationactivity/CombinationRecordMapper.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/mysql/coupon/CouponMapper.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/mysql/coupon/CouponTemplateMapper.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/mysql/decorate/DecorateComponentMapper.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/mysql/discount/DiscountActivityMapper.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/mysql/discount/DiscountProductMapper.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/mysql/reward/RewardActivityMapper.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/mysql/seckill/seckillactivity/SeckillActivityMapper.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/mysql/seckill/seckillactivity/SeckillProductMapper.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/dal/mysql/seckill/seckillconfig/SeckillConfigMapper.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/framework/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/framework/web/config/PromotionWebConfiguration.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/framework/web/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/banner/BannerService.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/banner/BannerServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/combination/CombinationActivityService.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/combination/CombinationActivityServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/coupon/CouponService.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/coupon/CouponServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/coupon/CouponTemplateService.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/coupon/CouponTemplateServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/decorate/DecorateComponentService.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/decorate/DecorateComponentServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/discount/DiscountActivityService.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/discount/DiscountActivityServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/price/PriceService.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/price/PriceServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/reward/RewardActivityService.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/reward/RewardActivityServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/seckill/seckillactivity/SeckillActivityService.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/seckill/seckillactivity/SeckillActivityServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/seckill/seckillconfig/SeckillConfigService.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/service/seckill/seckillconfig/SeckillConfigServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/java/com/yunxi/scm/module/promotion/util/PromotionUtils.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/main/resources/mapper/coupon/CouponTemplateMapper.xml create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/test/java/com/yunxi/scm/module/promotion/service/combination/CombinationActivityServiceImplTest.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/test/java/com/yunxi/scm/module/promotion/service/coupon/CouponTemplateServiceImplTest.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/test/java/com/yunxi/scm/module/promotion/service/decorate/DecorateComponentServiceImplTest.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/test/java/com/yunxi/scm/module/promotion/service/discount/DiscountActivityServiceImplTest.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/test/java/com/yunxi/scm/module/promotion/service/price/PriceServiceTest.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/test/java/com/yunxi/scm/module/promotion/service/reward/RewardActivityServiceImplTest.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/test/java/com/yunxi/scm/module/promotion/service/seckillactivity/SeckillActivityServiceImplTest.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/test/java/com/yunxi/scm/module/promotion/service/seckillconfig/SeckillConfigServiceImplTest.java create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/test/resources/application-unit-test.yaml create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/test/resources/logback.xml create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/test/resources/sql/clean.sql create mode 100644 yunxi-module-mall/yunxi-module-promotion-biz/src/test/resources/sql/create_tables.sql create mode 100644 yunxi-module-mall/yunxi-module-trade-api/pom.xml create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/api/order/TradeOrderApi.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/api/order/dto/TradeOrderRespDTO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/api/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/enums/ErrorCodeConstants.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/enums/aftersale/AfterSaleOperateTypeEnum.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/enums/aftersale/TradeAfterSaleStatusEnum.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/enums/aftersale/TradeAfterSaleTypeEnum.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/enums/aftersale/TradeAfterSaleWayEnum.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/enums/delivery/DeliveryExpressChargeModeEnum.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/enums/delivery/DeliveryTypeEnum.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/enums/order/TradeOrderCancelTypeEnum.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/enums/order/TradeOrderDeliveryStatusEnum.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/enums/order/TradeOrderItemAfterSaleStatusEnum.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/enums/order/TradeOrderRefundStatusEnum.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/enums/order/TradeOrderStatusEnum.java create mode 100644 yunxi-module-mall/yunxi-module-trade-api/src/main/java/com/yunxi/scm/module/trade/enums/order/TradeOrderTypeEnum.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/pom.xml create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/api/order/TradeOrderApiImpl.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/api/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/aftersale/TradeAfterSaleController.http create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/aftersale/TradeAfterSaleController.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/aftersale/vo/TradeAfterSaleBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/aftersale/vo/TradeAfterSaleDisagreeReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/aftersale/vo/TradeAfterSalePageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/aftersale/vo/TradeAfterSaleRefuseReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/aftersale/vo/TradeAfterSaleRespPageItemVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/aftersale/vo/log/TradeAfterSaleLogRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/base/member/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/base/member/user/MemberUserRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/base/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/base/product/property/ProductPropertyValueDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/DeliveryExpressController.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/DeliveryExpressTemplateController.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/DeliveryPickUpStoreController.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/express/DeliveryExpressBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/express/DeliveryExpressCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/express/DeliveryExpressExcelVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/express/DeliveryExpressExportReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/express/DeliveryExpressPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/express/DeliveryExpressRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/express/DeliveryExpressUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplatePageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateSimpleRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/expresstemplate/ExpressTemplateChargeBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/expresstemplate/ExpressTemplateFreeBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreExcelVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreExportReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStorePageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/order/TradeOrderController.http create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/order/TradeOrderController.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/order/vo/TradeOrderBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/order/vo/TradeOrderDeliveryReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/order/vo/TradeOrderItemBaseVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/order/vo/TradeOrderPageItemRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/admin/order/vo/TradeOrderPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/aftersale/AppTradeAfterSaleController.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/aftersale/vo/AppTradeAfterSaleCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/aftersale/vo/AppTradeAfterSaleDeliveryReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/aftersale/vo/AppTradeAfterSalePageItemRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/base/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/base/property/AppProductPropertyValueDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/base/sku/AppProductSkuBaseRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/base/spu/AppProductSpuBaseRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/cart/TradeCartController.http create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/cart/TradeCartController.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/cart/vo/AppTradeCartAddReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/cart/vo/AppTradeCartDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/cart/vo/AppTradeCartItemUpdateSelectedReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/cart/vo/AppTradeCartListRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/cart/vo/AppTradeCartResetReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/cart/vo/AppTradeCartUpdateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/delivery/AppDeliverConfigController.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/delivery/AppDeliverPickUpStoreController.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/delivery/vo/config/AppDeliveryConfigRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/delivery/vo/pickup/AppDeliveryPickUpStoreRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/order/AppTradeOrderController.http create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/order/AppTradeOrderController.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/order/vo/AppTradeOrderCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/order/vo/AppTradeOrderCreateRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/order/vo/AppTradeOrderDetailRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/order/vo/AppTradeOrderPageItemRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/order/vo/AppTradeOrderPageReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/order/vo/AppTradeOrderSettlementReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/order/vo/AppTradeOrderSettlementRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/order/vo/item/AppTradeOrderItemCommentCreateReqVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/app/order/vo/item/AppTradeOrderItemRespVO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/controller/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/convert/aftersale/TradeAfterSaleConvert.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/convert/cart/TradeCartConvert.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/convert/delivery/DeliveryExpressConvert.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/convert/delivery/DeliveryExpressTemplateConvert.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/convert/delivery/DeliveryPickUpStoreConvert.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/convert/order/TradeOrderConvert.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/dataobject/aftersale/TradeAfterSaleDO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/dataobject/aftersale/TradeAfterSaleLogDO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/dataobject/cart/TradeCartDO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/dataobject/delivery/DeliveryExpressDO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/dataobject/delivery/DeliveryExpressTemplateChargeDO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/dataobject/delivery/DeliveryExpressTemplateDO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/dataobject/delivery/DeliveryExpressTemplateFreeDO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/dataobject/delivery/DeliveryPickUpStoreDO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/dataobject/delivery/DeliveryPickUpStoreStaffDO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/dataobject/order/TradeOrderDO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/dataobject/order/TradeOrderDeliveryDO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/dataobject/order/TradeOrderItemDO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/mysql/aftersale/TradeAfterSaleLogMapper.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/mysql/aftersale/TradeAfterSaleMapper.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/mysql/cart/TradeCartMapper.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/mysql/delivery/DeliveryExpressMapper.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/mysql/delivery/DeliveryExpressTemplateChargeMapper.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/mysql/delivery/DeliveryExpressTemplateFreeMapper.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/mysql/delivery/DeliveryExpressTemplateMapper.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/mysql/delivery/DeliveryPickUpStoreMapper.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/mysql/delivery/DeliveryPickUpStoreStaffMapper.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/mysql/order/TradeOrderDeliveryMapper.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/mysql/order/TradeOrderItemMapper.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/mysql/order/TradeOrderMapper.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/dal/mysql/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/aftersalelog/config/AfterSaleLogConfiguration.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/aftersalelog/core/annotations/AfterSaleLog.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/aftersalelog/core/aop/AfterSaleLogAspect.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/aftersalelog/core/dto/TradeAfterSaleLogCreateReqDTO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/aftersalelog/core/service/AfterSaleLogService.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/config/ExpressClientConfig.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/config/TradeExpressProperties.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/client/ExpressClient.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/client/ExpressClientFactory.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/client/convert/ExpressQueryConvert.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/client/dto/ExpressTrackQueryReqDTO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/client/dto/ExpressTrackRespDTO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/client/dto/kd100/Kd100ExpressQueryReqDTO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/client/dto/kd100/Kd100ExpressQueryRespDTO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/client/dto/kdniao/KdNiaoExpressQueryReqDTO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/client/dto/kdniao/KdNiaoExpressQueryRespDTO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/client/impl/ExpressClientFactoryImpl.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/client/impl/NoProvideExpressClient.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/client/impl/kd100/Kd100ExpressClient.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/client/impl/kdniao/KdNiaoExpressClient.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/delivery/core/enums/ExpressClientEnum.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/order/config/TradeOrderConfig.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/order/config/TradeOrderProperties.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/web/config/TradeWebConfiguration.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/framework/web/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/package-info.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/aftersale/TradeAfterSaleService.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/aftersale/TradeAfterSaleServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/cart/TradeCartService.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/cart/TradeCartServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/delivery/DeliveryExpressService.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/delivery/DeliveryExpressServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/delivery/DeliveryExpressTemplateService.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/delivery/DeliveryExpressTemplateServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/delivery/DeliveryPickUpStoreService.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/delivery/DeliveryPickUpStoreServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/delivery/bo/DeliveryExpressTemplateRespBO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/order/TradeOrderService.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/order/TradeOrderServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/price/TradePriceService.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/price/TradePriceServiceImpl.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/price/bo/TradePriceCalculateReqBO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/price/bo/TradePriceCalculateRespBO.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/price/calculator/TradeCouponPriceCalculator.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/price/calculator/TradeDeliveryPriceCalculator.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/price/calculator/TradeDiscountActivityPriceCalculator.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/price/calculator/TradePriceCalculator.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/price/calculator/TradePriceCalculatorHelper.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/main/java/com/yunxi/scm/module/trade/service/price/calculator/TradeRewardActivityPriceCalculator.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/java/com/yunxi/scm/module/trade/framework/delivery/core/client/impl/Kd100ExpressClientTest.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/java/com/yunxi/scm/module/trade/framework/delivery/core/client/impl/KdNiaoExpressClientTest.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/java/com/yunxi/scm/module/trade/framework/delivery/core/client/impl/NoProvideExpressClientTest.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/java/com/yunxi/scm/module/trade/service/aftersale/TradeAfterSaleServiceTest.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/java/com/yunxi/scm/module/trade/service/order/TradeOrderServiceTest.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/java/com/yunxi/scm/module/trade/service/price/TradePriceServiceImplTest.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/java/com/yunxi/scm/module/trade/service/price/calculator/TradeCouponPriceCalculatorTest.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/java/com/yunxi/scm/module/trade/service/price/calculator/TradeDeliveryPriceCalculatorTest.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/java/com/yunxi/scm/module/trade/service/price/calculator/TradeDiscountActivityPriceCalculatorTest.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/java/com/yunxi/scm/module/trade/service/price/calculator/TradeRewardActivityPriceCalculatorTest.java create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/resources/application-unit-test.yaml create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/resources/logback.xml create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/resources/sql/clean.sql create mode 100644 yunxi-module-mall/yunxi-module-trade-biz/src/test/resources/sql/create_tables.sql create mode 100644 yunxi-module-member/pom.xml create mode 100644 yunxi-module-member/yunxi-module-member-api/pom.xml create mode 100644 yunxi-module-member/yunxi-module-member-api/src/main/java/com/yunxi/scm/module/member/api/address/AddressApi.java create mode 100644 yunxi-module-member/yunxi-module-member-api/src/main/java/com/yunxi/scm/module/member/api/address/dto/AddressRespDTO.java create mode 100644 yunxi-module-member/yunxi-module-member-api/src/main/java/com/yunxi/scm/module/member/api/package-info.java create mode 100644 yunxi-module-member/yunxi-module-member-api/src/main/java/com/yunxi/scm/module/member/api/user/MemberUserApi.java create mode 100644 yunxi-module-member/yunxi-module-member-api/src/main/java/com/yunxi/scm/module/member/api/user/dto/MemberUserRespDTO.java create mode 100644 yunxi-module-member/yunxi-module-member-api/src/main/java/com/yunxi/scm/module/member/enums/ErrorCodeConstants.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/pom.xml create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/api/address/AddressApiImpl.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/api/package-info.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/api/user/MemberUserApiImpl.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/address/package-info.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/point/MemberPointConfigController.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/point/MemberPointRecordController.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/point/vo/config/MemberPointConfigBaseVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/point/vo/config/MemberPointConfigRespVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/point/vo/config/MemberPointConfigSaveReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/point/vo/recrod/MemberPointRecordBaseVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/point/vo/recrod/MemberPointRecordCreateReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/point/vo/recrod/MemberPointRecordExportReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/point/vo/recrod/MemberPointRecordPageReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/point/vo/recrod/MemberPointRecordRespVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/point/vo/recrod/MemberPointRecordUpdateReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/signin/MemberSignInConfigController.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/signin/MemberSignInRecordController.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/signin/vo/MemberSignInConfigBaseVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/signin/vo/MemberSignInConfigCreateReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/signin/vo/MemberSignInConfigPageReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/signin/vo/MemberSignInConfigRespVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/signin/vo/MemberSignInConfigUpdateReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/signin/vo/MemberSignInRecordBaseVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/signin/vo/MemberSignInRecordCreateReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/signin/vo/MemberSignInRecordPageReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/signin/vo/MemberSignInRecordRespVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/signin/vo/MemberSignInRecordUpdateReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/admin/user/package-info.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/address/AppAddressController.http create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/address/AppAddressController.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/address/vo/AppAddressBaseVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/address/vo/AppAddressCreateReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/address/vo/AppAddressRespVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/address/vo/AppAddressUpdateReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/auth/AppAuthController.http create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/auth/AppAuthController.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/auth/vo/AppAuthCheckCodeReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/auth/vo/AppAuthLoginReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/auth/vo/AppAuthResetPasswordReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/auth/vo/AppAuthSmsLoginReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/auth/vo/AppAuthSmsSendReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/auth/vo/AppAuthSocialLoginReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/auth/vo/AppAuthUpdatePasswordReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/social/AppSocialUserController.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/social/vo/AppSocialUserBindReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/social/vo/AppSocialUserUnbindReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/user/AppUserController.http create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/user/AppUserController.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/user/vo/AppUserInfoRespVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/app/user/vo/AppUserUpdateMobileReqVO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/controller/package-info.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/convert/address/AddressConvert.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/convert/auth/AuthConvert.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/convert/package-info.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/convert/point/MemberPointConfigConvert.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/convert/point/MemberPointRecordConvert.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/convert/signin/MemberSignInConfigConvert.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/convert/signin/MemberSignInRecordConvert.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/convert/social/SocialUserConvert.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/convert/user/UserConvert.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/dataobject/address/MemberAddressDO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/dataobject/point/MemberPointConfigDO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/dataobject/point/MemberPointRecordDO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/dataobject/signin/MemberSignInConfigDO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/dataobject/signin/MemberSignInRecordDO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/dataobject/user/MemberUserDO.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/mysql/address/AddressMapper.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/mysql/point/MemberPointConfigMapper.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/mysql/point/MemberPointRecordMapper.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/mysql/signin/MemberSignInConfigMapper.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/mysql/signin/MemberSignInRecordMapper.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/mysql/user/MemberUserMapper.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/package-info.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/dal/redis/package-info.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/framework/package-info.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/framework/web/config/MemberWebConfiguration.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/framework/web/package-info.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/package-info.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/address/AddressService.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/address/AddressServiceImpl.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/auth/MemberAuthService.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/auth/MemberAuthServiceImpl.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/point/MemberPointConfigService.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/point/MemberPointConfigServiceImpl.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/point/MemberPointRecordService.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/point/MemberPointRecordServiceImpl.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/signin/MemberSignInConfigService.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/signin/MemberSignInConfigServiceImpl.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/signin/MemberSignInRecordService.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/signin/MemberSignInRecordServiceImpl.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/user/MemberUserService.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/main/java/com/yunxi/scm/module/member/service/user/MemberUserServiceImpl.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/test/java/com/yunxi/scm/module/member/service/address/AddressServiceImplTest.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/test/java/com/yunxi/scm/module/member/service/auth/MemberAuthServiceTest.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/test/java/com/yunxi/scm/module/member/service/user/MemberUserServiceImplTest.java create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/test/resources/application-unit-test.yaml create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/test/resources/logback.xml create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/test/resources/sql/clean.sql create mode 100644 yunxi-module-member/yunxi-module-member-biz/src/test/resources/sql/create_tables.sql create mode 100644 yunxi-module-mp/pom.xml create mode 100644 yunxi-module-mp/yunxi-module-mp-api/pom.xml create mode 100644 yunxi-module-mp/yunxi-module-mp-api/src/main/java/com/yunxi/scm/module/mp/enums/ErrorCodeConstants.java create mode 100644 yunxi-module-mp/yunxi-module-mp-api/src/main/java/com/yunxi/scm/module/mp/enums/message/MpAutoReplyMatchEnum.java create mode 100644 yunxi-module-mp/yunxi-module-mp-api/src/main/java/com/yunxi/scm/module/mp/enums/message/MpAutoReplyTypeEnum.java create mode 100644 yunxi-module-mp/yunxi-module-mp-api/src/main/java/com/yunxi/scm/module/mp/enums/message/MpMessageSendFromEnum.java create mode 100644 yunxi-module-mp/yunxi-module-mp-api/src/main/java/com/yunxi/scm/module/mp/package-info.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/pom.xml create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/account/MpAccountController.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/account/vo/MpAccountBaseVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/account/vo/MpAccountCreateReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/account/vo/MpAccountPageReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/account/vo/MpAccountRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/account/vo/MpAccountSimpleRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/account/vo/MpAccountUpdateReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/material/MpMaterialController.http create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/material/MpMaterialController.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/material/vo/MpMaterialPageReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/material/vo/MpMaterialRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/material/vo/MpMaterialUploadNewsImageReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/material/vo/MpMaterialUploadPermanentReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/material/vo/MpMaterialUploadRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/material/vo/MpMaterialUploadTemporaryReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/menu/MpMenuController.http create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/menu/MpMenuController.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/menu/vo/MpMenuBaseVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/menu/vo/MpMenuRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/menu/vo/MpMenuSaveReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/message/MpAutoReplyController.http create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/message/MpAutoReplyController.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/message/MpMessageController.http create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/message/MpMessageController.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyBaseVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyCreateReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyPageReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/message/vo/autoreply/MpAutoReplyUpdateReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/message/vo/message/MpMessagePageReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/message/vo/message/MpMessageRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/message/vo/message/MpMessageSendReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/news/MpDraftController.http create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/news/MpDraftController.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/news/MpFreePublishController.http create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/news/MpFreePublishController.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/news/vo/MpDraftPageReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/news/vo/MpFreePublishPageReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/open/MpOpenController.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/open/vo/MpOpenCheckSignatureReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/open/vo/MpOpenHandleMessageReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/statistics/MpStatisticsController.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/statistics/vo/MpStatisticsInterfaceSummaryRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/statistics/vo/MpStatisticsUpstreamMessageRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/statistics/vo/MpStatisticsUserCumulateRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/statistics/vo/MpStatisticsUserSummaryRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/tag/MpTagController.http create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/tag/MpTagController.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/tag/vo/MpTagBaseVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/tag/vo/MpTagCreateReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/tag/vo/MpTagPageReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/tag/vo/MpTagRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/tag/vo/MpTagSimpleRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/tag/vo/MpTagUpdateReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/user/MpUserController.http create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/user/MpUserController.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/user/vo/MpUserPageReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/user/vo/MpUserRespVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/admin/user/vo/MpUserUpdateReqVO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/controller/package-info.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/convert/account/MpAccountConvert.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/convert/material/MpMaterialConvert.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/convert/menu/MpMenuConvert.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/convert/message/MpAutoReplyConvert.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/convert/message/MpMessageConvert.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/convert/statistics/MpStatisticsConvert.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/convert/tag/MpTagConvert.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/convert/user/MpUserConvert.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/dataobject/account/MpAccountDO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/dataobject/material/MpMaterialDO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/dataobject/menu/MpMenuDO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/dataobject/message/MpAutoReplyDO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/dataobject/message/MpMessageDO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/dataobject/tag/MpTagDO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/dataobject/user/MpUserDO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/mysql/account/MpAccountMapper.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/mysql/material/MpMaterialMapper.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/mysql/menu/MpMenuMapper.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/mysql/message/MpAutoReplyMapper.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/mysql/message/MpMessageMapper.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/mysql/tag/MpTagMapper.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/dal/mysql/user/MpUserMapper.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/framework/mp/config/MpConfiguration.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/framework/mp/core/DefaultMpServiceFactory.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/framework/mp/core/MpServiceFactory.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/framework/mp/core/context/MpContextHolder.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/framework/mp/core/util/MpUtils.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/framework/package-info.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/framework/web/config/MpWebConfiguration.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/framework/web/package-info.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/package-info.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/account/MpAccountService.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/account/MpAccountServiceImpl.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/handler/menu/MenuHandler.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/handler/message/MessageAutoReplyHandler.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/handler/message/MessageReceiveHandler.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/handler/other/KfSessionHandler.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/handler/other/NullHandler.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/handler/other/ScanHandler.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/handler/other/StoreCheckNotifyHandler.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/handler/other/package-info.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/handler/user/LocationHandler.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/handler/user/SubscribeHandler.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/handler/user/UnsubscribeHandler.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/material/MpMaterialService.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/material/MpMaterialServiceImpl.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/menu/MpMenuService.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/menu/MpMenuServiceImpl.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/message/MpAutoReplyService.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/message/MpAutoReplyServiceImpl.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/message/MpMessageService.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/message/MpMessageServiceImpl.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/message/bo/MpMessageSendOutReqBO.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/statistics/MpStatisticsService.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/statistics/MpStatisticsServiceImpl.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/tag/MpTagService.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/tag/MpTagServiceImpl.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/user/MpUserService.java create mode 100644 yunxi-module-mp/yunxi-module-mp-biz/src/main/java/com/yunxi/scm/module/mp/service/user/MpUserServiceImpl.java create mode 100644 yunxi-module-pay/pom.xml create mode 100644 yunxi-module-pay/yunxi-module-pay-api/pom.xml create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/api/notify/dto/PayOrderNotifyReqDTO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/api/notify/dto/PayRefundNotifyReqDTO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/api/notify/package-info.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/api/order/PayOrderApi.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/api/order/dto/PayOrderCreateReqDTO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/api/order/dto/PayOrderRespDTO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/api/refund/PayRefundApi.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/api/refund/dto/PayRefundCreateReqDTO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/api/refund/dto/PayRefundRespDTO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/enums/DictTypeConstants.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/enums/ErrorCodeConstants.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/enums/member/WalletOperateTypeEnum.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/enums/member/WalletTransactionGategoryEnum.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/enums/notify/PayNotifyStatusEnum.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/enums/notify/PayNotifyTypeEnum.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/enums/order/PayOrderStatusEnum.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/enums/refund/PayRefundStatusEnum.java create mode 100644 yunxi-module-pay/yunxi-module-pay-api/src/main/java/com/yunxi/scm/module/pay/package-info.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/pom.xml create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/api/order/PayOrderApiImpl.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/api/refund/PayRefundApiImpl.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/app/PayAppController.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/app/vo/PayAppBaseVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/app/vo/PayAppCreateReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/app/vo/PayAppPageItemRespVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/app/vo/PayAppPageReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/app/vo/PayAppRespVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/app/vo/PayAppUpdateReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/app/vo/PayAppUpdateStatusReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/channel/PayChannelController.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/channel/vo/PayChannelBaseVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/channel/vo/PayChannelCreateReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/channel/vo/PayChannelRespVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/channel/vo/PayChannelUpdateReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/demo/PayDemoOrderController.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/demo/vo/PayDemoOrderCreateReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/demo/vo/PayDemoOrderRespVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/notify/PayNotifyController.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/notify/vo/PayNotifyTaskBaseVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/notify/vo/PayNotifyTaskDetailRespVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/notify/vo/PayNotifyTaskPageReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/notify/vo/PayNotifyTaskRespVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/order/PayOrderController.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/order/vo/PayOrderBaseVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/order/vo/PayOrderDetailsRespVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/order/vo/PayOrderExcelVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/order/vo/PayOrderExportReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/order/vo/PayOrderPageItemRespVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/order/vo/PayOrderPageReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/order/vo/PayOrderRespVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/order/vo/PayOrderSubmitReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/order/vo/PayOrderSubmitRespVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/refund/PayRefundController.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/refund/vo/PayRefundBaseVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/refund/vo/PayRefundDetailsRespVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/refund/vo/PayRefundExcelVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/refund/vo/PayRefundExportReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/refund/vo/PayRefundPageItemRespVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/admin/refund/vo/PayRefundPageReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/app/channel/AppPayChannelController.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/app/order/AppPayOrderController.http create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/app/order/AppPayOrderController.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/app/order/vo/AppPayOrderSubmitReqVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/app/order/vo/AppPayOrderSubmitRespVO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/app/refund/package-info.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/controller/package-info.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/convert/app/PayAppConvert.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/convert/channel/PayChannelConvert.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/convert/demo/PayDemoOrderConvert.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/convert/notify/PayNotifyTaskConvert.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/convert/order/PayOrderConvert.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/convert/package-info.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/convert/refund/PayRefundConvert.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/dataobject/app/PayAppDO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/dataobject/channel/PayChannelDO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/dataobject/demo/PayDemoOrderDO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/dataobject/member/MemberWalletDO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/dataobject/member/MemberWalletTransactionDO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/dataobject/notify/PayNotifyLogDO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/dataobject/notify/PayNotifyTaskDO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/dataobject/order/PayOrderDO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/dataobject/order/PayOrderExtensionDO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/dataobject/refund/PayRefundDO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/mysql/app/PayAppMapper.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/mysql/channel/PayChannelMapper.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/mysql/demo/PayDemoOrderMapper.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/mysql/member/MemberWalletMapper.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/mysql/member/MemberWalletTransactionMapper.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/mysql/notify/PayNotifyLogMapper.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/mysql/notify/PayNotifyTaskMapper.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/mysql/order/PayOrderExtensionMapper.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/mysql/order/PayOrderMapper.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/mysql/refund/PayRefundMapper.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/redis/RedisKeyConstants.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/redis/no/PayNoRedisDAO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/dal/redis/notify/PayNotifyLockRedisDAO.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/framework/job/config/PayJobConfiguration.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/framework/job/core/package-info.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/framework/package-info.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/framework/pay/config/PayConfiguration.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/framework/pay/config/PayProperties.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/framework/pay/core/package-info.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/framework/web/config/PayWebConfiguration.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/framework/web/package-info.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/job/notify/PayNotifyJob.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/job/order/PayOrderExpireJob.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/job/order/PayOrderSyncJob.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/job/refund/PayRefundSyncJob.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/package-info.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/service/app/PayAppService.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/service/app/PayAppServiceImpl.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/service/channel/PayChannelService.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/service/channel/PayChannelServiceImpl.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/service/demo/PayDemoOrderService.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/service/demo/PayDemoOrderServiceImpl.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/service/notify/PayNotifyService.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/service/notify/PayNotifyServiceImpl.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/service/order/PayOrderService.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/service/order/PayOrderServiceImpl.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/service/refund/PayRefundService.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/service/refund/PayRefundServiceImpl.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/util/MoneyUtils.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/main/java/com/yunxi/scm/module/pay/util/PaySeqUtils.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test-integration/java/com/yunxi/scm/module/pay/dal/dataobject/merchant/PayChannelDOTest.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test-integration/java/com/yunxi/scm/module/pay/dal/mysql/merchant/PayChannelMapperIntegrationTest.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test-integration/java/com/yunxi/scm/module/pay/service/order/PayOrderServiceIntegrationTest.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test-integration/java/com/yunxi/scm/module/pay/service/package-info.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test-integration/java/com/yunxi/scm/module/pay/test/BaseDbAndRedisIntegrationTest.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test-integration/java/com/yunxi/scm/module/pay/test/BaseDbIntegrationTest.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test-integration/java/com/yunxi/scm/module/pay/test/BaseRedisIntegrationTest.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test-integration/resources/application-integration-test.yaml create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test/java/com/yunxi/scm/module/pay/service/app/PayAppServiceTest.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test/java/com/yunxi/scm/module/pay/service/channel/PayChannelServiceTest.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test/java/com/yunxi/scm/module/pay/service/notify/PayNotifyServiceTest.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test/java/com/yunxi/scm/module/pay/service/order/PayOrderServiceTest.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test/java/com/yunxi/scm/module/pay/service/refund/PayRefundServiceTest.java create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test/resources/application-unit-test.yaml create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test/resources/logback.xml create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test/resources/sql/clean.sql create mode 100644 yunxi-module-pay/yunxi-module-pay-biz/src/test/resources/sql/create_tables.sql create mode 100644 yunxi-module-report/pom.xml create mode 100644 yunxi-module-report/yunxi-module-report-api/pom.xml create mode 100644 yunxi-module-report/yunxi-module-report-api/src/main/java/com/yunxi/scm/module/report/api/package-info.java create mode 100644 yunxi-module-report/yunxi-module-report-api/src/main/java/com/yunxi/scm/module/report/enums/ErrorCodeConstants.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/pom.xml create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/controller/admin/ajreport/package-info.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/controller/admin/goview/GoViewDataController.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/controller/admin/goview/GoViewProjectController.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/controller/admin/goview/vo/data/GoViewDataGetBySqlReqVO.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/controller/admin/goview/vo/data/GoViewDataRespVO.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/controller/admin/goview/vo/project/GoViewProjectCreateReqVO.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/controller/admin/goview/vo/project/GoViewProjectRespVO.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/controller/admin/goview/vo/project/GoViewProjectUpdateReqVO.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/controller/package-info.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/convert/ajreport/package-info.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/convert/goview/GoViewProjectConvert.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/dal/dataobject/ajreport/package-info.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/dal/dataobject/goview/GoViewProjectDO.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/dal/mysql/ajreport/package-info.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/dal/mysql/goview/GoViewProjectMapper.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/framework/jmreport/config/JmReportConfiguration.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/framework/jmreport/core/service/JmReportTokenServiceImpl.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/framework/jmreport/core/web/package-info.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/framework/package-info.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/framework/security/config/SecurityConfiguration.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/framework/security/core/package-info.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/framework/ureport/package-info.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/package-info.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/service/ajreport/package-info.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/service/goview/GoViewDataService.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/service/goview/GoViewDataServiceImpl.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/service/goview/GoViewProjectService.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/main/java/com/yunxi/scm/module/report/service/goview/GoViewProjectServiceImpl.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/test/java/com/yunxi/scm/module/report/service/goview/GoViewDataServiceImplTest.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/test/java/com/yunxi/scm/module/report/service/goview/GoViewProjectServiceImplTest.java create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/test/resources/application-unit-test.yaml create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/test/resources/logback.xml create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/test/resources/sql/clean.sql create mode 100644 yunxi-module-report/yunxi-module-report-biz/src/test/resources/sql/create_tables.sql create mode 100644 yunxi-module-system/pom.xml create mode 100644 yunxi-module-system/yunxi-module-system-api/pom.xml create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/dept/DeptApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/dept/PostApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/dept/dto/DeptRespDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/dict/DictDataApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/dict/dto/DictDataRespDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/errorcode/ErrorCodeApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/errorcode/dto/ErrorCodeAutoGenerateReqDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/errorcode/dto/ErrorCodeRespDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/logger/LoginLogApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/logger/OperateLogApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/logger/dto/LoginLogCreateReqDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/logger/dto/OperateLogCreateReqDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/mail/MailSendApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/mail/dto/MailSendSingleToUserReqDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/notify/NotifyMessageSendApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/notify/dto/NotifyTemplateReqDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/oauth2/OAuth2TokenApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/package-info.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/permission/PermissionApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/permission/RoleApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/permission/dto/DeptDataPermissionRespDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/sensitiveword/SensitiveWordApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/sms/SmsCodeApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/sms/SmsSendApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/sms/dto/code/SmsCodeSendReqDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/sms/dto/code/SmsCodeUseReqDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/sms/dto/code/SmsCodeValidateReqDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/social/SocialUserApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/social/dto/SocialUserBindReqDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/social/dto/SocialUserUnbindReqDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/tenant/TenantApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/user/AdminUserApi.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/api/user/dto/AdminUserRespDTO.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/DictTypeConstants.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/ErrorCodeConstants.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/common/SexEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/dept/DeptIdEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/errorcode/ErrorCodeTypeEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/logger/LoginLogTypeEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/logger/LoginResultEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/mail/MailSendStatusEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/notice/NoticeTypeEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/notify/NotifyTemplateTypeEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/oauth2/OAuth2ClientConstants.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/oauth2/OAuth2GrantTypeEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/permission/DataScopeEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/permission/MenuTypeEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/permission/RoleCodeEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/permission/RoleTypeEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/sms/SmsReceiveStatusEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/sms/SmsSceneEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/sms/SmsSendStatusEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/sms/SmsTemplateTypeEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-api/src/main/java/com/yunxi/scm/module/system/enums/social/SocialTypeEnum.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/pom.xml create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/dept/DeptApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/dept/PostApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/dict/DictDataApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/errorcode/ErrorCodeApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/logger/LoginLogApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/logger/OperateLogApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/mail/MailSendApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/notify/NotifyMessageSendApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/oauth2/OAuth2TokenApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/permission/PermissionApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/permission/RoleApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/sensitiveword/SensitiveWordApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/sms/SmsCodeApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/sms/SmsSendApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/social/SocialUserApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/tenant/TenantApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/api/user/AdminUserApiImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/auth/AuthController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/auth/AuthController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/auth/vo/AuthLoginReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/auth/vo/AuthLoginRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/auth/vo/AuthMenuRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/captcha/CaptchaController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/DeptController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/PostController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/dept/DeptBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/dept/DeptCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/dept/DeptListReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/dept/DeptRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/dept/DeptUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/post/PostBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/post/PostCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/post/PostExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/post/PostExportReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/post/PostListReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/post/PostPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/post/PostRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dept/vo/post/PostUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/DictDataController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/DictDataController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/DictTypeController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/data/DictDataBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/data/DictDataCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/data/DictDataExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/data/DictDataExportReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/data/DictDataRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/data/DictDataUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/type/DictTypeBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/type/DictTypeCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/type/DictTypeExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/type/DictTypeExportReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/dict/vo/type/DictTypeUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/errorcode/ErrorCodeController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/errorcode/ErrorCodeController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/errorcode/vo/ErrorCodeBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/errorcode/vo/ErrorCodeCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/errorcode/vo/ErrorCodeExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/errorcode/vo/ErrorCodeExportReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/errorcode/vo/ErrorCodePageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/errorcode/vo/ErrorCodeRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/errorcode/vo/ErrorCodeUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/ip/AreaController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/ip/AreaController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/ip/vo/AreaNodeRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/ip/vo/AreaNodeSimpleRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/logger/LoginLogController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/logger/OperateLogController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/logger/OperateLogController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/logger/vo/loginlog/LoginLogBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/logger/vo/loginlog/LoginLogExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/logger/vo/loginlog/LoginLogExportReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/logger/vo/operatelog/OperateLogBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/logger/vo/operatelog/OperateLogExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/logger/vo/operatelog/OperateLogExportReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/MailAccountController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/MailLogController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/MailTemplateController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/MailTemplateController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/account/MailAccountBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/account/MailAccountCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/account/MailAccountRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/account/MailAccountUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/log/MailLogBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/log/MailLogRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/template/MailTemplateBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/template/MailTemplateCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/template/MailTemplatePageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/mail/vo/template/MailTemplateUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notice/NoticeController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notice/vo/NoticeBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notice/vo/NoticeCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notice/vo/NoticePageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notice/vo/NoticeRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notice/vo/NoticeUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notify/NotifyMessageController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notify/NotifyTemplateController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notify/vo/message/NotifyMessageBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notify/vo/message/NotifyMessageMyPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notify/vo/message/NotifyMessagePageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notify/vo/template/NotifyTemplateBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notify/vo/template/NotifyTemplateCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/notify/vo/template/NotifyTemplateUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/OAuth2ClientController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/OAuth2ClientController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/OAuth2OpenController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/OAuth2OpenController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/OAuth2TokenController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/OAuth2UserController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/OAuth2UserController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/vo/client/OAuth2ClientBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/vo/client/OAuth2ClientCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/vo/client/OAuth2ClientPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/vo/client/OAuth2ClientUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/MenuController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/MenuController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/PermissionController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/RoleController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/RoleController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/menu/MenuBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/menu/MenuCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/menu/MenuListReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/menu/MenuRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/menu/MenuUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/role/RoleBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/role/RoleCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/role/RoleExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/role/RoleExportReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/role/RolePageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/role/RoleRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/role/RoleUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/permission/vo/role/RoleUpdateStatusReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sensitiveword/SensitiveWordController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sensitiveword/SensitiveWordController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sensitiveword/vo/SensitiveWordBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sensitiveword/vo/SensitiveWordCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sensitiveword/vo/SensitiveWordExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sensitiveword/vo/SensitiveWordExportReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sensitiveword/vo/SensitiveWordPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sensitiveword/vo/SensitiveWordUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/SmsCallbackController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/SmsChannelController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/SmsLogController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/SmsTemplateController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/SmsTemplateController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/channel/SmsChannelBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/channel/SmsChannelCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/channel/SmsChannelUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/log/SmsLogExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/log/SmsLogExportReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/log/SmsLogRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/template/SmsTemplateBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/template/SmsTemplateCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/template/SmsTemplateExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/template/SmsTemplateExportReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/sms/vo/template/SmsTemplateUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/socail/SocialUserController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/socail/vo/SocialUserBindReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/socail/vo/SocialUserUnbindReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/TenantController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/TenantController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/TenantPackageController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/vo/packages/TenantPackageBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/vo/packages/TenantPackageCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/vo/packages/TenantPackageUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/vo/tenant/TenantBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/vo/tenant/TenantCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/vo/tenant/TenantExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/vo/tenant/TenantExportReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/tenant/vo/tenant/TenantUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/UserController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/UserController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/UserProfileController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/UserProfileController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/user/UserBaseVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/user/UserCreateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/user/UserExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/user/UserExportReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/user/UserImportExcelVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/user/UserImportRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/user/UserPageItemRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/user/UserPageReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/user/UserRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/user/UserSimpleRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/user/UserUpdateReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/app/dict/AppDictDataController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/app/ip/AppAreaController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/app/ip/vo/AppAreaNodeRespVO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/app/package-info.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/app/weixin/AppWxMpController.http create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/app/weixin/AppWxMpController.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/controller/package-info.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/auth/AuthConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/auth/OAuth2ClientConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/auth/OAuth2TokenConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/dept/DeptConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/dept/PostConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/dict/DictDataConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/dict/DictTypeConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/errorcode/ErrorCodeConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/ip/AreaConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/logger/LoginLogConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/logger/OperateLogConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/mail/MailAccountConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/mail/MailLogConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/mail/MailTemplateConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/notice/NoticeConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/notify/NotifyMessageConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/notify/NotifyTemplateConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/oauth2/OAuth2OpenConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/oauth2/OAuth2UserConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/package-info.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/permission/MenuConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/permission/RoleConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/sensitiveword/SensitiveWordConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/sms/SmsChannelConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/sms/SmsLogConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/sms/SmsTemplateConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/social/SocialUserConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/tenant/TenantConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/tenant/TenantPackageConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/user/UserConvert.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/dept/DeptDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/dept/PostDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/dept/UserPostDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/dict/DictDataDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/dict/DictTypeDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/errorcode/ErrorCodeDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/logger/LoginLogDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/logger/OperateLogDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/mail/MailAccountDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/mail/MailLogDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/mail/MailTemplateDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/notice/NoticeDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/notify/NotifyMessageDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/notify/NotifyTemplateDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/oauth2/OAuth2ClientDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/permission/MenuDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/permission/RoleDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/permission/RoleMenuDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/permission/UserRoleDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/sensitiveword/SensitiveWordDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/sms/SmsChannelDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/sms/SmsCodeDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/sms/SmsLogDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/sms/SmsTemplateDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/social/SocialUserBindDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/social/SocialUserDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/tenant/TenantDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/tenant/TenantPackageDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/dataobject/user/AdminUserDO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/dept/DeptMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/dept/PostMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/dept/UserPostMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/dict/DictDataMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/dict/DictTypeMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/errorcode/ErrorCodeMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/logger/LoginLogMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/logger/OperateLogMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/mail/MailAccountMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/mail/MailLogMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/mail/MailTemplateMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/notice/NoticeMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/notify/NotifyMessageMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/notify/NotifyTemplateMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/oauth2/OAuth2ApproveMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/oauth2/OAuth2ClientMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/oauth2/OAuth2CodeMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/oauth2/OAuth2RefreshTokenMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/package-info.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/permission/MenuMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/permission/RoleMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/permission/RoleMenuMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/permission/UserRoleMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/sensitiveword/SensitiveWordMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/sms/SmsChannelMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/sms/SmsCodeMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/sms/SmsLogMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/sms/SmsTemplateMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/social/SocialUserBindMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/social/SocialUserMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/tenant/TenantMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/tenant/TenantPackageMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/mysql/user/AdminUserMapper.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/redis/RedisKeyConstants.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/framework/datapermission/config/DataPermissionConfiguration.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/framework/datapermission/package-info.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/framework/package-info.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/framework/sms/SmsCodeConfiguration.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/framework/sms/SmsCodeProperties.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/framework/web/config/SystemWebConfiguration.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/framework/web/package-info.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/job/DemoJob.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/job/package-info.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/mq/consumer/mail/MailSendConsumer.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/mq/consumer/sms/SmsSendConsumer.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/mq/message/mail/MailSendMessage.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/mq/message/sms/SmsSendMessage.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/mq/producer/mail/MailProducer.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/mq/producer/sms/SmsProducer.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/package-info.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/auth/AdminAuthService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/auth/AdminAuthServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/dept/DeptService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/dept/DeptServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/dept/PostService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/dept/PostServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/dict/DictDataService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/dict/DictDataServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/dict/DictTypeService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/dict/DictTypeServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/errorcode/ErrorCodeService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/errorcode/ErrorCodeServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/logger/LoginLogService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/logger/LoginLogServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/logger/OperateLogService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/logger/OperateLogServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/mail/MailAccountService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/mail/MailAccountServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/mail/MailLogService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/mail/MailLogServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/mail/MailSendService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/mail/MailSendServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/mail/MailTemplateService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/mail/MailTemplateServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/member/MemberService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/member/MemberServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/member/package-info.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/notice/NoticeService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/notice/NoticeServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/notify/NotifyMessageService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/notify/NotifyMessageServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/notify/NotifySendService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/notify/NotifySendServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/notify/NotifyTemplateService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/notify/NotifyTemplateServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/oauth2/OAuth2ApproveService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/oauth2/OAuth2ApproveServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/oauth2/OAuth2ClientService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/oauth2/OAuth2ClientServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/oauth2/OAuth2CodeService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/oauth2/OAuth2CodeServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/oauth2/OAuth2GrantService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/oauth2/OAuth2GrantServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/oauth2/OAuth2TokenService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/oauth2/OAuth2TokenServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/permission/MenuService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/permission/MenuServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/permission/PermissionService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/permission/PermissionServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/permission/RoleService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/permission/RoleServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/permission/bo/RoleCreateReqBO.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/sensitiveword/SensitiveWordService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/sensitiveword/SensitiveWordServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/sms/SmsChannelService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/sms/SmsChannelServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/sms/SmsCodeService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/sms/SmsCodeServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/sms/SmsLogService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/sms/SmsLogServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/sms/SmsSendService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/sms/SmsSendServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/sms/SmsTemplateService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/sms/SmsTemplateServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/social/SocialUserService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/social/SocialUserServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/tenant/TenantPackageService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/tenant/TenantPackageServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/tenant/TenantService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/tenant/TenantServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/tenant/handler/TenantInfoHandler.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/tenant/handler/TenantMenuHandler.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/user/AdminUserService.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/service/user/AdminUserServiceImpl.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/util/collection/SimpleTrie.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/util/oauth2/OAuth2Utils.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/java/com/yunxi/scm/module/system/util/package-info.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/main/resources/Mapper/usergroup/UserGroupMapper.xml create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test-integration/java/com/yunxi/scm/module/system/job/SchedulerManagerTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test-integration/java/com/yunxi/scm/module/system/mq/RedisStreamTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test-integration/java/com/yunxi/scm/module/system/service/package-info.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test-integration/java/com/yunxi/scm/module/system/service/sms/SmsServiceIntegrationTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test-integration/java/com/yunxi/scm/module/system/test/BaseDbAndRedisIntegrationTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test-integration/java/com/yunxi/scm/module/system/test/BaseRedisIntegrationTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test-integration/resources/application-integration-test.yaml create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/controller/admin/oauth2/OAuth2OpenControllerTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/auth/AdminAuthServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/dept/DeptServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/dept/PostServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/dict/DictDataServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/dict/DictTypeServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/errorcode/ErrorCodeServiceTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/logger/LoginLogServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/logger/OperateLogServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/mail/MailAccountServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/mail/MailLogServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/mail/MailSendServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/mail/MailTemplateServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/notice/NoticeServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/notify/NotifyMessageServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/notify/NotifySendServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/notify/NotifyTemplateServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/oauth2/OAuth2ApproveServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/oauth2/OAuth2ClientServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/oauth2/OAuth2CodeServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/oauth2/OAuth2GrantServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/oauth2/OAuth2TokenServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/permission/MenuServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/permission/PermissionServiceTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/permission/RoleServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/sensitiveword/SensitiveWordServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/sms/SmsChannelServiceTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/sms/SmsCodeServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/sms/SmsLogServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/sms/SmsSendServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/sms/SmsTemplateServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/social/SocialUserServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/tenant/TenantPackageServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/tenant/TenantServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/java/com/yunxi/scm/module/system/service/user/AdminUserServiceImplTest.java create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/resources/application-unit-test.yaml create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/resources/logback.xml create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/resources/sql/clean.sql create mode 100644 yunxi-module-system/yunxi-module-system-biz/src/test/resources/sql/create_tables.sql create mode 100644 yunxi-module-xxjj/pom.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-api/pom.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/api/materialcategory/MaterialCategoryApi.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/api/materialcategory/dto/MaterialCategoryRespDTO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/enums/materialcategory/MaterialCategoryIdEnum.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/pom.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/DemoTest2Controller.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/brandlibrary/BrandLibraryController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/brandlibrary/vo/BrandLibraryBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/brandlibrary/vo/BrandLibraryCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/brandlibrary/vo/BrandLibraryExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/brandlibrary/vo/BrandLibraryExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/brandlibrary/vo/BrandLibraryPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/brandlibrary/vo/BrandLibraryRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/brandlibrary/vo/BrandLibraryUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businessline/BusinessLineController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businessline/vo/BusinessLineBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businessline/vo/BusinessLineCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businessline/vo/BusinessLineExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businessline/vo/BusinessLineExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businessline/vo/BusinessLinePageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businessline/vo/BusinessLineRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/businessline/vo/BusinessLineUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/customer/CustomerController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/customer/vo/CustomerBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/customer/vo/CustomerCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/customer/vo/CustomerExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/customer/vo/CustomerExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/customer/vo/CustomerPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/customer/vo/CustomerRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/customer/vo/CustomerUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprise/EnterpriseController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprise/vo/EnterpriseBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprise/vo/EnterpriseCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprise/vo/EnterpriseExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprise/vo/EnterpriseExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprise/vo/EnterprisePageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprise/vo/EnterpriseRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprise/vo/EnterpriseUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprisecontract/EnterpriseContractController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprisecontract/vo/EnterpriseContractBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprisecontract/vo/EnterpriseContractCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprisecontract/vo/EnterpriseContractExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprisecontract/vo/EnterpriseContractExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprisecontract/vo/EnterpriseContractPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprisecontract/vo/EnterpriseContractRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/enterprisecontract/vo/EnterpriseContractUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/material/MaterialController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/material/vo/MaterialBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/material/vo/MaterialCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/material/vo/MaterialExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/material/vo/MaterialExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/material/vo/MaterialPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/material/vo/MaterialRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/material/vo/MaterialUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialbrand/MaterialBrandController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialbrand/vo/MaterialBrandBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialbrand/vo/MaterialBrandCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialbrand/vo/MaterialBrandExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialbrand/vo/MaterialBrandExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialbrand/vo/MaterialBrandPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialbrand/vo/MaterialBrandRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialbrand/vo/MaterialBrandUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialcategory/MaterialCategoryController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryListReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialcategory/vo/MaterialCategorySimpleRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialcategory/vo/MaterialCategoryUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialindustry/MaterialIndustryController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialindustry/vo/MaterialIndustryUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialquality/MaterialQualityController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialquality/vo/MaterialQualityBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialquality/vo/MaterialQualityCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialquality/vo/MaterialQualityExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialquality/vo/MaterialQualityExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialquality/vo/MaterialQualityPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialquality/vo/MaterialQualityRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialquality/vo/MaterialQualityUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialtype/MaterialTypeController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialtype/vo/MaterialTypeBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialtype/vo/MaterialTypeCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialtype/vo/MaterialTypeExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialtype/vo/MaterialTypeExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialtype/vo/MaterialTypePageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialtype/vo/MaterialTypeRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/materialtype/vo/MaterialTypeUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productionprocesses/ProductionProcessesController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productionprocesses/vo/ProductionProcessesBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productionprocesses/vo/ProductionProcessesCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productionprocesses/vo/ProductionProcessesExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productionprocesses/vo/ProductionProcessesExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productionprocesses/vo/ProductionProcessesPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productionprocesses/vo/ProductionProcessesRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productionprocesses/vo/ProductionProcessesUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/supplier/SupplierController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/supplier/vo/SupplierBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/supplier/vo/SupplierCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/supplier/vo/SupplierExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/supplier/vo/SupplierExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/supplier/vo/SupplierPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/supplier/vo/SupplierRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/supplier/vo/SupplierUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/unitlibrary/UnitLibraryController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/unitlibrary/vo/UnitLibraryBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/unitlibrary/vo/UnitLibraryCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/unitlibrary/vo/UnitLibraryExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/unitlibrary/vo/UnitLibraryExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/unitlibrary/vo/UnitLibraryPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/unitlibrary/vo/UnitLibraryRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/unitlibrary/vo/UnitLibraryUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouse/WarehouseController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouse/vo/WarehouseBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouse/vo/WarehouseCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouse/vo/WarehouseExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouse/vo/WarehouseExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouse/vo/WarehousePageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouse/vo/WarehouseRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouse/vo/WarehouseUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouseout/WarehouseOutController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouseout/vo/WarehouseOutBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouseout/vo/WarehouseOutCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouseout/vo/WarehouseOutExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouseout/vo/WarehouseOutExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouseout/vo/WarehouseOutPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouseout/vo/WarehouseOutRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehouseout/vo/WarehouseOutUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehousereceipt/WarehouseReceiptController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehousereceipt/vo/WarehouseReceiptBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehousereceipt/vo/WarehouseReceiptCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehousereceipt/vo/WarehouseReceiptExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehousereceipt/vo/WarehouseReceiptExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehousereceipt/vo/WarehouseReceiptPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehousereceipt/vo/WarehouseReceiptRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/warehousereceipt/vo/WarehouseReceiptUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/workorder/WorkOrderController.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/workorder/vo/WorkOrderBaseVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/workorder/vo/WorkOrderCreateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/workorder/vo/WorkOrderExcelVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/workorder/vo/WorkOrderExportReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/workorder/vo/WorkOrderPageReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/workorder/vo/WorkOrderRespVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/workorder/vo/WorkOrderUpdateReqVO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/app/AppDemoTest2Controller.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/brandlibrary/BrandLibraryConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/businessline/BusinessLineConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/customer/CustomerConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/enterprise/EnterpriseConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/enterprisecontract/EnterpriseContractConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/material/MaterialConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/materialbrand/MaterialBrandConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/materialcategory/MaterialCategoryConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/materialindustry/MaterialIndustryConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/materialquality/MaterialQualityConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/materialtype/MaterialTypeConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/productionprocesses/ProductionProcessesConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/supplier/SupplierConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/unitlibrary/UnitLibraryConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/warehouse/WarehouseConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/warehouseout/WarehouseOutConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/warehousereceipt/WarehouseReceiptConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/workorder/WorkOrderConvert.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/brandlibrary/BrandLibraryDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/businessline/BusinessLineDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/customer/CustomerDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/enterprise/EnterpriseDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/enterprisecontract/EnterpriseContractDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/material/MaterialDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/materialbrand/MaterialBrandDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/materialcategory/MaterialCategoryDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/materialindustry/MaterialIndustryDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/materialquality/MaterialQualityDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/materialtype/MaterialTypeDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/productionprocesses/ProductionProcessesDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/supplier/SupplierDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/unitlibrary/UnitLibraryDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/warehouse/WarehouseDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/warehouseout/WarehouseOutDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/warehousereceipt/WarehouseReceiptDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/workorder/WorkOrderDO.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/brandlibrary/BrandLibraryMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/businessline/BusinessLineMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/customer/CustomerMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/enterprise/EnterpriseMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/enterprisecontract/EnterpriseContractMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/material/MaterialMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/materialbrand/MaterialBrandMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/materialcategory/MaterialCategoryMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/materialindustry/MaterialIndustryMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/materialquality/MaterialQualityMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/materialtype/MaterialTypeMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/productionprocesses/ProductionProcessesMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/supplier/SupplierMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/unitlibrary/UnitLibraryMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/warehouse/WarehouseMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/warehouseout/WarehouseOutMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/warehousereceipt/WarehouseReceiptMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/workorder/WorkOrderMapper.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/enums/ErrorCodeConstants.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/brandlibrary/BrandLibraryService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/brandlibrary/BrandLibraryServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/businessline/BusinessLineService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/businessline/BusinessLineServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/customer/CustomerService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/customer/CustomerServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/enterprise/EnterpriseService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/enterprise/EnterpriseServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/enterprisecontract/EnterpriseContractService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/enterprisecontract/EnterpriseContractServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/material/MaterialService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/material/MaterialServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialbrand/MaterialBrandService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialbrand/MaterialBrandServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialcategory/MaterialCategoryService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialcategory/MaterialCategoryServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialindustry/MaterialIndustryService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialindustry/MaterialIndustryServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialquality/MaterialQualityService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialquality/MaterialQualityServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialtype/MaterialTypeService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/materialtype/MaterialTypeServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productionprocesses/ProductionProcessesService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productionprocesses/ProductionProcessesServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/supplier/SupplierService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/supplier/SupplierServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/unitlibrary/UnitLibraryService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/unitlibrary/UnitLibraryServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/warehouse/WarehouseService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/warehouse/WarehouseServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/warehouseout/WarehouseOutService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/warehouseout/WarehouseOutServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/warehousereceipt/WarehouseReceiptService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/warehousereceipt/WarehouseReceiptServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/workorder/WorkOrderService.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/workorder/WorkOrderServiceImpl.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/brandlibrary/BrandLibraryMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/businessline/BusinessLineMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/customer/CustomerMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/enterprise/EnterpriseMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/enterprisecontract/EnterpriseContractMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/material/MaterialMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/materialbrand/MaterialBrandMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/materialindustry/MaterialIndustryMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/materialquality/MaterialQualityMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/materialtype/MaterialTypeMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/productionprocesses/ProductionProcessesMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/supplier/SupplierMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/unitlibrary/UnitLibraryMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/warehouse/WarehouseMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/warehouseout/WarehouseOutMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/warehousereceipt/WarehouseReceiptMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/workorder/WorkOrderMapper.xml create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/brandlibrary/BrandLibraryServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/businessline/BusinessLineServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/customer/CustomerServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/enterprise/EnterpriseServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/enterprisecontract/EnterpriseContractServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/material/MaterialServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialbrand/MaterialBrandServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialindustry/MaterialIndustryServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialquality/MaterialQualityServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/materialtype/MaterialTypeServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productionprocesses/ProductionProcessesServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/supplier/SupplierServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/unitlibrary/UnitLibraryServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehouse/WarehouseServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehouseout/WarehouseOutServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/warehousereceipt/WarehouseReceiptServiceImplTest.java create mode 100644 yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/workorder/WorkOrderServiceImplTest.java create mode 100644 yunxi-server/Dockerfile create mode 100644 yunxi-server/pom.xml create mode 100644 yunxi-server/src/main/java/com/yunxi/scm/server/YunxiServerApplication.java create mode 100644 yunxi-server/src/main/java/com/yunxi/scm/server/controller/DefaultController.java create mode 100644 yunxi-server/src/main/resources/application-dev.yaml create mode 100644 yunxi-server/src/main/resources/application-local.yaml create mode 100644 yunxi-server/src/main/resources/application.yaml create mode 100644 yunxi-server/src/main/resources/logback-spring.xml create mode 100644 yunxi-server/src/main/resources/static/MP_verify_DKOvVzFP7vPwwHx2.txt create mode 100644 yunxi-server/src/main/resources/static/READMD.md create mode 100644 yunxi-server/src/main/resources/static/pay_wx_pub.html create mode 100644 yunxi-server/src/test/java/com/yunxi/scm/ProjectReactor.java create mode 100644 yunxi-ui-admin-uniapp/.gitignore create mode 100644 yunxi-ui-admin-uniapp/App.vue create mode 100644 yunxi-ui-admin-uniapp/LICENSE create mode 100644 yunxi-ui-admin-uniapp/api/login.js create mode 100644 yunxi-ui-admin-uniapp/api/system/user.js create mode 100644 yunxi-ui-admin-uniapp/components/uni-section/uni-section.vue create mode 100644 yunxi-ui-admin-uniapp/components/verifition/Verify.vue create mode 100644 yunxi-ui-admin-uniapp/components/verifition/utils/ase.js create mode 100644 yunxi-ui-admin-uniapp/components/verifition/utils/request.js create mode 100644 yunxi-ui-admin-uniapp/components/verifition/verifyPoint/verifyPoint.vue create mode 100644 yunxi-ui-admin-uniapp/components/verifition/verifySlider/verifySlider.vue create mode 100644 yunxi-ui-admin-uniapp/config.js create mode 100644 yunxi-ui-admin-uniapp/main.js create mode 100644 yunxi-ui-admin-uniapp/manifest.json create mode 100644 yunxi-ui-admin-uniapp/package.json create mode 100644 yunxi-ui-admin-uniapp/pages.json create mode 100644 yunxi-ui-admin-uniapp/pages/common/textview/index.vue create mode 100644 yunxi-ui-admin-uniapp/pages/common/webview/index.vue create mode 100644 yunxi-ui-admin-uniapp/pages/index.vue create mode 100644 yunxi-ui-admin-uniapp/pages/login.vue create mode 100644 yunxi-ui-admin-uniapp/pages/mine/about/index.vue create mode 100644 yunxi-ui-admin-uniapp/pages/mine/avatar/index.vue create mode 100644 yunxi-ui-admin-uniapp/pages/mine/help/index.vue create mode 100644 yunxi-ui-admin-uniapp/pages/mine/index.vue create mode 100644 yunxi-ui-admin-uniapp/pages/mine/info/edit.vue create mode 100644 yunxi-ui-admin-uniapp/pages/mine/info/index.vue create mode 100644 yunxi-ui-admin-uniapp/pages/mine/pwd/index.vue create mode 100644 yunxi-ui-admin-uniapp/pages/mine/setting/index.vue create mode 100644 yunxi-ui-admin-uniapp/pages/work/index.vue create mode 100644 yunxi-ui-admin-uniapp/permission.js create mode 100644 yunxi-ui-admin-uniapp/plugins/auth.js create mode 100644 yunxi-ui-admin-uniapp/plugins/index.js create mode 100644 yunxi-ui-admin-uniapp/plugins/modal.js create mode 100644 yunxi-ui-admin-uniapp/plugins/tab.js create mode 100644 yunxi-ui-admin-uniapp/static/favicon.ico create mode 100644 yunxi-ui-admin-uniapp/static/font/iconfont.css create mode 100644 yunxi-ui-admin-uniapp/static/font/iconfont.ttf create mode 100644 yunxi-ui-admin-uniapp/static/images/banner/banner01.jpg create mode 100644 yunxi-ui-admin-uniapp/static/images/banner/banner02.jpg create mode 100644 yunxi-ui-admin-uniapp/static/images/banner/banner03.jpg create mode 100644 yunxi-ui-admin-uniapp/static/images/default.jpg create mode 100644 yunxi-ui-admin-uniapp/static/images/profile.jpg create mode 100644 yunxi-ui-admin-uniapp/static/images/tabbar/home.png create mode 100644 yunxi-ui-admin-uniapp/static/images/tabbar/home_.png create mode 100644 yunxi-ui-admin-uniapp/static/images/tabbar/mine.png create mode 100644 yunxi-ui-admin-uniapp/static/images/tabbar/mine_.png create mode 100644 yunxi-ui-admin-uniapp/static/images/tabbar/work.png create mode 100644 yunxi-ui-admin-uniapp/static/images/tabbar/work_.png create mode 100644 yunxi-ui-admin-uniapp/static/index.html create mode 100644 yunxi-ui-admin-uniapp/static/logo.png create mode 100644 yunxi-ui-admin-uniapp/static/logo200.png create mode 100644 yunxi-ui-admin-uniapp/static/scss/colorui.css create mode 100644 yunxi-ui-admin-uniapp/static/scss/global.scss create mode 100644 yunxi-ui-admin-uniapp/static/scss/index.scss create mode 100644 yunxi-ui-admin-uniapp/store/getters.js create mode 100644 yunxi-ui-admin-uniapp/store/index.js create mode 100644 yunxi-ui-admin-uniapp/store/modules/user.js create mode 100644 yunxi-ui-admin-uniapp/uni.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-badge/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-badge/components/uni-badge/uni-badge.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-badge/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-badge/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-breadcrumb/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-breadcrumb/components/uni-breadcrumb-item/uni-breadcrumb-item.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-breadcrumb/components/uni-breadcrumb/uni-breadcrumb.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-breadcrumb/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-breadcrumb/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-calendar/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-calendar/components/uni-calendar/calendar.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-calendar/components/uni-calendar/util.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-calendar/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-calendar/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-card/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-card/components/uni-card/uni-card.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-card/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-card/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-collapse/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-collapse/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-collapse/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-combox/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-combox/components/uni-combox/uni-combox.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-combox/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-combox/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-countdown/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-countdown/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-countdown/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-checkbox/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-checkbox/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-checkbox/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-picker/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-picker/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-picker/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-select/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-select/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-data-select/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-dateformat/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-dateformat/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-dateformat/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-datetime-picker/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-datetime-picker/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-datetime-picker/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-drawer/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-drawer/components/uni-drawer/keypress.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-drawer/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-drawer/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-easyinput/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-easyinput/components/uni-easyinput/common.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-easyinput/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-easyinput/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-fab/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-fab/components/uni-fab/uni-fab.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-fab/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-fab/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-fav/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/en.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/index.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-fav/components/uni-fav/uni-fav.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-fav/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-fav/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-file-picker/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/utils.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-file-picker/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-file-picker/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-forms/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-forms/components/uni-forms/uni-forms.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-forms/components/uni-forms/utils.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-forms/components/uni-forms/validate.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-forms/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-forms/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-goods-nav/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-goods-nav/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-goods-nav/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-grid/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-grid/components/uni-grid/uni-grid.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-grid/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-grid/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-group/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-group/components/uni-group/uni-group.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-group/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-group/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-icons/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-icons/components/uni-icons/icons.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-icons/components/uni-icons/uni-icons.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-icons/components/uni-icons/uniicons.css create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-icons/components/uni-icons/uniicons.ttf create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-icons/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-icons/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-indexed-list/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-indexed-list/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-indexed-list/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-link/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-link/components/uni-link/uni-link.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-link/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-link/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-list/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-list/components/uni-list/uni-list.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-list/components/uni-list/uni-refresh.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-list/components/uni-list/uni-refresh.wxs create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-list/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-list/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-load-more/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-load-more/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-load-more/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-nav-bar/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-nav-bar/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-nav-bar/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-notice-bar/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-notice-bar/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-notice-bar/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-number-box/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-number-box/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-number-box/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-pagination/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-pagination/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-pagination/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/en.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/index.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/components/uni-popup/keypress.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/components/uni-popup/popup.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/components/uni-popup/uni-popup.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-popup/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-rate/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-rate/components/uni-rate/uni-rate.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-rate/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-rate/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-row/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-row/components/uni-col/uni-col.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-row/components/uni-row/uni-row.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-row/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-row/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/index.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/styles/index.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/styles/setting/_border.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/styles/setting/_color.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/styles/setting/_radius.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/styles/setting/_space.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/styles/setting/_styles.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/styles/setting/_text.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/styles/setting/_variables.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/styles/tools/functions.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/theme.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-scss/variables.scss create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-search-bar/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-search-bar/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-search-bar/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-segmented-control/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-segmented-control/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-segmented-control/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-steps/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-steps/components/uni-steps/uni-steps.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-steps/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-steps/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swipe-action/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swipe-action/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swipe-action/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swiper-dot/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swiper-dot/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-swiper-dot/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/components/uni-table/uni-table.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/components/uni-td/uni-td.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/components/uni-th/filter-dropdown.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/components/uni-th/uni-th.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/components/uni-thead/uni-thead.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/components/uni-tr/table-checkbox.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/components/uni-tr/uni-tr.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/i18n/en.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/i18n/es.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/i18n/fr.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/i18n/index.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/i18n/zh-Hans.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/i18n/zh-Hant.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-table/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-tag/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-tag/components/uni-tag/uni-tag.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-tag/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-tag/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-title/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-title/components/uni-title/uni-title.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-title/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-title/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-tooltip/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-tooltip/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-tooltip/readme.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-transition/changelog.md create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-transition/components/uni-transition/createAnimation.js create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-transition/components/uni-transition/uni-transition.vue create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-transition/package.json create mode 100644 yunxi-ui-admin-uniapp/uni_modules/uni-transition/readme.md create mode 100644 yunxi-ui-admin-uniapp/utils/auth.js create mode 100644 yunxi-ui-admin-uniapp/utils/common.js create mode 100644 yunxi-ui-admin-uniapp/utils/constant.js create mode 100644 yunxi-ui-admin-uniapp/utils/errorCode.js create mode 100644 yunxi-ui-admin-uniapp/utils/permission.js create mode 100644 yunxi-ui-admin-uniapp/utils/request.js create mode 100644 yunxi-ui-admin-uniapp/utils/ruoyi.js create mode 100644 yunxi-ui-admin-uniapp/utils/storage.js create mode 100644 yunxi-ui-admin-uniapp/utils/upload.js create mode 100644 yunxi-ui-admin/.dockerignore create mode 100644 yunxi-ui-admin/.editorconfig create mode 100644 yunxi-ui-admin/.env.dev create mode 100644 yunxi-ui-admin/.env.front create mode 100644 yunxi-ui-admin/.env.prod create mode 100644 yunxi-ui-admin/.env.stage create mode 100644 yunxi-ui-admin/.env.static create mode 100644 yunxi-ui-admin/.eslintignore create mode 100644 yunxi-ui-admin/.eslintrc.js create mode 100644 yunxi-ui-admin/.gitignore create mode 100644 yunxi-ui-admin/.npmrc create mode 100644 yunxi-ui-admin/Dockerfile create mode 100644 yunxi-ui-admin/Jenkinsfile create mode 100644 yunxi-ui-admin/babel.config.js create mode 100644 yunxi-ui-admin/bin/build.bat create mode 100644 yunxi-ui-admin/bin/package.bat create mode 100644 yunxi-ui-admin/bin/run-web.bat create mode 100644 yunxi-ui-admin/build/index.js create mode 100644 yunxi-ui-admin/nginx.conf create mode 100644 yunxi-ui-admin/package.json create mode 100644 yunxi-ui-admin/public/favicon.ico create mode 100644 yunxi-ui-admin/public/html/ie.html create mode 100644 yunxi-ui-admin/public/index.html create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/base/browser/ui/codicons/codicon/codicon.ttf create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/base/worker/workerMain.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/abap/abap.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/apex/apex.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/azcli/azcli.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/bat/bat.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/cameligo/cameligo.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/clojure/clojure.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/coffee/coffee.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/cpp/cpp.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/csharp/csharp.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/csp/csp.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/css/css.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/dart/dart.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/dockerfile/dockerfile.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/ecl/ecl.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/fsharp/fsharp.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/go/go.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/graphql/graphql.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/handlebars/handlebars.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/hcl/hcl.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/html/html.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/ini/ini.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/java/java.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/javascript/javascript.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/julia/julia.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/kotlin/kotlin.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/less/less.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/lexon/lexon.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/lua/lua.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/m3/m3.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/markdown/markdown.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/mips/mips.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/msdax/msdax.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/mysql/mysql.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/objective-c/objective-c.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/pascal/pascal.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/pascaligo/pascaligo.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/perl/perl.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/pgsql/pgsql.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/php/php.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/postiats/postiats.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/powerquery/powerquery.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/powershell/powershell.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/pug/pug.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/python/python.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/r/r.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/razor/razor.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/redis/redis.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/redshift/redshift.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/restructuredtext/restructuredtext.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/ruby/ruby.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/rust/rust.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/sb/sb.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/scala/scala.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/scheme/scheme.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/scss/scss.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/shell/shell.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/solidity/solidity.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/sophia/sophia.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/sql/sql.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/st/st.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/swift/swift.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/systemverilog/systemverilog.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/tcl/tcl.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/twig/twig.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/typescript/typescript.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/vb/vb.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/xml/xml.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/basic-languages/yaml/yaml.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/editor/editor.main.css create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/editor/editor.main.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/editor/editor.main.nls.de.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/editor/editor.main.nls.es.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/editor/editor.main.nls.fr.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/editor/editor.main.nls.it.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/editor/editor.main.nls.ja.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/editor/editor.main.nls.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/editor/editor.main.nls.ko.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/editor/editor.main.nls.ru.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/editor/editor.main.nls.zh-cn.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/editor/editor.main.nls.zh-tw.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/language/css/cssMode.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/language/css/cssWorker.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/language/html/htmlMode.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/language/html/htmlWorker.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/language/json/jsonMode.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/language/json/jsonWorker.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/language/typescript/tsMode.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/language/typescript/tsWorker.js create mode 100644 yunxi-ui-admin/public/libs/monaco-editor/vs/loader.js create mode 100644 yunxi-ui-admin/public/robots.txt create mode 100644 yunxi-ui-admin/src/App.vue create mode 100644 yunxi-ui-admin/src/api/bpm/activity.js create mode 100644 yunxi-ui-admin/src/api/bpm/definition.js create mode 100644 yunxi-ui-admin/src/api/bpm/form.js create mode 100644 yunxi-ui-admin/src/api/bpm/leave.js create mode 100644 yunxi-ui-admin/src/api/bpm/model.js create mode 100644 yunxi-ui-admin/src/api/bpm/processInstance.js create mode 100644 yunxi-ui-admin/src/api/bpm/task.js create mode 100644 yunxi-ui-admin/src/api/bpm/taskAssignRule.js create mode 100644 yunxi-ui-admin/src/api/bpm/userGroup.js create mode 100644 yunxi-ui-admin/src/api/demo/material.js create mode 100644 yunxi-ui-admin/src/api/infra/apiAccessLog.js create mode 100644 yunxi-ui-admin/src/api/infra/apiErrorLog.js create mode 100644 yunxi-ui-admin/src/api/infra/codegen.js create mode 100644 yunxi-ui-admin/src/api/infra/config.js create mode 100644 yunxi-ui-admin/src/api/infra/dataSourceConfig.js create mode 100644 yunxi-ui-admin/src/api/infra/dbDoc.js create mode 100644 yunxi-ui-admin/src/api/infra/file.js create mode 100644 yunxi-ui-admin/src/api/infra/fileConfig.js create mode 100644 yunxi-ui-admin/src/api/infra/job.js create mode 100644 yunxi-ui-admin/src/api/infra/jobLog.js create mode 100644 yunxi-ui-admin/src/api/infra/redis.js create mode 100644 yunxi-ui-admin/src/api/infra/testDemo.js create mode 100644 yunxi-ui-admin/src/api/login.js create mode 100644 yunxi-ui-admin/src/api/mall/market/banner.js create mode 100644 yunxi-ui-admin/src/api/mall/product/brand.js create mode 100644 yunxi-ui-admin/src/api/mall/product/category.js create mode 100644 yunxi-ui-admin/src/api/mall/product/property.js create mode 100644 yunxi-ui-admin/src/api/mall/product/sku.js create mode 100644 yunxi-ui-admin/src/api/mall/product/spu.js create mode 100644 yunxi-ui-admin/src/api/mall/promotion/coupon.js create mode 100644 yunxi-ui-admin/src/api/mall/promotion/couponTemplate.js create mode 100644 yunxi-ui-admin/src/api/mall/promotion/discountActivity.js create mode 100644 yunxi-ui-admin/src/api/mall/promotion/rewardActivity.js create mode 100644 yunxi-ui-admin/src/api/mall/promotion/seckillActivity.js create mode 100644 yunxi-ui-admin/src/api/mall/promotion/seckillTime.js create mode 100644 yunxi-ui-admin/src/api/mall/trade/afterSale.js create mode 100644 yunxi-ui-admin/src/api/mall/trade/order.js create mode 100644 yunxi-ui-admin/src/api/mp/account.js create mode 100644 yunxi-ui-admin/src/api/mp/autoReply.js create mode 100644 yunxi-ui-admin/src/api/mp/draft.js create mode 100644 yunxi-ui-admin/src/api/mp/freePublish.js create mode 100644 yunxi-ui-admin/src/api/mp/material.js create mode 100644 yunxi-ui-admin/src/api/mp/menu.js create mode 100644 yunxi-ui-admin/src/api/mp/message.js create mode 100644 yunxi-ui-admin/src/api/mp/mpuser.js create mode 100644 yunxi-ui-admin/src/api/mp/statistics.js create mode 100644 yunxi-ui-admin/src/api/mp/tag.js create mode 100644 yunxi-ui-admin/src/api/pay/app.js create mode 100644 yunxi-ui-admin/src/api/pay/channel.js create mode 100644 yunxi-ui-admin/src/api/pay/demo.js create mode 100644 yunxi-ui-admin/src/api/pay/notify.js create mode 100644 yunxi-ui-admin/src/api/pay/order.js create mode 100644 yunxi-ui-admin/src/api/pay/refund.js create mode 100644 yunxi-ui-admin/src/api/system/area.js create mode 100644 yunxi-ui-admin/src/api/system/dept.js create mode 100644 yunxi-ui-admin/src/api/system/dict/data.js create mode 100644 yunxi-ui-admin/src/api/system/dict/type.js create mode 100644 yunxi-ui-admin/src/api/system/errorCode.js create mode 100644 yunxi-ui-admin/src/api/system/loginlog.js create mode 100644 yunxi-ui-admin/src/api/system/mail/account.js create mode 100644 yunxi-ui-admin/src/api/system/mail/log.js create mode 100644 yunxi-ui-admin/src/api/system/mail/template.js create mode 100644 yunxi-ui-admin/src/api/system/menu.js create mode 100644 yunxi-ui-admin/src/api/system/notice.js create mode 100644 yunxi-ui-admin/src/api/system/notify/message.js create mode 100644 yunxi-ui-admin/src/api/system/notify/template.js create mode 100644 yunxi-ui-admin/src/api/system/oauth2/oauth2Client.js create mode 100644 yunxi-ui-admin/src/api/system/oauth2/oauth2Token.js create mode 100644 yunxi-ui-admin/src/api/system/operatelog.js create mode 100644 yunxi-ui-admin/src/api/system/permission.js create mode 100644 yunxi-ui-admin/src/api/system/post.js create mode 100644 yunxi-ui-admin/src/api/system/role.js create mode 100644 yunxi-ui-admin/src/api/system/sensitiveWord.js create mode 100644 yunxi-ui-admin/src/api/system/sms/smsChannel.js create mode 100644 yunxi-ui-admin/src/api/system/sms/smsLog.js create mode 100644 yunxi-ui-admin/src/api/system/sms/smsTemplate.js create mode 100644 yunxi-ui-admin/src/api/system/socialUser.js create mode 100644 yunxi-ui-admin/src/api/system/tenant.js create mode 100644 yunxi-ui-admin/src/api/system/tenantPackage.js create mode 100644 yunxi-ui-admin/src/api/system/user.js create mode 100644 yunxi-ui-admin/src/api/xxjj/brandLibrary.js create mode 100644 yunxi-ui-admin/src/api/xxjj/businessLine.js create mode 100644 yunxi-ui-admin/src/api/xxjj/customer.js create mode 100644 yunxi-ui-admin/src/api/xxjj/enterprise.js create mode 100644 yunxi-ui-admin/src/api/xxjj/enterpriseContract.js create mode 100644 yunxi-ui-admin/src/api/xxjj/material.js create mode 100644 yunxi-ui-admin/src/api/xxjj/material/material.js create mode 100644 yunxi-ui-admin/src/api/xxjj/material/materialCategory.js create mode 100644 yunxi-ui-admin/src/api/xxjj/material/materialIndustry.js create mode 100644 yunxi-ui-admin/src/api/xxjj/material/materialType.js create mode 100644 yunxi-ui-admin/src/api/xxjj/materialCategory.js create mode 100644 yunxi-ui-admin/src/api/xxjj/materialIndustry.js create mode 100644 yunxi-ui-admin/src/api/xxjj/materialQuality.js create mode 100644 yunxi-ui-admin/src/api/xxjj/materialType.js create mode 100644 yunxi-ui-admin/src/api/xxjj/productionProcesses.js create mode 100644 yunxi-ui-admin/src/api/xxjj/supplier.js create mode 100644 yunxi-ui-admin/src/api/xxjj/unitLibrary.js create mode 100644 yunxi-ui-admin/src/api/xxjj/warehouse.js create mode 100644 yunxi-ui-admin/src/api/xxjj/warehouseOut.js create mode 100644 yunxi-ui-admin/src/api/xxjj/warehouseReceipt.js create mode 100644 yunxi-ui-admin/src/assets/401_images/401.gif create mode 100644 yunxi-ui-admin/src/assets/404_images/404.png create mode 100644 yunxi-ui-admin/src/assets/404_images/404_cloud.png create mode 100644 yunxi-ui-admin/src/assets/icons/index.js create mode 100644 yunxi-ui-admin/src/assets/icons/svg/404.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/bug.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/build.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/button.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/cascader.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/chart.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/checkbox.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/clipboard.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/code.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/color.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/component.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/config.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/dashboard.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/date-range.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/date.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/dict.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/documentation.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/download.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/drag.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/druid.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/edit.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/education.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/email.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/example.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/excel.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/exit-fullscreen.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/eye-open.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/eye.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/form.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/fullscreen.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/github.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/guide.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/icon.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/input.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/international.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/job.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/language.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/link.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/list.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/lock.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/log.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/logininfor.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/map.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/merchant.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/message.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/money.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/monitor.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/nested.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/number.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/online.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/order.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/password.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/pay.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/pdf.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/people.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/peoples.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/percentSign.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/phone.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/post.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/qq.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/question.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/radio.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/rate.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/redis.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/rich-text.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/row.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/search.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/select.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/server.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/shopping.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/size.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/skill.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/slider.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/star.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/swagger.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/switch.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/system.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/tab.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/table.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/textarea.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/theme.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/time-range.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/time.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/tool.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/tree-table.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/tree.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/upload.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/user.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/validCode.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/wechat.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svg/zip.svg create mode 100644 yunxi-ui-admin/src/assets/icons/svgo.yml create mode 100644 yunxi-ui-admin/src/assets/images/bg-mobile.png create mode 100644 yunxi-ui-admin/src/assets/images/bg.png create mode 100644 yunxi-ui-admin/src/assets/images/dark.svg create mode 100644 yunxi-ui-admin/src/assets/images/default.jpg create mode 100644 yunxi-ui-admin/src/assets/images/icon.png create mode 100644 yunxi-ui-admin/src/assets/images/light.svg create mode 100644 yunxi-ui-admin/src/assets/images/pay/icon/alipay_app.svg create mode 100644 yunxi-ui-admin/src/assets/images/pay/icon/alipay_bar.svg create mode 100644 yunxi-ui-admin/src/assets/images/pay/icon/alipay_pc.svg create mode 100644 yunxi-ui-admin/src/assets/images/pay/icon/alipay_qr.svg create mode 100644 yunxi-ui-admin/src/assets/images/pay/icon/alipay_wap.svg create mode 100644 yunxi-ui-admin/src/assets/images/pay/icon/mock.svg create mode 100644 yunxi-ui-admin/src/assets/images/pay/icon/wx_app.svg create mode 100644 yunxi-ui-admin/src/assets/images/pay/icon/wx_bar.svg create mode 100644 yunxi-ui-admin/src/assets/images/pay/icon/wx_lite.svg create mode 100644 yunxi-ui-admin/src/assets/images/pay/icon/wx_native.svg create mode 100644 yunxi-ui-admin/src/assets/images/pay/icon/wx_pub.svg create mode 100644 yunxi-ui-admin/src/assets/images/pic.png create mode 100644 yunxi-ui-admin/src/assets/images/profile.jpg create mode 100644 yunxi-ui-admin/src/assets/images/wechat.png create mode 100644 yunxi-ui-admin/src/assets/logo/login-logo.png create mode 100644 yunxi-ui-admin/src/assets/logo/logo.png create mode 100644 yunxi-ui-admin/src/assets/styles/btn.scss create mode 100644 yunxi-ui-admin/src/assets/styles/element-ui.scss create mode 100644 yunxi-ui-admin/src/assets/styles/element-variables.scss create mode 100644 yunxi-ui-admin/src/assets/styles/index.scss create mode 100644 yunxi-ui-admin/src/assets/styles/login.scss create mode 100644 yunxi-ui-admin/src/assets/styles/mixin.scss create mode 100644 yunxi-ui-admin/src/assets/styles/ruoyi.scss create mode 100644 yunxi-ui-admin/src/assets/styles/sidebar.scss create mode 100644 yunxi-ui-admin/src/assets/styles/transition.scss create mode 100644 yunxi-ui-admin/src/assets/styles/variables.scss create mode 100644 yunxi-ui-admin/src/components/Breadcrumb/index.vue create mode 100644 yunxi-ui-admin/src/components/Crontab/day.vue create mode 100644 yunxi-ui-admin/src/components/Crontab/hour.vue create mode 100644 yunxi-ui-admin/src/components/Crontab/index.vue create mode 100644 yunxi-ui-admin/src/components/Crontab/min.vue create mode 100644 yunxi-ui-admin/src/components/Crontab/month.vue create mode 100644 yunxi-ui-admin/src/components/Crontab/result.vue create mode 100644 yunxi-ui-admin/src/components/Crontab/second.vue create mode 100644 yunxi-ui-admin/src/components/Crontab/week.vue create mode 100644 yunxi-ui-admin/src/components/Crontab/year.vue create mode 100644 yunxi-ui-admin/src/components/DictTag/index.vue create mode 100644 yunxi-ui-admin/src/components/DocAlert/index.vue create mode 100644 yunxi-ui-admin/src/components/Editor/index.vue create mode 100644 yunxi-ui-admin/src/components/FileUpload/index.vue create mode 100644 yunxi-ui-admin/src/components/Hamburger/index.vue create mode 100644 yunxi-ui-admin/src/components/HeaderSearch/index.vue create mode 100644 yunxi-ui-admin/src/components/IconSelect/index.vue create mode 100644 yunxi-ui-admin/src/components/IconSelect/requireIcons.js create mode 100644 yunxi-ui-admin/src/components/ImagePreview/index.vue create mode 100644 yunxi-ui-admin/src/components/ImageUpload/index.vue create mode 100644 yunxi-ui-admin/src/components/Pagination/index.vue create mode 100644 yunxi-ui-admin/src/components/PanThumb/index.vue create mode 100644 yunxi-ui-admin/src/components/ParentView/index.vue create mode 100644 yunxi-ui-admin/src/components/RADME.md create mode 100644 yunxi-ui-admin/src/components/RightPanel/index.vue create mode 100644 yunxi-ui-admin/src/components/RightToolbar/index.vue create mode 100644 yunxi-ui-admin/src/components/RuoYi/Doc/index.vue create mode 100644 yunxi-ui-admin/src/components/RuoYi/Git/index.vue create mode 100644 yunxi-ui-admin/src/components/Screenfull/index.vue create mode 100644 yunxi-ui-admin/src/components/SizeSelect/index.vue create mode 100644 yunxi-ui-admin/src/components/SvgIcon/index.vue create mode 100644 yunxi-ui-admin/src/components/ThemePicker/index.vue create mode 100644 yunxi-ui-admin/src/components/TopNav/index.vue create mode 100644 yunxi-ui-admin/src/components/Verifition/Verify.vue create mode 100644 yunxi-ui-admin/src/components/Verifition/Verify/VerifyPoints.vue create mode 100644 yunxi-ui-admin/src/components/Verifition/Verify/VerifySlide.vue create mode 100644 yunxi-ui-admin/src/components/Verifition/utils/util.js create mode 100644 yunxi-ui-admin/src/components/VideoUpload/index.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/index.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/index2.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/contentPadProvider.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/index.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/defaultEmpty.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/activitiDescriptor.json create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/camundaDescriptor.json create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/activitiExtension.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/index.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/extension.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/index.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/flowableExtension.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/index.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/palette/index.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/translate/customTranslate.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/translate/zh.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/index.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/form/ElementForm.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/index.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/listeners/ElementListeners.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/listeners/template.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/listeners/utilSelf.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/properties/ElementProperties.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/task/ElementTask.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/theme/element-variables.scss create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/theme/index.scss create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/theme/process-designer.scss create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/theme/process-panel.scss create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/package/utils.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/src/highlight/index.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/src/modules/custom-renderer/CustomRenderer.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/src/modules/custom-renderer/index.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/src/modules/rules/CustomRules.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/src/modules/rules/index.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/src/translations.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/src/utils/directive/clickOutSide.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/src/utils/index.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/src/utils/log.js create mode 100644 yunxi-ui-admin/src/components/bpmnProcessDesigner/src/utils/xml2json.js create mode 100644 yunxi-ui-admin/src/components/generator/config.js create mode 100644 yunxi-ui-admin/src/components/generator/css.js create mode 100644 yunxi-ui-admin/src/components/generator/drawingDefalut.js create mode 100644 yunxi-ui-admin/src/components/generator/html.js create mode 100644 yunxi-ui-admin/src/components/generator/js.js create mode 100644 yunxi-ui-admin/src/components/generator/ruleTrigger.js create mode 100644 yunxi-ui-admin/src/components/iFrame/index.vue create mode 100644 yunxi-ui-admin/src/components/parser/Parser.vue create mode 100644 yunxi-ui-admin/src/components/parser/README.md create mode 100644 yunxi-ui-admin/src/components/parser/example/Index.vue create mode 100644 yunxi-ui-admin/src/components/parser/index.js create mode 100644 yunxi-ui-admin/src/components/parser/package.json create mode 100644 yunxi-ui-admin/src/components/render/package.json create mode 100644 yunxi-ui-admin/src/components/render/render.js create mode 100644 yunxi-ui-admin/src/components/render/slots/el-button.js create mode 100644 yunxi-ui-admin/src/components/render/slots/el-checkbox-group.js create mode 100644 yunxi-ui-admin/src/components/render/slots/el-input.js create mode 100644 yunxi-ui-admin/src/components/render/slots/el-radio-group.js create mode 100644 yunxi-ui-admin/src/components/render/slots/el-select.js create mode 100644 yunxi-ui-admin/src/components/render/slots/el-upload.js create mode 100644 yunxi-ui-admin/src/components/tinymce/README.md create mode 100644 yunxi-ui-admin/src/components/tinymce/config.js create mode 100644 yunxi-ui-admin/src/components/tinymce/example/Index.vue create mode 100644 yunxi-ui-admin/src/components/tinymce/index.js create mode 100644 yunxi-ui-admin/src/components/tinymce/index.vue create mode 100644 yunxi-ui-admin/src/components/tinymce/package.json create mode 100644 yunxi-ui-admin/src/components/tinymce/zh_CN.js create mode 100644 yunxi-ui-admin/src/directive/dialog/drag.js create mode 100644 yunxi-ui-admin/src/directive/dialog/dragHeight.js create mode 100644 yunxi-ui-admin/src/directive/dialog/dragWidth.js create mode 100644 yunxi-ui-admin/src/directive/index.js create mode 100644 yunxi-ui-admin/src/directive/module/clipboard.js create mode 100644 yunxi-ui-admin/src/directive/permission/hasPermi.js create mode 100644 yunxi-ui-admin/src/directive/permission/hasRole.js create mode 100644 yunxi-ui-admin/src/layout/components/AppMain.vue create mode 100644 yunxi-ui-admin/src/layout/components/IframeToggle/index.vue create mode 100644 yunxi-ui-admin/src/layout/components/InnerLink/index.vue create mode 100644 yunxi-ui-admin/src/layout/components/Message/index.vue create mode 100644 yunxi-ui-admin/src/layout/components/Navbar.vue create mode 100644 yunxi-ui-admin/src/layout/components/Settings/index.vue create mode 100644 yunxi-ui-admin/src/layout/components/Sidebar/FixiOSBug.js create mode 100644 yunxi-ui-admin/src/layout/components/Sidebar/Item.vue create mode 100644 yunxi-ui-admin/src/layout/components/Sidebar/Link.vue create mode 100644 yunxi-ui-admin/src/layout/components/Sidebar/Logo.vue create mode 100644 yunxi-ui-admin/src/layout/components/Sidebar/SidebarItem.vue create mode 100644 yunxi-ui-admin/src/layout/components/Sidebar/index.vue create mode 100644 yunxi-ui-admin/src/layout/components/TagsView/ScrollPane.vue create mode 100644 yunxi-ui-admin/src/layout/components/TagsView/index.vue create mode 100644 yunxi-ui-admin/src/layout/components/index.js create mode 100644 yunxi-ui-admin/src/layout/index.vue create mode 100644 yunxi-ui-admin/src/layout/mixin/ResizeHandler.js create mode 100644 yunxi-ui-admin/src/main.js create mode 100644 yunxi-ui-admin/src/permission.js create mode 100644 yunxi-ui-admin/src/plugins/auth.js create mode 100644 yunxi-ui-admin/src/plugins/cache.js create mode 100644 yunxi-ui-admin/src/plugins/download.js create mode 100644 yunxi-ui-admin/src/plugins/index.js create mode 100644 yunxi-ui-admin/src/plugins/modal.js create mode 100644 yunxi-ui-admin/src/plugins/tab.js create mode 100644 yunxi-ui-admin/src/router/index.js create mode 100644 yunxi-ui-admin/src/settings.js create mode 100644 yunxi-ui-admin/src/store/getters.js create mode 100644 yunxi-ui-admin/src/store/index.js create mode 100644 yunxi-ui-admin/src/store/modules/app.js create mode 100644 yunxi-ui-admin/src/store/modules/dict.js create mode 100644 yunxi-ui-admin/src/store/modules/permission.js create mode 100644 yunxi-ui-admin/src/store/modules/settings.js create mode 100644 yunxi-ui-admin/src/store/modules/tagsView.js create mode 100644 yunxi-ui-admin/src/store/modules/user.js create mode 100644 yunxi-ui-admin/src/styles/home.scss create mode 100644 yunxi-ui-admin/src/styles/index.scss create mode 100644 yunxi-ui-admin/src/styles/mixin.scss create mode 100644 yunxi-ui-admin/src/tongji.js create mode 100644 yunxi-ui-admin/src/utils/ase.js create mode 100644 yunxi-ui-admin/src/utils/auth.js create mode 100644 yunxi-ui-admin/src/utils/constants.js create mode 100644 yunxi-ui-admin/src/utils/dateUtils.js create mode 100644 yunxi-ui-admin/src/utils/db.js create mode 100644 yunxi-ui-admin/src/utils/dict.js create mode 100644 yunxi-ui-admin/src/utils/errorCode.js create mode 100644 yunxi-ui-admin/src/utils/formGenerator.js create mode 100644 yunxi-ui-admin/src/utils/icon.json create mode 100644 yunxi-ui-admin/src/utils/index.js create mode 100644 yunxi-ui-admin/src/utils/jsencrypt.js create mode 100644 yunxi-ui-admin/src/utils/loadBeautifier.js create mode 100644 yunxi-ui-admin/src/utils/loadMonaco.js create mode 100644 yunxi-ui-admin/src/utils/loadScript.js create mode 100644 yunxi-ui-admin/src/utils/loadTinymce.js create mode 100644 yunxi-ui-admin/src/utils/permission.js create mode 100644 yunxi-ui-admin/src/utils/pluginsConfig.js create mode 100644 yunxi-ui-admin/src/utils/request.js create mode 100644 yunxi-ui-admin/src/utils/ruoyi.js create mode 100644 yunxi-ui-admin/src/utils/scroll-to.js create mode 100644 yunxi-ui-admin/src/utils/validate.js create mode 100644 yunxi-ui-admin/src/views/bpm/definition/index.vue create mode 100644 yunxi-ui-admin/src/views/bpm/form/formEditor.vue create mode 100644 yunxi-ui-admin/src/views/bpm/form/index.vue create mode 100644 yunxi-ui-admin/src/views/bpm/group/index.vue create mode 100644 yunxi-ui-admin/src/views/bpm/model/index.vue create mode 100644 yunxi-ui-admin/src/views/bpm/model/modelEditor.vue create mode 100644 yunxi-ui-admin/src/views/bpm/oa/leave/create.vue create mode 100644 yunxi-ui-admin/src/views/bpm/oa/leave/detail.vue create mode 100644 yunxi-ui-admin/src/views/bpm/oa/leave/index.vue create mode 100644 yunxi-ui-admin/src/views/bpm/processInstance/create.vue create mode 100644 yunxi-ui-admin/src/views/bpm/processInstance/detail.vue create mode 100644 yunxi-ui-admin/src/views/bpm/processInstance/index.vue create mode 100644 yunxi-ui-admin/src/views/bpm/task/done/index.vue create mode 100644 yunxi-ui-admin/src/views/bpm/task/todo/index.vue create mode 100644 yunxi-ui-admin/src/views/bpm/taskAssignRule/taskAssignRuleDialog.vue create mode 100644 yunxi-ui-admin/src/views/components/icons/element-icons.js create mode 100644 yunxi-ui-admin/src/views/components/icons/index.vue create mode 100644 yunxi-ui-admin/src/views/components/icons/svg-icons.js create mode 100644 yunxi-ui-admin/src/views/dashboard/BarChart.vue create mode 100644 yunxi-ui-admin/src/views/dashboard/LineChart.vue create mode 100644 yunxi-ui-admin/src/views/dashboard/PanelGroup.vue create mode 100644 yunxi-ui-admin/src/views/dashboard/PieChart.vue create mode 100644 yunxi-ui-admin/src/views/dashboard/RaddarChart.vue create mode 100644 yunxi-ui-admin/src/views/dashboard/mixins/resize.js create mode 100644 yunxi-ui-admin/src/views/demo/material/index.vue create mode 100644 yunxi-ui-admin/src/views/error/401.vue create mode 100644 yunxi-ui-admin/src/views/error/404.vue create mode 100644 yunxi-ui-admin/src/views/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/apiAccessLog/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/apiErrorLog/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/build/App.vue create mode 100644 yunxi-ui-admin/src/views/infra/build/CodeTypeDialog.vue create mode 100644 yunxi-ui-admin/src/views/infra/build/DraggableItem.vue create mode 100644 yunxi-ui-admin/src/views/infra/build/FormDrawer.vue create mode 100644 yunxi-ui-admin/src/views/infra/build/IconsDialog.vue create mode 100644 yunxi-ui-admin/src/views/infra/build/JsonDrawer.vue create mode 100644 yunxi-ui-admin/src/views/infra/build/README.md create mode 100644 yunxi-ui-admin/src/views/infra/build/ResourceDialog.vue create mode 100644 yunxi-ui-admin/src/views/infra/build/RightPanel.vue create mode 100644 yunxi-ui-admin/src/views/infra/build/TreeNodeDialog.vue create mode 100644 yunxi-ui-admin/src/views/infra/build/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/build/main.js create mode 100644 yunxi-ui-admin/src/views/infra/codegen/basicInfoForm.vue create mode 100644 yunxi-ui-admin/src/views/infra/codegen/editTable.vue create mode 100644 yunxi-ui-admin/src/views/infra/codegen/genInfoForm.vue create mode 100644 yunxi-ui-admin/src/views/infra/codegen/importTable.vue create mode 100644 yunxi-ui-admin/src/views/infra/codegen/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/config/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/dataSourceConfig/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/dbDoc/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/druid/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/file/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/fileConfig/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/job/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/job/log.vue create mode 100644 yunxi-ui-admin/src/views/infra/redis/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/server/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/skywalking/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/swagger/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/testDemo/index.vue create mode 100644 yunxi-ui-admin/src/views/infra/webSocket/index.vue create mode 100644 yunxi-ui-admin/src/views/login.vue create mode 100644 yunxi-ui-admin/src/views/mall/market/banner/index.vue create mode 100644 yunxi-ui-admin/src/views/mall/product/brand/index.vue create mode 100644 yunxi-ui-admin/src/views/mall/product/category/index.vue create mode 100644 yunxi-ui-admin/src/views/mall/product/property/index.vue create mode 100644 yunxi-ui-admin/src/views/mall/product/property/value.vue create mode 100644 yunxi-ui-admin/src/views/mall/product/spu/index.vue create mode 100644 yunxi-ui-admin/src/views/mall/product/spu/save.vue create mode 100644 yunxi-ui-admin/src/views/mall/promotion/coupon/index.vue create mode 100644 yunxi-ui-admin/src/views/mall/promotion/couponTemplate/index.vue create mode 100644 yunxi-ui-admin/src/views/mall/promotion/discountActivity/index.vue create mode 100644 yunxi-ui-admin/src/views/mall/promotion/rewardActivity/index.vue create mode 100644 yunxi-ui-admin/src/views/mall/promotion/seckill/seckillActivity/index.vue create mode 100644 yunxi-ui-admin/src/views/mall/promotion/seckill/seckillTime/index.vue create mode 100644 yunxi-ui-admin/src/views/mall/trade/afterSale/index.vue create mode 100644 yunxi-ui-admin/src/views/mall/trade/order/detail.vue create mode 100644 yunxi-ui-admin/src/views/mall/trade/order/index.vue create mode 100644 yunxi-ui-admin/src/views/mp/account/index.vue create mode 100644 yunxi-ui-admin/src/views/mp/autoReply/index.vue create mode 100644 yunxi-ui-admin/src/views/mp/components/wx-editor/WxEditor.vue create mode 100644 yunxi-ui-admin/src/views/mp/components/wx-location/main.vue create mode 100644 yunxi-ui-admin/src/views/mp/components/wx-material-select/main.vue create mode 100644 yunxi-ui-admin/src/views/mp/components/wx-msg/card.scss create mode 100644 yunxi-ui-admin/src/views/mp/components/wx-msg/comment.scss create mode 100644 yunxi-ui-admin/src/views/mp/components/wx-msg/main.vue create mode 100644 yunxi-ui-admin/src/views/mp/components/wx-music/main.vue create mode 100644 yunxi-ui-admin/src/views/mp/components/wx-news/main.vue create mode 100644 yunxi-ui-admin/src/views/mp/components/wx-reply/main.vue create mode 100644 yunxi-ui-admin/src/views/mp/components/wx-video-play/main.vue create mode 100644 yunxi-ui-admin/src/views/mp/components/wx-voice-play/main.vue create mode 100644 yunxi-ui-admin/src/views/mp/draft/index.vue create mode 100644 yunxi-ui-admin/src/views/mp/freePublish/index.vue create mode 100644 yunxi-ui-admin/src/views/mp/material/index.vue create mode 100644 yunxi-ui-admin/src/views/mp/menu/assets/demo.png create mode 100644 yunxi-ui-admin/src/views/mp/menu/assets/iphone_backImg.png create mode 100644 yunxi-ui-admin/src/views/mp/menu/assets/logo.png create mode 100644 yunxi-ui-admin/src/views/mp/menu/assets/menu_foot.png create mode 100644 yunxi-ui-admin/src/views/mp/menu/assets/menu_head.png create mode 100644 yunxi-ui-admin/src/views/mp/menu/index.vue create mode 100644 yunxi-ui-admin/src/views/mp/message/index.vue create mode 100644 yunxi-ui-admin/src/views/mp/statistics/index.vue create mode 100644 yunxi-ui-admin/src/views/mp/tag/index.vue create mode 100644 yunxi-ui-admin/src/views/mp/user/index.vue create mode 100644 yunxi-ui-admin/src/views/pay/app/components/alipayChannelForm.vue create mode 100644 yunxi-ui-admin/src/views/pay/app/components/mockChannelForm.vue create mode 100644 yunxi-ui-admin/src/views/pay/app/components/weixinChannelForm.vue create mode 100644 yunxi-ui-admin/src/views/pay/app/index.vue create mode 100644 yunxi-ui-admin/src/views/pay/cashier/index.vue create mode 100644 yunxi-ui-admin/src/views/pay/demo/index.vue create mode 100644 yunxi-ui-admin/src/views/pay/notify/index.vue create mode 100644 yunxi-ui-admin/src/views/pay/order/index.vue create mode 100644 yunxi-ui-admin/src/views/pay/refund/index.vue create mode 100644 yunxi-ui-admin/src/views/redirect.vue create mode 100644 yunxi-ui-admin/src/views/report/goview/index.vue create mode 100644 yunxi-ui-admin/src/views/report/jmreport/index.vue create mode 100644 yunxi-ui-admin/src/views/socialLogin.vue create mode 100644 yunxi-ui-admin/src/views/sso.vue create mode 100644 yunxi-ui-admin/src/views/system/area/index.vue create mode 100644 yunxi-ui-admin/src/views/system/dept/index.vue create mode 100644 yunxi-ui-admin/src/views/system/dict/data.vue create mode 100644 yunxi-ui-admin/src/views/system/dict/index.vue create mode 100644 yunxi-ui-admin/src/views/system/errorCode/index.vue create mode 100644 yunxi-ui-admin/src/views/system/loginlog/index.vue create mode 100644 yunxi-ui-admin/src/views/system/mail/account/index.vue create mode 100644 yunxi-ui-admin/src/views/system/mail/log/index.vue create mode 100644 yunxi-ui-admin/src/views/system/mail/template/index.vue create mode 100644 yunxi-ui-admin/src/views/system/menu/index.vue create mode 100644 yunxi-ui-admin/src/views/system/notice/index.vue create mode 100644 yunxi-ui-admin/src/views/system/notify/message/index.vue create mode 100644 yunxi-ui-admin/src/views/system/notify/my/index.vue create mode 100644 yunxi-ui-admin/src/views/system/notify/template/index.vue create mode 100644 yunxi-ui-admin/src/views/system/oauth2/client/index.vue create mode 100644 yunxi-ui-admin/src/views/system/oauth2/token/index.vue create mode 100644 yunxi-ui-admin/src/views/system/operatelog/index.vue create mode 100644 yunxi-ui-admin/src/views/system/post/index.vue create mode 100644 yunxi-ui-admin/src/views/system/role/index.vue create mode 100644 yunxi-ui-admin/src/views/system/sensitiveWord/index.vue create mode 100644 yunxi-ui-admin/src/views/system/sms/channel/index.vue create mode 100644 yunxi-ui-admin/src/views/system/sms/log/index.vue create mode 100644 yunxi-ui-admin/src/views/system/sms/template/index.vue create mode 100644 yunxi-ui-admin/src/views/system/tenant/index.vue create mode 100644 yunxi-ui-admin/src/views/system/tenantPackage/index.vue create mode 100644 yunxi-ui-admin/src/views/system/user/index.vue create mode 100644 yunxi-ui-admin/src/views/system/user/profile/index.vue create mode 100644 yunxi-ui-admin/src/views/system/user/profile/resetPwd.vue create mode 100644 yunxi-ui-admin/src/views/system/user/profile/userAvatar.vue create mode 100644 yunxi-ui-admin/src/views/system/user/profile/userInfo.vue create mode 100644 yunxi-ui-admin/src/views/system/user/profile/userSocial.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/brandLibrary/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/businessAndWarehouse/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/businessLine/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/customer/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/enterprise/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/enterpriseContract/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/material/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/materialCategory/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/materialIndustry/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/materialQuality/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/materialType/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/product/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/productCategory/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/productionProcesses/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/supplier/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/unitLibrary/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/warehouse/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/warehouseOut/index.vue create mode 100644 yunxi-ui-admin/src/views/xxjj/warehouseReceipt/index.vue create mode 100644 yunxi-ui-admin/vue.config.js create mode 100644 yunxi-ui-admin/yarn.lock create mode 100644 yunxi-ui-app/.editorconfig create mode 100644 yunxi-ui-app/.gitignore create mode 100644 yunxi-ui-app/App.vue create mode 100644 yunxi-ui-app/api/address.js create mode 100644 yunxi-ui-app/api/auth.js create mode 100644 yunxi-ui-app/api/cart.js create mode 100644 yunxi-ui-app/api/category.js create mode 100644 yunxi-ui-app/api/index.js create mode 100644 yunxi-ui-app/api/order.js create mode 100644 yunxi-ui-app/api/product.js create mode 100644 yunxi-ui-app/api/user.js create mode 100644 yunxi-ui-app/app.scss create mode 100644 yunxi-ui-app/common/config.js create mode 100644 yunxi-ui-app/common/mixin.js create mode 100644 yunxi-ui-app/common/orderStatus.js create mode 100644 yunxi-ui-app/common/props.js create mode 100644 yunxi-ui-app/components/w-picker/areadata/areadata.js create mode 100644 yunxi-ui-app/components/w-picker/date-picker.vue create mode 100644 yunxi-ui-app/components/w-picker/half-picker.vue create mode 100644 yunxi-ui-app/components/w-picker/linkage-picker.vue create mode 100644 yunxi-ui-app/components/w-picker/range-picker.vue create mode 100644 yunxi-ui-app/components/w-picker/region-picker.vue create mode 100644 yunxi-ui-app/components/w-picker/selector-picker.vue create mode 100644 yunxi-ui-app/components/w-picker/shortterm-picker.vue create mode 100644 yunxi-ui-app/components/w-picker/time-picker.vue create mode 100644 yunxi-ui-app/components/w-picker/w-picker.css create mode 100644 yunxi-ui-app/components/w-picker/w-picker.vue create mode 100644 yunxi-ui-app/components/yd-address-select/yd-address-select.vue create mode 100644 yunxi-ui-app/components/yd-banner/yd-banner.vue create mode 100644 yunxi-ui-app/components/yd-cart-product/yd-cart-product.vue create mode 100644 yunxi-ui-app/components/yd-order-product/yd-order-product.vue create mode 100644 yunxi-ui-app/components/yd-product-box/yd-product-box.vue create mode 100644 yunxi-ui-app/components/yd-product-more/yd-product-more.vue create mode 100644 yunxi-ui-app/components/yd-text-price/yd-text-price.vue create mode 100644 yunxi-ui-app/index.html create mode 100644 yunxi-ui-app/main.js create mode 100644 yunxi-ui-app/manifest.json create mode 100644 yunxi-ui-app/pages.json create mode 100644 yunxi-ui-app/pages/address/create.vue create mode 100644 yunxi-ui-app/pages/address/list.vue create mode 100644 yunxi-ui-app/pages/address/update.vue create mode 100644 yunxi-ui-app/pages/cart/cart.vue create mode 100644 yunxi-ui-app/pages/category/category.vue create mode 100644 yunxi-ui-app/pages/category/product-list.vue create mode 100644 yunxi-ui-app/pages/checkout/checkout.vue create mode 100644 yunxi-ui-app/pages/forgot/forgot.vue create mode 100644 yunxi-ui-app/pages/index/index.vue create mode 100644 yunxi-ui-app/pages/login/mobile.vue create mode 100644 yunxi-ui-app/pages/login/social.vue create mode 100644 yunxi-ui-app/pages/order/confirm.vue create mode 100644 yunxi-ui-app/pages/order/detail.vue create mode 100644 yunxi-ui-app/pages/order/list.vue create mode 100644 yunxi-ui-app/pages/product/product.vue create mode 100644 yunxi-ui-app/pages/profile/profile.vue create mode 100644 yunxi-ui-app/pages/search/search.vue create mode 100644 yunxi-ui-app/pages/setting/setting.vue create mode 100644 yunxi-ui-app/pages/user/user.vue create mode 100644 yunxi-ui-app/sitemap.json create mode 100644 yunxi-ui-app/static/images/empty/address.png create mode 100644 yunxi-ui-app/static/images/empty/cart.png create mode 100644 yunxi-ui-app/static/images/empty/comment.png create mode 100644 yunxi-ui-app/static/images/empty/coupon.png create mode 100644 yunxi-ui-app/static/images/empty/data.png create mode 100644 yunxi-ui-app/static/images/empty/favor.png create mode 100644 yunxi-ui-app/static/images/empty/history.png create mode 100644 yunxi-ui-app/static/images/empty/list.png create mode 100644 yunxi-ui-app/static/images/empty/message.png create mode 100644 yunxi-ui-app/static/images/empty/news.png create mode 100644 yunxi-ui-app/static/images/empty/order.png create mode 100644 yunxi-ui-app/static/images/empty/page.png create mode 100644 yunxi-ui-app/static/images/empty/permission.png create mode 100644 yunxi-ui-app/static/images/empty/search.png create mode 100644 yunxi-ui-app/static/images/empty/wifi.png create mode 100644 yunxi-ui-app/static/images/tabbar/cart-active.png create mode 100644 yunxi-ui-app/static/images/tabbar/cart.png create mode 100644 yunxi-ui-app/static/images/tabbar/category-active.png create mode 100644 yunxi-ui-app/static/images/tabbar/category.png create mode 100644 yunxi-ui-app/static/images/tabbar/index-active.png create mode 100644 yunxi-ui-app/static/images/tabbar/index.png create mode 100644 yunxi-ui-app/static/images/tabbar/user-active.png create mode 100644 yunxi-ui-app/static/images/tabbar/user.png create mode 100644 yunxi-ui-app/store/getters.js create mode 100644 yunxi-ui-app/store/index.js create mode 100644 yunxi-ui-app/store/mudules/cart.js create mode 100644 yunxi-ui-app/store/mudules/user.js create mode 100644 yunxi-ui-app/styles/base.scss create mode 100644 yunxi-ui-app/uni.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/LICENSE create mode 100644 yunxi-ui-app/uni_modules/uview-ui/README.md create mode 100644 yunxi-ui-app/uni_modules/uview-ui/changelog.md create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u--form/u--form.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u--image/u--image.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u--input/u--input.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u--text/u--text.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u--textarea/u--textarea.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-action-sheet/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-album/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-album/u-album.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-alert/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-alert/u-alert.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-avatar-group/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-avatar/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-avatar/u-avatar.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-back-top/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-back-top/u-back-top.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-badge/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-badge/u-badge.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-button/nvue.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-button/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-button/u-button.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-button/vue.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-calendar/header.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-calendar/month.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-calendar/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-calendar/u-calendar.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-calendar/util.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-car-keyboard/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-cell-group/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-cell/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-cell/u-cell.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-checkbox-group/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-checkbox/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-circle-progress/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-code-input/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-code-input/u-code-input.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-code/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-code/u-code.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-col/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-col/u-col.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-collapse-item/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-collapse/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-collapse/u-collapse.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-column-notice/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-count-down/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-count-down/u-count-down.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-count-down/utils.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-count-to/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-count-to/u-count-to.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-datetime-picker/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-divider/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-divider/u-divider.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-dropdown-item/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-dropdown/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-empty/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-empty/u-empty.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-form-item/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-form-item/u-form-item.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-form/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-form/u-form.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-gap/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-gap/u-gap.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-grid-item/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-grid/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-grid/u-grid.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-icon/icons.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-icon/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-icon/u-icon.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-image/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-image/u-image.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-index-anchor/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-index-item/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-index-item/u-index-item.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-index-list/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-index-list/u-index-list.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-input/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-input/u-input.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-keyboard/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-line-progress/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-line/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-line/u-line.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-link/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-link/u-link.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-list-item/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-list-item/u-list-item.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-list/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-list/u-list.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-loading-icon/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-loading-page/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-loadmore/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-modal/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-modal/u-modal.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-navbar/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-navbar/u-navbar.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-no-network/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-no-network/u-no-network.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-notice-bar/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-notify/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-notify/u-notify.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-number-box/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-number-box/u-number-box.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-number-keyboard/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-overlay/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-overlay/u-overlay.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-parse/node/node.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-parse/parser.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-parse/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-parse/u-parse.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-picker-column/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-picker-column/u-picker-column.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-picker/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-picker/u-picker.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-popup/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-popup/u-popup.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-radio-group/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-radio-group/u-radio-group.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-radio/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-radio/u-radio.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-rate/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-rate/u-rate.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-read-more/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-read-more/u-read-more.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-row-notice/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-row-notice/u-row-notice.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-row/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-row/u-row.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-safe-bottom/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-scroll-list/nvue.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-scroll-list/other.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-scroll-list/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-scroll-list/scrollWxs.wxs create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-scroll-list/u-scroll-list.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-search/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-search/u-search.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-skeleton/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-skeleton/u-skeleton.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-slider/mpother.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-slider/mpwxs.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-slider/mpwxs.wxs create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-slider/nvue - 副本.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-slider/nvue.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-slider/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-slider/u-slider.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-status-bar/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-steps-item/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-steps-item/u-steps-item.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-steps/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-steps/u-steps.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-sticky/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-sticky/u-sticky.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-subsection/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-subsection/u-subsection.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-swipe-action-item/index - backup.wxs create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-swipe-action-item/index.wxs create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-swipe-action-item/nvue - backup.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-swipe-action-item/nvue.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-swipe-action-item/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-swipe-action-item/wxs.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-swipe-action/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-swipe-action/u-swipe-action.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-swiper-indicator/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-swiper/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-swiper/u-swiper.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-switch/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-switch/u-switch.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tabbar-item/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tabbar-item/u-tabbar-item.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tabbar/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tabbar/u-tabbar.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-table/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-table/u-table.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tabs-item/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tabs-item/u-tabs-item.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tabs/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tabs/u-tabs.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tag/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tag/u-tag.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-td/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-td/u-td.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-text/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-text/u-text.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-text/value.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-textarea/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-textarea/u-textarea.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-toast/u-toast.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-toolbar/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tooltip/clipboard.min.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tooltip/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tooltip/u-tooltip.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tr/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-tr/u-tr.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-transition/nvue.ani-map.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-transition/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-transition/transition.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-transition/u-transition.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-transition/vue.ani-style.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-upload/mixin.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-upload/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-upload/u-upload.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/u-upload/utils.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/components/uview-ui/uview-ui.vue create mode 100644 yunxi-ui-app/uni_modules/uview-ui/index.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/index.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/color.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/config.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/actionSheet.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/album.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/alert.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/avatar.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/avatarGroup.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/backtop.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/badge.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/button.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/calendar.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/carKeyboard.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/cell.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/cellGroup.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/checkbox.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/checkboxGroup.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/circleProgress.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/code.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/codeInput.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/col.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/collapse.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/collapseItem.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/columnNotice.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/countDown.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/countTo.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/datetimePicker.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/divider.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/empty.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/form.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/formItem.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/gap.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/grid.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/gridItem.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/icon.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/image.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/indexAnchor.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/indexList.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/input.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/keyboard.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/line.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/lineProgress.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/link.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/list.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/listItem.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/loadingIcon.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/loadingPage.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/loadmore.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/modal.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/navbar.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/noNetwork.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/noticeBar.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/notify.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/numberBox.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/numberKeyboard.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/overlay.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/parse.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/picker.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/popup.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/radio.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/radioGroup.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/rate.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/readMore.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/row.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/rowNotice.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/scrollList.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/search.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/section.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/skeleton.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/slider.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/statusBar.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/steps.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/stepsItem.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/sticky.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/subsection.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/swipeAction.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/swipeActionItem.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/swiper.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/swipterIndicator.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/switch.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/tabbar.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/tabbarItem.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/tabs.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/tag.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/text.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/textarea.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/toast.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/toolbar.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/tooltip.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/transition.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/props/upload.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/config/zIndex.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/css/color.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/css/common.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/css/components.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/css/flex.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/css/h5.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/css/mixin.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/css/mp.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/css/nvue.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/css/vue.scss create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/function/colorGradient.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/function/debounce.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/function/digit.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/function/index.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/function/platform.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/function/test.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/function/throttle.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/adapters/index.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/core/InterceptorManager.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/core/Request.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/core/buildFullPath.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/core/defaults.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/core/dispatchRequest.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/core/mergeConfig.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/core/settle.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/helpers/buildURL.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/helpers/combineURLs.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/index.d.ts create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/index.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/utils.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/luch-request/utils/clone.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/mixin/button.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/mixin/mixin.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/mixin/mpMixin.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/mixin/mpShare.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/mixin/openType.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/mixin/style.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/mixin/touch.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/util/async-validator.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/util/calendar.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/util/dayjs.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/util/emitter.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/libs/util/route.js create mode 100644 yunxi-ui-app/uni_modules/uview-ui/package.json create mode 100644 yunxi-ui-app/uni_modules/uview-ui/theme.scss create mode 100644 yunxi-ui-app/utils/request/errorCode.js create mode 100644 yunxi-ui-app/utils/request/index.js create mode 100644 yunxi-ui-app/utils/request/requestInterceptors.js create mode 100644 yunxi-ui-app/utils/request/responseInterceptors.js create mode 100644 yunxi-ui-app/utils/tree.js create mode 100644 yunxi-ui-app/vue.config.js diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3c200cd --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.sql linguist-language=java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..69aadd0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,51 @@ +###################################################################### +# Build Tools + +.gradle +/build/ +!gradle/wrapper/gradle-wrapper.jar + +target/ +!.mvn/wrapper/maven-wrapper.jar + +###################################################################### +# IDE + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +nbproject/private/ +build/* +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ + +###################################################################### +# Others +*.log +*.xml.versionsBackup +*.swp + +!*/build/*.java +!*/build/*.html +!*/build/*.xml + +### JRebel ### +rebel.xml + +application-my.yaml + +/yunxi-ui-app/unpackage/ diff --git a/Docker-HOWTO.md b/Docker-HOWTO.md new file mode 100644 index 0000000..aa3ae5f --- /dev/null +++ b/Docker-HOWTO.md @@ -0,0 +1,49 @@ +# Docker Build & Up + +目标: 快速部署体验系统,帮助了解系统之间的依赖关系。 +依赖:docker compose v2,删除`name: yunxi-system`,降低`version`版本为`3.3`以下,支持`docker-compose`。 + +## 功能文件列表 + +```text +. +├── Docker-HOWTO.md +├── docker-compose.yml +├── docker.env <-- 提供docker-compose环境变量配置 +├── yunxi-server +│ └── Dockerfile +└── yunxi-ui-admin + ├── .dockerignore + ├── Dockerfile + └── nginx.conf <-- 提供基础配置,gzip压缩、api转发 +``` + +## 构建 jar 包 + +```shell +# 创建maven缓存volume +docker volume create --name yunxi-maven-repo + +docker run -it --rm --name yunxi-maven \ + -v yunxi-maven-repo:/root/.m2 \ + -v $PWD:/usr/src/mymaven \ + -w /usr/src/mymaven \ + maven mvn clean install package '-Dmaven.test.skip=true' +``` + +## 构建启动服务 + +```shell +docker compose --env-file docker.env up -d +``` + +首次运行会自动构建容器。可以通过`docker compose build [service]`来手动构建所有或某个docker镜像 + +`--env-file docker.env`为可选参数,只是展示了通过`.env`文件配置容器启动的环境变量,`docker-compose.yml`本身已经提供足够的默认参数来正常运行系统。 + +## 服务器的宿主机端口映射 + +- admin ui: http://localhost:8080 +- api server: http://localhost:48080 +- mysql: root/123456, port: 3306 +- redis: port: 6379 diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..e7d901f --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,60 @@ +#!groovy +pipeline { + + agent any + + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } + + environment { + // DockerHub 凭证 ID(登录您的 DockerHub) + DOCKER_CREDENTIAL_ID = 'dockerhub-id' + // GitHub 凭证 ID (推送 tag 到 GitHub 仓库) + GITHUB_CREDENTIAL_ID = 'github-id' + // kubeconfig 凭证 ID (访问接入正在运行的 Kubernetes 集群) + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' + // 镜像的推送 + REGISTRY = 'docker.io' + // DockerHub 账号名 + DOCKERHUB_NAMESPACE = 'docker_username' + // GitHub 账号名 + GITHUB_ACCOUNT = 'https://gitee.com/zhijiantianya/ruoyi-vue-pro' + // 应用名称 + APP_NAME = 'yunxi-server' + // 应用部署路径 + APP_DEPLOY_BASE_DIR = '/media/pi/KINGTON/data/work/projects/' + } + + stages { + stage('检出') { + steps { + git url: "https://gitee.com/will-we/ruoyi-vue-pro.git", + branch: "devops" + } + } + + stage('构建') { + steps { + // TODO 解决多环境链接、密码不同配置临时方案 + sh 'if [ ! -d "' + "${env.HOME}" + '/resources" ];then\n' + + ' echo "配置文件不存在无需修改"\n' + + 'else\n' + + ' cp -rf ' + "${env.HOME}" + '/resources/*.yaml ' + "${env.APP_NAME}" + '/src/main/resources\n' + + ' echo "配置文件替换"\n' + + 'fi' + sh 'mvn clean package -Dmaven.test.skip=true' + } + } + + stage('部署') { + steps { + sh 'cp -f ' + ' bin/deploy.sh ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + sh 'cp -f ' + "${env.APP_NAME}" + '/target/*.jar ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" +'/build/' + archiveArtifacts "${env.APP_NAME}" + '/target/*.jar' + sh 'chmod +x ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh' + sh 'bash ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh' + } + } + } +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..bd9da62 --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2021 ruoyi-vue-pro + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..3d86cd4 --- /dev/null +++ b/README.md @@ -0,0 +1,333 @@ +**严肃声明:现在、未来都不会有商业版本,所有代码全部开源!!** + +**「我喜欢写代码,乐此不疲」** +**「我喜欢做开源,以此为乐」** + +我 🐶 在上海艰苦奋斗,早中晚在 top3 大厂认真搬砖,夜里为开源做贡献。 + +如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 + +## 🐶 新手必读 + +* 演示地址【Vue3 + element-plus】: +* 演示地址【Vue3 + vben(ant-design-vue)】: +* 演示地址【Vue2 + element-ui】: +* 启动文档: +* 视频教程: + +## 🐯 平台简介 + +**芋道**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。 + +> 有任何问题,或者想要的功能,可以在 _Issues_ 中提给艿艿。 +> +> 😜 给项目点点 Star 吧,这对我们真的很重要! + +![架构图](https://static.iocoder.cn/ruoyi-vue-pro-architecture.png?imageView2/2/format/webp) + +* 管理后台的电脑端:Vue3 提供 [element-plus](https://gitee.com/yunxicode/yunxi-ui-admin-vue3)、[vben(ant-design-vue)](https://gitee.com/yunxicode/yunxi-ui-admin-vben) 两个版本,Vue2 提供 [element-ui](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yunxi-ui-admin) 版本 +* 管理后台的移动端:采用 [uni-app](https://github.com/dcloudio/uni-app) 方案,一份代码多终端适配,同时支持 APP、小程序、H5! +* 后端采用 Spring Boot 多模块架构、MySQL + MyBatis Plus、Redis + Redisson +* 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等 +* 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统,支持 SSO 单点登录 +* 支持加载动态权限菜单,按钮级别权限控制,本地缓存提升性能 +* 支持 SaaS 多租户,可自定义每个租户的权限,提供透明化的多租户底层封装 +* 工作流使用 Flowable,支持动态表单、在线设计流程、会签 / 或签、多种任务分配方式 +* 高效率开发,使用代码生成器可以一键生成前后端代码 + 单元测试 + Swagger 接口文档 + Validator 参数校验 +* 集成微信小程序、微信公众号、企业微信、钉钉等三方登陆,集成支付宝、微信等支付与退款 +* 集成阿里云、腾讯云等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务 +* 集成报表设计器、大屏设计器,通过拖拽即可生成酷炫的报表与大屏 + +## 🐳 项目关系 + +![架构演进](https://static.iocoder.cn/yunxi-roadmap.png?imageView2/2/format/webp) + +三个项目的功能对比,可见社区共同整理的 [国产开源项目对比](https://www.yuque.com/xiatian-bsgny/lm0ec1/wqf8mn) 表格。 + +### 后端项目 + + +| 项目 | Star | 简介 | +|-----------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------| +| [ruoyi-vue-pro](https://gitee.com/zhijiantianya/ruoyi-vue-pro) | [![Gitee star](https://gitee.com/zhijiantianya/ruoyi-vue-pro/badge/star.svg?theme=white)](https://gitee.com/zhijiantianya/ruoyi-vue-pro) [![GitHub stars](https://img.shields.io/github/stars/YunaiV/ruoyi-vue-pro.svg?style=social&label=Stars)](https://github.com/YunaiV/ruoyi-vue-pro) | 基于 Spring Boot 多模块架构 | +| [yunxi-cloud](https://gitee.com/zhijiantianya/yunxi-cloud) | [![Gitee star](https://gitee.com/zhijiantianya/yunxi-cloud/badge/star.svg?theme=white)](https://gitee.com/zhijiantianya/yunxi-cloud) [![GitHub stars](https://img.shields.io/github/stars/YunaiV/yunxi-cloud.svg?style=social&label=Stars)](https://github.com/YunaiV/yunxi-cloud) | 基于 Spring Cloud 微服务架构 | +| [Spring-Boot-Labs](https://gitee.com/yunxicode/SpringBoot-Labs) | [![Gitee star](https://gitee.com/yunxicode/SpringBoot-Labs/badge/star.svg?theme=white)](https://gitee.com/zhijiantianya/yunxi-cloud) [![GitHub stars](https://img.shields.io/github/stars/yunxicode/SpringBoot-Labs.svg?style=social&label=Stars)](https://github.com/yunxicode/SpringBoot-Labs) | 系统学习 Spring Boot & Cloud 专栏 | + +### 前端项目 + +| 项目 | Star | 简介 | +|----------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------| +| [yunxi-ui-admin-vue3](https://gitee.com/yunxicode/yunxi-ui-admin-vue3) | [![Gitee star](https://gitee.com/yunxicode/yunxi-ui-admin-vue3/badge/star.svg?theme=white)](https://gitee.com/yunxicode/yunxi-ui-admin-vue3) [![GitHub stars](https://img.shields.io/github/stars/yunxicode/yunxi-ui-admin-vue3.svg?style=social&label=Stars)](https://github.com/yunxicode/yunxi-ui-admin-vue3) | 基于 Vue3 + element-plus 实现的管理后台 | +| [yunxi-ui-admin-vben](https://gitee.com/yunxicode/yunxi-ui-admin-vben) | [![Gitee star](https://gitee.com/yunxicode/yunxi-ui-admin-vben/badge/star.svg?theme=white)](https://gitee.com/yunxicode/yunxi-ui-admin-vben) [![GitHub stars](https://img.shields.io/github/stars/yunxicode/yunxi-ui-admin-vben.svg?style=social&label=Stars)](https://github.com/yunxicode/yunxi-ui-admin-vben) | 基于 Vue3 + vben(ant-design-vue) 实现的管理后台 | +| [yunxi-ui-admin](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yunxi-ui-admin) | [![Gitee star](https://gitee.com/zhijiantianya/ruoyi-vue-pro/badge/star.svg?theme=white)](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yunxi-ui-admin) [![GitHub stars](https://img.shields.io/github/stars/YunaiV/ruoyi-vue-pro.svg?style=social&label=Stars)](https://github.com/YunaiV/ruoyi-vue-pro/tree/master/yunxi-ui-admin) | 基于 Vue2 + element-ui 实现的管理后台 | +| [yunxi-ui-admin-uniapp](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yunxi-ui-admin-uniapp) | [![Gitee star](https://gitee.com/zhijiantianya/ruoyi-vue-pro/badge/star.svg?theme=white)](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yunxi-ui-admin-uniapp) [![GitHub stars](https://img.shields.io/github/stars/YunaiV/ruoyi-vue-pro.svg?style=social&label=Stars)](https://github.com/YunaiV/ruoyi-vue-pro/tree/master/yunxi-ui-admin-uniapp) | 基于 uni-app + uni-ui 实现的管理后台的小程序 | +| [yunxi-ui-go-view](https://gitee.com/yunxicode/yunxi-ui-go-view) | [![Gitee star](https://gitee.com/yunxicode/yunxi-ui-go-view/badge/star.svg?theme=white)](https://gitee.com/yunxicode/yunxi-ui-go-view) [![GitHub stars](https://img.shields.io/github/stars/yunxicode/yunxi-ui-go-view.svg?style=social&label=Stars)](https://github.com/yunxicode/yunxi-ui-go-view) | 基于 Vue3 + naive-ui 实现的大屏报表 | +| [yunxi-ui-app](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yunxi-ui-app) | [![Gitee star](https://gitee.com/zhijiantianya/ruoyi-vue-pro/badge/star.svg?theme=white)](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yunxi-ui-app) [![GitHub stars](https://img.shields.io/github/stars/YunaiV/ruoyi-vue-pro.svg?style=social&label=Stars)](https://github.com/YunaiV/ruoyi-vue-pro/tree/master/yunxi-ui-app) | 基于 uni-app + uview 实现的用户 App | + +## 🐰 分支说明 + +| | JDK 8 完整版 | JDK 8 精简版 | JDK 17 完整版 | +|-------|-----------------------------------------------------------|--------------------------------------------------------------------|-----------------------------------------------------------------------------| +| 分支 | [`master`](https://gitee.com/zhijiantianya/ruoyi-vue-pro) | [`mini`](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/mini/) | [`boot-dev`](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/boot3-dev/) | +| 说明 | 包括所有功能 | 只保留核心功能 | 适配 Spring Boot 3.X | +| 系统功能 | √ | √ | √ | +| 基础设施 | √ | √ | √ | +| 会员中心 | √ | √ | √ | +| 工作流程 | √ | x | 适配中 | +| 数据报表 | √ | x | 适配中 | +| 商城系统 | √ | x | √ | +| 微信公众号 | √ | x | √ | + +## 😎 开源协议 + +**为什么推荐使用本项目?** + +① 本项目采用比 Apache 2.0 更宽松的 [MIT License](https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/LICENSE) 开源协议,个人与企业可 100% 免费使用,不用保留类作者、Copyright 信息。 + +② 代码全部开源,不会像其他项目一样,只开源部分代码,让你无法了解整个项目的架构设计。[国产开源项目对比](https://www.yuque.com/xiatian-bsgny/lm0ec1/wqf8mn) + +![开源项目对比](https://static.iocoder.cn/project-vs.png?imageView2/2/format/webp/w/1280) + +③ 代码整洁、架构整洁,遵循《阿里巴巴 Java 开发手册》规范,代码注释详细,57000 行 Java 代码,22000 行代码注释。 + +## 🤝 项目外包 + +我们也是接外包滴,如果你有项目想要外包,可以微信联系【**Aix9975**】。 + +团队包含专业的项目经理、架构师、前端工程师、后端工程师、测试工程师、运维工程师,可以提供全流程的外包服务。 + +项目可以是商城、SCRM 系统、OA 系统、物流系统、ERP 系统、CMS 系统、HIS 系统、支付系统、IM 聊天、微信公众号、微信小程序等等。 + +## 🐼 内置功能 + +系统内置多种多种业务功能,可以用于快速你的业务系统: + +![功能分层](https://static.iocoder.cn/ruoyi-vue-pro-biz.png?imageView2/2/format/webp) + +* 系统功能 +* 基础设施 +* 工作流程 +* 支付系统 +* 会员中心 +* 数据报表 +* 商城系统 +* 微信公众号 + +> 友情提示:本项目基于 RuoYi-Vue 修改,**重构优化**后端的代码,**美化**前端的界面。 +> +> * 额外新增的功能,我们使用 🚀 标记。 +> * 重新实现的功能,我们使用 ⭐️ 标记。 + +🙂 所有功能,都通过 **单元测试** 保证高质量。 + +### 系统功能 + +| | 功能 | 描述 | +|-----|-------|---------------------------------| +| | 用户管理 | 用户是系统操作者,该功能主要完成系统用户配置 | +| ⭐️ | 在线用户 | 当前系统中活跃用户状态监控,支持手动踢下线 | +| | 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | +| | 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等,本地缓存提供性能 | +| | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 | +| | 岗位管理 | 配置系统用户所属担任职务 | +| 🚀 | 租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能 | +| 🚀 | 租户套餐 | 配置租户套餐,自定每个租户的菜单、操作、按钮的权限 | +| | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | +| 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、腾讯云等主流短信平台 | +| 🚀 | 邮件管理 | 邮箱账号、邮件模版、邮件发送日志,支持所有邮件平台 | +| 🚀 | 站内信 | 系统内的消息通知,提供站内信模版、站内信消息 | +| 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 | +| ⭐️ | 登录日志 | 系统登录日志记录查询,包含登录异常 | +| 🚀 | 错误码管理 | 系统所有错误码的管理,可在线修改错误提示,无需重启服务 | +| | 通知公告 | 系统通知公告信息发布维护 | +| 🚀 | 敏感词 | 配置系统敏感词,支持标签分组 | +| 🚀 | 应用管理 | 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式 | +| 🚀 | 地区管理 | 展示省份、城市、区镇等城市信息,支持 IP 对应城市 | + +### 工作流程 + +| | 功能 | 描述 | +|-----|-------|----------------------------------------| +| 🚀 | 流程模型 | 配置工作流的流程模型,支持文件导入与在线设计流程图,提供 7 种任务分配规则 | +| 🚀 | 流程表单 | 拖动表单元素生成相应的工作流表单,覆盖 Element UI 所有的表单组件 | +| 🚀 | 用户分组 | 自定义用户分组,可用于工作流的审批分组 | +| 🚀 | 我的流程 | 查看我发起的工作流程,支持新建、取消流程等操作,高亮流程图、审批时间线 | +| 🚀 | 待办任务 | 查看自己【未】审批的工作任务,支持通过、不通过、转发、委派、退回等操作 | +| 🚀 | 已办任务 | 查看自己【已】审批的工作任务,未来会支持回退操作 | +| 🚀 | OA 请假 | 作为业务自定义接入工作流的使用示例,只需创建请求对应的工作流程,即可进行审批 | + +### 支付系统 + +| | 功能 | 描述 | +|-----|------|---------------------------| +| 🚀 | 应用信息 | 配置商户的应用信息,对接支付宝、微信等多个支付渠道 | +| 🚀 | 支付订单 | 查看用户发起的支付宝、微信等的【支付】订单 | +| 🚀 | 退款订单 | 查看用户发起的支付宝、微信等的【退款】订单 | +| 🚀 | 回调通知 | 查看支付回调业务的【支付】【退款】的通知结果 | +| 🚀 | 接入示例 | 提供接入支付系统的【支付】【退款】的功能实战 | + +### 基础设施 + +| | 功能 | 描述 | +|-----|----------|----------------------------------------------| +| 🚀 | 代码生成 | 前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载 | +| 🚀 | 系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 | +| 🚀 | 数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 | +| | 表单构建 | 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件 | +| 🚀 | 配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 | +| ⭐️ | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 | +| 🚀 | 文件服务 | 支持将文件存储到 S3(MinIO、阿里云、腾讯云、七牛云)、本地、FTP、数据库等 | +| 🚀 | API 日志 | 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 | +| | MySQL 监控 | 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈 | +| | Redis 监控 | 监控 Redis 数据库的使用情况,使用的 Redis Key 管理 | +| 🚀 | 消息队列 | 基于 Redis 实现消息队列,Stream 提供集群消费,Pub/Sub 提供广播消费 | +| 🚀 | Java 监控 | 基于 Spring Boot Admin 实现 Java 应用的监控 | +| 🚀 | 链路追踪 | 接入 SkyWalking 组件,实现链路追踪 | +| 🚀 | 日志中心 | 接入 SkyWalking 组件,实现日志中心 | +| 🚀 | 分布式锁 | 基于 Redis 实现分布式锁,满足并发场景 | +| 🚀 | 幂等组件 | 基于 Redis 实现幂等组件,解决重复请求问题 | +| 🚀 | 服务保障 | 基于 Resilience4j 实现服务的稳定性,包括限流、熔断等功能 | +| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 | +| 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 | + +### 数据报表 + +| | 功能 | 描述 | +|-----|-------|--------------------| +| 🚀 | 报表设计器 | 支持数据报表、图形报表、打印设计等 | +| 🚀 | 大屏设计器 | 拖拽生成数据大屏,内置几十种图表组件 | + +### 微信公众号 + +| | 功能 | 描述 | +|-----|--------|-------------------------------| +| 🚀 | 账号管理 | 配置接入的微信公众号,可支持多个公众号 | +| 🚀 | 数据统计 | 统计公众号的用户增减、累计用户、消息概况、接口分析等数据 | +| 🚀 | 粉丝管理 | 查看已关注、取关的粉丝列表,可对粉丝进行同步、打标签等操作 | +| 🚀 | 消息管理 | 查看粉丝发送的消息列表,可主动回复粉丝消息 | +| 🚀 | 自动回复 | 自动回复粉丝发送的消息,支持关注回复、消息回复、关键字回复 | +| 🚀 | 标签管理 | 对公众号的标签进行创建、查询、修改、删除等操作 | +| 🚀 | 菜单管理 | 自定义公众号的菜单,也可以从公众号同步菜单 | +| 🚀 | 素材管理 | 管理公众号的图片、语音、视频等素材,支持在线播放语音、视频 | +| 🚀 | 图文草稿箱 | 新增常用的图文素材到草稿箱,可发布到公众号 | +| 🚀 | 图文发表记录 | 查看已发布成功的图文素材,支持删除操作 | + +### 商城系统 + +建设中... + +![功能图](http://static.iocoder.cn/mall%20%E5%8A%9F%E8%83%BD%E5%9B%BE-min.png) + +![GIF 图-耐心等待](https://raw.githubusercontent.com/YunaiV/Blog/master/Mall/onemall-admin-min.gif) + +![GIF 图-耐心等待](https://raw.githubusercontent.com/YunaiV/Blog/master/Mall/onemall-h5-min.gif) + +### 会员中心 + +和「商城系统」一起开发 + +## 🐨 技术栈 + +### 模块 + +| 项目 | 说明 | +|--------------------------------------------------------------------------|--------------------| +| `yunxi-dependencies` | Maven 依赖版本管理 | +| `yunxi-framework` | Java 框架拓展 | +| `yunxi-server` | 管理后台 + 用户 APP 的服务端 | +| `yunxi-module-system` | 系统功能的 Module 模块 | +| `yunxi-module-member` | 会员中心的 Module 模块 | +| `yunxi-module-infra` | 基础设施的 Module 模块 | +| `yunxi-module-bpm` | 工作流程的 Module 模块 | +| `yunxi-module-pay` | 支付系统的 Module 模块 | +| `yunxi-module-mall` | 商城系统的 Module 模块 | +| `yunxi-module-mp` | 微信公众号的 Module 模块 | +| `yunxi-module-report` | 大屏报表 Module 模块 | + +### 框架 + +| 框架 | 说明 | 版本 | 学习指南 | +|---------------------------------------------------------------------------------------------|------------------|-------------|----------------------------------------------------------------| +| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.7.13 | [文档](https://github.com/YunaiV/SpringBoot-Labs) | +| [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 / 8.0+ | | +| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.18 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yunxi) | +| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.3.1 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yunxi) | +| [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.6.1 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yunxi) | +| [Redis](https://redis.io/) | key-value 数据库 | 5.0 / 6.0 | | +| [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.18.0 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yunxi) | +| [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 5.3.24 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yunxi) | +| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.7.6 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yunxi) | +| [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.2.5 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yunxi) | +| [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 6.8.0 | [文档](https://doc.iocoder.cn/bpm/) | +| [Quartz](https://github.com/quartz-scheduler) | 任务调度组件 | 2.3.2 | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yunxi) | +| [Springdoc](https://springdoc.org/) | Swagger 文档 | 1.6.15 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yunxi) | +| [Resilience4j](https://github.com/resilience4j/resilience4j) | 服务保障组件 | 1.7.1 | [文档](http://www.iocoder.cn/Spring-Boot/Resilience4j/?yunxi) | +| [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.12.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yunxi) | +| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.7.10 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yunxi) | +| [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.13.3 | | +| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.5.5.Final | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yunxi) | +| [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.18.28 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yunxi) | +| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.8.2 | - | +| [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 4.8.0 | - | + +## 🐷 演示图 + +### 系统功能 + +| 模块 | biu | biu | biu | +|------------|--------------------------------------------------------------------|------------------------------------------------------------------|------------------------------------------------------------------| +| 登录 & 首页 | ![登录](https://static.iocoder.cn/images/ruoyi-vue-pro/登录.jpg?imageView2/2/format/webp/w/1280) | ![首页](https://static.iocoder.cn/images/ruoyi-vue-pro/首页.jpg?imageView2/2/format/webp/w/1280) | ![个人中心](https://static.iocoder.cn/images/ruoyi-vue-pro/个人中心.jpg?imageView2/2/format/webp/w/1280) | +| 用户 & 应用 | ![用户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/用户管理.jpg?imageView2/2/format/webp/w/1280) | ![令牌管理](https://static.iocoder.cn/images/ruoyi-vue-pro/令牌管理.jpg?imageView2/2/format/webp/w/1280) | ![应用管理](https://static.iocoder.cn/images/ruoyi-vue-pro/应用管理.jpg?imageView2/2/format/webp/w/1280) | +| 租户 & 套餐 | ![租户管理](https://static.iocoder.cn/images/ruoyi-vue-pro/租户管理.jpg?imageView2/2/format/webp/w/1280) | ![租户套餐](https://static.iocoder.cn/images/ruoyi-vue-pro/租户套餐.png) | - | +| 部门 & 岗位 | ![部门管理](https://static.iocoder.cn/images/ruoyi-vue-pro/部门管理.jpg?imageView2/2/format/webp/w/1280) | ![岗位管理](https://static.iocoder.cn/images/ruoyi-vue-pro/岗位管理.jpg?imageView2/2/format/webp/w/1280) | - | +| 菜单 & 角色 | ![菜单管理](https://static.iocoder.cn/images/ruoyi-vue-pro/菜单管理.jpg?imageView2/2/format/webp/w/1280) | ![角色管理](https://static.iocoder.cn/images/ruoyi-vue-pro/角色管理.jpg?imageView2/2/format/webp/w/1280) | - | +| 审计日志 | ![操作日志](https://static.iocoder.cn/images/ruoyi-vue-pro/操作日志.jpg?imageView2/2/format/webp/w/1280) | ![登录日志](https://static.iocoder.cn/images/ruoyi-vue-pro/登录日志.jpg?imageView2/2/format/webp/w/1280) | - | +| 短信 | ![短信渠道](https://static.iocoder.cn/images/ruoyi-vue-pro/短信渠道.jpg?imageView2/2/format/webp/w/1280) | ![短信模板](https://static.iocoder.cn/images/ruoyi-vue-pro/短信模板.jpg?imageView2/2/format/webp/w/1280) | ![短信日志](https://static.iocoder.cn/images/ruoyi-vue-pro/短信日志.jpg?imageView2/2/format/webp/w/1280) | +| 字典 & 敏感词 | ![字典类型](https://static.iocoder.cn/images/ruoyi-vue-pro/字典类型.jpg?imageView2/2/format/webp/w/1280) | ![字典数据](https://static.iocoder.cn/images/ruoyi-vue-pro/字典数据.jpg?imageView2/2/format/webp/w/1280) | ![敏感词](https://static.iocoder.cn/images/ruoyi-vue-pro/敏感词.jpg?imageView2/2/format/webp/w/1280) | +| 错误码 & 通知 | ![错误码管理](https://static.iocoder.cn/images/ruoyi-vue-pro/错误码管理.jpg?imageView2/2/format/webp/w/1280) | ![通知公告](https://static.iocoder.cn/images/ruoyi-vue-pro/通知公告.jpg?imageView2/2/format/webp/w/1280) | - | + +### 工作流程 + +| 模块 | biu | biu | biu | +|---------|------------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------| +| 流程模型 | ![流程模型-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-列表.jpg?imageView2/2/format/webp/w/1280) | ![流程模型-设计](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-设计.jpg?imageView2/2/format/webp/w/1280) | ![流程模型-定义](https://static.iocoder.cn/images/ruoyi-vue-pro/流程模型-定义.jpg?imageView2/2/format/webp/w/1280) | +| 表单 & 分组 | ![流程表单](https://static.iocoder.cn/images/ruoyi-vue-pro/流程表单.jpg?imageView2/2/format/webp/w/1280) | ![用户分组](https://static.iocoder.cn/images/ruoyi-vue-pro/用户分组.jpg?imageView2/2/format/webp/w/1280) | - | +| 我的流程 | ![我的流程-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-列表.jpg?imageView2/2/format/webp/w/1280) | ![我的流程-发起](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-发起.jpg?imageView2/2/format/webp/w/1280) | ![我的流程-详情](https://static.iocoder.cn/images/ruoyi-vue-pro/我的流程-详情.jpg?imageView2/2/format/webp/w/1280) | +| 待办 & 已办 | ![任务列表-审批](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-审批.jpg?imageView2/2/format/webp/w/1280) | ![任务列表-待办](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-待办.jpg?imageView2/2/format/webp/w/1280) | ![任务列表-已办](https://static.iocoder.cn/images/ruoyi-vue-pro/任务列表-已办.jpg?imageView2/2/format/webp/w/1280) | +| OA 请假 | ![OA请假-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-列表.jpg?imageView2/2/format/webp/w/1280) | ![OA请假-发起](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-发起.jpg?imageView2/2/format/webp/w/1280) | ![OA请假-详情](https://static.iocoder.cn/images/ruoyi-vue-pro/OA请假-详情.jpg?imageView2/2/format/webp/w/1280) | + +### 基础设施 + +| 模块 | biu | biu | biu | +|---------------|----------------------------------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------| +| 代码生成 | ![代码生成](https://static.iocoder.cn/images/ruoyi-vue-pro/代码生成.jpg?imageView2/2/format/webp/w/1280) | ![生成效果](https://static.iocoder.cn/images/ruoyi-vue-pro/生成效果.jpg?imageView2/2/format/webp/w/1280) | - | +| 文档 | ![系统接口](https://static.iocoder.cn/images/ruoyi-vue-pro/系统接口.jpg?imageView2/2/format/webp/w/1280) | ![数据库文档](https://static.iocoder.cn/images/ruoyi-vue-pro/数据库文档.jpg?imageView2/2/format/webp/w/1280) | - | +| 文件 & 配置 | ![文件配置](https://static.iocoder.cn/images/ruoyi-vue-pro/文件配置.jpg?imageView2/2/format/webp/w/1280) | ![文件管理](https://static.iocoder.cn/images/ruoyi-vue-pro/文件管理2.jpg?imageView2/2/format/webp/w/1280) | ![配置管理](https://static.iocoder.cn/images/ruoyi-vue-pro/配置管理.jpg?imageView2/2/format/webp/w/1280) | +| 定时任务 | ![定时任务](https://static.iocoder.cn/images/ruoyi-vue-pro/定时任务.jpg?imageView2/2/format/webp/w/1280) | ![任务日志](https://static.iocoder.cn/images/ruoyi-vue-pro/任务日志.jpg?imageView2/2/format/webp/w/1280) | - | +| API 日志 | ![访问日志](https://static.iocoder.cn/images/ruoyi-vue-pro/访问日志.jpg?imageView2/2/format/webp/w/1280) | ![错误日志](https://static.iocoder.cn/images/ruoyi-vue-pro/错误日志.jpg?imageView2/2/format/webp/w/1280) | - | +| MySQL & Redis | ![MySQL](https://static.iocoder.cn/images/ruoyi-vue-pro/MySQL.jpg?imageView2/2/format/webp/w/1280) | ![Redis](https://static.iocoder.cn/images/ruoyi-vue-pro/Redis.jpg?imageView2/2/format/webp/w/1280) | - | +| 监控平台 | ![Java监控](https://static.iocoder.cn/images/ruoyi-vue-pro/Java监控.jpg?imageView2/2/format/webp/w/1280) | ![链路追踪](https://static.iocoder.cn/images/ruoyi-vue-pro/链路追踪.jpg?imageView2/2/format/webp/w/1280) | ![日志中心](https://static.iocoder.cn/images/ruoyi-vue-pro/日志中心.jpg?imageView2/2/format/webp/w/1280) | + +### 支付系统 + +| 模块 | biu | biu | biu | +|---------|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------| +| 商家 & 应用 | ![商户信息](https://static.iocoder.cn/images/ruoyi-vue-pro/商户信息.jpg?imageView2/2/format/webp/w/1280) | ![应用信息-列表](https://static.iocoder.cn/images/ruoyi-vue-pro/应用信息-列表.jpg?imageView2/2/format/webp/w/1280) | ![应用信息-编辑](https://static.iocoder.cn/images/ruoyi-vue-pro/应用信息-编辑.jpg?imageView2/2/format/webp/w/1280) | +| 支付 & 退款 | ![支付订单](https://static.iocoder.cn/images/ruoyi-vue-pro/支付订单.jpg?imageView2/2/format/webp/w/1280) | ![退款订单](https://static.iocoder.cn/images/ruoyi-vue-pro/退款订单.jpg?imageView2/2/format/webp/w/1280) | --- | + +### 数据报表 + +| 模块 | biu | biu | biu | +|-------|--------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------| +| 报表设计器 | ![数据报表](https://static.iocoder.cn/images/ruoyi-vue-pro/报表设计器-数据报表.jpg?imageView2/2/format/webp/w/1280) | ![图形报表](https://static.iocoder.cn/images/ruoyi-vue-pro/报表设计器-图形报表.jpg?imageView2/2/format/webp/w/1280) | ![报表设计器-打印设计](https://static.iocoder.cn/images/ruoyi-vue-pro/报表设计器-打印设计.jpg?imageView2/2/format/webp/w/1280) | +| 大屏设计器 | ![大屏列表](https://static.iocoder.cn/images/ruoyi-vue-pro/大屏设计器-列表.jpg?imageView2/2/format/webp/w/1280) | ![大屏预览](https://static.iocoder.cn/images/ruoyi-vue-pro/大屏设计器-预览.jpg?imageView2/2/format/webp/w/1280) | ![大屏编辑](https://static.iocoder.cn/images/ruoyi-vue-pro/大屏设计器-编辑.jpg?imageView2/2/format/webp/w/1280) | + +### 移动端(管理后台) + +| biu | biu | biu | +|------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------| +| ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/01.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/02.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/03.png?imageView2/2/format/webp) | +| ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/04.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/05.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/06.png?imageView2/2/format/webp) | +| ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/07.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/08.png?imageView2/2/format/webp) | ![](https://static.iocoder.cn/images/ruoyi-vue-pro/admin-uniapp/09.png?imageView2/2/format/webp) | + +目前已经实现登录、我的、工作台、编辑资料、头像修改、密码修改、常见问题、关于我们等基础功能。 diff --git a/bin/deploy.sh b/bin/deploy.sh new file mode 100644 index 0000000..2c71541 --- /dev/null +++ b/bin/deploy.sh @@ -0,0 +1,160 @@ +#!/bin/bash +set -e + +DATE=$(date +%Y%m%d%H%M) +# 基础路径 +BASE_PATH=/work/projects/yunxi-server +# 编译后 jar 的地址。部署时,Jenkins 会上传 jar 包到该目录下 +SOURCE_PATH=$BASE_PATH/build +# 服务名称。同时约定部署服务的 jar 包名字也为它。 +SERVER_NAME=yunxi-server +# 环境 +PROFILES_ACTIVE=development +# 健康检查 URL +HEALTH_CHECK_URL=http://127.0.0.1:48080/actuator/health/ + +# heapError 存放路径 +HEAP_ERROR_PATH=$BASE_PATH/heapError +# JVM 参数 +JAVA_OPS="-Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$HEAP_ERROR_PATH" + +# SkyWalking Agent 配置 +#export SW_AGENT_NAME=$SERVER_NAME +#export SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.0.84:11800 +#export SW_GRPC_LOG_SERVER_HOST=192.168.0.84 +#export SW_AGENT_TRACE_IGNORE_PATH="Redisson/PING,/actuator/**,/admin/**" +#export JAVA_AGENT=-javaagent:/work/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar + +# 备份 +function backup() { + # 如果不存在,则无需备份 + if [ ! -f "$BASE_PATH/$SERVER_NAME.jar" ]; then + echo "[backup] $BASE_PATH/$SERVER_NAME.jar 不存在,跳过备份" + # 如果存在,则备份到 backup 目录下,使用时间作为后缀 + else + echo "[backup] 开始备份 $SERVER_NAME ..." + cp $BASE_PATH/$SERVER_NAME.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jar + echo "[backup] 备份 $SERVER_NAME 完成" + fi +} + +# 最新构建代码 移动到项目环境 +function transfer() { + echo "[transfer] 开始转移 $SERVER_NAME.jar" + + # 删除原 jar 包 + if [ ! -f "$BASE_PATH/$SERVER_NAME.jar" ]; then + echo "[transfer] $BASE_PATH/$SERVER_NAME.jar 不存在,跳过删除" + else + echo "[transfer] 移除 $BASE_PATH/$SERVER_NAME.jar 完成" + rm $BASE_PATH/$SERVER_NAME.jar + fi + + # 复制新 jar 包 + echo "[transfer] 从 $SOURCE_PATH 中获取 $SERVER_NAME.jar 并迁移至 $BASE_PATH ...." + cp $SOURCE_PATH/$SERVER_NAME.jar $BASE_PATH + + echo "[transfer] 转移 $SERVER_NAME.jar 完成" +} + +# 停止:优雅关闭之前已经启动的服务 +function stop() { + echo "[stop] 开始停止 $BASE_PATH/$SERVER_NAME" + PID=$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v "grep" | awk '{print $2}') + # 如果 Java 服务启动中,则进行关闭 + if [ -n "$PID" ]; then + # 正常关闭 + echo "[stop] $BASE_PATH/$SERVER_NAME 运行中,开始 kill [$PID]" + kill -15 $PID + # 等待最大 120 秒,直到关闭完成。 + for ((i = 0; i < 120; i++)) + do + sleep 1 + PID=$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v "grep" | awk '{print $2}') + if [ -n "$PID" ]; then + echo -e ".\c" + else + echo '[stop] 停止 $BASE_PATH/$SERVER_NAME 成功' + break + fi + done + + # 如果正常关闭失败,那么进行强制 kill -9 进行关闭 + if [ -n "$PID" ]; then + echo "[stop] $BASE_PATH/$SERVER_NAME 失败,强制 kill -9 $PID" + kill -9 $PID + fi + # 如果 Java 服务未启动,则无需关闭 + else + echo "[stop] $BASE_PATH/$SERVER_NAME 未启动,无需停止" + fi +} + +# 启动:启动后端项目 +function start() { + # 开启启动前,打印启动参数 + echo "[start] 开始启动 $BASE_PATH/$SERVER_NAME" + echo "[start] JAVA_OPS: $JAVA_OPS" + echo "[start] JAVA_AGENT: $JAVA_AGENT" + echo "[start] PROFILES: $PROFILES_ACTIVE" + + # 开始启动 + BUILD_ID=dontKillMe nohup java -server $JAVA_OPS $JAVA_AGENT -jar $BASE_PATH/$SERVER_NAME.jar --spring.profiles.active=$PROFILES_ACTIVE & + echo "[start] 启动 $BASE_PATH/$SERVER_NAME 完成" +} + +# 健康检查:自动判断后端项目是否正常启动 +function healthCheck() { + # 如果配置健康检查,则进行健康检查 + if [ -n "$HEALTH_CHECK_URL" ]; then + # 健康检查最大 120 秒,直到健康检查通过 + echo "[healthCheck] 开始通过 $HEALTH_CHECK_URL 地址,进行健康检查"; + for ((i = 0; i < 120; i++)) + do + # 请求健康检查地址,只获取状态码。 + result=`curl -I -m 10 -o /dev/null -s -w %{http_code} $HEALTH_CHECK_URL || echo "000"` + # 如果状态码为 200,则说明健康检查通过 + if [ "$result" == "200" ]; then + echo "[healthCheck] 健康检查通过"; + break + # 如果状态码非 200,则说明未通过。sleep 1 秒后,继续重试 + else + echo -e ".\c" + sleep 1 + fi + done + + # 健康检查未通过,则异常退出 shell 脚本,不继续部署。 + if [ ! "$result" == "200" ]; then + echo "[healthCheck] 健康检查不通过,可能部署失败。查看日志,自行判断是否启动成功"; + tail -n 10 nohup.out + exit 1; + # 健康检查通过,打印最后 10 行日志,可能部署的人想看下日志。 + else + tail -n 10 nohup.out + fi + # 如果未配置健康检查,则 sleep 120 秒,人工看日志是否部署成功。 + else + echo "[healthCheck] HEALTH_CHECK_URL 未配置,开始 sleep 120 秒"; + sleep 120 + echo "[healthCheck] sleep 120 秒完成,查看日志,自行判断是否启动成功"; + tail -n 50 nohup.out + fi +} + +# 部署 +function deploy() { + cd $BASE_PATH + # 备份原 jar + backup + # 停止 Java 服务 + stop + # 部署新 jar + transfer + # 启动 Java 服务 + start + # 健康检查 + healthCheck +} + +deploy diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..6c53e31 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,84 @@ +version: "3.4" + +name: yunxi-system + +services: + mysql: + container_name: yunxi-mysql + image: mysql:8 + restart: unless-stopped + tty: true + ports: + - "3306:3306" + environment: + MYSQL_DATABASE: ${MYSQL_DATABASE:-ruoyi-vue-pro} + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-123456} + volumes: + - mysql:/var/lib/mysql/ + - ./sql/mysql/ruoyi-vue-pro.sql:/docker-entrypoint-initdb.d/ruoyi-vue-pro.sql:ro + + redis: + container_name: yunxi-redis + image: redis:6-alpine + restart: unless-stopped + ports: + - "6379:6379" + volumes: + - redis:/data + + server: + container_name: yunxi-server + build: + context: ./yunxi-server/ + image: yunxi-server + restart: unless-stopped + ports: + - "48080:48080" + environment: + # https://github.com/polovyivan/docker-pass-configs-to-container + SPRING_PROFILES_ACTIVE: local + JAVA_OPTS: + ${JAVA_OPTS:- + -Xms512m + -Xmx512m + -Djava.security.egd=file:/dev/./urandom + } + ARGS: + --spring.datasource.dynamic.datasource.master.url=${MASTER_DATASOURCE_URL:-jdbc:mysql://yunxi-mysql:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true} + --spring.datasource.dynamic.datasource.master.username=${MASTER_DATASOURCE_USERNAME:-root} + --spring.datasource.dynamic.datasource.master.password=${MASTER_DATASOURCE_PASSWORD:-123456} + --spring.datasource.dynamic.datasource.slave.url=${SLAVE_DATASOURCE_URL:-jdbc:mysql://yunxi-mysql:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true} + --spring.datasource.dynamic.datasource.slave.username=${SLAVE_DATASOURCE_USERNAME:-root} + --spring.datasource.dynamic.datasource.slave.password=${SLAVE_DATASOURCE_PASSWORD:-123456} + --spring.redis.host=${REDIS_HOST:-yunxi-redis} + depends_on: + - mysql + - redis + + admin: + container_name: yunxi-admin + build: + context: ./yunxi-ui-admin + args: + NODE_ENV: + ENV=${NODE_ENV:-production} + PUBLIC_PATH=${PUBLIC_PATH:-/} + VUE_APP_TITLE=${VUE_APP_TITLE:-云息供应链管理平台} + VUE_APP_BASE_API=${VUE_APP_BASE_API:-/prod-api} + VUE_APP_APP_NAME=${VUE_APP_APP_NAME:-/} + VUE_APP_TENANT_ENABLE=${VUE_APP_TENANT_ENABLE:-true} + VUE_APP_CAPTCHA_ENABLE=${VUE_APP_CAPTCHA_ENABLE:-true} + VUE_APP_DOC_ENABLE=${VUE_APP_DOC_ENABLE:-true} + VUE_APP_BAIDU_CODE=${VUE_APP_BAIDU_CODE:-fadc1bd5db1a1d6f581df60a1807f8ab} + image: yunxi-admin + restart: unless-stopped + ports: + - "8080:80" + depends_on: + - server + +volumes: + mysql: + driver: local + redis: + driver: local diff --git a/docker.env b/docker.env new file mode 100644 index 0000000..57e8b71 --- /dev/null +++ b/docker.env @@ -0,0 +1,25 @@ +## mysql +MYSQL_DATABASE=ruoyi-vue-pro +MYSQL_ROOT_PASSWORD=123456 + +## server +JAVA_OPTS=-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom + +MASTER_DATASOURCE_URL=jdbc:mysql://yunxi-mysql:3306/${MYSQL_DATABASE}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true +MASTER_DATASOURCE_USERNAME=root +MASTER_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} +SLAVE_DATASOURCE_URL=${MASTER_DATASOURCE_URL} +SLAVE_DATASOURCE_USERNAME=${MASTER_DATASOURCE_USERNAME} +SLAVE_DATASOURCE_PASSWORD=${MASTER_DATASOURCE_PASSWORD} +REDIS_HOST=yunxi-redis + +## admin +NODE_ENV=production +PUBLIC_PATH=/ +VUE_APP_TITLE=云息供应链管理平台 +VUE_APP_BASE_API=/prod-api +VUE_APP_APP_NAME=/ +VUE_APP_TENANT_ENABLE=true +VUE_APP_CAPTCHA_ENABLE=true +VUE_APP_DOC_ENABLE=true +VUE_APP_BAIDU_CODE=fadc1bd5db1a1d6f581df60a1807f8ab diff --git a/http-client.env.json b/http-client.env.json new file mode 100644 index 0000000..4a4cb52 --- /dev/null +++ b/http-client.env.json @@ -0,0 +1,20 @@ +{ + "local": { + "baseUrl": "http://127.0.0.1:48080/admin-api", + "token": "test1", + "adminTenentId": "1", + + "appApi": "http://127.0.0.1:48080/app-api", + "appToken": "test247", + "appTenentId": "1" + }, + "gateway": { + "baseUrl": "http://127.0.0.1:8888/admin-api", + "token": "test1", + "adminTenentId": "1", + + "appApi": "http://127.0.0.1:8888/app-api", + "appToken": "test1", + "appTenantId": "1" + } +} diff --git a/lombok.config b/lombok.config new file mode 100644 index 0000000..a8e8ce6 --- /dev/null +++ b/lombok.config @@ -0,0 +1,4 @@ +config.stopBubbling = true +lombok.tostring.callsuper=CALL +lombok.equalsandhashcode.callsuper=CALL +lombok.accessors.chain=true diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..9fa86ac --- /dev/null +++ b/pom.xml @@ -0,0 +1,118 @@ + + + 4.0.0 + com.yunxi.scm + yunxi + ${revision} + pom + + yunxi-dependencies + yunxi-framework + + yunxi-server + + yunxi-module-member + yunxi-module-system + yunxi-module-infra + + + yunxi-module-report + yunxi-module-bpm + + + + yunxi-example + + yunxi-module-demo + + yunxi-module-xxjj + + + ${project.artifactId} + 芋道项目基础脚手架 + https://github.com/YunaiV/ruoyi-vue-pro + + + 1.8.0-snapshot + + 1.8 + ${java.version} + ${java.version} + 3.0.0-M5 + 3.8.1 + + 1.18.28 + 2.7.13 + 1.5.5.Final + UTF-8 + + + + + + com.yunxi.scm + yunxi-dependencies + ${revision} + pom + import + + + + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + + org.springframework.boot + spring-boot-configuration-processor + ${spring.boot.version} + + + org.projectlombok + lombok + ${lombok.version} + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + + + + + + + + + + huaweicloud + huawei + https://mirrors.huaweicloud.com/repository/maven/ + + + aliyunmaven + aliyun + https://maven.aliyun.com/repository/public + + + + diff --git a/sql/mysql/yunxi-scm.sql b/sql/mysql/yunxi-scm.sql new file mode 100644 index 0000000..cc6eceb --- /dev/null +++ b/sql/mysql/yunxi-scm.sql @@ -0,0 +1,3250 @@ +/* + Navicat Premium Data Transfer + + Source Server : 127.0.0.1 MySQL + Source Server Type : MySQL + Source Server Version : 80026 + Source Host : localhost:3306 + Source Schema : ruoyi-vue-pro + + Target Server Type : MySQL + Target Server Version : 80026 + File Encoding : 65001 + + Date: 24/07/2023 08:51:31 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for QRTZ_BLOB_TRIGGERS +-- ---------------------------- +DROP TABLE IF EXISTS `QRTZ_BLOB_TRIGGERS`; +CREATE TABLE `QRTZ_BLOB_TRIGGERS` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `BLOB_DATA` blob NULL, + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, + INDEX `SCHED_NAME`(`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC) USING BTREE, + CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_BLOB_TRIGGERS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for QRTZ_CALENDARS +-- ---------------------------- +DROP TABLE IF EXISTS `QRTZ_CALENDARS`; +CREATE TABLE `QRTZ_CALENDARS` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `CALENDAR` blob NOT NULL, + PRIMARY KEY (`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_CALENDARS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for QRTZ_CRON_TRIGGERS +-- ---------------------------- +DROP TABLE IF EXISTS `QRTZ_CRON_TRIGGERS`; +CREATE TABLE `QRTZ_CRON_TRIGGERS` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `CRON_EXPRESSION` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TIME_ZONE_ID` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, + CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_CRON_TRIGGERS +-- ---------------------------- +BEGIN; +INSERT INTO `QRTZ_CRON_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `CRON_EXPRESSION`, `TIME_ZONE_ID`) VALUES ('schedulerName', 'payNotifyJob', 'DEFAULT', '* * * * * ?', 'Asia/Shanghai'); +INSERT INTO `QRTZ_CRON_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `CRON_EXPRESSION`, `TIME_ZONE_ID`) VALUES ('schedulerName', 'payOrderExpireJob', 'DEFAULT', '0 0/1 * * * ?', 'Asia/Shanghai'); +INSERT INTO `QRTZ_CRON_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `CRON_EXPRESSION`, `TIME_ZONE_ID`) VALUES ('schedulerName', 'payOrderSyncJob', 'DEFAULT', '0 0/1 * * * ?', 'Asia/Shanghai'); +INSERT INTO `QRTZ_CRON_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `CRON_EXPRESSION`, `TIME_ZONE_ID`) VALUES ('schedulerName', 'payRefundSyncJob', 'DEFAULT', '0 0/1 * * * ?', 'Asia/Shanghai'); +COMMIT; + +-- ---------------------------- +-- Table structure for QRTZ_FIRED_TRIGGERS +-- ---------------------------- +DROP TABLE IF EXISTS `QRTZ_FIRED_TRIGGERS`; +CREATE TABLE `QRTZ_FIRED_TRIGGERS` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `ENTRY_ID` varchar(95) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `FIRED_TIME` bigint NOT NULL, + `SCHED_TIME` bigint NOT NULL, + `PRIORITY` int NOT NULL, + `STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + PRIMARY KEY (`SCHED_NAME`, `ENTRY_ID`) USING BTREE, + INDEX `IDX_QRTZ_FT_TRIG_INST_NAME`(`SCHED_NAME` ASC, `INSTANCE_NAME` ASC) USING BTREE, + INDEX `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY`(`SCHED_NAME` ASC, `INSTANCE_NAME` ASC, `REQUESTS_RECOVERY` ASC) USING BTREE, + INDEX `IDX_QRTZ_FT_J_G`(`SCHED_NAME` ASC, `JOB_NAME` ASC, `JOB_GROUP` ASC) USING BTREE, + INDEX `IDX_QRTZ_FT_JG`(`SCHED_NAME` ASC, `JOB_GROUP` ASC) USING BTREE, + INDEX `IDX_QRTZ_FT_T_G`(`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC) USING BTREE, + INDEX `IDX_QRTZ_FT_TG`(`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_FIRED_TRIGGERS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for QRTZ_JOB_DETAILS +-- ---------------------------- +DROP TABLE IF EXISTS `QRTZ_JOB_DETAILS`; +CREATE TABLE `QRTZ_JOB_DETAILS` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `JOB_CLASS_NAME` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `IS_DURABLE` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `IS_UPDATE_DATA` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `JOB_DATA` blob NULL, + PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE, + INDEX `IDX_QRTZ_J_REQ_RECOVERY`(`SCHED_NAME` ASC, `REQUESTS_RECOVERY` ASC) USING BTREE, + INDEX `IDX_QRTZ_J_GRP`(`SCHED_NAME` ASC, `JOB_GROUP` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_JOB_DETAILS +-- ---------------------------- +BEGIN; +INSERT INTO `QRTZ_JOB_DETAILS` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`, `DESCRIPTION`, `JOB_CLASS_NAME`, `IS_DURABLE`, `IS_NONCONCURRENT`, `IS_UPDATE_DATA`, `REQUESTS_RECOVERY`, `JOB_DATA`) VALUES ('schedulerName', 'payNotifyJob', 'DEFAULT', NULL, 'com.yunxi.scm.framework.quartz.core.handler.JobHandlerInvoker', '0', '1', '1', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000027400064A4F425F49447372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000057400104A4F425F48414E444C45525F4E414D4574000C7061794E6F746966794A6F627800); +INSERT INTO `QRTZ_JOB_DETAILS` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`, `DESCRIPTION`, `JOB_CLASS_NAME`, `IS_DURABLE`, `IS_NONCONCURRENT`, `IS_UPDATE_DATA`, `REQUESTS_RECOVERY`, `JOB_DATA`) VALUES ('schedulerName', 'payOrderExpireJob', 'DEFAULT', NULL, 'com.yunxi.scm.framework.quartz.core.handler.JobHandlerInvoker', '0', '1', '1', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000027400064A4F425F49447372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000127400104A4F425F48414E444C45525F4E414D457400117061794F726465724578706972654A6F627800); +INSERT INTO `QRTZ_JOB_DETAILS` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`, `DESCRIPTION`, `JOB_CLASS_NAME`, `IS_DURABLE`, `IS_NONCONCURRENT`, `IS_UPDATE_DATA`, `REQUESTS_RECOVERY`, `JOB_DATA`) VALUES ('schedulerName', 'payOrderSyncJob', 'DEFAULT', NULL, 'com.yunxi.scm.framework.quartz.core.handler.JobHandlerInvoker', '0', '1', '1', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000027400064A4F425F49447372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000117400104A4F425F48414E444C45525F4E414D4574000F7061794F7264657253796E634A6F627800); +INSERT INTO `QRTZ_JOB_DETAILS` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`, `DESCRIPTION`, `JOB_CLASS_NAME`, `IS_DURABLE`, `IS_NONCONCURRENT`, `IS_UPDATE_DATA`, `REQUESTS_RECOVERY`, `JOB_DATA`) VALUES ('schedulerName', 'payRefundSyncJob', 'DEFAULT', NULL, 'com.yunxi.scm.framework.quartz.core.handler.JobHandlerInvoker', '0', '1', '1', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000027400064A4F425F49447372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000000000000137400104A4F425F48414E444C45525F4E414D45740010706179526566756E6453796E634A6F627800); +COMMIT; + +-- ---------------------------- +-- Table structure for QRTZ_LOCKS +-- ---------------------------- +DROP TABLE IF EXISTS `QRTZ_LOCKS`; +CREATE TABLE `QRTZ_LOCKS` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `LOCK_NAME` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`SCHED_NAME`, `LOCK_NAME`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_LOCKS +-- ---------------------------- +BEGIN; +INSERT INTO `QRTZ_LOCKS` (`SCHED_NAME`, `LOCK_NAME`) VALUES ('schedulerName', 'STATE_ACCESS'); +INSERT INTO `QRTZ_LOCKS` (`SCHED_NAME`, `LOCK_NAME`) VALUES ('schedulerName', 'TRIGGER_ACCESS'); +COMMIT; + +-- ---------------------------- +-- Table structure for QRTZ_PAUSED_TRIGGER_GRPS +-- ---------------------------- +DROP TABLE IF EXISTS `QRTZ_PAUSED_TRIGGER_GRPS`; +CREATE TABLE `QRTZ_PAUSED_TRIGGER_GRPS` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_PAUSED_TRIGGER_GRPS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for QRTZ_SCHEDULER_STATE +-- ---------------------------- +DROP TABLE IF EXISTS `QRTZ_SCHEDULER_STATE`; +CREATE TABLE `QRTZ_SCHEDULER_STATE` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `LAST_CHECKIN_TIME` bigint NOT NULL, + `CHECKIN_INTERVAL` bigint NOT NULL, + PRIMARY KEY (`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_SCHEDULER_STATE +-- ---------------------------- +BEGIN; +INSERT INTO `QRTZ_SCHEDULER_STATE` (`SCHED_NAME`, `INSTANCE_NAME`, `LAST_CHECKIN_TIME`, `CHECKIN_INTERVAL`) VALUES ('schedulerName', 'Yunai1690117495401', 1690119854263, 15000); +COMMIT; + +-- ---------------------------- +-- Table structure for QRTZ_SIMPLE_TRIGGERS +-- ---------------------------- +DROP TABLE IF EXISTS `QRTZ_SIMPLE_TRIGGERS`; +CREATE TABLE `QRTZ_SIMPLE_TRIGGERS` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `REPEAT_COUNT` bigint NOT NULL, + `REPEAT_INTERVAL` bigint NOT NULL, + `TIMES_TRIGGERED` bigint NOT NULL, + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, + CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_SIMPLE_TRIGGERS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for QRTZ_SIMPROP_TRIGGERS +-- ---------------------------- +DROP TABLE IF EXISTS `QRTZ_SIMPROP_TRIGGERS`; +CREATE TABLE `QRTZ_SIMPROP_TRIGGERS` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `STR_PROP_1` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `STR_PROP_2` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `STR_PROP_3` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `INT_PROP_1` int NULL DEFAULT NULL, + `INT_PROP_2` int NULL DEFAULT NULL, + `LONG_PROP_1` bigint NULL DEFAULT NULL, + `LONG_PROP_2` bigint NULL DEFAULT NULL, + `DEC_PROP_1` decimal(13, 4) NULL DEFAULT NULL, + `DEC_PROP_2` decimal(13, 4) NULL DEFAULT NULL, + `BOOL_PROP_1` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `BOOL_PROP_2` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, + CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_SIMPROP_TRIGGERS +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for QRTZ_TRIGGERS +-- ---------------------------- +DROP TABLE IF EXISTS `QRTZ_TRIGGERS`; +CREATE TABLE `QRTZ_TRIGGERS` ( + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `NEXT_FIRE_TIME` bigint NULL DEFAULT NULL, + `PREV_FIRE_TIME` bigint NULL DEFAULT NULL, + `PRIORITY` int NULL DEFAULT NULL, + `TRIGGER_STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `TRIGGER_TYPE` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `START_TIME` bigint NOT NULL, + `END_TIME` bigint NULL DEFAULT NULL, + `CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, + `MISFIRE_INSTR` smallint NULL DEFAULT NULL, + `JOB_DATA` blob NULL, + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, + INDEX `IDX_QRTZ_T_J`(`SCHED_NAME` ASC, `JOB_NAME` ASC, `JOB_GROUP` ASC) USING BTREE, + INDEX `IDX_QRTZ_T_JG`(`SCHED_NAME` ASC, `JOB_GROUP` ASC) USING BTREE, + INDEX `IDX_QRTZ_T_C`(`SCHED_NAME` ASC, `CALENDAR_NAME` ASC) USING BTREE, + INDEX `IDX_QRTZ_T_G`(`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC) USING BTREE, + INDEX `IDX_QRTZ_T_STATE`(`SCHED_NAME` ASC, `TRIGGER_STATE` ASC) USING BTREE, + INDEX `IDX_QRTZ_T_N_STATE`(`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC) USING BTREE, + INDEX `IDX_QRTZ_T_N_G_STATE`(`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC) USING BTREE, + INDEX `IDX_QRTZ_T_NEXT_FIRE_TIME`(`SCHED_NAME` ASC, `NEXT_FIRE_TIME` ASC) USING BTREE, + INDEX `IDX_QRTZ_T_NFT_ST`(`SCHED_NAME` ASC, `TRIGGER_STATE` ASC, `NEXT_FIRE_TIME` ASC) USING BTREE, + INDEX `IDX_QRTZ_T_NFT_MISFIRE`(`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC) USING BTREE, + INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE`(`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC, `TRIGGER_STATE` ASC) USING BTREE, + INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP`(`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC) USING BTREE, + CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `QRTZ_JOB_DETAILS` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; + +-- ---------------------------- +-- Records of QRTZ_TRIGGERS +-- ---------------------------- +BEGIN; +INSERT INTO `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `JOB_NAME`, `JOB_GROUP`, `DESCRIPTION`, `NEXT_FIRE_TIME`, `PREV_FIRE_TIME`, `PRIORITY`, `TRIGGER_STATE`, `TRIGGER_TYPE`, `START_TIME`, `END_TIME`, `CALENDAR_NAME`, `MISFIRE_INSTR`, `JOB_DATA`) VALUES ('schedulerName', 'payNotifyJob', 'DEFAULT', 'payNotifyJob', 'DEFAULT', NULL, 1688907102000, 1688907101000, 5, 'PAUSED', 'CRON', 1635294882000, 0, NULL, 0, 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000037400114A4F425F48414E444C45525F504152414D707400124A4F425F52455452595F494E54455256414C737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000074000F4A4F425F52455452595F434F554E5471007E000B7800); +INSERT INTO `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `JOB_NAME`, `JOB_GROUP`, `DESCRIPTION`, `NEXT_FIRE_TIME`, `PREV_FIRE_TIME`, `PRIORITY`, `TRIGGER_STATE`, `TRIGGER_TYPE`, `START_TIME`, `END_TIME`, `CALENDAR_NAME`, `MISFIRE_INSTR`, `JOB_DATA`) VALUES ('schedulerName', 'payOrderExpireJob', 'DEFAULT', 'payOrderExpireJob', 'DEFAULT', NULL, 1690011600000, -1, 5, 'PAUSED', 'CRON', 1690011553000, 0, NULL, 0, 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000037400114A4F425F48414E444C45525F504152414D707400124A4F425F52455452595F494E54455256414C737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000074000F4A4F425F52455452595F434F554E5471007E000B7800); +INSERT INTO `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `JOB_NAME`, `JOB_GROUP`, `DESCRIPTION`, `NEXT_FIRE_TIME`, `PREV_FIRE_TIME`, `PRIORITY`, `TRIGGER_STATE`, `TRIGGER_TYPE`, `START_TIME`, `END_TIME`, `CALENDAR_NAME`, `MISFIRE_INSTR`, `JOB_DATA`) VALUES ('schedulerName', 'payOrderSyncJob', 'DEFAULT', 'payOrderSyncJob', 'DEFAULT', NULL, 1690011600000, 1690011540000, 5, 'PAUSED', 'CRON', 1690007785000, 0, NULL, 0, 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000037400114A4F425F48414E444C45525F504152414D707400124A4F425F52455452595F494E54455256414C737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000074000F4A4F425F52455452595F434F554E5471007E000B7800); +INSERT INTO `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `JOB_NAME`, `JOB_GROUP`, `DESCRIPTION`, `NEXT_FIRE_TIME`, `PREV_FIRE_TIME`, `PRIORITY`, `TRIGGER_STATE`, `TRIGGER_TYPE`, `START_TIME`, `END_TIME`, `CALENDAR_NAME`, `MISFIRE_INSTR`, `JOB_DATA`) VALUES ('schedulerName', 'payRefundSyncJob', 'DEFAULT', 'payRefundSyncJob', 'DEFAULT', NULL, 1690117560000, 1690117500000, 5, 'PAUSED', 'CRON', 1690117424000, 0, NULL, 0, 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C770800000010000000037400114A4F425F48414E444C45525F504152414D707400124A4F425F52455452595F494E54455256414C737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000074000F4A4F425F52455452595F434F554E5471007E000B7800); +COMMIT; + +-- ---------------------------- +-- Table structure for infra_api_access_log +-- ---------------------------- +DROP TABLE IF EXISTS `infra_api_access_log`; +CREATE TABLE `infra_api_access_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志主键', + `trace_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '链路追踪编号', + `user_id` bigint NOT NULL DEFAULT 0 COMMENT '用户编号', + `user_type` tinyint NOT NULL DEFAULT 0 COMMENT '用户类型', + `application_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '应用名', + `request_method` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '请求方法名', + `request_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '请求地址', + `request_params` varchar(8000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '请求参数', + `user_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户 IP', + `user_agent` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '浏览器 UA', + `begin_time` datetime NOT NULL COMMENT '开始请求时间', + `end_time` datetime NOT NULL COMMENT '结束请求时间', + `duration` int NOT NULL COMMENT '执行时长', + `result_code` int NOT NULL DEFAULT 0 COMMENT '结果码', + `result_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '结果提示', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 35832 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'API 访问日志表'; + +-- ---------------------------- +-- Records of infra_api_access_log +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for infra_api_error_log +-- ---------------------------- +DROP TABLE IF EXISTS `infra_api_error_log`; +CREATE TABLE `infra_api_error_log` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '编号', + `trace_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '链路追踪编号\n *\n * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。', + `user_id` int NOT NULL DEFAULT 0 COMMENT '用户编号', + `user_type` tinyint NOT NULL DEFAULT 0 COMMENT '用户类型', + `application_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '应用名\n *\n * 目前读取 spring.application.name', + `request_method` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求方法名', + `request_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求地址', + `request_params` varchar(8000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求参数', + `user_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户 IP', + `user_agent` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '浏览器 UA', + `exception_time` datetime NOT NULL COMMENT '异常发生时间', + `exception_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '异常名\n *\n * {@link Throwable#getClass()} 的类全名', + `exception_message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常导致的消息\n *\n * {@link cn.iocoder.common.framework.util.ExceptionUtil#getMessage(Throwable)}', + `exception_root_cause_message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常导致的根消息\n *\n * {@link cn.iocoder.common.framework.util.ExceptionUtil#getRootCauseMessage(Throwable)}', + `exception_stack_trace` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常的栈轨迹\n *\n * {@link cn.iocoder.common.framework.util.ExceptionUtil#getServiceException(Exception)}', + `exception_class_name` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常发生的类全名\n *\n * {@link StackTraceElement#getClassName()}', + `exception_file_name` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常发生的类文件\n *\n * {@link StackTraceElement#getFileName()}', + `exception_method_name` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常发生的方法名\n *\n * {@link StackTraceElement#getMethodName()}', + `exception_line_number` int NOT NULL COMMENT '异常发生的方法所在行\n *\n * {@link StackTraceElement#getLineNumber()}', + `process_status` tinyint NOT NULL COMMENT '处理状态', + `process_time` datetime NULL DEFAULT NULL COMMENT '处理时间', + `process_user_id` int NULL DEFAULT 0 COMMENT '处理用户编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1391 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统异常日志'; + +-- ---------------------------- +-- Records of infra_api_error_log +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for infra_codegen_column +-- ---------------------------- +DROP TABLE IF EXISTS `infra_codegen_column`; +CREATE TABLE `infra_codegen_column` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `table_id` bigint NOT NULL COMMENT '表编号', + `column_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '字段名', + `data_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '字段类型', + `column_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '字段描述', + `nullable` bit(1) NOT NULL COMMENT '是否允许为空', + `primary_key` bit(1) NOT NULL COMMENT '是否主键', + `auto_increment` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '是否自增', + `ordinal_position` int NOT NULL COMMENT '排序', + `java_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Java 属性类型', + `java_field` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Java 属性名', + `dict_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '字典类型', + `example` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '数据示例', + `create_operation` bit(1) NOT NULL COMMENT '是否为 Create 创建操作的字段', + `update_operation` bit(1) NOT NULL COMMENT '是否为 Update 更新操作的字段', + `list_operation` bit(1) NOT NULL COMMENT '是否为 List 查询操作的字段', + `list_operation_condition` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '=' COMMENT 'List 查询操作的条件类型', + `list_operation_result` bit(1) NOT NULL COMMENT '是否为 List 查询操作的返回字段', + `html_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '显示类型', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1715 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码生成表字段定义'; + +-- ---------------------------- +-- Records of infra_codegen_column +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for infra_codegen_table +-- ---------------------------- +DROP TABLE IF EXISTS `infra_codegen_table`; +CREATE TABLE `infra_codegen_table` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `data_source_config_id` bigint NOT NULL COMMENT '数据源配置的编号', + `scene` tinyint NOT NULL DEFAULT 1 COMMENT '生成场景', + `table_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '表名称', + `table_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '表描述', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `module_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模块名', + `business_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务名', + `class_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '类名称', + `class_comment` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '类描述', + `author` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作者', + `template_type` tinyint NOT NULL DEFAULT 1 COMMENT '模板类型', + `front_type` tinyint NOT NULL COMMENT '前端类型', + `parent_menu_id` bigint NULL DEFAULT NULL COMMENT '父菜单编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 132 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代码生成表定义'; + +-- ---------------------------- +-- Records of infra_codegen_table +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for infra_config +-- ---------------------------- +DROP TABLE IF EXISTS `infra_config`; +CREATE TABLE `infra_config` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '参数主键', + `category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '参数分组', + `type` tinyint NOT NULL COMMENT '参数类型', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '参数名称', + `config_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '参数键名', + `value` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '参数键值', + `visible` bit(1) NOT NULL COMMENT '是否可见', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '参数配置表'; + +-- ---------------------------- +-- Records of infra_config +-- ---------------------------- +BEGIN; +INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, 'biz', 1, '用户管理-账号初始密码', 'sys.user.init-password', '123456', b'0', '初始化密码 123456', 'admin', '2021-01-05 17:03:48', '1', '2022-03-20 02:25:51', b'0'); +INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (7, 'url', 2, 'MySQL 监控的地址', 'url.druid', '', b'1', '', '1', '2023-04-07 13:41:16', '1', '2023-04-07 14:33:38', b'0'); +INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (8, 'url', 2, 'SkyWalking 监控的地址', 'url.skywalking', '', b'1', '', '1', '2023-04-07 13:41:16', '1', '2023-04-07 14:57:03', b'0'); +INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (9, 'url', 2, 'Spring Boot Admin 监控的地址', 'url.spring-boot-admin', '', b'1', '', '1', '2023-04-07 13:41:16', '1', '2023-04-07 14:52:07', b'0'); +INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (10, 'url', 2, 'Swagger 接口文档的地址', 'url.swagger', '', b'1', '', '1', '2023-04-07 13:41:16', '1', '2023-04-07 14:59:00', b'0'); +INSERT INTO `infra_config` (`id`, `category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (11, 'ui', 2, '腾讯地图 key', 'tencent.lbs.key', 'TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E', b'1', '腾讯地图 key', '1', '2023-06-03 19:16:27', '1', '2023-06-03 19:16:27', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for infra_data_source_config +-- ---------------------------- +DROP TABLE IF EXISTS `infra_data_source_config`; +CREATE TABLE `infra_data_source_config` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键编号', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '参数名称', + `url` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '数据源连接', + `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名', + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '密码', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '数据源配置表'; + +-- ---------------------------- +-- Records of infra_data_source_config +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for infra_file +-- ---------------------------- +DROP TABLE IF EXISTS `infra_file`; +CREATE TABLE `infra_file` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '文件编号', + `config_id` bigint NULL DEFAULT NULL COMMENT '配置编号', + `name` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件名', + `path` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件路径', + `url` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件 URL', + `type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件类型', + `size` int NOT NULL COMMENT '文件大小', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 953 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文件表'; + +-- ---------------------------- +-- Records of infra_file +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for infra_file_config +-- ---------------------------- +DROP TABLE IF EXISTS `infra_file_config`; +CREATE TABLE `infra_file_config` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '配置名', + `storage` tinyint NOT NULL COMMENT '存储器', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `master` bit(1) NOT NULL COMMENT '是否为主配置', + `config` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '存储配置', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文件配置表'; + +-- ---------------------------- +-- Records of infra_file_config +-- ---------------------------- +BEGIN; +INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, '数据库', 1, '我是数据库', b'1', '{\"@class\":\"com.yunxi.scm.framework.file.core.client.db.DBFileClientConfig\",\"domain\":\"http://127.0.0.1:48080\"}', '1', '2022-03-15 23:56:24', '1', '2023-04-08 09:44:47', b'0'); +INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (5, '本地磁盘', 10, '测试下本地存储', b'0', '{\"@class\":\"com.yunxi.scm.framework.file.core.client.local.LocalFileClientConfig\",\"basePath\":\"/Users/yunai/file_test\",\"domain\":\"http://127.0.0.1:48080\"}', '1', '2022-03-15 23:57:00', '1', '2023-04-08 09:44:47', b'0'); +INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (11, 'S3 - 七牛云', 20, NULL, b'0', '{\"@class\":\"com.yunxi.scm.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yunxi.iocoder.cn\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-03-19 18:00:03', '1', '2023-04-08 09:44:47', b'0'); +INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (15, 'S3 - 七牛云', 20, '', b'0', '{\"@class\":\"com.yunxi.scm.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yunxi.iocoder.cn\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-06-10 20:50:41', '1', '2023-04-08 09:44:47', b'0'); +INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (16, 'S3 - 七牛云', 20, '', b'0', '{\"@class\":\"com.yunxi.scm.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yunxi.iocoder.cn\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-06-11 20:32:08', '1', '2023-04-08 09:44:47', b'0'); +INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (17, 'S3 - 七牛云', 20, '', b'0', '{\"@class\":\"com.yunxi.scm.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yunxi.iocoder.cn\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-06-11 20:32:47', '1', '2023-04-08 09:44:47', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for infra_file_content +-- ---------------------------- +DROP TABLE IF EXISTS `infra_file_content`; +CREATE TABLE `infra_file_content` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `config_id` bigint NOT NULL COMMENT '配置编号', + `path` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件路径', + `content` mediumblob NOT NULL COMMENT '文件内容', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 44 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '文件表'; + +-- ---------------------------- +-- Records of infra_file_content +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for infra_job +-- ---------------------------- +DROP TABLE IF EXISTS `infra_job`; +CREATE TABLE `infra_job` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务编号', + `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务名称', + `status` tinyint NOT NULL COMMENT '任务状态', + `handler_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '处理器的名字', + `handler_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '处理器的参数', + `cron_expression` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'CRON 表达式', + `retry_count` int NOT NULL DEFAULT 0 COMMENT '重试次数', + `retry_interval` int NOT NULL DEFAULT 0 COMMENT '重试间隔', + `monitor_timeout` int NOT NULL DEFAULT 0 COMMENT '监控超时时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '定时任务表'; + +-- ---------------------------- +-- Records of infra_job +-- ---------------------------- +BEGIN; +INSERT INTO `infra_job` (`id`, `name`, `status`, `handler_name`, `handler_param`, `cron_expression`, `retry_count`, `retry_interval`, `monitor_timeout`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (5, '支付通知 Job', 2, 'payNotifyJob', NULL, '* * * * * ?', 0, 0, 0, '1', '2021-10-27 08:34:42', '1', '2023-07-09 20:51:41', b'0'); +INSERT INTO `infra_job` (`id`, `name`, `status`, `handler_name`, `handler_param`, `cron_expression`, `retry_count`, `retry_interval`, `monitor_timeout`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (16, 'Job 示例', 1, 'demoJob', NULL, '* * * L * ?', 1, 1, 0, '1', '2022-09-24 22:31:41', '1', '2022-09-24 22:31:42', b'0'); +INSERT INTO `infra_job` (`id`, `name`, `status`, `handler_name`, `handler_param`, `cron_expression`, `retry_count`, `retry_interval`, `monitor_timeout`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (17, '支付订单同步 Job', 2, 'payOrderSyncJob', NULL, '0 0/1 * * * ?', 0, 0, 0, '1', '2023-07-22 14:36:26', '1', '2023-07-22 15:39:08', b'0'); +INSERT INTO `infra_job` (`id`, `name`, `status`, `handler_name`, `handler_param`, `cron_expression`, `retry_count`, `retry_interval`, `monitor_timeout`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (18, '支付订单过期 Job', 2, 'payOrderExpireJob', NULL, '0 0/1 * * * ?', 0, 0, 0, '1', '2023-07-22 15:36:23', '1', '2023-07-22 15:39:54', b'0'); +INSERT INTO `infra_job` (`id`, `name`, `status`, `handler_name`, `handler_param`, `cron_expression`, `retry_count`, `retry_interval`, `monitor_timeout`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (19, '退款订单的同步 Job', 2, 'payRefundSyncJob', NULL, '0 0/1 * * * ?', 0, 0, 0, '1', '2023-07-23 21:03:44', '1', '2023-07-23 21:09:00', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for infra_job_log +-- ---------------------------- +DROP TABLE IF EXISTS `infra_job_log`; +CREATE TABLE `infra_job_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志编号', + `job_id` bigint NOT NULL COMMENT '任务编号', + `handler_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '处理器的名字', + `handler_param` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '处理器的参数', + `execute_index` tinyint NOT NULL DEFAULT 1 COMMENT '第几次执行', + `begin_time` datetime NOT NULL COMMENT '开始执行时间', + `end_time` datetime NULL DEFAULT NULL COMMENT '结束执行时间', + `duration` int NULL DEFAULT NULL COMMENT '执行时长', + `status` tinyint NOT NULL COMMENT '任务状态', + `result` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '结果数据', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 161 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '定时任务日志表'; + +-- ---------------------------- +-- Records of infra_job_log +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for infra_test_demo +-- ---------------------------- +DROP TABLE IF EXISTS `infra_test_demo`; +CREATE TABLE `infra_test_demo` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '名字', + `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态', + `type` tinyint NOT NULL COMMENT '类型', + `category` tinyint NOT NULL COMMENT '分类', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典类型表'; + +-- ---------------------------- +-- Records of infra_test_demo +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for member_user +-- ---------------------------- +DROP TABLE IF EXISTS `member_user`; +CREATE TABLE `member_user` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `nickname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户昵称', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '头像', + `status` tinyint NOT NULL COMMENT '状态', + `mobile` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '手机号', + `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '密码', + `register_ip` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '注册 IP', + `login_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '最后登录IP', + `login_date` datetime NULL DEFAULT NULL COMMENT '最后登录时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uk_mobile`(`mobile` ASC) USING BTREE COMMENT '手机号' +) ENGINE = InnoDB AUTO_INCREMENT = 248 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户'; + +-- ---------------------------- +-- Records of member_user +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_dept +-- ---------------------------- +DROP TABLE IF EXISTS `system_dept`; +CREATE TABLE `system_dept` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '部门id', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '部门名称', + `parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父部门id', + `sort` int NOT NULL DEFAULT 0 COMMENT '显示顺序', + `leader_user_id` bigint NULL DEFAULT NULL COMMENT '负责人', + `phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '联系电话', + `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱', + `status` tinyint NOT NULL COMMENT '部门状态(0正常 1停用)', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 112 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '部门表'; + +-- ---------------------------- +-- Records of system_dept +-- ---------------------------- +BEGIN; +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (100, '芋道源码', 0, 0, 1, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2022-06-19 00:29:10', b'0', 1); +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (101, '深圳总公司', 100, 1, 104, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2022-05-16 20:25:23', b'0', 1); +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (102, '长沙分公司', 100, 2, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-12-15 05:01:40', b'0', 1); +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (103, '研发部门', 101, 1, 104, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '103', '2022-01-14 01:04:14', b'0', 1); +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (104, '市场部门', 101, 2, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-12-15 05:01:38', b'0', 1); +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (105, '测试部门', 101, 3, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2022-05-16 20:25:15', b'0', 1); +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (106, '财务部门', 101, 4, 103, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '103', '2022-01-15 21:32:22', b'0', 1); +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (107, '运维部门', 101, 5, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-12-15 05:01:33', b'0', 1); +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (108, '市场部门', 102, 1, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '1', '2022-02-16 08:35:45', b'0', 1); +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (109, '财务部门', 102, 2, NULL, '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-12-15 05:01:29', b'0', 1); +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (110, '新部门', 0, 1, NULL, NULL, NULL, 0, '110', '2022-02-23 20:46:30', '110', '2022-02-23 20:46:30', b'0', 121); +INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (111, '顶级部门', 0, 1, NULL, NULL, NULL, 0, '113', '2022-03-07 21:44:50', '113', '2022-03-07 21:44:50', b'0', 122); +COMMIT; + +-- ---------------------------- +-- Table structure for system_dict_data +-- ---------------------------- +DROP TABLE IF EXISTS `system_dict_data`; +CREATE TABLE `system_dict_data` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典编码', + `sort` int NOT NULL DEFAULT 0 COMMENT '字典排序', + `label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典标签', + `value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典键值', + `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典类型', + `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)', + `color_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '颜色类型', + `css_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT 'css 样式', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1348 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典数据表'; + +-- ---------------------------- +-- Records of system_dict_data +-- ---------------------------- +BEGIN; +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, 1, '男', '1', 'system_user_sex', 0, 'default', 'A', '性别男', 'admin', '2021-01-05 17:03:48', '1', '2022-03-29 00:14:39', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, 2, '女', '2', 'system_user_sex', 1, 'success', '', '性别女', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 01:30:51', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (8, 1, '正常', '1', 'infra_job_status', 0, 'success', '', '正常状态', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 19:33:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (9, 2, '暂停', '2', 'infra_job_status', 0, 'danger', '', '停用状态', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 19:33:45', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (12, 1, '系统内置', '1', 'infra_config_type', 0, 'danger', '', '参数类型 - 系统内置', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 19:06:02', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (13, 2, '自定义', '2', 'infra_config_type', 0, 'primary', '', '参数类型 - 自定义', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 19:06:07', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (14, 1, '通知', '1', 'system_notice_type', 0, 'success', '', '通知', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 13:05:57', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (15, 2, '公告', '2', 'system_notice_type', 0, 'info', '', '公告', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 13:06:01', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (16, 0, '其它', '0', 'system_operate_type', 0, 'default', '', '其它操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:32:46', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (17, 1, '查询', '1', 'system_operate_type', 0, 'info', '', '查询操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:33:16', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (18, 2, '新增', '2', 'system_operate_type', 0, 'primary', '', '新增操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:33:13', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (19, 3, '修改', '3', 'system_operate_type', 0, 'warning', '', '修改操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:33:22', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (20, 4, '删除', '4', 'system_operate_type', 0, 'danger', '', '删除操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:33:27', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (22, 5, '导出', '5', 'system_operate_type', 0, 'default', '', '导出操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:33:32', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (23, 6, '导入', '6', 'system_operate_type', 0, 'default', '', '导入操作', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:33:35', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (27, 1, '开启', '0', 'common_status', 0, 'primary', '', '开启状态', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 08:00:39', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (28, 2, '关闭', '1', 'common_status', 0, 'info', '', '关闭状态', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 08:00:44', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (29, 1, '目录', '1', 'system_menu_type', 0, '', '', '目录', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:43:45', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (30, 2, '菜单', '2', 'system_menu_type', 0, '', '', '菜单', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:43:41', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (31, 3, '按钮', '3', 'system_menu_type', 0, '', '', '按钮', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:43:39', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (32, 1, '内置', '1', 'system_role_type', 0, 'danger', '', '内置角色', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 13:02:08', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (33, 2, '自定义', '2', 'system_role_type', 0, 'primary', '', '自定义角色', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 13:02:12', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (34, 1, '全部数据权限', '1', 'system_data_scope', 0, '', '', '全部数据权限', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:47:17', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (35, 2, '指定部门数据权限', '2', 'system_data_scope', 0, '', '', '指定部门数据权限', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:47:18', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (36, 3, '本部门数据权限', '3', 'system_data_scope', 0, '', '', '本部门数据权限', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:47:16', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (37, 4, '本部门及以下数据权限', '4', 'system_data_scope', 0, '', '', '本部门及以下数据权限', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:47:21', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (38, 5, '仅本人数据权限', '5', 'system_data_scope', 0, '', '', '仅本人数据权限', 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:47:23', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (39, 0, '成功', '0', 'system_login_result', 0, 'success', '', '登陆结果 - 成功', '', '2021-01-18 06:17:36', '1', '2022-02-16 13:23:49', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (40, 10, '账号或密码不正确', '10', 'system_login_result', 0, 'primary', '', '登陆结果 - 账号或密码不正确', '', '2021-01-18 06:17:54', '1', '2022-02-16 13:24:27', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (41, 20, '用户被禁用', '20', 'system_login_result', 0, 'warning', '', '登陆结果 - 用户被禁用', '', '2021-01-18 06:17:54', '1', '2022-02-16 13:23:57', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (42, 30, '验证码不存在', '30', 'system_login_result', 0, 'info', '', '登陆结果 - 验证码不存在', '', '2021-01-18 06:17:54', '1', '2022-02-16 13:24:07', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (43, 31, '验证码不正确', '31', 'system_login_result', 0, 'info', '', '登陆结果 - 验证码不正确', '', '2021-01-18 06:17:54', '1', '2022-02-16 13:24:11', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (44, 100, '未知异常', '100', 'system_login_result', 0, 'danger', '', '登陆结果 - 未知异常', '', '2021-01-18 06:17:54', '1', '2022-02-16 13:24:23', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (45, 1, '是', 'true', 'infra_boolean_string', 0, 'danger', '', 'Boolean 是否类型 - 是', '', '2021-01-19 03:20:55', '1', '2022-03-15 23:01:45', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (46, 1, '否', 'false', 'infra_boolean_string', 0, 'info', '', 'Boolean 是否类型 - 否', '', '2021-01-19 03:20:55', '1', '2022-03-15 23:09:45', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (47, 1, '永不超时', '1', 'infra_redis_timeout_type', 0, 'primary', '', 'Redis 未设置超时的情况', '', '2021-01-26 00:53:17', '1', '2022-02-16 19:03:35', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (48, 1, '动态超时', '2', 'infra_redis_timeout_type', 0, 'info', '', '程序里动态传入超时时间,无法固定', '', '2021-01-26 00:55:00', '1', '2022-02-16 19:03:41', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (49, 3, '固定超时', '3', 'infra_redis_timeout_type', 0, 'success', '', 'Redis 设置了过期时间', '', '2021-01-26 00:55:26', '1', '2022-02-16 19:03:45', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (50, 1, '单表(增删改查)', '1', 'infra_codegen_template_type', 0, '', '', NULL, '', '2021-02-05 07:09:06', '', '2022-03-10 16:33:15', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (51, 2, '树表(增删改查)', '2', 'infra_codegen_template_type', 0, '', '', NULL, '', '2021-02-05 07:14:46', '', '2022-03-10 16:33:19', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (53, 0, '初始化中', '0', 'infra_job_status', 0, 'primary', '', NULL, '', '2021-02-07 07:46:49', '1', '2022-02-16 19:33:29', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (57, 0, '运行中', '0', 'infra_job_log_status', 0, 'primary', '', 'RUNNING', '', '2021-02-08 10:04:24', '1', '2022-02-16 19:07:48', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (58, 1, '成功', '1', 'infra_job_log_status', 0, 'success', '', NULL, '', '2021-02-08 10:06:57', '1', '2022-02-16 19:07:52', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (59, 2, '失败', '2', 'infra_job_log_status', 0, 'warning', '', '失败', '', '2021-02-08 10:07:38', '1', '2022-02-16 19:07:56', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (60, 1, '会员', '1', 'user_type', 0, 'primary', '', NULL, '', '2021-02-26 00:16:27', '1', '2022-02-16 10:22:19', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (61, 2, '管理员', '2', 'user_type', 0, 'success', '', NULL, '', '2021-02-26 00:16:34', '1', '2022-02-16 10:22:22', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (62, 0, '未处理', '0', 'infra_api_error_log_process_status', 0, 'primary', '', NULL, '', '2021-02-26 07:07:19', '1', '2022-02-16 20:14:17', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (63, 1, '已处理', '1', 'infra_api_error_log_process_status', 0, 'success', '', NULL, '', '2021-02-26 07:07:26', '1', '2022-02-16 20:14:08', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (64, 2, '已忽略', '2', 'infra_api_error_log_process_status', 0, 'danger', '', NULL, '', '2021-02-26 07:07:34', '1', '2022-02-16 20:14:14', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (66, 2, '阿里云', 'ALIYUN', 'system_sms_channel_code', 0, 'primary', '', NULL, '1', '2021-04-05 01:05:26', '1', '2022-02-16 10:09:52', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (67, 1, '验证码', '1', 'system_sms_template_type', 0, 'warning', '', NULL, '1', '2021-04-05 21:50:57', '1', '2022-02-16 12:48:30', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (68, 2, '通知', '2', 'system_sms_template_type', 0, 'primary', '', NULL, '1', '2021-04-05 21:51:08', '1', '2022-02-16 12:48:27', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (69, 0, '营销', '3', 'system_sms_template_type', 0, 'danger', '', NULL, '1', '2021-04-05 21:51:15', '1', '2022-02-16 12:48:22', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (70, 0, '初始化', '0', 'system_sms_send_status', 0, 'primary', '', NULL, '1', '2021-04-11 20:18:33', '1', '2022-02-16 10:26:07', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (71, 1, '发送成功', '10', 'system_sms_send_status', 0, 'success', '', NULL, '1', '2021-04-11 20:18:43', '1', '2022-02-16 10:25:56', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (72, 2, '发送失败', '20', 'system_sms_send_status', 0, 'danger', '', NULL, '1', '2021-04-11 20:18:49', '1', '2022-02-16 10:26:03', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (73, 3, '不发送', '30', 'system_sms_send_status', 0, 'info', '', NULL, '1', '2021-04-11 20:19:44', '1', '2022-02-16 10:26:10', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (74, 0, '等待结果', '0', 'system_sms_receive_status', 0, 'primary', '', NULL, '1', '2021-04-11 20:27:43', '1', '2022-02-16 10:28:24', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (75, 1, '接收成功', '10', 'system_sms_receive_status', 0, 'success', '', NULL, '1', '2021-04-11 20:29:25', '1', '2022-02-16 10:28:28', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (76, 2, '接收失败', '20', 'system_sms_receive_status', 0, 'danger', '', NULL, '1', '2021-04-11 20:29:31', '1', '2022-02-16 10:28:32', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (77, 0, '调试(钉钉)', 'DEBUG_DING_TALK', 'system_sms_channel_code', 0, 'info', '', NULL, '1', '2021-04-13 00:20:37', '1', '2022-02-16 10:10:00', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (78, 1, '自动生成', '1', 'system_error_code_type', 0, 'warning', '', NULL, '1', '2021-04-21 00:06:48', '1', '2022-02-16 13:57:20', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (79, 2, '手动编辑', '2', 'system_error_code_type', 0, 'primary', '', NULL, '1', '2021-04-21 00:07:14', '1', '2022-02-16 13:57:24', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (80, 100, '账号登录', '100', 'system_login_type', 0, 'primary', '', '账号登录', '1', '2021-10-06 00:52:02', '1', '2022-02-16 13:11:34', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (81, 101, '社交登录', '101', 'system_login_type', 0, 'info', '', '社交登录', '1', '2021-10-06 00:52:17', '1', '2022-02-16 13:11:40', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (83, 200, '主动登出', '200', 'system_login_type', 0, 'primary', '', '主动登出', '1', '2021-10-06 00:52:58', '1', '2022-02-16 13:11:49', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (85, 202, '强制登出', '202', 'system_login_type', 0, 'danger', '', '强制退出', '1', '2021-10-06 00:53:41', '1', '2022-02-16 13:11:57', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (86, 0, '病假', '1', 'bpm_oa_leave_type', 0, 'primary', '', NULL, '1', '2021-09-21 22:35:28', '1', '2022-02-16 10:00:41', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (87, 1, '事假', '2', 'bpm_oa_leave_type', 0, 'info', '', NULL, '1', '2021-09-21 22:36:11', '1', '2022-02-16 10:00:49', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (88, 2, '婚假', '3', 'bpm_oa_leave_type', 0, 'warning', '', NULL, '1', '2021-09-21 22:36:38', '1', '2022-02-16 10:00:53', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (113, 1, '微信公众号支付', 'wx_pub', 'pay_channel_code', 0, 'success', '', '微信公众号支付', '1', '2021-12-03 10:40:24', '1', '2023-07-19 20:08:47', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (114, 2, '微信小程序支付', 'wx_lite', 'pay_channel_code', 0, 'success', '', '微信小程序支付', '1', '2021-12-03 10:41:06', '1', '2023-07-19 20:08:50', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (115, 3, '微信 App 支付', 'wx_app', 'pay_channel_code', 0, 'success', '', '微信 App 支付', '1', '2021-12-03 10:41:20', '1', '2023-07-19 20:08:56', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (116, 10, '支付宝 PC 网站支付', 'alipay_pc', 'pay_channel_code', 0, 'primary', '', '支付宝 PC 网站支付', '1', '2021-12-03 10:42:09', '1', '2023-07-19 20:09:12', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (117, 11, '支付宝 Wap 网站支付', 'alipay_wap', 'pay_channel_code', 0, 'primary', '', '支付宝 Wap 网站支付', '1', '2021-12-03 10:42:26', '1', '2023-07-19 20:09:16', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (118, 12, '支付宝 App 支付', 'alipay_app', 'pay_channel_code', 0, 'primary', '', '支付宝 App 支付', '1', '2021-12-03 10:42:55', '1', '2023-07-19 20:09:20', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (119, 14, '支付宝扫码支付', 'alipay_qr', 'pay_channel_code', 0, 'primary', '', '支付宝扫码支付', '1', '2021-12-03 10:43:10', '1', '2023-07-19 20:09:28', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (120, 10, '通知成功', '10', 'pay_notify_status', 0, 'success', '', '通知成功', '1', '2021-12-03 11:02:41', '1', '2023-07-19 10:08:19', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (121, 20, '通知失败', '20', 'pay_notify_status', 0, 'danger', '', '通知失败', '1', '2021-12-03 11:02:59', '1', '2023-07-19 10:08:21', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (122, 0, '等待通知', '0', 'pay_notify_status', 0, 'info', '', '未通知', '1', '2021-12-03 11:03:10', '1', '2023-07-19 10:08:24', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (123, 10, '支付成功', '10', 'pay_order_status', 0, 'success', '', '支付成功', '1', '2021-12-03 11:18:29', '1', '2023-07-19 18:04:28', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (124, 30, '支付关闭', '30', 'pay_order_status', 0, 'info', '', '支付关闭', '1', '2021-12-03 11:18:42', '1', '2023-07-19 18:05:07', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (125, 0, '等待支付', '0', 'pay_order_status', 0, 'info', '', '未支付', '1', '2021-12-03 11:18:18', '1', '2023-07-19 18:04:15', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1118, 0, '等待退款', '0', 'pay_refund_status', 0, 'info', '', '等待退款', '1', '2021-12-10 16:44:59', '1', '2023-07-19 10:14:39', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1119, 20, '退款失败', '20', 'pay_refund_status', 0, 'danger', '', '退款失败', '1', '2021-12-10 16:45:10', '1', '2023-07-19 10:15:10', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1124, 10, '退款成功', '10', 'pay_refund_status', 0, 'success', '', '退款成功', '1', '2021-12-10 16:46:26', '1', '2023-07-19 10:15:00', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1125, 0, '默认', '1', 'bpm_model_category', 0, 'primary', '', '流程分类 - 默认', '1', '2022-01-02 08:41:11', '1', '2022-02-16 20:01:42', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1126, 0, 'OA', '2', 'bpm_model_category', 0, 'success', '', '流程分类 - OA', '1', '2022-01-02 08:41:22', '1', '2022-02-16 20:01:50', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1127, 0, '进行中', '1', 'bpm_process_instance_status', 0, 'primary', '', '流程实例的状态 - 进行中', '1', '2022-01-07 23:47:22', '1', '2022-02-16 20:07:49', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1128, 2, '已完成', '2', 'bpm_process_instance_status', 0, 'success', '', '流程实例的状态 - 已完成', '1', '2022-01-07 23:47:49', '1', '2022-02-16 20:07:54', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1129, 1, '处理中', '1', 'bpm_process_instance_result', 0, 'primary', '', '流程实例的结果 - 处理中', '1', '2022-01-07 23:48:32', '1', '2022-02-16 09:53:26', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1130, 2, '通过', '2', 'bpm_process_instance_result', 0, 'success', '', '流程实例的结果 - 通过', '1', '2022-01-07 23:48:45', '1', '2022-02-16 09:53:31', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1131, 3, '不通过', '3', 'bpm_process_instance_result', 0, 'danger', '', '流程实例的结果 - 不通过', '1', '2022-01-07 23:48:55', '1', '2022-02-16 09:53:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1132, 4, '已取消', '4', 'bpm_process_instance_result', 0, 'info', '', '流程实例的结果 - 撤销', '1', '2022-01-07 23:49:06', '1', '2022-02-16 09:53:42', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1133, 10, '流程表单', '10', 'bpm_model_form_type', 0, '', '', '流程的表单类型 - 流程表单', '103', '2022-01-11 23:51:30', '103', '2022-01-11 23:51:30', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1134, 20, '业务表单', '20', 'bpm_model_form_type', 0, '', '', '流程的表单类型 - 业务表单', '103', '2022-01-11 23:51:47', '103', '2022-01-11 23:51:47', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1135, 10, '角色', '10', 'bpm_task_assign_rule_type', 0, 'info', '', '任务分配规则的类型 - 角色', '103', '2022-01-12 23:21:22', '1', '2022-02-16 20:06:14', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1136, 20, '部门的成员', '20', 'bpm_task_assign_rule_type', 0, 'primary', '', '任务分配规则的类型 - 部门的成员', '103', '2022-01-12 23:21:47', '1', '2022-02-16 20:05:28', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1137, 21, '部门的负责人', '21', 'bpm_task_assign_rule_type', 0, 'primary', '', '任务分配规则的类型 - 部门的负责人', '103', '2022-01-12 23:33:36', '1', '2022-02-16 20:05:31', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1138, 30, '用户', '30', 'bpm_task_assign_rule_type', 0, 'info', '', '任务分配规则的类型 - 用户', '103', '2022-01-12 23:34:02', '1', '2022-02-16 20:05:50', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1139, 40, '用户组', '40', 'bpm_task_assign_rule_type', 0, 'warning', '', '任务分配规则的类型 - 用户组', '103', '2022-01-12 23:34:21', '1', '2022-02-16 20:05:57', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1140, 50, '自定义脚本', '50', 'bpm_task_assign_rule_type', 0, 'danger', '', '任务分配规则的类型 - 自定义脚本', '103', '2022-01-12 23:34:43', '1', '2022-02-16 20:06:01', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1141, 22, '岗位', '22', 'bpm_task_assign_rule_type', 0, 'success', '', '任务分配规则的类型 - 岗位', '103', '2022-01-14 18:41:55', '1', '2022-02-16 20:05:39', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1142, 10, '流程发起人', '10', 'bpm_task_assign_script', 0, '', '', '任务分配自定义脚本 - 流程发起人', '103', '2022-01-15 00:10:57', '103', '2022-01-15 21:24:10', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1143, 20, '流程发起人的一级领导', '20', 'bpm_task_assign_script', 0, '', '', '任务分配自定义脚本 - 流程发起人的一级领导', '103', '2022-01-15 21:24:31', '103', '2022-01-15 21:24:31', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1144, 21, '流程发起人的二级领导', '21', 'bpm_task_assign_script', 0, '', '', '任务分配自定义脚本 - 流程发起人的二级领导', '103', '2022-01-15 21:24:46', '103', '2022-01-15 21:24:57', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1145, 1, '管理后台', '1', 'infra_codegen_scene', 0, '', '', '代码生成的场景枚举 - 管理后台', '1', '2022-02-02 13:15:06', '1', '2022-03-10 16:32:59', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1146, 2, '用户 APP', '2', 'infra_codegen_scene', 0, '', '', '代码生成的场景枚举 - 用户 APP', '1', '2022-02-02 13:15:19', '1', '2022-03-10 16:33:03', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1150, 1, '数据库', '1', 'infra_file_storage', 0, 'default', '', NULL, '1', '2022-03-15 00:25:28', '1', '2022-03-15 00:25:28', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1151, 10, '本地磁盘', '10', 'infra_file_storage', 0, 'default', '', NULL, '1', '2022-03-15 00:25:41', '1', '2022-03-15 00:25:56', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1152, 11, 'FTP 服务器', '11', 'infra_file_storage', 0, 'default', '', NULL, '1', '2022-03-15 00:26:06', '1', '2022-03-15 00:26:10', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1153, 12, 'SFTP 服务器', '12', 'infra_file_storage', 0, 'default', '', NULL, '1', '2022-03-15 00:26:22', '1', '2022-03-15 00:26:22', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1154, 20, 'S3 对象存储', '20', 'infra_file_storage', 0, 'default', '', NULL, '1', '2022-03-15 00:26:31', '1', '2022-03-15 00:26:45', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1155, 103, '短信登录', '103', 'system_login_type', 0, 'default', '', NULL, '1', '2022-05-09 23:57:58', '1', '2022-05-09 23:58:09', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1156, 1, 'password', 'password', 'system_oauth2_grant_type', 0, 'default', '', '密码模式', '1', '2022-05-12 00:22:05', '1', '2022-05-11 16:26:01', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1157, 2, 'authorization_code', 'authorization_code', 'system_oauth2_grant_type', 0, 'primary', '', '授权码模式', '1', '2022-05-12 00:22:59', '1', '2022-05-11 16:26:02', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1158, 3, 'implicit', 'implicit', 'system_oauth2_grant_type', 0, 'success', '', '简化模式', '1', '2022-05-12 00:23:40', '1', '2022-05-11 16:26:05', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1159, 4, 'client_credentials', 'client_credentials', 'system_oauth2_grant_type', 0, 'default', '', '客户端模式', '1', '2022-05-12 00:23:51', '1', '2022-05-11 16:26:08', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1160, 5, 'refresh_token', 'refresh_token', 'system_oauth2_grant_type', 0, 'info', '', '刷新模式', '1', '2022-05-12 00:24:02', '1', '2022-05-11 16:26:11', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1162, 1, '销售中', '1', 'product_spu_status', 0, 'success', '', '商品 SPU 状态 - 销售中', '1', '2022-10-24 21:19:47', '1', '2022-10-24 21:20:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1163, 0, '仓库中', '0', 'product_spu_status', 0, 'info', '', '商品 SPU 状态 - 仓库中', '1', '2022-10-24 21:20:54', '1', '2022-10-24 21:21:22', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1164, 0, '回收站', '-1', 'product_spu_status', 0, 'default', '', '商品 SPU 状态 - 回收站', '1', '2022-10-24 21:21:11', '1', '2022-10-24 21:21:11', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1165, 1, '满减', '1', 'promotion_discount_type', 0, 'success', '', '优惠类型 - 满减', '1', '2022-11-01 12:46:41', '1', '2022-11-01 12:50:11', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1166, 2, '折扣', '2', 'promotion_discount_type', 0, 'primary', '', '优惠类型 - 折扣', '1', '2022-11-01 12:46:51', '1', '2022-11-01 12:50:08', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1167, 1, '固定日期', '1', 'promotion_coupon_template_validity_type', 0, 'default', '', '优惠劵模板的有限期类型 - 固定日期', '1', '2022-11-02 00:07:34', '1', '2022-11-04 00:07:49', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1168, 2, '领取之后', '2', 'promotion_coupon_template_validity_type', 0, 'default', '', '优惠劵模板的有限期类型 - 领取之后', '1', '2022-11-02 00:07:54', '1', '2022-11-04 00:07:52', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1169, 1, '全部商品参与', '1', 'promotion_product_scope', 0, 'default', '', '营销的商品范围 - 全部商品参与', '1', '2022-11-02 00:28:22', '1', '2022-11-02 00:28:22', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1170, 2, '指定商品参与', '2', 'promotion_product_scope', 0, 'default', '', '营销的商品范围 - 指定商品参与', '1', '2022-11-02 00:28:34', '1', '2022-11-02 00:28:40', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1171, 1, '已领取', '1', 'promotion_coupon_status', 0, 'primary', '', '优惠劵的状态 - 已领取', '1', '2022-11-04 00:15:08', '1', '2022-11-04 19:16:04', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1172, 2, '已使用', '2', 'promotion_coupon_status', 0, 'success', '', '优惠劵的状态 - 已使用', '1', '2022-11-04 00:15:21', '1', '2022-11-04 19:16:08', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1173, 3, '已过期', '3', 'promotion_coupon_status', 0, 'info', '', '优惠劵的状态 - 已过期', '1', '2022-11-04 00:15:43', '1', '2022-11-04 19:16:12', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1174, 1, '直接领取', '1', 'promotion_coupon_take_type', 0, 'primary', '', '优惠劵的领取方式 - 直接领取', '1', '2022-11-04 19:13:00', '1', '2022-11-04 19:13:25', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1175, 2, '指定发放', '2', 'promotion_coupon_take_type', 0, 'success', '', '优惠劵的领取方式 - 指定发放', '1', '2022-11-04 19:13:13', '1', '2022-11-04 19:14:48', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1176, 10, '未开始', '10', 'promotion_activity_status', 0, 'primary', '', '促销活动的状态枚举 - 未开始', '1', '2022-11-04 22:54:49', '1', '2022-11-04 22:55:53', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1177, 20, '进行中', '20', 'promotion_activity_status', 0, 'success', '', '促销活动的状态枚举 - 进行中', '1', '2022-11-04 22:55:06', '1', '2022-11-04 22:55:20', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1178, 30, '已结束', '30', 'promotion_activity_status', 0, 'info', '', '促销活动的状态枚举 - 已结束', '1', '2022-11-04 22:55:41', '1', '2022-11-04 22:55:41', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1179, 40, '已关闭', '40', 'promotion_activity_status', 0, 'warning', '', '促销活动的状态枚举 - 已关闭', '1', '2022-11-04 22:56:10', '1', '2022-11-04 22:56:18', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1180, 10, '满 N 元', '10', 'promotion_condition_type', 0, 'primary', '', '营销的条件类型 - 满 N 元', '1', '2022-11-04 22:59:45', '1', '2022-11-04 22:59:45', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1181, 20, '满 N 件', '20', 'promotion_condition_type', 0, 'success', '', '营销的条件类型 - 满 N 件', '1', '2022-11-04 23:00:02', '1', '2022-11-04 23:00:02', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1182, 10, '申请售后', '10', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 申请售后', '1', '2022-11-19 20:53:33', '1', '2022-11-19 20:54:42', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1183, 20, '商品待退货', '20', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 商品待退货', '1', '2022-11-19 20:54:36', '1', '2022-11-19 20:58:58', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1184, 30, '商家待收货', '30', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 商家待收货', '1', '2022-11-19 20:56:56', '1', '2022-11-19 20:59:20', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1185, 40, '等待退款', '40', 'trade_after_sale_status', 0, 'primary', '', '交易售后状态 - 等待退款', '1', '2022-11-19 20:59:54', '1', '2022-11-19 21:00:01', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1186, 50, '退款成功', '50', 'trade_after_sale_status', 0, 'default', '', '交易售后状态 - 退款成功', '1', '2022-11-19 21:00:33', '1', '2022-11-19 21:00:33', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1187, 61, '买家取消', '61', 'trade_after_sale_status', 0, 'info', '', '交易售后状态 - 买家取消', '1', '2022-11-19 21:01:29', '1', '2022-11-19 21:01:29', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1188, 62, '商家拒绝', '62', 'trade_after_sale_status', 0, 'info', '', '交易售后状态 - 商家拒绝', '1', '2022-11-19 21:02:17', '1', '2022-11-19 21:02:17', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1189, 63, '商家拒收货', '63', 'trade_after_sale_status', 0, 'info', '', '交易售后状态 - 商家拒收货', '1', '2022-11-19 21:02:37', '1', '2022-11-19 21:03:07', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1190, 10, '售中退款', '10', 'trade_after_sale_type', 0, 'success', '', '交易售后的类型 - 售中退款', '1', '2022-11-19 21:05:05', '1', '2022-11-19 21:38:23', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1191, 20, '售后退款', '20', 'trade_after_sale_type', 0, 'primary', '', '交易售后的类型 - 售后退款', '1', '2022-11-19 21:05:32', '1', '2022-11-19 21:38:32', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1192, 10, '仅退款', '10', 'trade_after_sale_way', 0, 'primary', '', '交易售后的方式 - 仅退款', '1', '2022-11-19 21:39:19', '1', '2022-11-19 21:39:19', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1193, 20, '退货退款', '20', 'trade_after_sale_way', 0, 'success', '', '交易售后的方式 - 退货退款', '1', '2022-11-19 21:39:38', '1', '2022-11-19 21:39:49', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1194, 10, '微信小程序', '10', 'terminal', 0, 'default', '', '终端 - 微信小程序', '1', '2022-12-10 10:51:11', '1', '2022-12-10 10:51:57', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1195, 20, 'H5 网页', '20', 'terminal', 0, 'default', '', '终端 - H5 网页', '1', '2022-12-10 10:51:30', '1', '2022-12-10 10:51:59', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1196, 11, '微信公众号', '11', 'terminal', 0, 'default', '', '终端 - 微信公众号', '1', '2022-12-10 10:54:16', '1', '2022-12-10 10:52:01', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1197, 31, '苹果 App', '31', 'terminal', 0, 'default', '', '终端 - 苹果 App', '1', '2022-12-10 10:54:42', '1', '2022-12-10 10:52:18', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1198, 32, '安卓 App', '32', 'terminal', 0, 'default', '', '终端 - 安卓 App', '1', '2022-12-10 10:55:02', '1', '2022-12-10 10:59:17', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1199, 0, '普通订单', '0', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 普通订单', '1', '2022-12-10 16:34:14', '1', '2022-12-10 16:34:14', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1200, 1, '秒杀订单', '1', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 秒杀订单', '1', '2022-12-10 16:34:26', '1', '2022-12-10 16:34:26', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1201, 2, '拼团订单', '2', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 拼团订单', '1', '2022-12-10 16:34:36', '1', '2022-12-10 16:34:36', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1202, 3, '砍价订单', '3', 'trade_order_type', 0, 'default', '', '交易订单的类型 - 砍价订单', '1', '2022-12-10 16:34:48', '1', '2022-12-10 16:34:48', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1203, 0, '待支付', '0', 'trade_order_status', 0, 'default', '', '交易订单状态 - 待支付', '1', '2022-12-10 16:49:29', '1', '2022-12-10 16:49:29', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1204, 10, '待发货', '10', 'trade_order_status', 0, 'primary', '', '交易订单状态 - 待发货', '1', '2022-12-10 16:49:53', '1', '2022-12-10 16:51:17', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1205, 20, '已发货', '20', 'trade_order_status', 0, 'primary', '', '交易订单状态 - 已发货', '1', '2022-12-10 16:50:13', '1', '2022-12-10 16:51:31', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1206, 30, '已完成', '30', 'trade_order_status', 0, 'success', '', '交易订单状态 - 已完成', '1', '2022-12-10 16:50:30', '1', '2022-12-10 16:51:06', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1207, 40, '已取消', '40', 'trade_order_status', 0, 'danger', '', '交易订单状态 - 已取消', '1', '2022-12-10 16:50:50', '1', '2022-12-10 16:51:00', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1208, 0, '未售后', '0', 'trade_order_item_after_sale_status', 0, 'info', '', '交易订单项的售后状态 - 未售后', '1', '2022-12-10 20:58:42', '1', '2022-12-10 20:59:29', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1209, 1, '售后中', '1', 'trade_order_item_after_sale_status', 0, 'primary', '', '交易订单项的售后状态 - 售后中', '1', '2022-12-10 20:59:21', '1', '2022-12-10 20:59:21', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1210, 2, '已退款', '2', 'trade_order_item_after_sale_status', 0, 'success', '', '交易订单项的售后状态 - 已退款', '1', '2022-12-10 20:59:46', '1', '2022-12-10 20:59:46', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1211, 1, '完全匹配', '1', 'mp_auto_reply_request_match', 0, 'primary', '', '公众号自动回复的请求关键字匹配模式 - 完全匹配', '1', '2023-01-16 23:30:39', '1', '2023-01-16 23:31:00', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1212, 2, '半匹配', '2', 'mp_auto_reply_request_match', 0, 'success', '', '公众号自动回复的请求关键字匹配模式 - 半匹配', '1', '2023-01-16 23:30:55', '1', '2023-01-16 23:31:10', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1213, 1, '文本', 'text', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 文本', '1', '2023-01-17 22:17:32', '1', '2023-01-17 22:17:39', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1214, 2, '图片', 'image', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 图片', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:19:47', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1215, 3, '语音', 'voice', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 语音', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:20:08', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1216, 4, '视频', 'video', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 视频', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:21:08', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1217, 5, '小视频', 'shortvideo', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 小视频', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:19:59', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1218, 6, '图文', 'news', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 图文', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:22:54', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1219, 7, '音乐', 'music', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 音乐', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:22:54', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1220, 8, '地理位置', 'location', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 地理位置', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:23:51', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1221, 9, '链接', 'link', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 链接', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:24:49', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1222, 10, '事件', 'event', 'mp_message_type', 0, 'default', '', '公众号的消息类型 - 事件', '1', '2023-01-17 22:17:32', '1', '2023-01-17 14:24:49', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1223, 0, '初始化', '0', 'system_mail_send_status', 0, 'primary', '', '邮件发送状态 - 初始化\n', '1', '2023-01-26 09:53:49', '1', '2023-01-26 16:36:14', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1224, 10, '发送成功', '10', 'system_mail_send_status', 0, 'success', '', '邮件发送状态 - 发送成功', '1', '2023-01-26 09:54:28', '1', '2023-01-26 16:36:22', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1225, 20, '发送失败', '20', 'system_mail_send_status', 0, 'danger', '', '邮件发送状态 - 发送失败', '1', '2023-01-26 09:54:50', '1', '2023-01-26 16:36:26', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1226, 30, '不发送', '30', 'system_mail_send_status', 0, 'info', '', '邮件发送状态 - 不发送', '1', '2023-01-26 09:55:06', '1', '2023-01-26 16:36:36', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1227, 1, '通知公告', '1', 'system_notify_template_type', 0, 'primary', '', '站内信模版的类型 - 通知公告', '1', '2023-01-28 10:35:59', '1', '2023-01-28 10:35:59', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1228, 2, '系统消息', '2', 'system_notify_template_type', 0, 'success', '', '站内信模版的类型 - 系统消息', '1', '2023-01-28 10:36:20', '1', '2023-01-28 10:36:25', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1229, 0, '模拟支付', 'mock', 'pay_channel_code', 0, 'default', '', '模拟支付', '1', '2023-02-12 21:50:22', '1', '2023-07-10 10:11:02', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1230, 13, '支付宝条码支付', 'alipay_bar', 'pay_channel_code', 0, 'primary', '', '支付宝条码支付', '1', '2023-02-18 23:32:24', '1', '2023-07-19 20:09:23', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1231, 10, 'Vue2 Element UI 标准模版', '10', 'infra_codegen_front_type', 0, '', '', '', '1', '2023-04-13 00:03:55', '1', '2023-04-13 00:03:55', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1232, 20, 'Vue3 Element Plus 标准模版', '20', 'infra_codegen_front_type', 0, '', '', '', '1', '2023-04-13 00:04:08', '1', '2023-04-13 00:04:08', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1233, 21, 'Vue3 Element Plus Schema 模版', '21', 'infra_codegen_front_type', 0, '', '', '', '1', '2023-04-13 00:04:26', '1', '2023-04-13 00:04:26', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1234, 30, 'Vue3 vben 模版', '30', 'infra_codegen_front_type', 0, '', '', '', '1', '2023-04-13 00:04:26', '1', '2023-04-13 00:04:26', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1235, 1, '个', '1', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2023-05-23 14:38:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1236, 1, '件', '2', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2023-05-23 14:38:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1237, 1, '盒', '3', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2023-05-23 14:38:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1238, 1, '袋', '4', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2023-05-23 14:38:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1239, 1, '箱', '5', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2023-05-23 14:38:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1240, 1, '套', '6', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2023-05-23 14:38:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1241, 1, '包', '7', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2023-05-23 14:38:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1242, 1, '双', '8', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2023-05-23 14:38:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1243, 1, '卷', '9', 'product_unit', 0, '', '', '', '1', '2023-05-23 14:38:38', '1', '2023-05-23 14:38:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1244, 0, '按件', '1', 'trade_delivery_express_charge_mode', 0, '', '', '', '1', '2023-05-21 22:46:40', '1', '2023-05-21 22:46:40', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1245, 1, '按重量', '2', 'trade_delivery_express_charge_mode', 0, '', '', '', '1', '2023-05-21 22:46:58', '1', '2023-05-21 22:46:58', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1246, 2, '按体积', '3', 'trade_delivery_express_charge_mode', 0, '', '', '', '1', '2023-05-21 22:47:18', '1', '2023-05-21 22:47:18', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1335, 1, '购物', '1', 'member_point_biz_type', 0, '', '', '', '1', '2023-06-10 12:15:27', '1', '2023-06-28 13:48:28', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1336, 2, '签到', '2', 'member_point_biz_type', 0, '', '', '', '1', '2023-06-10 12:15:48', '1', '2023-06-28 13:48:31', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1337, 1, '订单创建', '1', 'member_point_status', 0, '', '', '', '1', '2023-06-10 12:16:42', '1', '2023-06-28 13:48:34', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1338, 2, '冻结期', '2', 'member_point_status', 0, '', '', '', '1', '2023-06-10 12:16:58', '1', '2023-06-28 13:48:36', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1339, 3, '完成', '3', 'member_point_status', 0, '', '', '', '1', '2023-06-10 12:17:07', '1', '2023-06-28 13:48:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1340, 4, '失效(订单退款)', '4', 'member_point_status', 0, '', '', '', '1', '2023-06-10 12:17:21', '1', '2023-06-28 13:48:42', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1341, 20, '已退款', '20', 'pay_order_status', 0, 'danger', '', '已退款', '1', '2023-07-19 18:05:37', '1', '2023-07-19 18:05:37', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1342, 21, '请求成功,但是结果失败', '21', 'pay_notify_status', 0, 'warning', '', '请求成功,但是结果失败', '1', '2023-07-19 18:10:47', '1', '2023-07-19 18:11:38', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1343, 22, '请求失败', '22', 'pay_notify_status', 0, 'warning', '', NULL, '1', '2023-07-19 18:11:05', '1', '2023-07-19 18:11:27', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1344, 4, '微信扫码支付', 'wx_native', 'pay_channel_code', 0, 'success', '', '微信扫码支付', '1', '2023-07-19 20:07:47', '1', '2023-07-19 20:09:03', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1345, 5, '微信条码支付', 'wx_bar', 'pay_channel_code', 0, 'success', '', '微信条码支付\n', '1', '2023-07-19 20:08:06', '1', '2023-07-19 20:09:08', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1346, 1, '支付单', '1', 'pay_notify_type', 0, 'primary', '', '支付单', '1', '2023-07-20 12:23:17', '1', '2023-07-20 12:23:17', b'0'); +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1347, 2, '退款单', '2', 'pay_notify_type', 0, 'danger', '', NULL, '1', '2023-07-20 12:23:26', '1', '2023-07-20 12:23:26', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_dict_type +-- ---------------------------- +DROP TABLE IF EXISTS `system_dict_type`; +CREATE TABLE `system_dict_type` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典主键', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典名称', + `type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '字典类型', + `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `deleted_time` datetime NULL DEFAULT NULL COMMENT '删除时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `dict_type`(`type` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 174 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典类型表'; + +-- ---------------------------- +-- Records of system_dict_type +-- ---------------------------- +BEGIN; +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (1, '用户性别', 'system_user_sex', 0, NULL, 'admin', '2021-01-05 17:03:48', '1', '2022-05-16 20:29:32', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (6, '参数类型', 'infra_config_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:36:54', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (7, '通知类型', 'system_notice_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:35:26', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (9, '操作类型', 'system_operate_type', 0, NULL, 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 09:32:21', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (10, '系统状态', 'common_status', 0, NULL, 'admin', '2021-01-05 17:03:48', '', '2022-02-01 16:21:28', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (11, 'Boolean 是否类型', 'infra_boolean_string', 0, 'boolean 转是否', '', '2021-01-19 03:20:08', '', '2022-02-01 16:37:10', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (104, '登陆结果', 'system_login_result', 0, '登陆结果', '', '2021-01-18 06:17:11', '', '2022-02-01 16:36:00', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (105, 'Redis 超时类型', 'infra_redis_timeout_type', 0, 'RedisKeyDefine.TimeoutTypeEnum', '', '2021-01-26 00:52:50', '', '2022-02-01 16:50:29', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (106, '代码生成模板类型', 'infra_codegen_template_type', 0, NULL, '', '2021-02-05 07:08:06', '1', '2022-05-16 20:26:50', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (107, '定时任务状态', 'infra_job_status', 0, NULL, '', '2021-02-07 07:44:16', '', '2022-02-01 16:51:11', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (108, '定时任务日志状态', 'infra_job_log_status', 0, NULL, '', '2021-02-08 10:03:51', '', '2022-02-01 16:50:43', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (109, '用户类型', 'user_type', 0, NULL, '', '2021-02-26 00:15:51', '', '2021-02-26 00:15:51', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (110, 'API 异常数据的处理状态', 'infra_api_error_log_process_status', 0, NULL, '', '2021-02-26 07:07:01', '', '2022-02-01 16:50:53', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (111, '短信渠道编码', 'system_sms_channel_code', 0, NULL, '1', '2021-04-05 01:04:50', '1', '2022-02-16 02:09:08', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (112, '短信模板的类型', 'system_sms_template_type', 0, NULL, '1', '2021-04-05 21:50:43', '1', '2022-02-01 16:35:06', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (113, '短信发送状态', 'system_sms_send_status', 0, NULL, '1', '2021-04-11 20:18:03', '1', '2022-02-01 16:35:09', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (114, '短信接收状态', 'system_sms_receive_status', 0, NULL, '1', '2021-04-11 20:27:14', '1', '2022-02-01 16:35:14', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (115, '错误码的类型', 'system_error_code_type', 0, NULL, '1', '2021-04-21 00:06:30', '1', '2022-02-01 16:36:49', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (116, '登陆日志的类型', 'system_login_type', 0, '登陆日志的类型', '1', '2021-10-06 00:50:46', '1', '2022-02-01 16:35:56', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (117, 'OA 请假类型', 'bpm_oa_leave_type', 0, NULL, '1', '2021-09-21 22:34:33', '1', '2022-01-22 10:41:37', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (130, '支付渠道编码类型', 'pay_channel_code', 0, '支付渠道的编码', '1', '2021-12-03 10:35:08', '1', '2023-07-10 10:11:39', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (131, '支付回调状态', 'pay_notify_status', 0, '支付回调状态(包括退款回调)', '1', '2021-12-03 10:53:29', '1', '2023-07-19 18:09:43', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (132, '支付订单状态', 'pay_order_status', 0, '支付订单状态', '1', '2021-12-03 11:17:50', '1', '2021-12-03 11:17:50', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (134, '退款订单状态', 'pay_refund_status', 0, '退款订单状态', '1', '2021-12-10 16:42:50', '1', '2023-07-19 10:13:17', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (138, '流程分类', 'bpm_model_category', 0, '流程分类', '1', '2022-01-02 08:40:45', '1', '2022-01-02 08:40:45', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (139, '流程实例的状态', 'bpm_process_instance_status', 0, '流程实例的状态', '1', '2022-01-07 23:46:42', '1', '2022-01-07 23:46:42', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (140, '流程实例的结果', 'bpm_process_instance_result', 0, '流程实例的结果', '1', '2022-01-07 23:48:10', '1', '2022-01-07 23:48:10', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (141, '流程的表单类型', 'bpm_model_form_type', 0, '流程的表单类型', '103', '2022-01-11 23:50:45', '103', '2022-01-11 23:50:45', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (142, '任务分配规则的类型', 'bpm_task_assign_rule_type', 0, '任务分配规则的类型', '103', '2022-01-12 23:21:04', '103', '2022-01-12 15:46:10', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (143, '任务分配自定义脚本', 'bpm_task_assign_script', 0, '任务分配自定义脚本', '103', '2022-01-15 00:10:35', '103', '2022-01-15 00:10:35', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (144, '代码生成的场景枚举', 'infra_codegen_scene', 0, '代码生成的场景枚举', '1', '2022-02-02 13:14:45', '1', '2022-03-10 16:33:46', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (145, '角色类型', 'system_role_type', 0, '角色类型', '1', '2022-02-16 13:01:46', '1', '2022-02-16 13:01:46', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (146, '文件存储器', 'infra_file_storage', 0, '文件存储器', '1', '2022-03-15 00:24:38', '1', '2022-03-15 00:24:38', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (147, 'OAuth 2.0 授权类型', 'system_oauth2_grant_type', 0, 'OAuth 2.0 授权类型(模式)', '1', '2022-05-12 00:20:52', '1', '2022-05-11 16:25:49', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (149, '商品 SPU 状态', 'product_spu_status', 0, '商品 SPU 状态', '1', '2022-10-24 21:19:04', '1', '2022-10-24 21:19:08', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (150, '优惠类型', 'promotion_discount_type', 0, '优惠类型', '1', '2022-11-01 12:46:06', '1', '2022-11-01 12:46:06', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (151, '优惠劵模板的有限期类型', 'promotion_coupon_template_validity_type', 0, '优惠劵模板的有限期类型', '1', '2022-11-02 00:06:20', '1', '2022-11-04 00:08:26', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (152, '营销的商品范围', 'promotion_product_scope', 0, '营销的商品范围', '1', '2022-11-02 00:28:01', '1', '2022-11-02 00:28:01', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (153, '优惠劵的状态', 'promotion_coupon_status', 0, '优惠劵的状态', '1', '2022-11-04 00:14:49', '1', '2022-11-04 00:14:49', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (154, '优惠劵的领取方式', 'promotion_coupon_take_type', 0, '优惠劵的领取方式', '1', '2022-11-04 19:12:27', '1', '2022-11-04 19:12:27', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (155, '促销活动的状态', 'promotion_activity_status', 0, '促销活动的状态', '1', '2022-11-04 22:54:23', '1', '2022-11-04 22:54:23', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (156, '营销的条件类型', 'promotion_condition_type', 0, '营销的条件类型', '1', '2022-11-04 22:59:23', '1', '2022-11-04 22:59:23', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (157, '交易售后状态', 'trade_after_sale_status', 0, '交易售后状态', '1', '2022-11-19 20:52:56', '1', '2022-11-19 20:52:56', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (158, '交易售后的类型', 'trade_after_sale_type', 0, '交易售后的类型', '1', '2022-11-19 21:04:09', '1', '2022-11-19 21:04:09', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (159, '交易售后的方式', 'trade_after_sale_way', 0, '交易售后的方式', '1', '2022-11-19 21:39:04', '1', '2022-11-19 21:39:04', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (160, '终端', 'terminal', 0, '终端', '1', '2022-12-10 10:50:50', '1', '2022-12-10 10:53:11', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (161, '交易订单的类型', 'trade_order_type', 0, '交易订单的类型', '1', '2022-12-10 16:33:54', '1', '2022-12-10 16:33:54', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (162, '交易订单的状态', 'trade_order_status', 0, '交易订单的状态', '1', '2022-12-10 16:48:44', '1', '2022-12-10 16:48:44', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (163, '交易订单项的售后状态', 'trade_order_item_after_sale_status', 0, '交易订单项的售后状态', '1', '2022-12-10 20:58:08', '1', '2022-12-10 20:58:08', b'0', NULL); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (164, '公众号自动回复的请求关键字匹配模式', 'mp_auto_reply_request_match', 0, '公众号自动回复的请求关键字匹配模式', '1', '2023-01-16 23:29:56', '1', '2023-01-16 23:29:56', b'0', '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (165, '公众号的消息类型', 'mp_message_type', 0, '公众号的消息类型', '1', '2023-01-17 22:17:09', '1', '2023-01-17 22:17:09', b'0', '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (166, '邮件发送状态', 'system_mail_send_status', 0, '邮件发送状态', '1', '2023-01-26 09:53:13', '1', '2023-01-26 09:53:13', b'0', '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (167, '站内信模版的类型', 'system_notify_template_type', 0, '站内信模版的类型', '1', '2023-01-28 10:35:10', '1', '2023-01-28 10:35:10', b'0', '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (168, '代码生成的前端类型', 'infra_codegen_front_type', 0, '', '1', '2023-04-12 23:57:52', '1', '2023-04-12 23:57:52', b'0', '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (169, '商品的单位', 'product_unit', 0, '商品的单位', '1', '2023-05-24 21:23:59', '1', '2023-05-24 21:23:59', b'0', '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (170, '快递计费方式', 'trade_delivery_express_charge_mode', 0, '用于商城交易模块配送管理', '1', '2023-05-21 22:45:03', '1', '2023-05-21 22:45:03', b'0', '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (171, '积分业务类型', 'member_point_biz_type', 0, '', '1', '2023-06-10 12:15:00', '1', '2023-06-28 13:48:20', b'0', '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (172, '积分订单状态', 'member_point_status', 0, '', '1', '2023-06-10 12:16:27', '1', '2023-06-28 13:48:17', b'0', '1970-01-01 00:00:00'); +INSERT INTO `system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (173, '支付通知类型', 'pay_notify_type', 0, NULL, '1', '2023-07-20 12:23:03', '1', '2023-07-20 12:23:03', b'0', '1970-01-01 00:00:00'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_error_code +-- ---------------------------- +DROP TABLE IF EXISTS `system_error_code`; +CREATE TABLE `system_error_code` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '错误码编号', + `type` tinyint NOT NULL DEFAULT 0 COMMENT '错误码类型', + `application_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '应用名', + `code` int NOT NULL DEFAULT 0 COMMENT '错误码编码', + `message` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '错误码错误提示', + `memo` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5833 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '错误码表'; + +-- ---------------------------- +-- Records of system_error_code +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_login_log +-- ---------------------------- +DROP TABLE IF EXISTS `system_login_log`; +CREATE TABLE `system_login_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '访问ID', + `log_type` bigint NOT NULL COMMENT '日志类型', + `trace_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '链路追踪编号', + `user_id` bigint NOT NULL DEFAULT 0 COMMENT '用户编号', + `user_type` tinyint NOT NULL DEFAULT 0 COMMENT '用户类型', + `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户账号', + `result` tinyint NOT NULL COMMENT '登陆结果', + `user_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户 IP', + `user_agent` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '浏览器 UA', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2243 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统访问记录'; + +-- ---------------------------- +-- Records of system_login_log +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_mail_account +-- ---------------------------- +DROP TABLE IF EXISTS `system_mail_account`; +CREATE TABLE `system_mail_account` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `mail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮箱', + `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名', + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码', + `host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SMTP 服务器域名', + `port` int NOT NULL COMMENT 'SMTP 服务器端口', + `ssl_enable` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否开启 SSL', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '邮箱账号表'; + +-- ---------------------------- +-- Records of system_mail_account +-- ---------------------------- +BEGIN; +INSERT INTO `system_mail_account` (`id`, `mail`, `username`, `password`, `host`, `port`, `ssl_enable`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '7684413@qq.com', '7684413@qq.com', '123457', '127.0.0.1', 8080, b'0', '1', '2023-01-25 17:39:52', '1', '2023-04-12 23:04:49', b'0'); +INSERT INTO `system_mail_account` (`id`, `mail`, `username`, `password`, `host`, `port`, `ssl_enable`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, 'ydym_test@163.com', 'ydym_test@163.com', 'WBZTEINMIFVRYSOE', 'smtp.163.com', 465, b'1', '1', '2023-01-26 01:26:03', '1', '2023-04-12 22:39:38', b'0'); +INSERT INTO `system_mail_account` (`id`, `mail`, `username`, `password`, `host`, `port`, `ssl_enable`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, '76854114@qq.com', '3335', '11234', 'yunai1.cn', 466, b'0', '1', '2023-01-27 15:06:38', '1', '2023-01-27 07:08:36', b'1'); +INSERT INTO `system_mail_account` (`id`, `mail`, `username`, `password`, `host`, `port`, `ssl_enable`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, '7685413x@qq.com', '2', '3', '4', 5, b'1', '1', '2023-04-12 23:05:06', '1', '2023-04-12 15:05:11', b'1'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_mail_log +-- ---------------------------- +DROP TABLE IF EXISTS `system_mail_log`; +CREATE TABLE `system_mail_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint NULL DEFAULT NULL COMMENT '用户编号', + `user_type` tinyint NULL DEFAULT NULL COMMENT '用户类型', + `to_mail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '接收邮箱地址', + `account_id` bigint NOT NULL COMMENT '邮箱账号编号', + `from_mail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '发送邮箱地址', + `template_id` bigint NOT NULL COMMENT '模板编号', + `template_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板编码', + `template_nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '模版发送人名称', + `template_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮件标题', + `template_content` varchar(10240) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮件内容', + `template_params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮件参数', + `send_status` tinyint NOT NULL DEFAULT 0 COMMENT '发送状态', + `send_time` datetime NULL DEFAULT NULL COMMENT '发送时间', + `send_message_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '发送返回的消息 ID', + `send_exception` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '发送异常', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 354 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '邮件日志表'; + +-- ---------------------------- +-- Records of system_mail_log +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_mail_template +-- ---------------------------- +DROP TABLE IF EXISTS `system_mail_template`; +CREATE TABLE `system_mail_template` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板名称', + `code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板编码', + `account_id` bigint NOT NULL COMMENT '发送的邮箱账号编号', + `nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '发送人名称', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板标题', + `content` varchar(10240) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板内容', + `params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '参数数组', + `status` tinyint NOT NULL COMMENT '开启状态', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '邮件模版表'; + +-- ---------------------------- +-- Records of system_mail_template +-- ---------------------------- +BEGIN; +INSERT INTO `system_mail_template` (`id`, `name`, `code`, `account_id`, `nickname`, `title`, `content`, `params`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (13, '后台用户短信登录', 'admin-sms-login', 1, '奥特曼', '你猜我猜', '

您的验证码是{code},名字是{name}

', '[\"code\",\"name\"]', 0, '3', '1', '2021-10-11 08:10:00', '1', '2023-01-26 23:22:05', b'0'); +INSERT INTO `system_mail_template` (`id`, `name`, `code`, `account_id`, `nickname`, `title`, `content`, `params`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (14, '测试模版', 'test_01', 2, '芋艿', '一个标题', '

你是 {key01} 吗?


是的话,赶紧 {key02} 一下!

', '[\"key01\",\"key02\"]', 0, NULL, '1', '2023-01-26 01:27:40', '1', '2023-01-27 10:32:16', b'0'); +INSERT INTO `system_mail_template` (`id`, `name`, `code`, `account_id`, `nickname`, `title`, `content`, `params`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (15, '3', '2', 2, '7', '4', '

45

', '[]', 1, '80', '1', '2023-01-27 15:50:35', '1', '2023-01-27 16:34:49', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_menu +-- ---------------------------- +DROP TABLE IF EXISTS `system_menu`; +CREATE TABLE `system_menu` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '菜单ID', + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '菜单名称', + `permission` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '权限标识', + `type` tinyint NOT NULL COMMENT '菜单类型', + `sort` int NOT NULL DEFAULT 0 COMMENT '显示顺序', + `parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父菜单ID', + `path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '路由地址', + `icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '#' COMMENT '菜单图标', + `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '组件路径', + `component_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '组件名', + `status` tinyint NOT NULL DEFAULT 0 COMMENT '菜单状态', + `visible` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否可见', + `keep_alive` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否缓存', + `always_show` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否总是显示', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2303 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '菜单权限表'; + +-- ---------------------------- +-- Records of system_menu +-- ---------------------------- +BEGIN; +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '系统管理', '', 1, 10, 0, '/system', 'system', NULL, NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, '基础设施', '', 1, 20, 0, '/infra', 'monitor', NULL, NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (5, 'OA 示例', '', 1, 40, 1185, 'oa', 'people', NULL, NULL, 0, b'1', b'1', b'1', 'admin', '2021-09-20 16:26:19', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (100, '用户管理', 'system:user:list', 2, 1, 1, 'user', 'user', 'system/user/index', 'SystemUser', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:31:59', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (101, '角色管理', '', 2, 2, 1, 'role', 'peoples', 'system/role/index', 'SystemRole', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:33:59', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (102, '菜单管理', '', 2, 3, 1, 'menu', 'tree-table', 'system/menu/index', 'SystemMenu', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:34:32', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (103, '部门管理', '', 2, 4, 1, 'dept', 'tree', 'system/dept/index', 'SystemDept', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:35:32', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (104, '岗位管理', '', 2, 5, 1, 'post', 'post', 'system/post/index', 'SystemPost', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:36:21', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (105, '字典管理', '', 2, 6, 1, 'dict', 'dict', 'system/dict/index', 'SystemDictType', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:36:45', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (106, '配置管理', '', 2, 6, 2, 'config', 'edit', 'infra/config/index', 'InfraConfig', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 10:31:17', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (107, '通知公告', '', 2, 8, 1, 'notice', 'message', 'system/notice/index', 'SystemNotice', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:45:06', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (108, '审计日志', '', 1, 9, 1, 'log', 'log', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (109, '令牌管理', '', 2, 2, 1261, 'token', 'online', 'system/oauth2/token/index', 'SystemTokenClient', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:47:41', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (110, '定时任务', '', 2, 12, 2, 'job', 'job', 'infra/job/index', 'InfraJob', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 10:36:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (111, 'MySQL 监控', '', 2, 9, 2, 'druid', 'druid', 'infra/druid/index', 'InfraDruid', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 09:09:30', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (112, 'Java 监控', '', 2, 11, 2, 'admin-server', 'server', 'infra/server/index', 'InfraAdminServer', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 10:34:08', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (113, 'Redis 监控', '', 2, 10, 2, 'redis', 'redis', 'infra/redis/index', 'InfraRedis', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 10:33:30', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (114, '表单构建', 'infra:build:list', 2, 2, 2, 'build', 'build', 'infra/build/index', 'InfraBuild', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 09:06:12', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (115, '代码生成', 'infra:codegen:query', 2, 1, 2, 'codegen', 'code', 'infra/codegen/index', 'InfraCodegen', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 09:02:24', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (116, '系统接口', 'infra:swagger:list', 2, 3, 2, 'swagger', 'swagger', 'infra/swagger/index', 'InfraSwagger', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 09:11:28', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (500, '操作日志', '', 2, 1, 108, 'operate-log', 'form', 'system/operatelog/index', 'SystemOperateLog', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:47:00', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (501, '登录日志', '', 2, 2, 108, 'login-log', 'logininfor', 'system/loginlog/index', 'SystemLoginLog', 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2023-04-08 08:46:18', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1001, '用户查询', 'system:user:query', 3, 1, 100, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1002, '用户新增', 'system:user:create', 3, 2, 100, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1003, '用户修改', 'system:user:update', 3, 3, 100, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1004, '用户删除', 'system:user:delete', 3, 4, 100, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1005, '用户导出', 'system:user:export', 3, 5, 100, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1006, '用户导入', 'system:user:import', 3, 6, 100, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1007, '重置密码', 'system:user:update-password', 3, 7, 100, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1008, '角色查询', 'system:role:query', 3, 1, 101, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1009, '角色新增', 'system:role:create', 3, 2, 101, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1010, '角色修改', 'system:role:update', 3, 3, 101, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1011, '角色删除', 'system:role:delete', 3, 4, 101, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1012, '角色导出', 'system:role:export', 3, 5, 101, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1013, '菜单查询', 'system:menu:query', 3, 1, 102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1014, '菜单新增', 'system:menu:create', 3, 2, 102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1015, '菜单修改', 'system:menu:update', 3, 3, 102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1016, '菜单删除', 'system:menu:delete', 3, 4, 102, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1017, '部门查询', 'system:dept:query', 3, 1, 103, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1018, '部门新增', 'system:dept:create', 3, 2, 103, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1019, '部门修改', 'system:dept:update', 3, 3, 103, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1020, '部门删除', 'system:dept:delete', 3, 4, 103, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1021, '岗位查询', 'system:post:query', 3, 1, 104, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1022, '岗位新增', 'system:post:create', 3, 2, 104, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1023, '岗位修改', 'system:post:update', 3, 3, 104, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1024, '岗位删除', 'system:post:delete', 3, 4, 104, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1025, '岗位导出', 'system:post:export', 3, 5, 104, '', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1026, '字典查询', 'system:dict:query', 3, 1, 105, '#', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1027, '字典新增', 'system:dict:create', 3, 2, 105, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1028, '字典修改', 'system:dict:update', 3, 3, 105, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1029, '字典删除', 'system:dict:delete', 3, 4, 105, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1030, '字典导出', 'system:dict:export', 3, 5, 105, '#', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1031, '配置查询', 'infra:config:query', 3, 1, 106, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1032, '配置新增', 'infra:config:create', 3, 2, 106, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1033, '配置修改', 'infra:config:update', 3, 3, 106, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1034, '配置删除', 'infra:config:delete', 3, 4, 106, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1035, '配置导出', 'infra:config:export', 3, 5, 106, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1036, '公告查询', 'system:notice:query', 3, 1, 107, '#', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1037, '公告新增', 'system:notice:create', 3, 2, 107, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1038, '公告修改', 'system:notice:update', 3, 3, 107, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1039, '公告删除', 'system:notice:delete', 3, 4, 107, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1040, '操作查询', 'system:operate-log:query', 3, 1, 500, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1042, '日志导出', 'system:operate-log:export', 3, 2, 500, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1043, '登录查询', 'system:login-log:query', 3, 1, 501, '#', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1045, '日志导出', 'system:login-log:export', 3, 3, 501, '#', '#', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1046, '令牌列表', 'system:oauth2-token:page', 3, 1, 109, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-05-09 23:54:42', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1048, '令牌删除', 'system:oauth2-token:delete', 3, 2, 109, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-05-09 23:54:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1050, '任务新增', 'infra:job:create', 3, 2, 110, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1051, '任务修改', 'infra:job:update', 3, 3, 110, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1052, '任务删除', 'infra:job:delete', 3, 4, 110, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1053, '状态修改', 'infra:job:update', 3, 5, 110, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1054, '任务导出', 'infra:job:export', 3, 7, 110, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1056, '生成修改', 'infra:codegen:update', 3, 2, 115, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1057, '生成删除', 'infra:codegen:delete', 3, 3, 115, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1058, '导入代码', 'infra:codegen:create', 3, 2, 115, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1059, '预览代码', 'infra:codegen:preview', 3, 4, 115, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1060, '生成代码', 'infra:codegen:download', 3, 5, 115, '', '', '', NULL, 0, b'1', b'1', b'1', 'admin', '2021-01-05 17:03:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1063, '设置角色菜单权限', 'system:permission:assign-role-menu', 3, 6, 101, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-01-06 17:53:44', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1064, '设置角色数据权限', 'system:permission:assign-role-data-scope', 3, 7, 101, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-01-06 17:56:31', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1065, '设置用户角色', 'system:permission:assign-user-role', 3, 8, 101, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-01-07 10:23:28', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1066, '获得 Redis 监控信息', 'infra:redis:get-monitor-info', 3, 1, 113, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-01-26 01:02:31', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1067, '获得 Redis Key 列表', 'infra:redis:get-key-list', 3, 2, 113, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-01-26 01:02:52', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1070, '代码生成示例', 'infra:test-demo:query', 2, 1, 2, 'test-demo', 'validCode', 'infra/testDemo/index', NULL, 0, b'1', b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1071, '测试示例表创建', 'infra:test-demo:create', 3, 1, 1070, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1072, '测试示例表更新', 'infra:test-demo:update', 3, 2, 1070, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1073, '测试示例表删除', 'infra:test-demo:delete', 3, 3, 1070, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1074, '测试示例表导出', 'infra:test-demo:export', 3, 4, 1070, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-06 12:42:49', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1075, '任务触发', 'infra:job:trigger', 3, 8, 110, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-07 13:03:10', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1076, '数据库文档', '', 2, 4, 2, 'db-doc', 'table', 'infra/dbDoc/index', 'InfraDBDoc', 0, b'1', b'1', b'1', '', '2021-02-08 01:41:47', '1', '2023-04-08 09:13:38', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1077, '监控平台', '', 2, 13, 2, 'skywalking', 'eye-open', 'infra/skywalking/index', 'InfraSkyWalking', 0, b'1', b'1', b'1', '', '2021-02-08 20:41:31', '1', '2023-04-08 10:39:06', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1078, '访问日志', '', 2, 1, 1083, 'api-access-log', 'log', 'infra/apiAccessLog/index', 'InfraApiAccessLog', 0, b'1', b'1', b'1', '', '2021-02-26 01:32:59', '1', '2023-04-08 10:31:34', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1082, '日志导出', 'infra:api-access-log:export', 3, 2, 1078, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-26 01:32:59', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1083, 'API 日志', '', 2, 8, 2, 'log', 'log', NULL, NULL, 0, b'1', b'1', b'1', '', '2021-02-26 02:18:24', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1084, '错误日志', 'infra:api-error-log:query', 2, 2, 1083, 'api-error-log', 'log', 'infra/apiErrorLog/index', 'InfraApiErrorLog', 0, b'1', b'1', b'1', '', '2021-02-26 07:53:20', '1', '2023-04-08 10:32:25', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1085, '日志处理', 'infra:api-error-log:update-status', 3, 2, 1084, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-26 07:53:20', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1086, '日志导出', 'infra:api-error-log:export', 3, 3, 1084, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-02-26 07:53:20', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1087, '任务查询', 'infra:job:query', 3, 1, 110, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2021-03-10 01:26:19', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1088, '日志查询', 'infra:api-access-log:query', 3, 1, 1078, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2021-03-10 01:28:04', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1089, '日志查询', 'infra:api-error-log:query', 3, 1, 1084, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2021-03-10 01:29:09', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1090, '文件列表', '', 2, 5, 1243, 'file', 'upload', 'infra/file/index', 'InfraFile', 0, b'1', b'1', b'1', '', '2021-03-12 20:16:20', '1', '2023-04-08 09:21:31', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1091, '文件查询', 'infra:file:query', 3, 1, 1090, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-03-12 20:16:20', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1092, '文件删除', 'infra:file:delete', 3, 4, 1090, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-03-12 20:16:20', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1093, '短信管理', '', 1, 11, 1, 'sms', 'validCode', NULL, NULL, 0, b'1', b'1', b'1', '1', '2021-04-05 01:10:16', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1094, '短信渠道', '', 2, 0, 1093, 'sms-channel', 'phone', 'system/sms/channel/index', 'SystemSmsChannel', 0, b'1', b'1', b'1', '', '2021-04-01 11:07:15', '1', '2023-04-08 08:50:41', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1095, '短信渠道查询', 'system:sms-channel:query', 3, 1, 1094, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1096, '短信渠道创建', 'system:sms-channel:create', 3, 2, 1094, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1097, '短信渠道更新', 'system:sms-channel:update', 3, 3, 1094, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1098, '短信渠道删除', 'system:sms-channel:delete', 3, 4, 1094, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 11:07:15', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1100, '短信模板', '', 2, 1, 1093, 'sms-template', 'phone', 'system/sms/template/index', 'SystemSmsTemplate', 0, b'1', b'1', b'1', '', '2021-04-01 17:35:17', '1', '2023-04-08 08:50:50', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1101, '短信模板查询', 'system:sms-template:query', 3, 1, 1100, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1102, '短信模板创建', 'system:sms-template:create', 3, 2, 1100, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1103, '短信模板更新', 'system:sms-template:update', 3, 3, 1100, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1104, '短信模板删除', 'system:sms-template:delete', 3, 4, 1100, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1105, '短信模板导出', 'system:sms-template:export', 3, 5, 1100, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-01 17:35:17', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1106, '发送测试短信', 'system:sms-template:send-sms', 3, 6, 1100, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2021-04-11 00:26:40', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1107, '短信日志', '', 2, 2, 1093, 'sms-log', 'phone', 'system/sms/log/index', 'SystemSmsLog', 0, b'1', b'1', b'1', '', '2021-04-11 08:37:05', '1', '2023-04-08 08:50:58', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1108, '短信日志查询', 'system:sms-log:query', 3, 1, 1107, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-11 08:37:05', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1109, '短信日志导出', 'system:sms-log:export', 3, 5, 1107, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-11 08:37:05', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1110, '错误码管理', '', 2, 12, 1, 'error-code', 'code', 'system/errorCode/index', 'SystemErrorCode', 0, b'1', b'1', b'1', '', '2021-04-13 21:46:42', '1', '2023-04-08 09:01:15', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1111, '错误码查询', 'system:error-code:query', 3, 1, 1110, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1112, '错误码创建', 'system:error-code:create', 3, 2, 1110, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1113, '错误码更新', 'system:error-code:update', 3, 3, 1110, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1114, '错误码删除', 'system:error-code:delete', 3, 4, 1110, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1115, '错误码导出', 'system:error-code:export', 3, 5, 1110, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-04-13 21:46:42', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1117, '支付管理', '', 1, 30, 0, '/pay', 'money', NULL, NULL, 0, b'1', b'1', b'1', '1', '2021-12-25 16:43:41', '1', '2022-12-10 16:33:19', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1118, '请假查询', '', 2, 0, 5, 'leave', 'user', 'bpm/oa/leave/index', 'BpmOALeave', 0, b'1', b'1', b'1', '', '2021-09-20 08:51:03', '1', '2023-04-08 11:30:40', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1119, '请假申请查询', 'bpm:oa-leave:query', 3, 1, 1118, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-09-20 08:51:03', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1120, '请假申请创建', 'bpm:oa-leave:create', 3, 2, 1118, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-09-20 08:51:03', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1126, '应用信息', '', 2, 1, 1117, 'app', 'table', 'pay/app/index', 'PayApp', 0, b'1', b'1', b'1', '', '2021-11-10 01:13:30', '1', '2023-07-20 12:13:32', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1127, '支付应用信息查询', 'pay:app:query', 3, 1, 1126, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1128, '支付应用信息创建', 'pay:app:create', 3, 2, 1126, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1129, '支付应用信息更新', 'pay:app:update', 3, 3, 1126, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1130, '支付应用信息删除', 'pay:app:delete', 3, 4, 1126, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:31', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1132, '秘钥解析', 'pay:channel:parsing', 3, 6, 1129, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2021-11-08 15:15:47', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1133, '支付商户信息查询', 'pay:merchant:query', 3, 1, 1132, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1134, '支付商户信息创建', 'pay:merchant:create', 3, 2, 1132, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1135, '支付商户信息更新', 'pay:merchant:update', 3, 3, 1132, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1136, '支付商户信息删除', 'pay:merchant:delete', 3, 4, 1132, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1137, '支付商户信息导出', 'pay:merchant:export', 3, 5, 1132, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-11-10 01:13:41', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1138, '租户列表', '', 2, 0, 1224, 'list', 'peoples', 'system/tenant/index', 'SystemTenant', 0, b'1', b'1', b'1', '', '2021-12-14 12:31:43', '1', '2023-04-08 08:29:08', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1139, '租户查询', 'system:tenant:query', 3, 1, 1138, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1140, '租户创建', 'system:tenant:create', 3, 2, 1138, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1141, '租户更新', 'system:tenant:update', 3, 3, 1138, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1142, '租户删除', 'system:tenant:delete', 3, 4, 1138, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1143, '租户导出', 'system:tenant:export', 3, 5, 1138, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-14 12:31:44', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1150, '秘钥解析', '', 3, 6, 1129, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2021-11-08 15:15:47', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1161, '退款订单', '', 2, 3, 1117, 'refund', 'order', 'pay/refund/index', 'PayRefund', 0, b'1', b'1', b'1', '', '2021-12-25 08:29:07', '1', '2023-04-08 10:46:02', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1162, '退款订单查询', 'pay:refund:query', 3, 1, 1161, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1163, '退款订单创建', 'pay:refund:create', 3, 2, 1161, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1164, '退款订单更新', 'pay:refund:update', 3, 3, 1161, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1165, '退款订单删除', 'pay:refund:delete', 3, 4, 1161, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1166, '退款订单导出', 'pay:refund:export', 3, 5, 1161, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:29:07', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1173, '支付订单', '', 2, 2, 1117, 'order', 'pay', 'pay/order/index', 'PayOrder', 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '1', '2023-04-08 10:43:37', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1174, '支付订单查询', 'pay:order:query', 3, 1, 1173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1175, '支付订单创建', 'pay:order:create', 3, 2, 1173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1176, '支付订单更新', 'pay:order:update', 3, 3, 1173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1177, '支付订单删除', 'pay:order:delete', 3, 4, 1173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1178, '支付订单导出', 'pay:order:export', 3, 5, 1173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-25 08:49:43', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1185, '工作流程', '', 1, 50, 0, '/bpm', 'tool', NULL, NULL, 0, b'1', b'1', b'1', '1', '2021-12-30 20:26:36', '103', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1186, '流程管理', '', 1, 10, 1185, 'manager', 'nested', NULL, NULL, 0, b'1', b'1', b'1', '1', '2021-12-30 20:28:30', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1187, '流程表单', '', 2, 0, 1186, 'form', 'form', 'bpm/form/index', 'BpmForm', 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2023-04-08 10:50:37', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1188, '表单查询', 'bpm:form:query', 3, 1, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1189, '表单创建', 'bpm:form:create', 3, 2, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1190, '表单更新', 'bpm:form:update', 3, 3, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1191, '表单删除', 'bpm:form:delete', 3, 4, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1192, '表单导出', 'bpm:form:export', 3, 5, 1187, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2021-12-30 12:38:22', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1193, '流程模型', '', 2, 5, 1186, 'model', 'guide', 'bpm/model/index', 'BpmModel', 0, b'1', b'1', b'1', '1', '2021-12-31 23:24:58', '1', '2023-04-08 10:53:38', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1194, '模型查询', 'bpm:model:query', 3, 1, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:01:10', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1195, '模型创建', 'bpm:model:create', 3, 2, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:01:24', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1196, '模型导入', 'bpm:model:import', 3, 3, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:01:35', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1197, '模型更新', 'bpm:model:update', 3, 4, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:02:28', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1198, '模型删除', 'bpm:model:delete', 3, 5, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:02:43', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1199, '模型发布', 'bpm:model:deploy', 3, 6, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-03 19:03:24', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1200, '任务管理', '', 1, 20, 1185, 'task', 'cascader', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-01-07 23:51:48', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1201, '我的流程', '', 2, 0, 1200, 'my', 'people', 'bpm/processInstance/index', 'BpmProcessInstance', 0, b'1', b'1', b'1', '', '2022-01-07 15:53:44', '1', '2023-04-08 11:16:55', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1202, '流程实例的查询', 'bpm:process-instance:query', 3, 1, 1201, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-07 15:53:44', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1207, '待办任务', '', 2, 10, 1200, 'todo', 'eye-open', 'bpm/task/todo/index', 'BpmTodoTask', 0, b'1', b'1', b'1', '1', '2022-01-08 10:33:37', '1', '2023-04-08 11:29:08', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1208, '已办任务', '', 2, 20, 1200, 'done', 'eye', 'bpm/task/done/index', 'BpmDoneTask', 0, b'1', b'1', b'1', '1', '2022-01-08 10:34:13', '1', '2023-04-08 11:29:00', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1209, '用户分组', '', 2, 2, 1186, 'user-group', 'people', 'bpm/group/index', 'BpmUserGroup', 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '1', '2023-04-08 10:51:06', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1210, '用户组查询', 'bpm:user-group:query', 3, 1, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1211, '用户组创建', 'bpm:user-group:create', 3, 2, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1212, '用户组更新', 'bpm:user-group:update', 3, 3, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1213, '用户组删除', 'bpm:user-group:delete', 3, 4, 1209, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-01-14 02:14:20', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1215, '流程定义查询', 'bpm:process-definition:query', 3, 10, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:21:43', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1216, '流程任务分配规则查询', 'bpm:task-assign-rule:query', 3, 20, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:26:53', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1217, '流程任务分配规则创建', 'bpm:task-assign-rule:create', 3, 21, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:28:15', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1218, '流程任务分配规则更新', 'bpm:task-assign-rule:update', 3, 22, 1193, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:28:41', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1219, '流程实例的创建', 'bpm:process-instance:create', 3, 2, 1201, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:36:15', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1220, '流程实例的取消', 'bpm:process-instance:cancel', 3, 3, 1201, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:36:33', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1221, '流程任务的查询', 'bpm:task:query', 3, 1, 1207, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:38:52', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1222, '流程任务的更新', 'bpm:task:update', 3, 2, 1207, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-01-23 00:39:24', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1224, '租户管理', '', 2, 0, 1, 'tenant', 'peoples', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-02-20 01:41:13', '1', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1225, '租户套餐', '', 2, 0, 1224, 'package', 'eye', 'system/tenantPackage/index', 'SystemTenantPackage', 0, b'1', b'1', b'1', '', '2022-02-19 17:44:06', '1', '2023-04-08 08:17:08', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1226, '租户套餐查询', 'system:tenant-package:query', 3, 1, 1225, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1227, '租户套餐创建', 'system:tenant-package:create', 3, 2, 1225, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1228, '租户套餐更新', 'system:tenant-package:update', 3, 3, 1225, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1229, '租户套餐删除', 'system:tenant-package:delete', 3, 4, 1225, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-02-19 17:44:06', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1237, '文件配置', '', 2, 0, 1243, 'file-config', 'config', 'infra/fileConfig/index', 'InfraFileConfig', 0, b'1', b'1', b'1', '', '2022-03-15 14:35:28', '1', '2023-04-08 09:16:05', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1238, '文件配置查询', 'infra:file-config:query', 3, 1, 1237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1239, '文件配置创建', 'infra:file-config:create', 3, 2, 1237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1240, '文件配置更新', 'infra:file-config:update', 3, 3, 1237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1241, '文件配置删除', 'infra:file-config:delete', 3, 4, 1237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1242, '文件配置导出', 'infra:file-config:export', 3, 5, 1237, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-03-15 14:35:28', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1243, '文件管理', '', 2, 5, 2, 'file', 'download', NULL, '', 0, b'1', b'1', b'1', '1', '2022-03-16 23:47:40', '1', '2023-02-10 13:47:46', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1247, '敏感词管理', '', 2, 13, 1, 'sensitive-word', 'education', 'system/sensitiveWord/index', 'SystemSensitiveWord', 0, b'1', b'1', b'1', '', '2022-04-07 16:55:03', '1', '2023-04-08 09:00:40', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1248, '敏感词查询', 'system:sensitive-word:query', 3, 1, 1247, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1249, '敏感词创建', 'system:sensitive-word:create', 3, 2, 1247, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1250, '敏感词更新', 'system:sensitive-word:update', 3, 3, 1247, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1251, '敏感词删除', 'system:sensitive-word:delete', 3, 4, 1247, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1252, '敏感词导出', 'system:sensitive-word:export', 3, 5, 1247, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-07 16:55:03', '', '2022-04-20 17:03:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1254, '作者动态', '', 1, 0, 0, 'https://www.iocoder.cn', 'people', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-04-23 01:03:15', '1', '2023-02-10 00:06:52', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1255, '数据源配置', '', 2, 1, 2, 'data-source-config', 'rate', 'infra/dataSourceConfig/index', 'InfraDataSourceConfig', 0, b'1', b'1', b'1', '', '2022-04-27 14:37:32', '1', '2023-04-08 09:05:21', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1256, '数据源配置查询', 'infra:data-source-config:query', 3, 1, 1255, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1257, '数据源配置创建', 'infra:data-source-config:create', 3, 2, 1255, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1258, '数据源配置更新', 'infra:data-source-config:update', 3, 3, 1255, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1259, '数据源配置删除', 'infra:data-source-config:delete', 3, 4, 1255, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1260, '数据源配置导出', 'infra:data-source-config:export', 3, 5, 1255, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-04-27 14:37:32', '', '2022-04-27 14:37:32', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1261, 'OAuth 2.0', '', 1, 10, 1, 'oauth2', 'people', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-05-09 23:38:17', '1', '2022-05-11 23:51:46', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1263, '应用管理', '', 2, 0, 1261, 'oauth2/application', 'tool', 'system/oauth2/client/index', 'SystemOAuth2Client', 0, b'1', b'1', b'1', '', '2022-05-10 16:26:33', '1', '2023-04-08 08:47:31', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1264, '客户端查询', 'system:oauth2-client:query', 3, 1, 1263, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:06', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1265, '客户端创建', 'system:oauth2-client:create', 3, 2, 1263, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:23', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1266, '客户端更新', 'system:oauth2-client:update', 3, 3, 1263, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:28', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1267, '客户端删除', 'system:oauth2-client:delete', 3, 4, 1263, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:33', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1281, '报表管理', '', 1, 40, 0, '/report', 'chart', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-07-10 20:22:15', '1', '2023-02-07 17:16:40', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1282, '报表设计器', '', 2, 1, 1281, 'jimu-report', 'example', 'report/jmreport/index', 'GoView', 0, b'1', b'1', b'1', '1', '2022-07-10 20:26:36', '1', '2023-04-08 10:47:59', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2000, '商品中心', '', 1, 60, 0, '/product', 'merchant', NULL, NULL, 0, b'1', b'1', b'1', '', '2022-07-29 15:53:53', '1', '2022-07-30 22:26:19', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2002, '商品分类', '', 2, 2, 2000, 'category', 'dict', 'mall/product/category/index', 'ProductCategory', 0, b'1', b'1', b'1', '', '2022-07-29 15:53:53', '1', '2023-04-08 11:34:59', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2003, '分类查询', 'product:category:query', 3, 1, 2002, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2004, '分类创建', 'product:category:create', 3, 2, 2002, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2005, '分类更新', 'product:category:update', 3, 3, 2002, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2006, '分类删除', 'product:category:delete', 3, 4, 2002, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-29 15:53:53', '', '2022-07-29 15:53:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2008, '商品品牌', '', 2, 3, 2000, 'brand', 'dashboard', 'mall/product/brand/index', 'ProductBrand', 0, b'1', b'1', b'1', '', '2022-07-30 13:52:44', '1', '2023-04-08 11:35:29', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2009, '品牌查询', 'product:brand:query', 3, 1, 2008, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2010, '品牌创建', 'product:brand:create', 3, 2, 2008, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2011, '品牌更新', 'product:brand:update', 3, 3, 2008, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2012, '品牌删除', 'product:brand:delete', 3, 4, 2008, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 13:52:44', '', '2022-07-30 13:52:44', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2014, '商品列表', '', 2, 1, 2000, 'spu', 'list', 'mall/product/spu/index', 'ProductSpu', 0, b'1', b'1', b'1', '', '2022-07-30 14:22:58', '1', '2023-04-08 11:34:47', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2015, '商品查询', 'product:spu:query', 3, 1, 2014, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2016, '商品创建', 'product:spu:create', 3, 2, 2014, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2017, '商品更新', 'product:spu:update', 3, 3, 2014, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2018, '商品删除', 'product:spu:delete', 3, 4, 2014, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2019, '商品属性', '', 2, 3, 2000, 'property', 'eye', 'mall/product/property/index', 'ProductProperty', 0, b'1', b'1', b'1', '', '2022-08-01 14:55:35', '1', '2023-04-08 11:35:15', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2020, '规格查询', 'product:property:query', 3, 1, 2019, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-12-12 20:26:24', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2021, '规格创建', 'product:property:create', 3, 2, 2019, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-12-12 20:26:30', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2022, '规格更新', 'product:property:update', 3, 3, 2019, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-12-12 20:26:33', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2023, '规格删除', 'product:property:delete', 3, 4, 2019, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:55:35', '', '2022-12-12 20:26:37', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2025, 'Banner管理', '', 2, 100, 2000, 'banner', '', 'mall/market/banner/index', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:56:14', '1', '2022-10-24 22:29:39', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2026, 'Banner查询', 'market:banner:query', 3, 1, 2025, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2027, 'Banner创建', 'market:banner:create', 3, 2, 2025, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2028, 'Banner更新', 'market:banner:update', 3, 3, 2025, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2029, 'Banner删除', 'market:banner:delete', 3, 4, 2025, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-08-01 14:56:14', '', '2022-08-01 14:56:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2030, '营销中心', '', 1, 70, 0, '/promotion', 'rate', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-10-31 21:25:09', '1', '2022-10-31 21:25:09', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2032, '优惠劵', '', 2, 2, 2030, 'coupon-template', 'textarea', 'mall/promotion/couponTemplate/index', 'PromotionCouponTemplate', 0, b'1', b'1', b'1', '', '2022-10-31 22:27:14', '1', '2023-04-08 11:44:23', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2033, '优惠劵模板查询', 'promotion:coupon-template:query', 3, 1, 2032, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-10-31 22:27:14', '', '2022-10-31 22:27:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2034, '优惠劵模板创建', 'promotion:coupon-template:create', 3, 2, 2032, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-10-31 22:27:14', '', '2022-10-31 22:27:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2035, '优惠劵模板更新', 'promotion:coupon-template:update', 3, 3, 2032, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-10-31 22:27:14', '', '2022-10-31 22:27:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2036, '优惠劵模板删除', 'promotion:coupon-template:delete', 3, 4, 2032, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-10-31 22:27:14', '', '2022-10-31 22:27:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2038, '会员优惠劵', '', 2, 2, 2030, 'coupon', '', 'mall/promotion/coupon/index', 'PromotionCoupon', 0, b'0', b'1', b'1', '', '2022-11-03 23:21:31', '1', '2023-04-08 11:44:17', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2039, '优惠劵查询', 'promotion:coupon:query', 3, 1, 2038, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-03 23:21:31', '', '2022-11-03 23:21:31', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2040, '优惠劵删除', 'promotion:coupon:delete', 3, 4, 2038, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-03 23:21:31', '', '2022-11-03 23:21:31', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2041, '满减送活动', '', 2, 10, 2030, 'reward-activity', 'radio', 'mall/promotion/rewardActivity/index', 'PromotionRewardActivity', 0, b'1', b'1', b'1', '', '2022-11-04 23:47:49', '1', '2023-04-08 11:45:35', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2042, '满减送活动查询', 'promotion:reward-activity:query', 3, 1, 2041, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-04 23:47:49', '', '2022-11-04 23:47:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2043, '满减送活动创建', 'promotion:reward-activity:create', 3, 2, 2041, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-04 23:47:49', '', '2022-11-04 23:47:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2044, '满减送活动更新', 'promotion:reward-activity:update', 3, 3, 2041, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-04 23:47:50', '', '2022-11-04 23:47:50', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2045, '满减送活动删除', 'promotion:reward-activity:delete', 3, 4, 2041, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-04 23:47:50', '', '2022-11-04 23:47:50', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2046, '满减送活动关闭', 'promotion:reward-activity:close', 3, 5, 2041, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-11-05 10:42:53', '1', '2022-11-05 10:42:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2047, '限时折扣活动', '', 2, 7, 2030, 'discount-activity', 'time', 'mall/promotion/discountActivity/index', 'PromotionDiscountActivity', 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '1', '2023-04-08 11:45:44', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2048, '限时折扣活动查询', 'promotion:discount-activity:query', 3, 1, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '', '2022-11-05 17:12:15', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2049, '限时折扣活动创建', 'promotion:discount-activity:create', 3, 2, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:15', '', '2022-11-05 17:12:15', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2050, '限时折扣活动更新', 'promotion:discount-activity:update', 3, 3, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2051, '限时折扣活动删除', 'promotion:discount-activity:delete', 3, 4, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2052, '限时折扣活动关闭', 'promotion:discount-activity:close', 3, 5, 2047, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-05 17:12:16', '', '2022-11-05 17:12:16', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2059, '秒杀商品', '', 2, 2, 2209, 'activity', 'ep:basketball', 'mall/promotion/seckill/activity/index', 'PromotionSeckillActivity', 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '1', '2023-06-24 18:57:25', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2060, '秒杀活动查询', 'promotion:seckill-activity:query', 3, 1, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2061, '秒杀活动创建', 'promotion:seckill-activity:create', 3, 2, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2062, '秒杀活动更新', 'promotion:seckill-activity:update', 3, 3, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2063, '秒杀活动删除', 'promotion:seckill-activity:delete', 3, 4, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2064, '秒杀活动导出', 'promotion:seckill-activity:export', 3, 5, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-06 22:24:49', '', '2022-11-06 22:24:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2066, '秒杀时段', '', 2, 1, 2209, 'config', 'ep:baseball', 'mall/promotion/seckill/config/index', 'PromotionSeckillConfig', 0, b'1', b'1', b'1', '', '2022-11-15 19:46:50', '1', '2023-06-24 18:57:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2067, '秒杀时段查询', 'promotion:seckill-config:query', 3, 1, 2066, '', '', '', '', 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '1', '2023-06-24 17:50:25', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2068, '秒杀时段创建', 'promotion:seckill-config:create', 3, 2, 2066, '', '', '', '', 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '1', '2023-06-24 17:48:39', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2069, '秒杀时段更新', 'promotion:seckill-config:update', 3, 3, 2066, '', '', '', '', 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '1', '2023-06-24 17:50:29', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2070, '秒杀时段删除', 'promotion:seckill-config:delete', 3, 4, 2066, '', '', '', '', 0, b'1', b'1', b'1', '', '2022-11-15 19:46:51', '1', '2023-06-24 17:50:32', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2072, '订单中心', '', 1, 65, 0, '/trade', 'order', NULL, NULL, 0, b'1', b'1', b'1', '1', '2022-11-19 18:57:19', '1', '2022-12-10 16:32:57', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2073, '售后退款', '', 2, 1, 2072, 'trade/after-sale', 'education', 'mall/trade/afterSale/index', 'TradeAfterSale', 0, b'1', b'1', b'1', '', '2022-11-19 20:15:32', '1', '2023-04-08 11:43:19', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2074, '售后查询', 'trade:after-sale:query', 3, 1, 2073, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-11-19 20:15:33', '1', '2022-12-10 21:04:29', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2075, '秒杀活动关闭', 'promotion:sekill-activity:close', 3, 6, 2059, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2022-11-28 20:20:15', '1', '2022-11-28 20:20:15', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2076, '订单列表', '', 2, 0, 2072, 'trade/order', 'list', 'mall/trade/order/index', 'TradeOrder', 0, b'1', b'1', b'1', '1', '2022-12-10 21:05:44', '1', '2023-04-08 11:42:23', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2083, '地区管理', '', 2, 14, 1, 'area', 'row', 'system/area/index', 'SystemArea', 0, b'1', b'1', b'1', '1', '2022-12-23 17:35:05', '1', '2023-04-08 09:01:37', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2084, '公众号管理', '', 1, 100, 0, '/mp', 'wechat', NULL, NULL, 0, b'1', b'1', b'1', '1', '2023-01-01 20:11:04', '1', '2023-01-15 11:28:57', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2085, '账号管理', '', 2, 1, 2084, 'account', 'phone', 'mp/account/index', 'MpAccount', 0, b'1', b'1', b'1', '1', '2023-01-01 20:13:31', '1', '2023-02-09 23:56:39', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2086, '新增账号', 'mp:account:create', 3, 1, 2085, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-01 20:21:40', '1', '2023-01-07 17:32:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2087, '修改账号', 'mp:account:update', 3, 2, 2085, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-07 17:32:46', '1', '2023-01-07 17:32:46', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2088, '查询账号', 'mp:account:query', 3, 0, 2085, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-07 17:33:07', '1', '2023-01-07 17:33:07', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2089, '删除账号', 'mp:account:delete', 3, 3, 2085, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-07 17:33:21', '1', '2023-01-07 17:33:21', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2090, '生成二维码', 'mp:account:qr-code', 3, 4, 2085, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-07 17:33:58', '1', '2023-01-07 17:33:58', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2091, '清空 API 配额', 'mp:account:clear-quota', 3, 5, 2085, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-07 18:20:32', '1', '2023-01-07 18:20:59', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2092, '数据统计', 'mp:statistics:query', 2, 2, 2084, 'statistics', 'chart', 'mp/statistics/index', 'MpStatistics', 0, b'1', b'1', b'1', '1', '2023-01-07 20:17:36', '1', '2023-02-09 23:58:34', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2093, '标签管理', '', 2, 3, 2084, 'tag', 'rate', 'mp/tag/index', 'MpTag', 0, b'1', b'1', b'1', '1', '2023-01-08 11:37:32', '1', '2023-02-09 23:58:47', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2094, '查询标签', 'mp:tag:query', 3, 0, 2093, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 11:59:03', '1', '2023-01-08 11:59:03', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2095, '新增标签', 'mp:tag:create', 3, 1, 2093, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 11:59:23', '1', '2023-01-08 11:59:23', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2096, '修改标签', 'mp:tag:update', 3, 2, 2093, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 11:59:41', '1', '2023-01-08 11:59:41', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2097, '删除标签', 'mp:tag:delete', 3, 3, 2093, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 12:00:04', '1', '2023-01-08 12:00:13', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2098, '同步标签', 'mp:tag:sync', 3, 4, 2093, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 12:00:29', '1', '2023-01-08 12:00:29', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2099, '粉丝管理', '', 2, 4, 2084, 'user', 'people', 'mp/user/index', 'MpUser', 0, b'1', b'1', b'1', '1', '2023-01-08 16:51:20', '1', '2023-02-09 23:58:21', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2100, '查询粉丝', 'mp:user:query', 3, 0, 2099, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 17:16:59', '1', '2023-01-08 17:17:23', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2101, '修改粉丝', 'mp:user:update', 3, 1, 2099, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 17:17:11', '1', '2023-01-08 17:17:11', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2102, '同步粉丝', 'mp:user:sync', 3, 2, 2099, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-08 17:17:40', '1', '2023-01-08 17:17:40', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2103, '消息管理', '', 2, 5, 2084, 'message', 'email', 'mp/message/index', 'MpMessage', 0, b'1', b'1', b'1', '1', '2023-01-08 18:44:19', '1', '2023-02-09 23:58:02', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2104, '图文发表记录', '', 2, 10, 2084, 'free-publish', 'education', 'mp/freePublish/index', 'MpFreePublish', 0, b'1', b'1', b'1', '1', '2023-01-13 00:30:50', '1', '2023-02-09 23:57:22', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2105, '查询发布列表', 'mp:free-publish:query', 3, 1, 2104, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-13 07:19:17', '1', '2023-01-13 07:19:17', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2106, '发布草稿', 'mp:free-publish:submit', 3, 2, 2104, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-13 07:19:46', '1', '2023-01-13 07:19:46', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2107, '删除发布记录', 'mp:free-publish:delete', 3, 3, 2104, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-13 07:20:01', '1', '2023-01-13 07:20:01', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2108, '图文草稿箱', '', 2, 9, 2084, 'draft', 'edit', 'mp/draft/index', 'MpDraft', 0, b'1', b'1', b'1', '1', '2023-01-13 07:40:21', '1', '2023-02-09 23:56:58', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2109, '新建草稿', 'mp:draft:create', 3, 1, 2108, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-13 23:15:30', '1', '2023-01-13 23:15:44', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2110, '修改草稿', 'mp:draft:update', 3, 2, 2108, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 10:08:47', '1', '2023-01-14 10:08:47', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2111, '查询草稿', 'mp:draft:query', 3, 0, 2108, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 10:09:01', '1', '2023-01-14 10:09:01', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2112, '删除草稿', 'mp:draft:delete', 3, 3, 2108, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 10:09:19', '1', '2023-01-14 10:09:19', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2113, '素材管理', '', 2, 8, 2084, 'material', 'skill', 'mp/material/index', 'MpMaterial', 0, b'1', b'1', b'1', '1', '2023-01-14 14:12:07', '1', '2023-02-09 23:57:36', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2114, '上传临时素材', 'mp:material:upload-temporary', 3, 1, 2113, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 15:33:55', '1', '2023-01-14 15:33:55', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2115, '上传永久素材', 'mp:material:upload-permanent', 3, 2, 2113, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 15:34:14', '1', '2023-01-14 15:34:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2116, '删除素材', 'mp:material:delete', 3, 3, 2113, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 15:35:37', '1', '2023-01-14 15:35:37', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2117, '上传图文图片', 'mp:material:upload-news-image', 3, 4, 2113, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 15:36:31', '1', '2023-01-14 15:36:31', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2118, '查询素材', 'mp:material:query', 3, 5, 2113, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-14 15:39:22', '1', '2023-01-14 15:39:22', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2119, '菜单管理', '', 2, 6, 2084, 'menu', 'button', 'mp/menu/index', 'MpMenu', 0, b'1', b'1', b'1', '1', '2023-01-14 17:43:54', '1', '2023-02-09 23:57:50', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2120, '自动回复', '', 2, 7, 2084, 'auto-reply', 'eye', 'mp/autoReply/index', 'MpAutoReply', 0, b'1', b'1', b'1', '1', '2023-01-15 22:13:09', '1', '2023-02-09 23:56:28', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2121, '查询回复', 'mp:auto-reply:query', 3, 0, 2120, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-16 22:28:41', '1', '2023-01-16 22:28:41', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2122, '新增回复', 'mp:auto-reply:create', 3, 1, 2120, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-16 22:28:54', '1', '2023-01-16 22:28:54', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2123, '修改回复', 'mp:auto-reply:update', 3, 2, 2120, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-16 22:29:05', '1', '2023-01-16 22:29:05', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2124, '删除回复', 'mp:auto-reply:delete', 3, 3, 2120, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-16 22:29:34', '1', '2023-01-16 22:29:34', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2125, '查询菜单', 'mp:menu:query', 3, 0, 2119, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-17 23:05:41', '1', '2023-01-17 23:05:41', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2126, '保存菜单', 'mp:menu:save', 3, 1, 2119, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-17 23:06:01', '1', '2023-01-17 23:06:01', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2127, '删除菜单', 'mp:menu:delete', 3, 2, 2119, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-17 23:06:16', '1', '2023-01-17 23:06:16', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2128, '查询消息', 'mp:message:query', 3, 0, 2103, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-17 23:07:14', '1', '2023-01-17 23:07:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2129, '发送消息', 'mp:message:send', 3, 1, 2103, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-17 23:07:26', '1', '2023-01-17 23:07:26', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2130, '邮箱管理', '', 2, 11, 1, 'mail', 'email', NULL, NULL, 0, b'1', b'1', b'1', '1', '2023-01-25 17:27:44', '1', '2023-01-25 17:27:44', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2131, '邮箱账号', '', 2, 0, 2130, 'mail-account', 'user', 'system/mail/account/index', 'SystemMailAccount', 0, b'1', b'1', b'1', '', '2023-01-25 09:33:48', '1', '2023-04-08 08:53:43', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2132, '账号查询', 'system:mail-account:query', 3, 1, 2131, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 09:33:48', '', '2023-01-25 09:33:48', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2133, '账号创建', 'system:mail-account:create', 3, 2, 2131, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 09:33:48', '', '2023-01-25 09:33:48', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2134, '账号更新', 'system:mail-account:update', 3, 3, 2131, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 09:33:48', '', '2023-01-25 09:33:48', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2135, '账号删除', 'system:mail-account:delete', 3, 4, 2131, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 09:33:48', '', '2023-01-25 09:33:48', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2136, '邮件模版', '', 2, 0, 2130, 'mail-template', 'education', 'system/mail/template/index', 'SystemMailTemplate', 0, b'1', b'1', b'1', '', '2023-01-25 12:05:31', '1', '2023-04-08 08:53:34', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2137, '模版查询', 'system:mail-template:query', 3, 1, 2136, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 12:05:31', '', '2023-01-25 12:05:31', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2138, '模版创建', 'system:mail-template:create', 3, 2, 2136, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 12:05:31', '', '2023-01-25 12:05:31', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2139, '模版更新', 'system:mail-template:update', 3, 3, 2136, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 12:05:31', '', '2023-01-25 12:05:31', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2140, '模版删除', 'system:mail-template:delete', 3, 4, 2136, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-25 12:05:31', '', '2023-01-25 12:05:31', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2141, '邮件记录', '', 2, 0, 2130, 'mail-log', 'log', 'system/mail/log/index', 'SystemMailLog', 0, b'1', b'1', b'1', '', '2023-01-26 02:16:50', '1', '2023-04-08 08:53:49', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2142, '日志查询', 'system:mail-log:query', 3, 1, 2141, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-26 02:16:50', '', '2023-01-26 02:16:50', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2143, '发送测试邮件', 'system:mail-template:send-mail', 3, 5, 2136, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-26 23:29:15', '1', '2023-01-26 23:29:15', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2144, '站内信管理', '', 1, 11, 1, 'notify', 'message', NULL, NULL, 0, b'1', b'1', b'1', '1', '2023-01-28 10:25:18', '1', '2023-01-28 10:25:46', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2145, '模板管理', '', 2, 0, 2144, 'notify-template', 'education', 'system/notify/template/index', 'SystemNotifyTemplate', 0, b'1', b'1', b'1', '', '2023-01-28 02:26:42', '1', '2023-04-08 08:54:39', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2146, '站内信模板查询', 'system:notify-template:query', 3, 1, 2145, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-28 02:26:42', '', '2023-01-28 02:26:42', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2147, '站内信模板创建', 'system:notify-template:create', 3, 2, 2145, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-28 02:26:42', '', '2023-01-28 02:26:42', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2148, '站内信模板更新', 'system:notify-template:update', 3, 3, 2145, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-28 02:26:42', '', '2023-01-28 02:26:42', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2149, '站内信模板删除', 'system:notify-template:delete', 3, 4, 2145, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-28 02:26:42', '', '2023-01-28 02:26:42', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2150, '发送测试站内信', 'system:notify-template:send-notify', 3, 5, 2145, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-01-28 10:54:43', '1', '2023-01-28 10:54:43', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2151, '消息记录', '', 2, 0, 2144, 'notify-message', 'edit', 'system/notify/message/index', 'SystemNotifyMessage', 0, b'1', b'1', b'1', '', '2023-01-28 04:28:22', '1', '2023-04-08 08:54:11', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2152, '站内信消息查询', 'system:notify-message:query', 3, 1, 2151, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-01-28 04:28:22', '', '2023-01-28 04:28:22', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2153, '大屏设计器', '', 2, 2, 1281, 'go-view', 'dashboard', 'report/goview/index', 'JimuReport', 0, b'1', b'1', b'1', '1', '2023-02-07 00:03:19', '1', '2023-04-08 10:48:15', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2154, '创建项目', 'report:go-view-project:create', 3, 1, 2153, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-02-07 19:25:14', '1', '2023-02-07 19:25:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2155, '更新项目', 'report:go-view-project:delete', 3, 2, 2153, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-02-07 19:25:34', '1', '2023-02-07 19:25:34', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2156, '查询项目', 'report:go-view-project:query', 3, 0, 2153, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-02-07 19:25:53', '1', '2023-02-07 19:25:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2157, '使用 SQL 查询数据', 'report:go-view-data:get-by-sql', 3, 3, 2153, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-02-07 19:26:15', '1', '2023-02-07 19:26:15', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2158, '使用 HTTP 查询数据', 'report:go-view-data:get-by-http', 3, 4, 2153, '', '', '', NULL, 0, b'1', b'1', b'1', '1', '2023-02-07 19:26:35', '1', '2023-02-07 19:26:35', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2159, 'Boot 开发文档', '', 1, 1, 0, 'https://doc.iocoder.cn/', 'education', NULL, NULL, 0, b'1', b'1', b'1', '1', '2023-02-10 22:46:28', '1', '2023-02-10 22:46:28', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2160, 'Cloud 开发文档', '', 1, 2, 0, 'https://cloud.iocoder.cn', 'documentation', NULL, NULL, 0, b'1', b'1', b'1', '1', '2023-02-10 22:47:07', '1', '2023-02-10 22:47:07', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2161, '接入示例', '', 2, 99, 1117, 'demo-order', 'drag', 'pay/demo/index', NULL, 0, b'1', b'1', b'1', '', '2023-02-11 14:21:42', '1', '2023-02-11 22:26:35', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2162, '商品导出', 'product:spu:export', 3, 5, 2014, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2022-07-30 14:22:58', '', '2022-07-30 14:22:58', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2164, '配送管理', '', 1, 2, 2072, 'delivery', '', '', '', 0, b'1', b'1', b'1', '1', '2023-05-18 09:18:02', '1', '2023-05-24 23:24:13', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2165, '快递发货', '', 1, 0, 2164, 'express', '', '', '', 0, b'1', b'1', b'1', '1', '2023-05-18 09:22:06', '1', '2023-05-18 09:22:06', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2166, '门店自提', '', 1, 1, 2164, 'pick-up-store', '', '', '', 0, b'1', b'1', b'1', '1', '2023-05-18 09:23:14', '1', '2023-05-18 09:23:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2167, '快递公司', '', 2, 0, 2165, 'express', '', 'mall/trade/delivery/express/index', 'Express', 0, b'1', b'1', b'1', '1', '2023-05-18 09:27:21', '1', '2023-05-18 22:11:14', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2168, '快递公司查询', 'trade:delivery:express:query', 3, 1, 2167, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-18 09:37:53', '', '2023-05-18 09:37:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2169, '快递公司创建', 'trade:delivery:express:create', 3, 2, 2167, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-18 09:37:53', '', '2023-05-18 09:37:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2170, '快递公司更新', 'trade:delivery:express:update', 3, 3, 2167, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-18 09:37:53', '', '2023-05-18 09:37:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2171, '快递公司删除', 'trade:delivery:express:delete', 3, 4, 2167, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-18 09:37:53', '', '2023-05-18 09:37:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2172, '快递公司导出', 'trade:delivery:express:export', 3, 5, 2167, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-18 09:37:53', '', '2023-05-18 09:37:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2173, '运费模版', 'trade:delivery:express-template:query', 2, 1, 2165, 'express-template', '', 'mall/trade/delivery/expressTemplate/index', 'ExpressTemplate', 0, b'1', b'1', b'1', '1', '2023-05-20 06:48:10', '1', '2023-05-20 06:48:29', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2174, '快递运费模板查询', 'trade:delivery:express-template:query', 3, 1, 2173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-20 06:49:53', '', '2023-05-20 06:49:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2175, '快递运费模板创建', 'trade:delivery:express-template:create', 3, 2, 2173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-20 06:49:53', '', '2023-05-20 06:49:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2176, '快递运费模板更新', 'trade:delivery:express-template:update', 3, 3, 2173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-20 06:49:53', '', '2023-05-20 06:49:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2177, '快递运费模板删除', 'trade:delivery:express-template:delete', 3, 4, 2173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-20 06:49:53', '', '2023-05-20 06:49:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2178, '快递运费模板导出', 'trade:delivery:express-template:export', 3, 5, 2173, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-20 06:49:53', '', '2023-05-20 06:49:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2179, '门店管理', '', 2, 1, 2166, 'pick-up-store', '', 'mall/trade/delivery/pickUpStore/index', 'PickUpStore', 0, b'1', b'1', b'1', '1', '2023-05-25 10:50:00', '1', '2023-05-25 10:50:00', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2180, '自提门店查询', 'trade:delivery:pick-up-store:query', 3, 1, 2179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-25 10:53:29', '', '2023-05-25 10:53:29', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2181, '自提门店创建', 'trade:delivery:pick-up-store:create', 3, 2, 2179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-25 10:53:29', '', '2023-05-25 10:53:29', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2182, '自提门店更新', 'trade:delivery:pick-up-store:update', 3, 3, 2179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-25 10:53:29', '', '2023-05-25 10:53:29', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2183, '自提门店删除', 'trade:delivery:pick-up-store:delete', 3, 4, 2179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-25 10:53:29', '', '2023-05-25 10:53:29', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2184, '自提门店导出', 'trade:delivery:pick-up-store:export', 3, 5, 2179, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-05-25 10:53:29', '', '2023-05-25 10:53:29', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2209, '秒杀活动', '', 2, 3, 2030, 'seckill', 'ep:place', '', '', 0, b'1', b'1', b'1', '1', '2023-06-24 17:39:13', '1', '2023-06-24 18:55:15', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2262, '会员中心', '', 1, 55, 0, '/member', 'date-range', NULL, NULL, 0, b'1', b'1', b'1', '1', '2023-06-10 00:42:03', '1', '2023-06-28 22:52:34', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2275, '积分配置', '', 2, 0, 2299, 'config', '', 'member/point/config/index', 'PointConfig', 0, b'1', b'1', b'1', '', '2023-06-10 02:07:44', '1', '2023-06-27 22:50:59', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2276, '积分设置查询', 'point:config:query', 3, 1, 2275, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-10 02:07:44', '', '2023-06-10 02:07:44', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2277, '积分设置创建', 'point:config:save', 3, 2, 2275, '', '', '', '', 0, b'1', b'1', b'1', '', '2023-06-10 02:07:44', '1', '2023-06-27 20:32:31', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2281, '签到配置', '', 2, 2, 2300, 'sign-in-config', '', 'member/signin/config/index', 'SignInConfig', 0, b'1', b'1', b'1', '', '2023-06-10 03:26:12', '1', '2023-07-02 15:04:15', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2282, '积分签到规则查询', 'point:sign-in-config:query', 3, 1, 2281, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-10 03:26:12', '', '2023-06-10 03:26:12', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2283, '积分签到规则创建', 'point:sign-in-config:create', 3, 2, 2281, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-10 03:26:12', '', '2023-06-10 03:26:12', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2284, '积分签到规则更新', 'point:sign-in-config:update', 3, 3, 2281, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-10 03:26:12', '', '2023-06-10 03:26:12', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2285, '积分签到规则删除', 'point:sign-in-config:delete', 3, 4, 2281, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-10 03:26:12', '', '2023-06-10 03:26:12', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2287, '积分记录', '', 2, 1, 2299, 'record', '', 'member/point/record/index', 'PointRecord', 0, b'1', b'1', b'1', '', '2023-06-10 04:18:50', '1', '2023-06-27 22:51:07', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2288, '用户积分记录查询', 'point:record:query', 3, 1, 2287, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-10 04:18:50', '', '2023-06-10 04:18:50', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2293, '签到记录', '', 2, 3, 2300, 'sign-in-record', '', 'member/signin/record/index', 'SignInRecord', 0, b'1', b'1', b'1', '', '2023-06-10 04:48:22', '1', '2023-07-02 15:04:10', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2294, '用户签到积分查询', 'point:sign-in-record:query', 3, 1, 2293, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-10 04:48:22', '', '2023-06-10 04:48:22', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2297, '用户签到积分删除', 'point:sign-in-record:delete', 3, 4, 2293, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-06-10 04:48:22', '', '2023-06-10 04:48:22', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2299, '会员积分', '', 1, 1, 2262, 'point', '', '', '', 0, b'1', b'1', b'1', '1', '2023-06-27 22:48:51', '1', '2023-06-27 22:48:51', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2300, '会员签到', '', 1, 2, 2262, 'signin', '', '', '', 0, b'1', b'1', b'1', '1', '2023-06-27 22:49:53', '1', '2023-06-27 22:49:53', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2301, '回调通知', '', 2, 4, 1117, 'notify', 'example', 'pay/notify/index', 'PayNotify', 0, b'1', b'1', b'1', '', '2023-07-20 04:41:32', '1', '2023-07-20 13:45:08', b'0'); +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2302, '支付通知查询', 'pay:notify:query', 3, 1, 2301, '', '', '', NULL, 0, b'1', b'1', b'1', '', '2023-07-20 04:41:32', '', '2023-07-20 04:41:32', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_notice +-- ---------------------------- +DROP TABLE IF EXISTS `system_notice`; +CREATE TABLE `system_notice` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '公告ID', + `title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公告标题', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公告内容', + `type` tinyint NOT NULL COMMENT '公告类型(1通知 2公告)', + `status` tinyint NOT NULL DEFAULT 0 COMMENT '公告状态(0正常 1关闭)', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '通知公告表'; + +-- ---------------------------- +-- Records of system_notice +-- ---------------------------- +BEGIN; +INSERT INTO `system_notice` (`id`, `title`, `content`, `type`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, '芋道的公众', '

新版本内容133

', 1, 0, 'admin', '2021-01-05 17:03:48', '1', '2022-05-04 21:00:20', b'0', 1); +INSERT INTO `system_notice` (`id`, `title`, `content`, `type`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, '维护通知:2018-07-01 若依系统凌晨维护', '

维护内容

', 2, 1, 'admin', '2021-01-05 17:03:48', '1', '2022-05-11 12:34:24', b'0', 1); +INSERT INTO `system_notice` (`id`, `title`, `content`, `type`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, '我是测试标题', '

哈哈哈哈123

', 1, 0, '110', '2022-02-22 01:01:25', '110', '2022-02-22 01:01:46', b'0', 121); +COMMIT; + +-- ---------------------------- +-- Table structure for system_notify_message +-- ---------------------------- +DROP TABLE IF EXISTS `system_notify_message`; +CREATE TABLE `system_notify_message` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID', + `user_id` bigint NOT NULL COMMENT '用户id', + `user_type` tinyint NOT NULL COMMENT '用户类型', + `template_id` bigint NOT NULL COMMENT '模版编号', + `template_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板编码', + `template_nickname` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模版发送人名称', + `template_content` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模版内容', + `template_type` int NOT NULL COMMENT '模版类型', + `template_params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模版参数', + `read_status` bit(1) NOT NULL COMMENT '是否已读', + `read_time` datetime NULL DEFAULT NULL COMMENT '阅读时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '站内信消息表'; + +-- ---------------------------- +-- Records of system_notify_message +-- ---------------------------- +BEGIN; +INSERT INTO `system_notify_message` (`id`, `user_id`, `user_type`, `template_id`, `template_code`, `template_nickname`, `template_content`, `template_type`, `template_params`, `read_status`, `read_time`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, 1, 2, 1, 'test', '123', '我是 1,我开始 2 了', 1, '{\"name\":\"1\",\"what\":\"2\"}', b'1', '2023-02-10 00:47:04', '1', '2023-01-28 11:44:08', '1', '2023-02-10 00:47:04', b'0', 1); +INSERT INTO `system_notify_message` (`id`, `user_id`, `user_type`, `template_id`, `template_code`, `template_nickname`, `template_content`, `template_type`, `template_params`, `read_status`, `read_time`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (3, 1, 2, 1, 'test', '123', '我是 1,我开始 2 了', 1, '{\"name\":\"1\",\"what\":\"2\"}', b'1', '2023-02-10 00:47:04', '1', '2023-01-28 11:45:04', '1', '2023-02-10 00:47:04', b'0', 1); +INSERT INTO `system_notify_message` (`id`, `user_id`, `user_type`, `template_id`, `template_code`, `template_nickname`, `template_content`, `template_type`, `template_params`, `read_status`, `read_time`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, 103, 2, 2, 'register', '系统消息', '你好,欢迎 哈哈 加入大家庭!', 2, '{\"name\":\"哈哈\"}', b'0', NULL, '1', '2023-01-28 21:02:20', '1', '2023-01-28 21:02:20', b'0', 1); +INSERT INTO `system_notify_message` (`id`, `user_id`, `user_type`, `template_id`, `template_code`, `template_nickname`, `template_content`, `template_type`, `template_params`, `read_status`, `read_time`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (5, 1, 2, 1, 'test', '123', '我是 芋艿,我开始 写代码 了', 1, '{\"name\":\"芋艿\",\"what\":\"写代码\"}', b'1', '2023-02-10 00:47:04', '1', '2023-01-28 22:21:42', '1', '2023-02-10 00:47:04', b'0', 1); +INSERT INTO `system_notify_message` (`id`, `user_id`, `user_type`, `template_id`, `template_code`, `template_nickname`, `template_content`, `template_type`, `template_params`, `read_status`, `read_time`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (6, 1, 2, 1, 'test', '123', '我是 芋艿,我开始 写代码 了', 1, '{\"name\":\"芋艿\",\"what\":\"写代码\"}', b'1', '2023-01-29 10:52:06', '1', '2023-01-28 22:22:07', '1', '2023-01-29 10:52:06', b'0', 1); +INSERT INTO `system_notify_message` (`id`, `user_id`, `user_type`, `template_id`, `template_code`, `template_nickname`, `template_content`, `template_type`, `template_params`, `read_status`, `read_time`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (7, 1, 2, 1, 'test', '123', '我是 2,我开始 3 了', 1, '{\"name\":\"2\",\"what\":\"3\"}', b'1', '2023-01-29 10:52:06', '1', '2023-01-28 23:45:21', '1', '2023-01-29 10:52:06', b'0', 1); +INSERT INTO `system_notify_message` (`id`, `user_id`, `user_type`, `template_id`, `template_code`, `template_nickname`, `template_content`, `template_type`, `template_params`, `read_status`, `read_time`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (8, 1, 2, 2, 'register', '系统消息', '你好,欢迎 123 加入大家庭!', 2, '{\"name\":\"123\"}', b'1', '2023-01-29 10:52:06', '1', '2023-01-28 23:50:21', '1', '2023-01-29 10:52:06', b'0', 1); +COMMIT; + +-- ---------------------------- +-- Table structure for system_notify_template +-- ---------------------------- +DROP TABLE IF EXISTS `system_notify_template`; +CREATE TABLE `system_notify_template` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', + `name` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板名称', + `code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模版编码', + `nickname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '发送人名称', + `content` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模版内容', + `type` tinyint NOT NULL COMMENT '类型', + `params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '参数数组', + `status` tinyint NOT NULL COMMENT '状态', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '站内信模板表'; + +-- ---------------------------- +-- Records of system_notify_template +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_oauth2_access_token +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_access_token`; +CREATE TABLE `system_oauth2_access_token` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint NOT NULL COMMENT '用户编号', + `user_type` tinyint NOT NULL COMMENT '用户类型', + `access_token` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '访问令牌', + `refresh_token` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '刷新令牌', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端编号', + `scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '授权范围', + `expires_time` datetime NOT NULL COMMENT '过期时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2231 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 访问令牌'; + +-- ---------------------------- +-- Records of system_oauth2_access_token +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_oauth2_approve +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_approve`; +CREATE TABLE `system_oauth2_approve` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint NOT NULL COMMENT '用户编号', + `user_type` tinyint NOT NULL COMMENT '用户类型', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端编号', + `scope` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '授权范围', + `approved` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否接受', + `expires_time` datetime NOT NULL COMMENT '过期时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 82 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 批准表'; + +-- ---------------------------- +-- Records of system_oauth2_approve +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_oauth2_client +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_client`; +CREATE TABLE `system_oauth2_client` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端编号', + `secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端密钥', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '应用名', + `logo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '应用图标', + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '应用描述', + `status` tinyint NOT NULL COMMENT '状态', + `access_token_validity_seconds` int NOT NULL COMMENT '访问令牌的有效期', + `refresh_token_validity_seconds` int NOT NULL COMMENT '刷新令牌的有效期', + `redirect_uris` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '可重定向的 URI 地址', + `authorized_grant_types` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '授权类型', + `scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '授权范围', + `auto_approve_scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '自动通过的授权范围', + `authorities` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '权限', + `resource_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '资源', + `additional_information` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '附加信息', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 43 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 客户端表'; + +-- ---------------------------- +-- Records of system_oauth2_client +-- ---------------------------- +BEGIN; +INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, 'default', 'admin123', '芋道源码', 'http://test.yunxi.iocoder.cn/a5e2e244368878a366b516805a4aabf1.png', '我是描述', 0, 1800, 43200, '[\"https://www.iocoder.cn\",\"https://doc.iocoder.cn\"]', '[\"password\",\"authorization_code\",\"implicit\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[\"user.read\",\"user.write\"]', '[]', '{}', '1', '2022-05-11 21:47:12', '1', '2022-07-05 16:23:52', b'0'); +INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (40, 'test', 'test2', 'biubiu', 'http://test.yunxi.iocoder.cn/277a899d573723f1fcdfb57340f00379.png', NULL, 0, 1800, 43200, '[\"https://www.iocoder.cn\"]', '[\"password\",\"authorization_code\",\"implicit\"]', '[\"user_info\",\"projects\"]', '[\"user_info\"]', '[]', '[]', '{}', '1', '2022-05-12 00:28:20', '1', '2022-06-19 00:26:13', b'0'); +INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (41, 'yunxi-sso-demo-by-code', 'test', '基于授权码模式,如何实现 SSO 单点登录?', 'http://test.yunxi.iocoder.cn/fe4ed36596adad5120036ef61a6d0153654544d44af8dd4ad3ffe8f759933d6f.png', NULL, 0, 1800, 43200, '[\"http://127.0.0.1:18080\"]', '[\"authorization_code\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[]', '[]', NULL, '1', '2022-09-29 13:28:31', '1', '2022-09-29 13:28:31', b'0'); +INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (42, 'yunxi-sso-demo-by-password', 'test', '基于密码模式,如何实现 SSO 单点登录?', 'http://test.yunxi.iocoder.cn/604bdc695e13b3b22745be704d1f2aa8ee05c5f26f9fead6d1ca49005afbc857.jpeg', NULL, 0, 1800, 43200, '[\"http://127.0.0.1:18080\"]', '[\"password\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[]', '[]', NULL, '1', '2022-10-04 17:40:16', '1', '2022-10-04 20:31:21', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_oauth2_code +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_code`; +CREATE TABLE `system_oauth2_code` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint NOT NULL COMMENT '用户编号', + `user_type` tinyint NOT NULL COMMENT '用户类型', + `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '授权码', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端编号', + `scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '授权范围', + `expires_time` datetime NOT NULL COMMENT '过期时间', + `redirect_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '可重定向的 URI 地址', + `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '状态', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 147 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 授权码表'; + +-- ---------------------------- +-- Records of system_oauth2_code +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_oauth2_refresh_token +-- ---------------------------- +DROP TABLE IF EXISTS `system_oauth2_refresh_token`; +CREATE TABLE `system_oauth2_refresh_token` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint NOT NULL COMMENT '用户编号', + `refresh_token` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '刷新令牌', + `user_type` tinyint NOT NULL COMMENT '用户类型', + `client_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端编号', + `scopes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '授权范围', + `expires_time` datetime NOT NULL COMMENT '过期时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 804 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 刷新令牌'; + +-- ---------------------------- +-- Records of system_oauth2_refresh_token +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_operate_log +-- ---------------------------- +DROP TABLE IF EXISTS `system_operate_log`; +CREATE TABLE `system_operate_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志主键', + `trace_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '链路追踪编号', + `user_id` bigint NOT NULL COMMENT '用户编号', + `user_type` tinyint NOT NULL DEFAULT 0 COMMENT '用户类型', + `module` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模块标题', + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作名', + `type` bigint NOT NULL DEFAULT 0 COMMENT '操作分类', + `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '操作内容', + `exts` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '拓展字段', + `request_method` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '请求方法名', + `request_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '请求地址', + `user_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '用户 IP', + `user_agent` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '浏览器 UA', + `java_method` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'Java 方法名', + `java_method_args` varchar(8000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT 'Java 方法的参数', + `start_time` datetime NOT NULL COMMENT '操作时间', + `duration` int NOT NULL COMMENT '执行时长', + `result_code` int NOT NULL DEFAULT 0 COMMENT '结果码', + `result_msg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '结果提示', + `result_data` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '结果数据', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 7134 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '操作日志记录'; + +-- ---------------------------- +-- Records of system_operate_log +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_post +-- ---------------------------- +DROP TABLE IF EXISTS `system_post`; +CREATE TABLE `system_post` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '岗位ID', + `code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '岗位编码', + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '岗位名称', + `sort` int NOT NULL COMMENT '显示顺序', + `status` tinyint NOT NULL COMMENT '状态(0正常 1停用)', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '岗位信息表'; + +-- ---------------------------- +-- Records of system_post +-- ---------------------------- +BEGIN; +INSERT INTO `system_post` (`id`, `code`, `name`, `sort`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 'ceo', '董事长', 1, 0, '', 'admin', '2021-01-06 17:03:48', '1', '2023-02-11 15:19:04', b'0', 1); +INSERT INTO `system_post` (`id`, `code`, `name`, `sort`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, 'se', '项目经理', 2, 0, '', 'admin', '2021-01-05 17:03:48', '1', '2021-12-12 10:47:47', b'0', 1); +INSERT INTO `system_post` (`id`, `code`, `name`, `sort`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, 'user', '普通员工', 4, 0, '111', 'admin', '2021-01-05 17:03:48', '1', '2023-02-11 15:19:00', b'0', 1); +COMMIT; + +-- ---------------------------- +-- Table structure for system_role +-- ---------------------------- +DROP TABLE IF EXISTS `system_role`; +CREATE TABLE `system_role` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '角色ID', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色名称', + `code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '角色权限字符串', + `sort` int NOT NULL COMMENT '显示顺序', + `data_scope` tinyint NOT NULL DEFAULT 1 COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)', + `data_scope_dept_ids` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '数据范围(指定部门数组)', + `status` tinyint NOT NULL COMMENT '角色状态(0正常 1停用)', + `type` tinyint NOT NULL COMMENT '角色类型', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 139 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色信息表'; + +-- ---------------------------- +-- Records of system_role +-- ---------------------------- +BEGIN; +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, '超级管理员', 'super_admin', 1, 1, '', 0, 1, '超级管理员', 'admin', '2021-01-05 17:03:48', '', '2022-02-22 05:08:21', b'0', 1); +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, '普通角色', 'common', 2, 2, '', 0, 1, '普通角色', 'admin', '2021-01-05 17:03:48', '', '2022-02-22 05:08:20', b'0', 1); +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (101, '测试账号', 'test', 0, 1, '[]', 0, 2, '132', '', '2021-01-06 13:49:35', '1', '2022-09-25 12:09:38', b'0', 1); +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (109, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-02-22 00:56:14', '1', '2022-02-22 00:56:14', b'0', 121); +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (110, '测试角色', 'test', 0, 1, '[]', 0, 2, '嘿嘿', '110', '2022-02-23 00:14:34', '110', '2022-02-23 13:14:58', b'0', 121); +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (111, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (113, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (114, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (115, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (116, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (118, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (136, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (137, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (138, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +COMMIT; + +-- ---------------------------- +-- Table structure for system_role_menu +-- ---------------------------- +DROP TABLE IF EXISTS `system_role_menu`; +CREATE TABLE `system_role_menu` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增编号', + `role_id` bigint NOT NULL COMMENT '角色ID', + `menu_id` bigint NOT NULL COMMENT '菜单ID', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2873 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '角色和菜单关联表'; + +-- ---------------------------- +-- Records of system_role_menu +-- ---------------------------- +BEGIN; +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (263, 109, 1, '1', '2022-02-22 00:56:14', '1', '2022-02-22 00:56:14', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (434, 2, 1, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (454, 2, 1093, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (455, 2, 1094, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (460, 2, 1100, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (467, 2, 1107, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (470, 2, 1110, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (476, 2, 1117, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (477, 2, 100, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (478, 2, 101, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (479, 2, 102, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (480, 2, 1126, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (481, 2, 103, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (483, 2, 104, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (485, 2, 105, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (488, 2, 107, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (490, 2, 108, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (492, 2, 109, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (498, 2, 1138, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (523, 2, 1224, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (524, 2, 1225, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (541, 2, 500, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (543, 2, 501, '1', '2022-02-22 13:09:12', '1', '2022-02-22 13:09:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (675, 2, 2, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (689, 2, 1077, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (690, 2, 1078, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (692, 2, 1083, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (693, 2, 1084, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (699, 2, 1090, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (703, 2, 106, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (704, 2, 110, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (705, 2, 111, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (706, 2, 112, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (707, 2, 113, '1', '2022-02-22 13:16:57', '1', '2022-02-22 13:16:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1296, 110, 1, '110', '2022-02-23 00:23:55', '110', '2022-02-23 00:23:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1489, 1, 1, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1490, 1, 2, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1494, 1, 1077, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1495, 1, 1078, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1496, 1, 1083, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1497, 1, 1084, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1498, 1, 1090, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1499, 1, 1093, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1500, 1, 1094, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1501, 1, 1100, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1502, 1, 1107, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1503, 1, 1110, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1505, 1, 1117, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1506, 1, 100, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1507, 1, 101, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1508, 1, 102, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1509, 1, 1126, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1510, 1, 103, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1511, 1, 104, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1512, 1, 105, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1513, 1, 106, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1514, 1, 107, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1515, 1, 108, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1516, 1, 109, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1517, 1, 110, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1518, 1, 111, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1519, 1, 112, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1520, 1, 113, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1522, 1, 1138, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1525, 1, 1224, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1526, 1, 1225, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1527, 1, 500, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1528, 1, 501, '1', '2022-02-23 20:03:57', '1', '2022-02-23 20:03:57', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1578, 111, 1, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1604, 101, 1216, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1605, 101, 1217, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1606, 101, 1218, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1607, 101, 1219, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1608, 101, 1220, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1609, 101, 1221, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1610, 101, 5, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1611, 101, 1222, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1612, 101, 1118, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1613, 101, 1119, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1614, 101, 1120, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1615, 101, 1185, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1616, 101, 1186, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1617, 101, 1187, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1618, 101, 1188, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1619, 101, 1189, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1620, 101, 1190, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1621, 101, 1191, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1622, 101, 1192, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1623, 101, 1193, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1624, 101, 1194, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1625, 101, 1195, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1626, 101, 1196, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1627, 101, 1197, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1628, 101, 1198, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1629, 101, 1199, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1630, 101, 1200, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1631, 101, 1201, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1632, 101, 1202, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1633, 101, 1207, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1634, 101, 1208, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1635, 101, 1209, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1636, 101, 1210, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1637, 101, 1211, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1638, 101, 1212, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1639, 101, 1213, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1640, 101, 1215, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1641, 101, 2, '1', '2022-04-01 22:21:24', '1', '2022-04-01 22:21:24', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1642, 101, 1031, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1643, 101, 1032, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1644, 101, 1033, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1645, 101, 1034, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1646, 101, 1035, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1647, 101, 1050, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1648, 101, 1051, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1649, 101, 1052, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1650, 101, 1053, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1651, 101, 1054, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1652, 101, 1056, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1653, 101, 1057, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1654, 101, 1058, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1655, 101, 1059, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1656, 101, 1060, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1657, 101, 1066, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1658, 101, 1067, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1659, 101, 1070, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1660, 101, 1071, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1661, 101, 1072, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1662, 101, 1073, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1663, 101, 1074, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1664, 101, 1075, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1665, 101, 1076, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1666, 101, 1077, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1667, 101, 1078, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1668, 101, 1082, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1669, 101, 1083, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1670, 101, 1084, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1671, 101, 1085, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1672, 101, 1086, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1673, 101, 1087, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1674, 101, 1088, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1675, 101, 1089, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1679, 101, 1237, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1680, 101, 1238, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1681, 101, 1239, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1682, 101, 1240, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1683, 101, 1241, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1684, 101, 1242, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1685, 101, 1243, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1687, 101, 106, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1688, 101, 110, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1689, 101, 111, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1690, 101, 112, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1691, 101, 113, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1692, 101, 114, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1693, 101, 115, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1694, 101, 116, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1712, 113, 1024, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1713, 113, 1025, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1714, 113, 1, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1715, 113, 102, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1716, 113, 103, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1717, 113, 104, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1718, 113, 1013, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1719, 113, 1014, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1720, 113, 1015, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1721, 113, 1016, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1722, 113, 1017, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1723, 113, 1018, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1724, 113, 1019, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1725, 113, 1020, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1726, 113, 1021, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1727, 113, 1022, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1728, 113, 1023, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1729, 109, 100, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1730, 109, 101, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1731, 109, 1063, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1732, 109, 1064, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1733, 109, 1001, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1734, 109, 1065, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1735, 109, 1002, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1736, 109, 1003, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1737, 109, 1004, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1738, 109, 1005, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1739, 109, 1006, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1740, 109, 1007, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1741, 109, 1008, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1742, 109, 1009, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1743, 109, 1010, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1744, 109, 1011, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1745, 109, 1012, '1', '2022-09-21 22:08:51', '1', '2022-09-21 22:08:51', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1746, 111, 100, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1747, 111, 101, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1748, 111, 1063, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1749, 111, 1064, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1750, 111, 1001, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1751, 111, 1065, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1752, 111, 1002, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1753, 111, 1003, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1754, 111, 1004, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1755, 111, 1005, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1756, 111, 1006, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1757, 111, 1007, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1758, 111, 1008, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1759, 111, 1009, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1760, 111, 1010, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1761, 111, 1011, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1762, 111, 1012, '1', '2022-09-21 22:08:52', '1', '2022-09-21 22:08:52', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1763, 109, 100, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1764, 109, 101, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1765, 109, 1063, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1766, 109, 1064, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1767, 109, 1001, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1768, 109, 1065, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1769, 109, 1002, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1770, 109, 1003, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1771, 109, 1004, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1772, 109, 1005, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1773, 109, 1006, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1774, 109, 1007, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1775, 109, 1008, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1776, 109, 1009, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1777, 109, 1010, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1778, 109, 1011, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1779, 109, 1012, '1', '2022-09-21 22:08:53', '1', '2022-09-21 22:08:53', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1780, 111, 100, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1781, 111, 101, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1782, 111, 1063, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1783, 111, 1064, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1784, 111, 1001, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1785, 111, 1065, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1786, 111, 1002, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1787, 111, 1003, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1788, 111, 1004, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1789, 111, 1005, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1790, 111, 1006, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1791, 111, 1007, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1792, 111, 1008, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1793, 111, 1009, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1794, 111, 1010, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1795, 111, 1011, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1796, 111, 1012, '1', '2022-09-21 22:08:54', '1', '2022-09-21 22:08:54', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1797, 109, 100, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1798, 109, 101, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1799, 109, 1063, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1800, 109, 1064, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1801, 109, 1001, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1802, 109, 1065, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1803, 109, 1002, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1804, 109, 1003, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1805, 109, 1004, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1806, 109, 1005, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1807, 109, 1006, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1808, 109, 1007, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1809, 109, 1008, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1810, 109, 1009, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1811, 109, 1010, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1812, 109, 1011, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1813, 109, 1012, '1', '2022-09-21 22:08:55', '1', '2022-09-21 22:08:55', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1814, 111, 100, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1815, 111, 101, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1816, 111, 1063, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1817, 111, 1064, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1818, 111, 1001, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1819, 111, 1065, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1820, 111, 1002, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1821, 111, 1003, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1822, 111, 1004, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1823, 111, 1005, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1824, 111, 1006, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1825, 111, 1007, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1826, 111, 1008, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1827, 111, 1009, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1828, 111, 1010, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1829, 111, 1011, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1830, 111, 1012, '1', '2022-09-21 22:08:56', '1', '2022-09-21 22:08:56', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1831, 109, 103, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1832, 109, 1017, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1833, 109, 1018, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1834, 109, 1019, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1835, 109, 1020, '1', '2022-09-21 22:43:23', '1', '2022-09-21 22:43:23', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1836, 111, 103, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1837, 111, 1017, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1838, 111, 1018, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1839, 111, 1019, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1840, 111, 1020, '1', '2022-09-21 22:43:24', '1', '2022-09-21 22:43:24', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1841, 109, 1036, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1842, 109, 1037, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1843, 109, 1038, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1844, 109, 1039, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1845, 109, 107, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 121); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1846, 111, 1036, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1847, 111, 1037, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1848, 111, 1038, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1849, 111, 1039, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1850, 111, 107, '1', '2022-09-21 22:48:13', '1', '2022-09-21 22:48:13', b'0', 122); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1851, 114, 1, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1852, 114, 1036, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1853, 114, 1037, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1854, 114, 1038, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1855, 114, 1039, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1856, 114, 100, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1857, 114, 101, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1858, 114, 1063, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1859, 114, 103, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1860, 114, 1064, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1861, 114, 1001, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1862, 114, 1065, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1863, 114, 1002, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1864, 114, 1003, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1865, 114, 107, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1866, 114, 1004, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1867, 114, 1005, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1868, 114, 1006, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1869, 114, 1007, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1870, 114, 1008, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1871, 114, 1009, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1872, 114, 1010, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1873, 114, 1011, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1874, 114, 1012, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1875, 114, 1017, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1876, 114, 1018, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1877, 114, 1019, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1878, 114, 1020, '1', '2022-12-30 11:32:03', '1', '2022-12-30 11:32:03', b'0', 125); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1879, 115, 1, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1880, 115, 1036, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1881, 115, 1037, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1882, 115, 1038, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1883, 115, 1039, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1884, 115, 100, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1885, 115, 101, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1886, 115, 1063, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1887, 115, 103, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1888, 115, 1064, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1889, 115, 1001, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1890, 115, 1065, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1891, 115, 1002, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1892, 115, 1003, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1893, 115, 107, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1894, 115, 1004, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1895, 115, 1005, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1896, 115, 1006, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1897, 115, 1007, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1898, 115, 1008, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1899, 115, 1009, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1900, 115, 1010, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1901, 115, 1011, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1902, 115, 1012, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1903, 115, 1017, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1904, 115, 1018, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1905, 115, 1019, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1906, 115, 1020, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1907, 116, 1, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1908, 116, 1036, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1909, 116, 1037, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1910, 116, 1038, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1911, 116, 1039, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1912, 116, 100, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1913, 116, 101, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1914, 116, 1063, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1915, 116, 103, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1916, 116, 1064, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1917, 116, 1001, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1918, 116, 1065, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1919, 116, 1002, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1920, 116, 1003, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1921, 116, 107, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1922, 116, 1004, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1923, 116, 1005, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1924, 116, 1006, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1925, 116, 1007, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1926, 116, 1008, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1927, 116, 1009, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1928, 116, 1010, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1929, 116, 1011, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1930, 116, 1012, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1931, 116, 1017, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1932, 116, 1018, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1933, 116, 1019, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1934, 116, 1020, '1', '2022-12-30 11:33:48', '1', '2022-12-30 11:33:48', b'0', 127); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1963, 118, 1, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1964, 118, 1036, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1965, 118, 1037, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1966, 118, 1038, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1967, 118, 1039, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1968, 118, 100, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1969, 118, 101, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1970, 118, 1063, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1971, 118, 103, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1972, 118, 1064, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1973, 118, 1001, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1974, 118, 1065, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1975, 118, 1002, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1976, 118, 1003, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1977, 118, 107, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1978, 118, 1004, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1979, 118, 1005, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1980, 118, 1006, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1981, 118, 1007, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1982, 118, 1008, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1983, 118, 1009, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1984, 118, 1010, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1985, 118, 1011, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1986, 118, 1012, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1987, 118, 1017, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1988, 118, 1018, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1989, 118, 1019, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1990, 118, 1020, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1991, 2, 1024, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1992, 2, 1025, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1993, 2, 1026, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1994, 2, 1027, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1995, 2, 1028, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1996, 2, 1029, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1997, 2, 1030, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1998, 2, 1031, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1999, 2, 1032, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2000, 2, 1033, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2001, 2, 1034, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2002, 2, 1035, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2003, 2, 1036, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2004, 2, 1037, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2005, 2, 1038, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2006, 2, 1039, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2007, 2, 1040, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2008, 2, 1042, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2009, 2, 1043, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2010, 2, 1045, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2011, 2, 1046, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2012, 2, 1048, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2013, 2, 1050, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2014, 2, 1051, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2015, 2, 1052, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2016, 2, 1053, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2017, 2, 1054, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2018, 2, 1056, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2019, 2, 1057, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2020, 2, 1058, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2021, 2, 2083, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2022, 2, 1059, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2023, 2, 1060, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2024, 2, 1063, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2025, 2, 1064, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2026, 2, 1065, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2027, 2, 1066, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2028, 2, 1067, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2029, 2, 1070, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2030, 2, 1071, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2031, 2, 1072, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2032, 2, 1073, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2033, 2, 1074, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2034, 2, 1075, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2035, 2, 1076, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2036, 2, 1082, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2037, 2, 1085, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2038, 2, 1086, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2039, 2, 1087, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2040, 2, 1088, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2041, 2, 1089, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2042, 2, 1091, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2043, 2, 1092, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2044, 2, 1095, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2045, 2, 1096, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2046, 2, 1097, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2047, 2, 1098, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2048, 2, 1101, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2049, 2, 1102, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2050, 2, 1103, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2051, 2, 1104, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2052, 2, 1105, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2053, 2, 1106, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2054, 2, 1108, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2055, 2, 1109, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2056, 2, 1111, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2057, 2, 1112, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2058, 2, 1113, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2059, 2, 1114, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2060, 2, 1115, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2061, 2, 1127, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2062, 2, 1128, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2063, 2, 1129, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2064, 2, 1130, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2066, 2, 1132, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2067, 2, 1133, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2068, 2, 1134, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2069, 2, 1135, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2070, 2, 1136, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2071, 2, 1137, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2072, 2, 114, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2073, 2, 1139, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2074, 2, 115, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2075, 2, 1140, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2076, 2, 116, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2077, 2, 1141, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2078, 2, 1142, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2079, 2, 1143, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2080, 2, 1150, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2081, 2, 1161, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2082, 2, 1162, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2083, 2, 1163, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2084, 2, 1164, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2085, 2, 1165, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2086, 2, 1166, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2087, 2, 1173, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2088, 2, 1174, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2089, 2, 1175, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2090, 2, 1176, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2091, 2, 1177, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2092, 2, 1178, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2099, 2, 1226, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2100, 2, 1227, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2101, 2, 1228, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2102, 2, 1229, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2103, 2, 1237, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2104, 2, 1238, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2105, 2, 1239, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2106, 2, 1240, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2107, 2, 1241, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2108, 2, 1242, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2109, 2, 1243, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2110, 2, 1247, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2111, 2, 1248, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2112, 2, 1249, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2113, 2, 1250, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2114, 2, 1251, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2115, 2, 1252, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2116, 2, 1254, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2117, 2, 1255, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2118, 2, 1256, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2119, 2, 1257, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2120, 2, 1258, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2121, 2, 1259, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2122, 2, 1260, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2123, 2, 1261, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2124, 2, 1263, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2125, 2, 1264, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2126, 2, 1265, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2127, 2, 1266, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2128, 2, 1267, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2129, 2, 1001, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2130, 2, 1002, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2131, 2, 1003, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2132, 2, 1004, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2133, 2, 1005, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2134, 2, 1006, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2135, 2, 1007, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2136, 2, 1008, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2137, 2, 1009, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2138, 2, 1010, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2139, 2, 1011, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2140, 2, 1012, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2141, 2, 1013, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2142, 2, 1014, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2143, 2, 1015, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2144, 2, 1016, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2145, 2, 1017, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2146, 2, 1018, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2147, 2, 1019, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2148, 2, 1020, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2149, 2, 1021, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2150, 2, 1022, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2151, 2, 1023, '1', '2023-01-25 08:42:52', '1', '2023-01-25 08:42:52', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2152, 2, 1281, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2153, 2, 1282, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2154, 2, 2000, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2155, 2, 2002, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2156, 2, 2003, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2157, 2, 2004, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2158, 2, 2005, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2159, 2, 2006, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2160, 2, 2008, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2161, 2, 2009, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2162, 2, 2010, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2163, 2, 2011, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2164, 2, 2012, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2170, 2, 2019, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2171, 2, 2020, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2172, 2, 2021, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2173, 2, 2022, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2174, 2, 2023, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2175, 2, 2025, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2177, 2, 2027, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2178, 2, 2028, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2179, 2, 2029, '1', '2023-01-25 08:42:58', '1', '2023-01-25 08:42:58', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2180, 2, 2014, '1', '2023-01-25 08:43:12', '1', '2023-01-25 08:43:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2181, 2, 2015, '1', '2023-01-25 08:43:12', '1', '2023-01-25 08:43:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2182, 2, 2016, '1', '2023-01-25 08:43:12', '1', '2023-01-25 08:43:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2183, 2, 2017, '1', '2023-01-25 08:43:12', '1', '2023-01-25 08:43:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2184, 2, 2018, '1', '2023-01-25 08:43:12', '1', '2023-01-25 08:43:12', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2188, 101, 1024, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2189, 101, 1, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2190, 101, 1025, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2191, 101, 1026, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2192, 101, 1027, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2193, 101, 1028, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2194, 101, 1029, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2195, 101, 1030, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2196, 101, 1036, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2197, 101, 1037, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2198, 101, 1038, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2199, 101, 1039, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2200, 101, 1040, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2201, 101, 1042, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2202, 101, 1043, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2203, 101, 1045, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2204, 101, 1046, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2205, 101, 1048, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2206, 101, 2083, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2207, 101, 1063, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2208, 101, 1064, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2209, 101, 1065, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2210, 101, 1093, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2211, 101, 1094, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2212, 101, 1095, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2213, 101, 1096, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2214, 101, 1097, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2215, 101, 1098, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2216, 101, 1100, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2217, 101, 1101, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2218, 101, 1102, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2219, 101, 1103, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2220, 101, 1104, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2221, 101, 1105, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2222, 101, 1106, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2223, 101, 2130, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2224, 101, 1107, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2225, 101, 2131, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2226, 101, 1108, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2227, 101, 2132, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2228, 101, 1109, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2229, 101, 2133, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2230, 101, 2134, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2231, 101, 1110, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2232, 101, 2135, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2233, 101, 1111, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2234, 101, 2136, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2235, 101, 1112, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2236, 101, 2137, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2237, 101, 1113, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2238, 101, 2138, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2239, 101, 1114, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2240, 101, 2139, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2241, 101, 1115, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2242, 101, 2140, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2243, 101, 2141, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2244, 101, 2142, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2245, 101, 2143, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2246, 101, 2144, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2247, 101, 2145, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2248, 101, 2146, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2249, 101, 2147, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2250, 101, 100, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2251, 101, 2148, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2252, 101, 101, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2253, 101, 2149, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2254, 101, 102, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2255, 101, 2150, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2256, 101, 103, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2257, 101, 2151, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2258, 101, 104, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2259, 101, 2152, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2260, 101, 105, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2261, 101, 107, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2262, 101, 108, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2263, 101, 109, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2264, 101, 1138, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2265, 101, 1139, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2266, 101, 1140, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2267, 101, 1141, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2268, 101, 1142, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2269, 101, 1143, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2270, 101, 1224, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2271, 101, 1225, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2272, 101, 1226, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2273, 101, 1227, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2274, 101, 1228, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2275, 101, 1229, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2276, 101, 1247, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2277, 101, 1248, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2278, 101, 1249, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2279, 101, 1250, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2280, 101, 1251, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2281, 101, 1252, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2282, 101, 1261, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2283, 101, 1263, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2284, 101, 1264, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2285, 101, 1265, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2286, 101, 1266, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2287, 101, 1267, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2288, 101, 1001, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2289, 101, 1002, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2290, 101, 1003, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2291, 101, 1004, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2292, 101, 1005, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2293, 101, 1006, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2294, 101, 1007, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2295, 101, 1008, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2296, 101, 1009, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2297, 101, 1010, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2298, 101, 1011, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2299, 101, 1012, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2300, 101, 500, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2301, 101, 1013, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2302, 101, 501, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2303, 101, 1014, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2304, 101, 1015, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2305, 101, 1016, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2306, 101, 1017, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2307, 101, 1018, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2308, 101, 1019, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2309, 101, 1020, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2310, 101, 1021, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2311, 101, 1022, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2312, 101, 1023, '1', '2023-02-09 23:49:46', '1', '2023-02-09 23:49:46', b'0', 1); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2789, 136, 1, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2790, 136, 1036, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2791, 136, 1037, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2792, 136, 1038, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2793, 136, 1039, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2794, 136, 100, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2795, 136, 101, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2796, 136, 1063, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2797, 136, 103, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2798, 136, 1064, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2799, 136, 1001, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2800, 136, 1065, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2801, 136, 1002, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2802, 136, 1003, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2803, 136, 107, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2804, 136, 1004, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2805, 136, 1005, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2806, 136, 1006, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2807, 136, 1007, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2808, 136, 1008, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2809, 136, 1009, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2810, 136, 1010, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2811, 136, 1011, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2812, 136, 1012, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2813, 136, 1017, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2814, 136, 1018, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2815, 136, 1019, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2816, 136, 1020, '1', '2023-03-05 21:23:32', '1', '2023-03-05 21:23:32', b'0', 147); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2817, 137, 1, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2818, 137, 1036, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2819, 137, 1037, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2820, 137, 1038, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2821, 137, 1039, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2822, 137, 100, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2823, 137, 101, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2824, 137, 1063, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2825, 137, 103, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2826, 137, 1064, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2827, 137, 1001, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2828, 137, 1065, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2829, 137, 1002, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2830, 137, 1003, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2831, 137, 107, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2832, 137, 1004, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2833, 137, 1005, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2834, 137, 1006, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2835, 137, 1007, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2836, 137, 1008, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2837, 137, 1009, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2838, 137, 1010, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2839, 137, 1011, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2840, 137, 1012, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2841, 137, 1017, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2842, 137, 1018, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2843, 137, 1019, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2844, 137, 1020, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2845, 138, 1, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2846, 138, 1036, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2847, 138, 1037, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2848, 138, 1038, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2849, 138, 1039, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2850, 138, 100, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2851, 138, 101, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2852, 138, 1063, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2853, 138, 103, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2854, 138, 1064, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2855, 138, 1001, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2856, 138, 1065, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2857, 138, 1002, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2858, 138, 1003, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2859, 138, 107, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2860, 138, 1004, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2861, 138, 1005, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2862, 138, 1006, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2863, 138, 1007, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2864, 138, 1008, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2865, 138, 1009, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2866, 138, 1010, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2867, 138, 1011, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2868, 138, 1012, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2869, 138, 1017, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2870, 138, 1018, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2871, 138, 1019, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +INSERT INTO `system_role_menu` (`id`, `role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2872, 138, 1020, '1', '2023-03-05 21:59:02', '1', '2023-03-05 21:59:02', b'0', 149); +COMMIT; + +-- ---------------------------- +-- Table structure for system_sensitive_word +-- ---------------------------- +DROP TABLE IF EXISTS `system_sensitive_word`; +CREATE TABLE `system_sensitive_word` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '敏感词', + `description` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '描述', + `tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标签数组', + `status` tinyint NOT NULL COMMENT '状态', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '敏感词'; + +-- ---------------------------- +-- Records of system_sensitive_word +-- ---------------------------- +BEGIN; +INSERT INTO `system_sensitive_word` (`id`, `name`, `description`, `tags`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, '土豆', '好呀', '蔬菜,短信', 0, '1', '2022-04-08 21:07:12', '1', '2022-04-09 10:28:14', b'0'); +INSERT INTO `system_sensitive_word` (`id`, `name`, `description`, `tags`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, 'XXX', NULL, '短信', 0, '1', '2022-04-08 21:27:49', '1', '2022-06-19 00:36:50', b'0'); +INSERT INTO `system_sensitive_word` (`id`, `name`, `description`, `tags`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (5, '白痴', NULL, '测试', 0, '1', '2022-12-31 19:08:25', '1', '2022-12-31 19:08:25', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_sms_channel +-- ---------------------------- +DROP TABLE IF EXISTS `system_sms_channel`; +CREATE TABLE `system_sms_channel` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `signature` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信签名', + `code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '渠道编码', + `status` tinyint NOT NULL COMMENT '开启状态', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `api_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信 API 的账号', + `api_secret` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '短信 API 的秘钥', + `callback_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '短信发送回调 URL', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '短信渠道'; + +-- ---------------------------- +-- Records of system_sms_channel +-- ---------------------------- +BEGIN; +INSERT INTO `system_sms_channel` (`id`, `signature`, `code`, `status`, `remark`, `api_key`, `api_secret`, `callback_url`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, 'Ballcat', 'ALIYUN', 0, '啦啦啦', 'LTAI5tCnKso2uG3kJ5gRav88', 'fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C', NULL, '', '2021-03-31 11:53:10', '1', '2021-04-14 00:08:37', b'0'); +INSERT INTO `system_sms_channel` (`id`, `signature`, `code`, `status`, `remark`, `api_key`, `api_secret`, `callback_url`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, '测试渠道', 'DEBUG_DING_TALK', 0, '123', '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', '2021-04-13 00:23:14', '1', '2022-03-27 20:29:49', b'0'); +INSERT INTO `system_sms_channel` (`id`, `signature`, `code`, `status`, `remark`, `api_key`, `api_secret`, `callback_url`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (6, '测试演示', 'DEBUG_DING_TALK', 0, NULL, '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', '2022-04-10 23:07:59', '1', '2022-06-19 00:33:54', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_sms_code +-- ---------------------------- +DROP TABLE IF EXISTS `system_sms_code`; +CREATE TABLE `system_sms_code` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `mobile` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '手机号', + `code` varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '验证码', + `create_ip` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建 IP', + `scene` tinyint NOT NULL COMMENT '发送场景', + `today_index` tinyint NOT NULL COMMENT '今日发送的第几条', + `used` tinyint NOT NULL COMMENT '是否使用', + `used_time` datetime NULL DEFAULT NULL COMMENT '使用时间', + `used_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '使用 IP', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_mobile`(`mobile` ASC) USING BTREE COMMENT '手机号' +) ENGINE = InnoDB AUTO_INCREMENT = 484 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '手机验证码'; + +-- ---------------------------- +-- Records of system_sms_code +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_sms_log +-- ---------------------------- +DROP TABLE IF EXISTS `system_sms_log`; +CREATE TABLE `system_sms_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `channel_id` bigint NOT NULL COMMENT '短信渠道编号', + `channel_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信渠道编码', + `template_id` bigint NOT NULL COMMENT '模板编号', + `template_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板编码', + `template_type` tinyint NOT NULL COMMENT '短信类型', + `template_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信内容', + `template_params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信参数', + `api_template_id` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信 API 的模板编号', + `mobile` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '手机号', + `user_id` bigint NULL DEFAULT NULL COMMENT '用户编号', + `user_type` tinyint NULL DEFAULT NULL COMMENT '用户类型', + `send_status` tinyint NOT NULL DEFAULT 0 COMMENT '发送状态', + `send_time` datetime NULL DEFAULT NULL COMMENT '发送时间', + `send_code` int NULL DEFAULT NULL COMMENT '发送结果的编码', + `send_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '发送结果的提示', + `api_send_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '短信 API 发送结果的编码', + `api_send_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '短信 API 发送失败的提示', + `api_request_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '短信 API 发送返回的唯一请求 ID', + `api_serial_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '短信 API 发送返回的序号', + `receive_status` tinyint NOT NULL DEFAULT 0 COMMENT '接收状态', + `receive_time` datetime NULL DEFAULT NULL COMMENT '接收时间', + `api_receive_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'API 接收结果的编码', + `api_receive_msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'API 接收结果的说明', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 349 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '短信日志'; + +-- ---------------------------- +-- Records of system_sms_log +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_sms_template +-- ---------------------------- +DROP TABLE IF EXISTS `system_sms_template`; +CREATE TABLE `system_sms_template` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `type` tinyint NOT NULL COMMENT '短信签名', + `status` tinyint NOT NULL COMMENT '开启状态', + `code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板编码', + `name` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板名称', + `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板内容', + `params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '参数数组', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `api_template_id` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信 API 的模板编号', + `channel_id` bigint NOT NULL COMMENT '短信渠道编号', + `channel_code` varchar(63) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '短信渠道编码', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '短信模板'; + +-- ---------------------------- +-- Records of system_sms_template +-- ---------------------------- +BEGIN; +INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2, 1, 0, 'test_01', '测试验证码短信', '正在进行登录操作{operation},您的验证码是{code}', '[\"operation\",\"code\"]', NULL, '4383920', 6, 'DEBUG_DING_TALK', '', '2021-03-31 10:49:38', '1', '2022-12-10 21:26:20', b'0'); +INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (3, 1, 0, 'test_02', '公告通知', '您的验证码{code},该验证码5分钟内有效,请勿泄漏于他人!', '[\"code\"]', NULL, 'SMS_207945135', 2, 'ALIYUN', '', '2021-03-31 11:56:30', '1', '2021-04-10 01:22:02', b'0'); +INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (6, 3, 0, 'test-01', '测试模板', '哈哈哈 {name}', '[\"name\"]', 'f哈哈哈', '4383920', 6, 'DEBUG_DING_TALK', '1', '2021-04-10 01:07:21', '1', '2022-12-10 21:26:09', b'0'); +INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (7, 3, 0, 'test-04', '测试下', '老鸡{name},牛逼{code}', '[\"name\",\"code\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2021-04-13 00:29:53', '1', '2021-04-14 00:30:38', b'0'); +INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (8, 1, 0, 'user-sms-login', '前台用户短信登录', '您的验证码是{code}', '[\"code\"]', NULL, '4372216', 6, 'DEBUG_DING_TALK', '1', '2021-10-11 08:10:00', '1', '2022-12-10 21:25:59', b'0'); +INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (9, 2, 0, 'bpm_task_assigned', '【工作流】任务被分配', '您收到了一条新的待办任务:{processInstanceName}-{taskName},申请人:{startUserNickname},处理链接:{detailUrl}', '[\"processInstanceName\",\"taskName\",\"startUserNickname\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-21 22:31:19', '1', '2022-01-22 00:03:36', b'0'); +INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (10, 2, 0, 'bpm_process_instance_reject', '【工作流】流程被不通过', '您的流程被审批不通过:{processInstanceName},原因:{reason},查看链接:{detailUrl}', '[\"processInstanceName\",\"reason\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-22 00:03:31', '1', '2022-05-01 12:33:14', b'0'); +INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (11, 2, 0, 'bpm_process_instance_approve', '【工作流】流程被通过', '您的流程被审批通过:{processInstanceName},查看链接:{detailUrl}', '[\"processInstanceName\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-22 00:04:31', '1', '2022-03-27 20:32:21', b'0'); +INSERT INTO `system_sms_template` (`id`, `type`, `status`, `code`, `name`, `content`, `params`, `remark`, `api_template_id`, `channel_id`, `channel_code`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (12, 2, 0, 'demo', '演示模板', '我就是测试一下下', '[]', NULL, 'biubiubiu', 6, 'DEBUG_DING_TALK', '1', '2022-04-10 23:22:49', '1', '2023-03-24 23:45:07', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_social_user +-- ---------------------------- +DROP TABLE IF EXISTS `system_social_user`; +CREATE TABLE `system_social_user` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键(自增策略)', + `type` tinyint NOT NULL COMMENT '社交平台的类型', + `openid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '社交 openid', + `token` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '社交 token', + `raw_token_info` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原始 Token 数据,一般是 JSON 格式', + `nickname` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户昵称', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '用户头像', + `raw_user_info` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原始用户数据,一般是 JSON 格式', + `code` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '最后一次的认证 code', + `state` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '最后一次的认证 state', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '社交用户表'; + +-- ---------------------------- +-- Records of system_social_user +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_social_user_bind +-- ---------------------------- +DROP TABLE IF EXISTS `system_social_user_bind`; +CREATE TABLE `system_social_user_bind` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键(自增策略)', + `user_id` bigint NOT NULL COMMENT '用户编号', + `user_type` tinyint NOT NULL COMMENT '用户类型', + `social_type` tinyint NOT NULL COMMENT '社交平台的类型', + `social_user_id` bigint NOT NULL COMMENT '社交用户的编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 39 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '社交绑定表'; + +-- ---------------------------- +-- Records of system_social_user_bind +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for system_tenant +-- ---------------------------- +DROP TABLE IF EXISTS `system_tenant`; +CREATE TABLE `system_tenant` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '租户编号', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户名', + `contact_user_id` bigint NULL DEFAULT NULL COMMENT '联系人的用户编号', + `contact_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系人', + `contact_mobile` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '联系手机', + `status` tinyint NOT NULL DEFAULT 0 COMMENT '租户状态(0正常 1停用)', + `domain` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '绑定域名', + `package_id` bigint NOT NULL COMMENT '租户套餐编号', + `expire_time` datetime NOT NULL COMMENT '过期时间', + `account_count` int NOT NULL COMMENT '账号数量', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 150 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '租户表'; + +-- ---------------------------- +-- Records of system_tenant +-- ---------------------------- +BEGIN; +INSERT INTO `system_tenant` (`id`, `name`, `contact_user_id`, `contact_name`, `contact_mobile`, `status`, `domain`, `package_id`, `expire_time`, `account_count`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, '芋道源码', NULL, '芋艿', '17321315478', 0, 'https://www.iocoder.cn', 0, '2099-02-19 17:14:16', 9999, '1', '2021-01-05 17:03:47', '1', '2022-02-23 12:15:11', b'0'); +INSERT INTO `system_tenant` (`id`, `name`, `contact_user_id`, `contact_name`, `contact_mobile`, `status`, `domain`, `package_id`, `expire_time`, `account_count`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (121, '小租户', 110, '小王2', '15601691300', 0, 'http://www.iocoder.cn', 111, '2024-03-11 00:00:00', 20, '1', '2022-02-22 00:56:14', '1', '2022-05-17 10:03:59', b'0'); +INSERT INTO `system_tenant` (`id`, `name`, `contact_user_id`, `contact_name`, `contact_mobile`, `status`, `domain`, `package_id`, `expire_time`, `account_count`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (122, '测试租户', 113, '芋道', '15601691300', 0, 'https://www.iocoder.cn', 111, '2022-04-30 00:00:00', 50, '1', '2022-03-07 21:37:58', '1', '2023-04-15 09:17:54', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_tenant_package +-- ---------------------------- +DROP TABLE IF EXISTS `system_tenant_package`; +CREATE TABLE `system_tenant_package` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '套餐编号', + `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '套餐名', + `status` tinyint NOT NULL DEFAULT 0 COMMENT '租户状态(0正常 1停用)', + `remark` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '备注', + `menu_ids` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关联的菜单编号', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 112 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '租户套餐表'; + +-- ---------------------------- +-- Records of system_tenant_package +-- ---------------------------- +BEGIN; +INSERT INTO `system_tenant_package` (`id`, `name`, `status`, `remark`, `menu_ids`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (111, '普通套餐', 0, '小功能', '[1,1036,1037,1038,1039,100,101,1063,103,1064,1001,1065,1002,1003,107,1004,1005,1006,1007,1008,1009,1010,1011,1012,1017,1018,1019,1020]', '1', '2022-02-22 00:54:00', '1', '2022-09-21 22:48:12', b'0'); +COMMIT; + +-- ---------------------------- +-- Table structure for system_user_post +-- ---------------------------- +DROP TABLE IF EXISTS `system_user_post`; +CREATE TABLE `system_user_post` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `user_id` bigint NOT NULL DEFAULT 0 COMMENT '用户ID', + `post_id` bigint NOT NULL DEFAULT 0 COMMENT '岗位ID', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 118 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户岗位表'; + +-- ---------------------------- +-- Records of system_user_post +-- ---------------------------- +BEGIN; +INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (112, 1, 1, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); +INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (113, 100, 1, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); +INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (114, 114, 3, 'admin', '2022-05-02 07:25:24', 'admin', '2022-05-02 07:25:24', b'0', 1); +INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (115, 104, 1, '1', '2022-05-16 19:36:28', '1', '2022-05-16 19:36:28', b'0', 1); +INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (116, 117, 2, '1', '2022-07-09 17:40:26', '1', '2022-07-09 17:40:26', b'0', 1); +INSERT INTO `system_user_post` (`id`, `user_id`, `post_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (117, 118, 1, '1', '2022-07-09 17:44:44', '1', '2022-07-09 17:44:44', b'0', 1); +COMMIT; + +-- ---------------------------- +-- Table structure for system_user_role +-- ---------------------------- +DROP TABLE IF EXISTS `system_user_role`; +CREATE TABLE `system_user_role` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增编号', + `user_id` bigint NOT NULL COMMENT '用户ID', + `role_id` bigint NOT NULL COMMENT '角色ID', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 31 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户和角色关联表'; + +-- ---------------------------- +-- Records of system_user_role +-- ---------------------------- +BEGIN; +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 1, 1, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:17', b'0', 1); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, 2, 2, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:13', b'0', 1); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, 100, 101, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:13', b'0', 1); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (5, 100, 1, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:12', b'0', 1); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (6, 100, 2, '', '2022-01-11 13:19:45', '', '2022-05-12 12:35:11', b'0', 1); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (10, 103, 1, '1', '2022-01-11 13:19:45', '1', '2022-01-11 13:19:45', b'0', 1); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (11, 107, 106, '1', '2022-02-20 22:59:33', '1', '2022-02-20 22:59:33', b'0', 118); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (12, 108, 107, '1', '2022-02-20 23:00:50', '1', '2022-02-20 23:00:50', b'0', 119); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (13, 109, 108, '1', '2022-02-20 23:11:50', '1', '2022-02-20 23:11:50', b'0', 120); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (14, 110, 109, '1', '2022-02-22 00:56:14', '1', '2022-02-22 00:56:14', b'0', 121); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (15, 111, 110, '110', '2022-02-23 13:14:38', '110', '2022-02-23 13:14:38', b'0', 121); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (16, 113, 111, '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (17, 114, 101, '1', '2022-03-19 21:51:13', '1', '2022-03-19 21:51:13', b'0', 1); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (18, 1, 2, '1', '2022-05-12 20:39:29', '1', '2022-05-12 20:39:29', b'0', 1); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (19, 116, 113, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (20, 104, 101, '1', '2022-05-28 15:43:57', '1', '2022-05-28 15:43:57', b'0', 1); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (22, 115, 2, '1', '2022-07-21 22:08:30', '1', '2022-07-21 22:08:30', b'0', 1); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (23, 119, 114, '1', '2022-12-30 11:32:04', '1', '2022-12-30 11:32:04', b'0', 125); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (24, 120, 115, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (25, 121, 116, '1', '2022-12-30 11:33:49', '1', '2022-12-30 11:33:49', b'0', 127); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (26, 122, 118, '1', '2022-12-30 11:47:53', '1', '2022-12-30 11:47:53', b'0', 129); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (27, 112, 101, '1', '2023-02-09 23:18:51', '1', '2023-02-09 23:18:51', b'0', 1); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (28, 123, 136, '1', '2023-03-05 21:23:35', '1', '2023-03-05 21:23:35', b'0', 147); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (29, 124, 137, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_user_role` (`id`, `user_id`, `role_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (30, 125, 138, '1', '2023-03-05 21:59:03', '1', '2023-03-05 21:59:03', b'0', 149); +COMMIT; + +-- ---------------------------- +-- Table structure for system_users +-- ---------------------------- +DROP TABLE IF EXISTS `system_users`; +CREATE TABLE `system_users` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID', + `username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户账号', + `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '密码', + `nickname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户昵称', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注', + `dept_id` bigint NULL DEFAULT NULL COMMENT '部门ID', + `post_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '岗位编号数组', + `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '用户邮箱', + `mobile` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '手机号码', + `sex` tinyint NULL DEFAULT 0 COMMENT '用户性别', + `avatar` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '头像地址', + `status` tinyint NOT NULL DEFAULT 0 COMMENT '帐号状态(0正常 1停用)', + `login_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '最后登录IP', + `login_date` datetime NULL DEFAULT NULL COMMENT '最后登录时间', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `idx_username`(`username` ASC, `update_time` ASC, `tenant_id` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 126 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户信息表'; + +-- ---------------------------- +-- Records of system_users +-- ---------------------------- +BEGIN; +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 'admin', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', '芋道源码', '管理员', 103, '[1]', 'aoteman@126.com', '15612345678', 1, 'http://test.yunxi.iocoder.cn/e1fdd7271685ec143a0900681606406621717a666ad0b2798b096df41422b32f.png', 0, '127.0.0.1', '2023-07-24 08:41:23', 'admin', '2021-01-05 17:03:47', NULL, '2023-07-24 08:41:23', b'0', 1); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (100, 'yunxi', '$2a$10$11U48RhyJ5pSBYWSn12AD./ld671.ycSzJHbyrtpeoMeYiw31eo8a', '芋道', '不要吓我', 104, '[1]', 'yunxi@iocoder.cn', '15601691300', 1, '', 1, '127.0.0.1', '2022-07-09 23:03:33', '', '2021-01-07 09:07:17', NULL, '2022-07-09 23:03:33', b'0', 1); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (103, 'yuanma', '$2a$10$YMpimV4T6BtDhIaA8jSW.u8UTGBeGhc/qwXP4oxoMr4mOw9.qttt6', '源码', NULL, 106, NULL, 'yuanma@iocoder.cn', '15601701300', 0, '', 0, '127.0.0.1', '2022-07-08 01:26:27', '', '2021-01-13 23:50:35', NULL, '2022-07-08 01:26:27', b'0', 1); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (104, 'test', '$2a$10$GP8zvqHB//TekuzYZSBYAuBQJiNq1.fxQVDYJ.uBCOnWCtDVKE4H6', '测试号', NULL, 107, '[1,2]', '111@qq.com', '15601691200', 1, '', 0, '127.0.0.1', '2022-05-28 15:43:17', '', '2021-01-21 02:13:53', NULL, '2022-07-09 09:00:33', b'0', 1); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (107, 'admin107', '$2a$10$dYOOBKMO93v/.ReCqzyFg.o67Tqk.bbc2bhrpyBGkIw9aypCtr2pm', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 22:59:33', '1', '2022-02-27 08:26:51', b'0', 118); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (108, 'admin108', '$2a$10$y6mfvKoNYL1GXWak8nYwVOH.kCWqjactkzdoIDgiKl93WN3Ejg.Lu', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 23:00:50', '1', '2022-02-27 08:26:53', b'0', 119); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (109, 'admin109', '$2a$10$JAqvH0tEc0I7dfDVBI7zyuB4E3j.uH6daIjV53.vUS6PknFkDJkuK', '芋艿', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '', NULL, '1', '2022-02-20 23:11:50', '1', '2022-02-27 08:26:56', b'0', 120); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (110, 'admin110', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', '小王', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '127.0.0.1', '2022-09-25 22:47:33', '1', '2022-02-22 00:56:14', NULL, '2022-09-25 22:47:33', b'0', 121); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (111, 'test', '$2a$10$mExveopHUx9Q4QiLtAzhDeH3n4/QlNLzEsM4AqgxKrU.ciUZDXZCy', '测试用户', NULL, NULL, '[]', '', '', 0, '', 0, '', NULL, '110', '2022-02-23 13:14:33', '110', '2022-02-23 13:14:33', b'0', 121); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (112, 'newobject', '$2a$10$3alwklxqfq8/hKoW6oUV0OJp0IdQpBDauLy4633SpUjrRsStl6kMa', '新对象', NULL, 100, '[]', '', '', 1, '', 0, '0:0:0:0:0:0:0:1', '2023-02-10 13:48:13', '1', '2022-02-23 19:08:03', NULL, '2023-02-10 13:48:13', b'0', 1); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (113, 'aoteman', '$2a$10$0acJOIk2D25/oC87nyclE..0lzeu9DtQ/n3geP4fkun/zIVRhHJIO', '芋道', NULL, NULL, NULL, '', '15601691300', 0, '', 0, '127.0.0.1', '2022-03-19 18:38:51', '1', '2022-03-07 21:37:58', NULL, '2022-03-19 18:38:51', b'0', 122); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (114, 'hrmgr', '$2a$10$TR4eybBioGRhBmDBWkqWLO6NIh3mzYa8KBKDDB5woiGYFVlRAi.fu', 'hr 小姐姐', NULL, NULL, '[3]', '', '', 0, '', 0, '127.0.0.1', '2022-03-19 22:15:43', '1', '2022-03-19 21:50:58', NULL, '2022-03-19 22:15:43', b'0', 1); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (115, 'aotemane', '$2a$10$/WCwGHu1eq0wOVDd/u8HweJ0gJCHyLS6T7ndCqI8UXZAQom1etk2e', '1', '11', 101, '[]', '', '', 1, '', 0, '', NULL, '1', '2022-04-30 02:55:43', '1', '2022-06-22 13:34:58', b'0', 1); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (116, '15601691302', '$2a$10$L5C4S0U6adBWMvFv1Wwl4.DI/NwYS3WIfLj5Q.Naqr5II8CmqsDZ6', '小豆', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2022-05-17 10:07:10', '1', '2022-05-17 10:07:10', b'0', 124); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (117, 'admin123', '$2a$10$WI8Gg/lpZQIrOEZMHqka7OdFaD4Nx.B/qY8ZGTTUKrOJwaHFqibaC', '测试号', '1111', 100, '[2]', '', '15601691234', 1, '', 0, '', NULL, '1', '2022-07-09 17:40:26', '1', '2022-07-09 17:40:26', b'0', 1); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (118, 'goudan', '$2a$10$Lrb71muL.s5/AFjQ2IHkzOFlAFwUToH.zQL7bnghvTDt/QptjGgF6', '狗蛋', NULL, 103, '[1]', '', '', 2, '', 0, '', NULL, '1', '2022-07-09 17:44:43', '1', '2022-12-31 17:29:13', b'0', 1); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (119, 'admin', '$2a$10$AheSOpxeWQYhEO/gGZhDz.oifdX5zt.kprWNHptPiiStUx4mXmHb.', '12', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2022-12-30 11:32:04', '1', '2022-12-30 11:32:04', b'0', 125); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (120, 'admin', '$2a$10$D.xFtcgma/NJ3SyYlUj3bORcs0mwOD6Zu.4I7GCI/8/25/QSn4qJC', '12', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2022-12-30 11:33:42', '1', '2022-12-30 11:33:42', b'0', 126); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (121, 'admin', '$2a$10$R2guBf7TyERjjW9lm0Pd0Osut6vt7NuH2Vx6fkOI5.VgSvJK2Xb82', '12', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2022-12-30 11:33:49', '1', '2022-12-30 11:33:49', b'0', 127); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (122, 'admin', '$2a$10$pwxqUUza61HBgx3FTjp2d.Mc2UKalikXxP91wUdP4bFe7Hl.lfmeq', '12', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2022-12-30 11:47:52', '1', '2022-12-30 11:47:52', b'0', 129); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (123, 'tudou', '$2a$10$m33ROHSPa9lshwQIaiVlFeoG1TZjCoQmfvExn4QWS8r5X59AEsTz2', '15601691234', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2023-03-05 21:23:35', '1', '2023-03-05 21:23:35', b'0', 147); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (124, 'tudou', '$2a$10$1pzAJAEIRf/vYyMy8FTFiOzX40Q/NnozXixun/ExPZwv8A/CQkR4q', '15601691234', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2023-03-05 21:42:27', '1', '2023-03-05 21:42:27', b'0', 148); +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (125, 'admin', '$2a$10$E49momkI6Uf9v6pkfjoRP.dHzK4RjDIK39AWHz9eXRmqUR5sbJpoy', '秃头', NULL, NULL, NULL, '', '', 0, '', 0, '', NULL, '1', '2023-03-05 21:59:03', '1', '2023-03-05 21:59:03', b'0', 149); +COMMIT; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/upload/0b0f51ca9272a2d00d2f1333c9a6bd455b3cfa038d2360eb9c117463041008d0.png b/upload/0b0f51ca9272a2d00d2f1333c9a6bd455b3cfa038d2360eb9c117463041008d0.png new file mode 100644 index 0000000000000000000000000000000000000000..3149e2104ee25f247859d368924bac3c1c261052 GIT binary patch literal 1322194 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%0D%%?95C%4f;?61CG7E9V!?lJkEMHcC0UXF8W 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%0AJ4c6(t#~G)KbIl=%hu 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�pV>v`Q5 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 z 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 P@q>F(_@YaSzkpA?5|eR^ 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

W-$sl4S)Z|mq)i;n%1%^7 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

g1R+C9EH+_!Py|zl}{Af-CR?>^CSgt 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Μ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%0A)_CZM=7TC*jX{;T zWJE8zS9;QnO*kG9K_!lF{MD2<&x_`jj3;VIw(ouK{q_eRJ!$r{&zU{8CCd<+%8SBq z3}Wv}H|bMSv{se2Y>5}L+Sc&RxXDJ-CM$|F9#~(Ywl8eiKsL=0!{Z~e8>M&q&pd7S z{{7F{>dWG_(z56etpiS>xfrjnG+<_uqW9Jx>Sq;eTZ=k;T&cI@7BRy(rlc^r&Jel(#5 z>0UlVDTMV1$Ze~oc{k$+>Ws>lVZaEZEf#Pkz0w+4Q+aA`thn=})3-ZU*Zr#|cEU!Z zrrS50OZN4r?AjSNny}Yx@s+#{Ha3wNjmV;;w|Y$q<+w|Zti~nwgJ$CW!cPgIdD?5GPizGg_R%g5;etbQ-DqHj; zzu-3+it4o(IxgRGDR1nbKDNb1L`0 zHyx$)QUzZ^hk?pC=58pssx}p(mIdvF!{=Lyr_Ikc2&ZsfvOQ%1d&VUE6dr#6O#gf% z!?T~#jDE=bq)g6o|K$FKYSR78pL=+6Wz3!NLbca{(C?8 z<$0TJhAl?$2i(VV?heAQOkQt2K(YZ4r7{hNZVHj}xbf_jGDEak_@q#3dy8bkg}L%F zyYb(0D-uj;#dVf$fTx^Kgu%_{J4%OqkN13G=UT%>3O@{zp{f9} z@^eL{d$X*+uqdeaZ47g;(fiTV-<>x@y8|DJV z8(0jI7|cP-0Lvw87b3UDMRvZZ5|cO1=jL2&28#?%S2(&)ejGH>+0-;clN@gp#WS(h z)Xyhen%spwhmPp*q{P@QU#MFFUd!rYIp6RI$`SdAH#7i?_Yi|1sK(oT#5-WUE2kB5 zmStU5^Oxl*M}#S-bv?*+%Ds1@Lf+U0ZZtjTc7r??fv?zd*>YOe#)ge}$G3nOD#blt zA;!^sEP$|SgFP@v;q3XajcJ-W@XP5CSjcYy_6x&=)uDF7-?HuXt@+NoY;ikB3wVaBHVL@f&axbFP8U_Uxxh(?zq058N{wV9R{H4>uFiUgRe^qypZ~7Mgfk=b) zmp(PxVkZS;eGUr$bOcdKi~AWB@+({!uJ^DX7R?TtH^Qkyf@uscs@#m z2Ff(`e+`i9I&|-D^e1=~W#c-eoF#F&9Niukl&u3^K?^XK=5^tq_49vVSAFjEMgL=a%{I1K(SFH9kPnvz|lD{lgZKREoy4swY+DvKD ze=nrxM>MH!&<;!DSm6Cxw>YJQ^(W#g8Jpgn%WR{O~i+d zxvdLZ;*THlh(|ryB%3tMDLsAVDSc6c+!Gtu`!??Ot#$mktsLJJ?}4>iE7G+hO1CWk zR;w%idrNFc{F85f#NKoIg!}b1Vddq-(NJZfc!LLyS?!x|GdsDSCa>KqDnIF{-m=d< zzh!^;|NA)`t@7mss#X5^p)JW?Q%3!3qY>XTY0lXi+PO2wjpO9(OBZc?rDOI&$0o9& zL49ofD?7@E@;^>ra4<&U=)Pf1(l#V7vg1xUDDD0$SIkz5mM1CQEE4{eH>=D!`u zvDNc(Z%Xg|23+~#O5&(MM$MXJPcpJ7IMA4#4WPA+4YzAQ>W=<_e@ZKj15jF8!1HmK zWN)-v{!Do`YS=4b#IumU-bx!*m1@I2^<59!c-ZkxG{XDW0y2u)xMqL)vrpQG?_0C+ zJ8n~S>9MPML%&y~FWoAAHe)Mm75mI{+rC*-8L3`X(gqQ_VI#`NIRol3`@NLs*jhV7 zYwvVz=j@6-_PgG0kAL7n@lw1_*O~+Aq_1EqM!sZf9$B?E8%>H!nQpKVt$S>Iq}M z+n>@RF_b_a(%5r<+<1Ody66)3+wqSCQ}Y>5{Yc%hVI6!`*=GN5h+yuK(N zF`V=ar27;nr62wPR}U*fZ(L(D!EKYP zs!oKDv?Gq+``?+~XJHp3kDDXh$z!~jjReRO;UiCepSu_Lp`Y1v(%TfY19GFkN*g~a zGeY22m|GqsoVtsC{X7DUSL|+=pS^O$I1E7ljWGk6LPx+_?6Si5&0xc9jxr9HB9E}dNpN{UmCX|pO;tG-eA`0x*MCQ2% zaydfgC^Mde{7h)c<9Su!i6%;|e#QE9Fikbwn;Mu3HBAB-Uyd+^RdI(!j={lqv8T{CH6g5fooyeb^mJpDj4?va;3{v5J;{!0|$ zxaRK5FqdxzXwVXr(_IA84a%`B{9dx{hmhk&c;w&+5SLvYSx!EvDLS`ZzNR<)xqCZY9V`eMmZ`g1%cO(T~`I&4CMOC>1zYh z`<`@oEXwOa>981;;$w69^L_|BN)+{Xk=r6Fm>d|p>*-;U=Pl(Ao@FXyNm~;gj{K*a zRBByln}R<_&!lupQ2$B~RaIxjF`N+hv0;_&vx(qTpGEuvxnHE2ror1Hjh`0M}40cj8_`g z*I=vm#fvuiiLY4gu@}wSbsMg-A;3haZjra zpX|aVRs{xrIvV53elfW6ubJdV-N&uD)%UMCp8LQ<_Sg@<$2zyKS>@7>Rj>5iHdrgZ z@GQUWgdPX}+ZGMQA#lQk_u*(xN$047whUJ8RL7v*6BxT~oT|80T)^ z=Rx(=Ra<-DoHb6ZTHp1gIp46aF{A2Vb=5}0j*Yjr{dc;mgSK@heS7h0+Gwkf8XCb+ zPZfSJwm+h==U@4TyKVBGQ?~Nn<5oMaa_UK*VOL5R+ULKzrTmUH&aT_I-Sh>-gqn?1 zt{kCOlMQ_OnUVeclNYVpmX{RKZfcJC;g@Xm3oltyWzxRqr00__#&%x3WMj=qS#x9$ ztU9XN;Du|}ztojZ8h)%`@a*Y8>uhK1R3O$wQ@%!(z_UYqRZ#3jqvEH?9|6+>M)T*)- zz7dg<5JY7vJ7_2k>1~KzpifLi32~0egnA~K_!?-lrINz0*7mR3u03;E_Q2-YNVYw( z%WVGLw`wcD_7VHZKlL7)Y^%(A(g|&aFIoCrhe5`!u>_C@Zd-$OSH>hJYX4xZ6d zhO}k8m|WMiB~WTHJWe3>(ewTCB04;zyAl}hPm!^7cQ4nf*9FR&jb5H<|9qaHI;7f~ z%0lk3M#wYQpfWrR@hDR#?o+t(MpPi@=NmZ+6B|@+NChoRuS|iM=i}z`OZb_8k|U4j z;govZ1CL+mE^IRVz@jqqJY?|$!9VUJOnx6IKLgy*CGCViQ%)jYB%n0}+{KqrIgdz# z<27BaG6;B;Q_1rZWe&oPym|9gM1+^ygzjZUy5Y5YS&r;zW;?{I*!H%@3Yk7`6npVn zly?wi2>HFRCj5VN>TNRV{shVbEWeBc4Z6+8n<~U-8ReXCKPLmoZCccYHu@raAJ! zO0UQR6Ldc|0k;Jdi1;z6 z^QR(B?&rB59_dSs8Kud=tZkhekYwQwnl_tK5I&*hcU;$jA~ZbBomr0EX%Dr z6mcCXzaoEgwJ6!JCCX=!Z3LoR79-_}_>`A&l*&&7C>C$91^;>x8M~^d4{GA|s~+%8 zDguuG)8l5>G}x-M^}*y(L?!h*)rQQzbGy$mwK;|L!AaJ>?MKv^*AijFi-6;~tXYhL0!#8$hGcQ#*2}ceV`2X+ zkmdFO;+{$JqIMzLHi$aDh)8P}3jPZrKWr;U`T3xj%MS~6@Rs}aal1tzZxH>vuE?6# zyU^pFxFs11yE+)>b7CaV{R{{@HYF|Xrp8RqJ*@Md1rK>~qr_jxW^DElH)Gie1 zs9b|sIA=3NgB*n$xSN+fMZ_PC!_rlJSl?8mP+{Q2q7z4QseSP=2S;E{npW*L%~~xR zw-`q$)F-Z*{lsHdeW_!%CjWZXzgS^BH(>{+R}^tqSqQb#g0h^Gj> zRgJB5KOR_<-@jmIf|q>yU3=&2PMCe*E*sx_T0xcnPmSPMGd9WC2t!t0 z3SuK_DE;tTyyM=;p8ux1?U(+<*W1N+p0n!Zu2nj!Ptq0n=GZkFSl2)OEpw=T)w);v z%2Qo+q;9V~ds*W#`X7x2m6O#?X^F2LIJ#Nc)eV1apt{7dcK*d{SDBD5>d1HYsN~&L z{DIY5n%A*uh;G>gkZo4Rl1aJWxzP2o@1(*;pHix6?l)=4bi2A%tcMM2D05ZizXShm zJsxXW>pk~c>+Prf=riVCcbr<63@w?G?1&8wUkIn3ONX)<@-S+z*eAa575iuZ<*PPc z-B8}!w(^5NY1PwfHk6I*{LGVf?H67^+5Xn!K;vJ^kfZ;2v6Bh+xG8z0!!cjmT<+Q3 zKk`d<&p-I6wXgJSXT555l@tARlN~>|tD-Jeo60krNtm7bKVAaCZp6PTcTON^TnVaNct}rg_vc=|6rDmfSu4(SyR62>b zf1RZQt4oiSBYZ8`x5j$YYA4#(pdNTQ*`Bh6Ce>;CGjj3;A3cTtmKhsV(#E*ivSFuZ z{qubrDNQzf{^-Y_v`Vun9;z!UM^0m*?`OqUB_%m2Jie6a+Sk2aW%jG?x5-_qr_^25 zF~$OZY~m4)&lFGD7V|tdB$?lHWOze1((LtQW7~d=_|xL?i64Hqb?-lJlP$UX2UV%h zaM{I@4I}?ZM>^~746NTFZ_1PObNRVzN;hpTR~kxZ1KUl|CP z>S}5~_|=FL*6S*6*f(~AebcR^z9k{aI(rVp zI)blF(5{GW=o|P;tMa4OCJ(eT=pxbt@OJ)gPbrQ0GA&5Fh(}oBvQftsVyzGh#lCX_ z5ytQ32myG7o@mEh)ClKslB_w!dPpJ{$-}~uHpa&{%14a(k}gvE$jk3OlIlE2Cy|19 z*eTEpBp|QHmw(b3oBR_eerpn8{6!TJZL|M;gW`E!xQvvZ%19UT9XbGUPZ;ia4ldYE_=oP?MyF+*#zTPEX%3uZ^E7eiTHNO->!ggS zh~5tfw24AE=Xr1_T=cDOx0&8!4Rc;+a+j;uj|@E1<^$?J2tKp=Iz!68`az6aa2*vq zLrZfg3vn1s85YV|lEj|ijSvcjH(Pco@oN}fsF}RCO7dx87uTe#L}eVdERi|*a3w#H zr${$Y=3Oo;{G&t4J0$?GFye!N%Cabb0M@~tG?QG5!%iWAN+K;q=zzugt^}`Zkh*@6 zH_%4@*?m_7|7)6naDalp=|O%at9MEo!0~xCps}Zci;cB>Lm>x#sotcz6M35DZ83-z zBmokY5P6BRWHW&uu%$r=`RKU3Aue?~dHIsRygZ1HY+QqvAN4?93t}M`-S}jnpuIqP zc^cC+_ppTk{@4s*qa$&h4rU zR8rTZk-Ra07^^Hea*rRLWs!g%s;+1PW{;k-(R=Rl30z-xR{4eJZ1Tia$)cez@}V1S zut>}Gt>=Tn>x_8qCvO>HYs=`hg11o%vXSiYU=;Px?+=7%(}G@mJxltZ9E)_46L5)CzY)(xq^@%TeJ2*5sQ8N6*Fzd5;wA}u2KN>_*O z=bjf~KYvi9JC#4^dJ%CC!sn3bgp81H28!~!=9J@b>|ZtH`Phrd&-A{8JX}tP#m#7g zt_P&Mu)Y`WQ~$Ug5Z?aY1RRtPCRpWnT4;PV?%)d~WTx_`FIrf%rVScdl_T`(X>pCC zz$UtmIvOWxG+ZBa6@ACYQ#H*Qm>&D@N7edP?TPQtzG$@%K5OGn&+5&(##joV@nv<) zk$Nn)YkXI2`k1q7d@&;ax?kIDTeBe?$7)Zq2c1uB<>;#JrElqdyR&5jh2tPS^v}U;epNmz;5yy1!nK+cIrRZ+txUK#41PEl+~)TzvFHEs9)tLpCtdpUb?oUv1L;_=F2o` zTV>XhIDqd&IMQfhU6oVKe)a>8T9so3rCY|?6*fjRCgnGLM*V9xxns?$-*me@`ptLQ z-}-HjSmnx9>#J{=^hA`6#>U>Xsf_%0r|9!q$CQv{A9t+AF&ixWEB#iZt@&EbhF^Te zdjI7a8$HvtW>fM=znm)4N8@!is+t;?4D7c5^prjPk3MCqpMSx>UhB2g+coNbq5!(! zl}cXTqFs^Y>Pcx~lF}^CY5t^pjk)VP+tyn%d;Gf|w6FZuw^;vp(^eFA)ahGm5bHI{ zllXE}UgM6V(w*vrkNy376#r_7c_8C(j>6}QD?M0W;l>S)f|Cp?#}0Kvahmm()i>9y zxhi|W-c^o$z8r*y^y_1BNj<5hxdv~ZRas3{-bb>37Vfcus>W*PXC;olzRqvF&s#_K6p+$qrN}-*MV1?>pRvEBW)nDIWgMDwD zzFv}CW9D7btGA5`+f7Rj7I)`q3u*TNu;ZnI?6k3#>CpItG2qarZDo8O)*XL zy07AOmHR@V^rH)#R&2DbJ$}hv|JOficm3oSd;@D|Q#K^N*fU@4@jG)>IgC^Tw#RI) zVIP_ksZ7!fNG!QFm402iCn4FhWbt|6B9Jc{EWZ|12JwAE2I3wfj}YwxmC|#h_^JI{ zhB-g!CGS)BqU!_t4I*nm|R6Zs;Z{ug1NsDb3ZcWYUJnAoO+{LQ zNOv#f>E-Ej%?a7_XApUFA|nEQRjkzp=H!SrqIld3o^Ejk-fs#;QjSGAoJ+5S+;6XN zfxHHxgJsBN0>PWnTHJGuV7Y#-AM^ElW}~~YyCo>FSElv@Ora>4!ypQkN^~W5K!QY3}`(-7&jQ%dNE)CDW6e`=5de)0$GEQFKjQ$)EgWI^#x}B>Y!Yn)F80| z7dnRk`G-Ph`GTzTKvyF2#-zsI%21f;CRahrbe;o#i|P{CFK!^@alI9jp}6Nt8{;$Y*bT_<%gF6)8RaNHzgn1XC>B^I$JDM4 zfzahaXc3mVPeHpD^KK0w&%a?VjYb!Xn$Ck)kWhJwLUh|7{A&b z*^#&1VWSl`0csj2vG~XMM+{|;{MKxxx$5K45$n<~Y?=MkGgkZ3WotGxerl~K?H&8p z+t-t=4-}rSgV=~+G^+7uO@nDpI8aMzRmIub>PiG;t=Ny9KW|^z*|ABpZ9Uv1120#3 zu?+i4m-a|}s~kH%(40m6$#7zKt{=7E|N4_YM}dyE+IFm|G{vLZtk|#n51&&!Hm_uF z>usBS%k4IL+X=C0*tpYG{?UipM(L*^_O%u-tar8R^R=r3plzBS2DUG^sZe9zl%H|ticSCwv?DnqEF`QtBMw4I;5VB43rt=m=_ zoYv7$d42w6d-zAcU}r!2wDeN5q2%UwoBYT<=Bi2qus}KCh)CVDLBzb4MdvOuDK9OJ z`>WltwG`*2Z@Ar_|6e~~mtTL{s!F@js$2bN!(TRI^DnqE$E_(p>=n@8`R@&>{IFWU z+|TWmyf`#&_W9rWR(t%{zd`l6 zYW3}|%2n-z^6OAo^x{V~V$-74V?Id{(KZzFqe{Li^G)Z%_67f~C#6fg&W>yd(B7yn zbg#)aFhu#WXO@0jS2FTDZ+s2N=9bc?UU`4W?@Jw9wdVHF?)j&mvPb^*CvD}$Yt~zB z$@bFk%3Tz@ZM7Fy+3;2E=&JB4vd6W%k6PoNP1SYfi*|(h9~;l)Q*9d?kQ_bA7k9|u zV2qZNqwot9b!eW%$4OzmjZhx2DT|}`if0Ag7yFDEt_QpOuTq|ha-Hk{Tn@$aJQZ$B zFdMeWGNiVl+KxJXiQFUYh3f`F_;ZD@3om=_Wk--73pb?{&f`e1YOx`~-*ksO)Hk)A za)De9<%cUY=dL{S0x4<6?;E)uXiudV(g%_5T>2h=w_o@J{3W#$V|{d#`vYVFF$RS4 z@xSxLohvK~L|TjZ!6GR5kguE~F0$pwdFI!2OT3wTj))f&dX`1#8DWAieb~$fr*WnN z2aq|n!`^3c&swEG*ugc`Yh9fuWhO-4a-=j9%6?$xyBmwb&xsh2eMQ;i>E&4DKF2@G zTtIIrJasdLnTua)Bk;@piIejVp9nL@vq&?L$MgH5O$*HN&C<>Ff-ZuHJJmVl;FhKN;1G)3|P*VfW^@~@muZaYU^utEedZ&-sXk*=mvVnmnEa;H8 z*P7^35r+%}HJIi{Px+lG8o%gNePE$5DPO7M4>=$ZdI?$tVh2S$Y3Z@YazDhIO>BbT1p)~`w@9r9KZK8k{qP(;R##aP5L{F zEB)if#F9-PDDUv{e5Jwg;xdSEiLl2c&mwr58UQ7tPA8edXtAxSj+GuQMoPCJ-A7qY zWdnrOv*yCG6-~~?zv{Z{SW^?#$yV2T_Z_v`Z+xTmA3dqbq}()NoqX&`8-DaF)@-dw zx0(=TwhhQiqzB?YcRL93u!o6vSRn6SbStqeUtZ-3gq`dKj_r|QPj!44`dY?b`CgQl zMU-QzOKi3v78w@BgYpI6Wq390WQwAVUnFZ0ptxpGyOzMUXj3!V4^T< zA7#3gKtFzwzWizMF}VF{dqZ;yj)UxjKyR(j8Ufcd7TJ(__t?92$p2MQB3o^ zgl;CvdJg3JjOW(^i|Xg0KzoKQAV2r2sdfEhXvIj!CJp~$f&or#(6GuiwIkPdtaeAs zPX5-fv-NL0V+}P!8W`D-1!gt?yveDGT|-R-Uj{J_)%d2}v}&Vb{ZGGQgMaIbWYYZh@9SwPbhowo$s&?xm&vfiVFKl~1!k1g* zoukos$){0i*cr`NCVd=-_PZWFXN_jn*O6gg9rL}4{HsIfI~ppS1m`!F2vk*GS-khf z_@3PFIb!xJ@3i(C&*@pRc9p08z#3QCz?s;K-}{Jt?vK3PwjVfVcByL(_Io6QH}Mjz z&X*c$w;BKXZ)u@hHnge@U+Bih8clw8N#U?F^wrS4bnhEy5@+kF3wj>Pebp)~*t77d zxV0ne);zIktu?;9@}hFyw7L9|;!N_P_j^JMEFD zJ2v>m7j5OKOZKLJ_(i+x$G@bxY0rkMYo1SNARRFlM=myp*sP1W26I}*604P_#7SRG z`SE`juiDl7kJ{&d*IVqBZ@JI97cW`sTHgj^mAMS8T5I@RgH0&L{(jO1ZRS9E*im}o z-9%=&@m(8pUc#)NJ)Smpg??Re)|=K>`aYN7!~>OWhhq&@aoE5bV7S!0wYIf3H>_2a zJ5`V0dD29DqH%szb}+V{pPE4WN9uKJ%AT2TRjM6ZIkF*HrPJYx)ZCYOvay5>h*7m? zJA7%T^sCgB26a-!DX(F#Df?3LuUog#cbv1@n~p18m7AzG>{$J(_)Gq$f7=`F%fJ7f zHafdulM7c>w%Dw+q`Y9RdLX;(39HJ8p&VJHr&^&hUf67`)I@Fntu)`TY$|Y3KD}Pg zu3Wk5#r7+>I~{KTBv`#SL>WKH@f?x-m@{94kN(wMBT*twthg1!DPf5=Y$ z(ks?oZ&_!ZP0OZqQL#(1gI~Qiv=2Y{l%0azK>8ZDt*6GJ(OR(+zxqBq`hiDmtT|V8 zTV=)9lZ>I*m_i=PZ`{!sjC_m8xK|R9-^-24kNiOeDDI-joo7xd7vwWh8Yd<@-j8kt zcJq~-0mgIgkDEyKChXuq2;StoxaA8$+LtP83K_5qUq5o1^}De?w+P7YFOumV@-&dS zK;lz82;2r=@)K(Vm|fgQ+KG}I@Nu@_!|H;Er@tV)kA)W?;=vM1@gx1jBjgH9-I)h0 znhRi80%;PCI^^ML2XyhZjH3KPkHIq!KYgB(>K;i(84CE9k(_3FC?nkQ$^GG*>(AYE z;hqg9WQ7`jEME#2c}#j%KTxz6%y9y|@G%~!E$)$L^?9@-;*;ki$1-{vpN@PgnlB-RF1;_!#_vPI}mPMNuM~uD{MY&3{W2(u2i+( z{y1-!k;;@0a_x&0W=>zl^?GoyG!r7vIY@iI^cSTuuZac7Gk91;f?R_RgOsURVcsmb z;TCi~I80s^8S(YtFuGeN-;I=I4zGN9Ma=RT71cf4Q*;>~`Ke-Mz{O znWIDJUd@NvtJGoEHJIe+^jdddC!gEaX)FQysa^G{{n8<_#KdBBW%{>R%jjm9r0~313id*Fjzu#HE~c4T@*3 zK0y)rk7P1&k&MLkxs0wH`%%{<1tNXkw40JdglZaDb5=KU5I+`6LykOu=_-E__cTI@ z)ae)Z5gzilx(WgwpR3aGvvECL2Ep)5>ARi?rz=F5^c7E{h!^e=X8H^-@}=@a2Vn

qHh*@vv==45n!pvr8-Tny=RcZ@oJuPw$`~Skjk7uw2jVxIW?vvB z@-cluK1SsnhAGM2^(?7eKSfydE+W0680Kgs9R#u95MiN+i)>tTc_Ej9wB&~k@D^$! zY(#p{WU;EbOO2B^x<#BK-=V8Wi;3lmCZFT(jwXPb+*}=6O?vA+blk?j_3NziEf3mg zrDcu2CbAt(Hvi=(tn%@vHIZ#vuQ9ZS|G2mEP(r!Q%8}b$PGtm-y?DJEi28L9IxP0e z7XvBC+r$NJZ1@x6MzE+X%5*(=t;;R2Up|=d>_xlE7<W&a5~6awDEdU-G^CG%vi{BA_LkcX<7VsXCLrp@L1;g4B(9V4 z=j9b~3q3C4k@H^U|Fs3xa}B?IzJc9nP|SEfEpD+j)zBP(XN^-jeXAXB*@<8OMmzO^ zN6l6$*1f`)NU6Q!O9{p~8gzSf=C&HaiS!^h>OQ|=RB5v@qw&kny7HV9&!Ai{xunOGO*KF>DZ}_WNXqZ$Dr{$F==H?Wkg<-$Y|8J`!^f* zkKc1QLa7dP?RVUJ)b86@_4@Gn7q8lPfAA@PV;ZaVRGKJ2ait56)$>UKGP60tCuE(v zO*9@|`Gzyr{GR*FPOn*eP`4M~b=rRMFMX@M{Qmo;ABEc)T3zupl!cq(l6U3T7i$MD zs&7uA6ZxHg_GPy(h=p8xQe(pOs2{r~5&XYKd>*Jp|i4aT#go@7u?FK+eipMK$jwFZ5wA8%Oe z+wQRTTkbS#H_a~h?G(q{^)$X$p81WVdNci=6Kxk|Fd50t;34Qq3xpvLEKICt7k zoRChQ-LkX);>*^0W!w5|vW>O2+g5t$}SHZ`v1s z@a^`*Z+gVK8x0#?>sjag6)$tXrWz|hooB9Ci#cqoVWTg;Wc@)`vWuU}cyN9zeF23j zYQD>6)PS8%>7{l2h#b?#DqlX;*H@Jv&9j&zpW2i@YqF7)SDJ3d6v&H>`0q~h)!fMq ztIHlZo{ukOXs-EsknrrNe&;>M>@Pm5a#P+aDy#J)*pTW#t79L3Wy`+r=bp3S3gy|- zyh^(2tNoW9jT;qPTU%32VeBAY4K@HYCuWmXb@%8u-)@!fe9)@rPFTHPwWq)3Zu{(? z`!>7s^>=8FvSZa9O>A25rM9J`5Yw1QX{$InlCXw-D?h{G&@Mc8(RIX^;f+<5F<+aF zvEI5JJ#)luKeab%CyL_quLQAS<%bP4j;uU=hvq~IhF&>VkU1-Ld!)J7)$^Ct2FT9% z%CWU(CqDL~z5P%AjGg=7b8@Sye4D%@tNFazms($Tr8=OnfBSV`w&SfUYF0G&l#Fbi zw=_YkjC(dxHCU02ocrE4+QxhDlT1o;M~SMAWA{>=;_&5V@nVpJ@)yx2VcS#p8C>TD zrZy_zp8UvUPOmjo7E=mHF4{A$DvvbY$TGH{+~@~VINuQQd-O4}&X(rD{^gPzjk^cD z5B59wCvv^XeQG-U&q0cN5StxA{Qgv| zov^->`_cDvJt#bUk)NDL_{BBxRNq?UX%5~GN+N|R%bp`_EnQW8$QPMFU+9*30BxNr zUA*j+{xarKJ3?EvM}89^%9iZUD8dVfB8W z8f8Nb!PaH9W9TmPi>s$S)$u%Xw`J)rgJ-2c@PWr7KCuqy^5_|}-!}(JC`U>Bc83dueFk#=0C{oq zhJ(qBo=1EYq>d>4J`EF-v29$~vD&4}nzN8&Wl2GY?Y3PyyJ_9qHf^X$TwjAfepi?u z?PVg#n`o5Z?D!!K?u$&*Z9>3xT2P3GKAFz?D7T={nfn#wZiJWIaSck(%8SU$R1utK z1_t;;)WwPTUs+lD;Ls^6wi|1?JAtEyCc&ASJyCuLusVNs6EVae0m}uP77V z7)>2>8tgbUdgk~JUY3hA=LR2)t{KQHOd{M6dPclW2w#3U5oxBRsL4+^q#^&527@|9 z6{SHzBL9JA(U=*6_;K|gtL7JCMdf3+;>apbhqQ|UV+?@ejeUswc*f7&3K^=k^vop9 z^&x)Ke4`5jag>8DWt#F36{aN*k>vGbBortp4?7DFf2FHQ?y#?49I1YDll1 zfAJvSMIs^N%&lTwO@JC3>o$4#j7@&+8_a&wTdn%82duifDtlGgtA!apao(yw_GxRr z(s%c!(yy~%z;Qd$;mv^8kAlj`{g#FKS^#zKu(Tgu+q|aw=aYg=_dy`8W#nOAOXM<4 zWh(kah`f3J)b}i+GNQc;3iz4x-p0IkNH1SNSvjepb1M9jj5G3y*Mj_952pQWPziH# zi9n=F|1l*sO+kCXdmT3fh(CjiyVVmZRY5 zI*IEoL00ym=g>7t=EQ&}tB;4KU*-sVT}s$S_8b6+KzG0OWje+vfiQvm{%aN*uTfWN zYyHRFS+rOFIGUT6V@AVm8}%6(R&4Ekx7(@jdDt2!R{aO)S%_~N8#Nl=jx`ISAz)0# zf|v%(?*a^}l)z8vX`rN&f@$rP@+!7*=&$I)uTx^knuw3Oe`!1@;l)~yfB-gUyh{DW_{ zXTIZMv#xmXrPh$+yau*;s*tF&u<`++w+V8>f4(na6el~y{EPwd>Le z^Fv6UL+qy_oz)v6eqTp|UR7Yq|Gv7l-hG=@?>}On`Cs4XzYjC9UXo2Zn7~~3-}JwI z&?*~MMcJ{&So&5Obd^tQH0_HQu31lIJ6Ug8Wvy)#XRWnn!-3o+FJSzDiAA5o?~kAZ z;B#1ZbA|(}Uz2^UG*o5}+LyoY4c0%sYSpV9JHqc>DPEfimGVXX?xU;0SUMbAOJ&j5 zc%DsCHmkZS+X3Y({>+;A?Ivur!Q4TN28!#yktQL01I9)+RQ=%Vu-3_=E-#y$T>T3p z<=4NcQrX3eZ^&UM*R68;xa+x2#xN4*lC`F9PPUsZ*B^0fleX?9h5TwtcZ*{pl`iuw zm9o_(KO6|(mLB=4Uy`fdC{2PY>lN9;&WnB}+-%;$v6i?B)Q9=?9X zmWii(|J^2O8=k%gB6pwfVUH`y`{t^(p1xua{Iw6;9slxkUjBoXrj42nAD{Rlth>Jbi&yTjXJr3=R~YKtDQ4jdGMH>_@0NX^~TdlwxaH+)Rb4` zLLhmNF((4aP5uFRLuL5ahS^vR-KDRhg7<5T1>?y5`~3xR0CwTFfo`Az1v`GHxwoaZ zOnn4p#8)_Rd|rSuoW6X_m1jNqwcwLBIIyea4pAN+M)u=GoGcqDoUU#kv-DDV%mPOF zgnL|B7n-Lm1HzP7kym$9ki~qlVR%lQA}-`M zE?L=^30;@5OP+!P z5ub1_8|4!f*ChutyPHR<>x+EABAMVwIVLO-dJmL!R8C`=EP>Dm`B_#L%aGDqY+IEF z-~Bh-dq1Y$x!wR!xi6d^5YvJ!?!9t&A>Vr3NM85SBmMAUv6sej{Vd|WOqT1--?U5? z@XgB$c$slknZxRAnf*$wskk!a@PP|p3LLa<;uSpJZQk?z(XA|e54WA3%q!y(;+?F({oCH zs#pIjWUFG!Yye)QKLu`FqchWU@P!?Enx?aaXSh56jCIse&!Kq4-~}0?tfy%e9WH=R zAkPPj01+Mpj|k5I**kuPAzYO4RF5V8p$G5O1tyO8g&dJ~lt=muK7|Q6oLAAFax4RY zU!(yd4sWsgvr6744`RWwEbt-@Ta%=no{29BGd#e46%r*(CwSnvsQj4#IdE zn#|g2+vj!ssH^j4k4+QB$1D|P z>}De6{nZ6JxLN7u?Lkq6W{C2Yds**!yc@@?oS4Wg%G)BhT&Ah)3vBOe17V|iMcs{5 z{|=6FIk50@ePwg=>PnQ$LCf*xBk8u>_Nif#0E_irM##Cay#eA?&S$Q7+N!{Q<>7Kh zI$T3X`F-G3(ce7C-x4j%5PC(&zIdi<?Uy?il?gatyEAP|3BHI=ZlAA0|8-dG zSAWUdt5e5s5XE?ly6IPq;U^>YJ<|Ew!^f@t)^pZaZQ7_iRM4Tfj)WU&TypUre8#Gm zMmFR;INqG6%!)jx@?}ehXYrIiCUuQ{WdA-cda-9u{Qd8-M}PRIY^U3^*L~xC_UJoq zvw!`SOa41B;~`(4)HR9{-%-^zPOR9~OWUlB+yDNKyY2H=cI@wd@ddM$75`FwRFP~N zQyf7&Hvw!i0ZL9RR?caX)qxSnh`m8;5`I^RD9IG|ZxU}kfTgTgN|9a-iWWafL zcKq%QyY%7}FZoBhELJz<|@0|IU;qo&5lRgF!DjjAqmSovL7hSzSt%`RSe*;?J2ZL3_zf8ZOf_B(#UDmz{P|df7H#xoXe;x;NSA>XzoO%J*PwXV)wC^~X2uUp;xrzwkMB_LyCK?s?Uz6(v`- zGplubnvEpMd3tT#E=$(_c27E**s0UU>=oJfq%QlFO;yL#X{A?XGfCyk23}h;`5k^E zZD@TIA-k`e%4)Dn^^e<2RpZPq6dmO3V5k)dQ91n(TS3 zJa?|DywxVG9c$S(Un^8vl3QU^5aJ-7itlWt3Cd6P|H#QzyZjPgHb_>A2btKAYa&&} zj{nn7+u2V(ulZ=xCelC0Qr0I8KN|5!t!@1=yROQ^Shg$M>y9e+$jX*|s(-{9YGYQE z0iWYu*s;zB-e4Dg&s%JCd0Td-eAM`@U`ZyOj9%&6#h-uLhA%1)4eCNWb>lJ!HXZ}6 z7D`e##9f5su6#@Zqx=eT|C@!Je;M=X&E|}$?cR-Lyk_wnb8(X!#mFXRq~Re3ReSL3 zPpO?%IjQUdDedBg*@9Ot5BE;RGhuUo+66$nIt>dU1StAH<5XjAjJi>#3{ z=cgs$!25WIKAlTPw< zBh3hhJqMpf@&s}oxm39f4)s%PBqqCncbcE4_-Xw&#Zegg)8w6?FrN1!UG9CoIKxy{ z?iG$>TXTf}e5`~#e-SS7wJYz%6`50N3FUaXeBlO`r=R5YdJYu~r}@g6+)CuT%==+3 zV|gP~YLIRfLOBOPIX?&0C*hom=j%nJUN$JOOqRpsZ>}tg@>^7ni=H6{V$fVU3QV@j z3(psX7#0C>@ozY=a`TP@P(kVKD^umu1%iVvV0raXG^Ude3 z*!m?+oVo*rQ^Ti*zNP_Sl_S`A`;moy<=;0`Ao9!Gb5m;ibLa{3fxZU!5QBWkCv*il zAMu6csYy-U?@8NvPQ&V6lTOYp_pf)DJT{b;2JXnkC;#f1{K$oA95x0D!kzQIAwQO( zncSRD5tc~+69)gGL^fdL=aY%T58`=5`ot}WAK&$KHISaPG~T(+7Rc{!;f$-i`*u1<6Ljf z;SP5{p210BBv(#GTGBgbt=Ae2KZb)hTx;s+A>7fK=UEf&G5O`KRD~t)6;1Mz%neT~ zu92qaNzeY<10sI>x7HMYQKQ|m8pqkm9jb{xlSZhzqA>0zo~tdZ=pHisxYsqPwj!Ns z^2U|$P_-q!t>~U3CRSC)SEVnGzgU$naTEXQn&Pjw&DJEd;&YwoI$q<=UzM}sL6g;# z4r!ZY^s9(-&TVx?Wukg9)-+ZFrpb!Z?RTyAiDzu`V;{5HfBcdSFJJXMjAZL$&7}D8 z-Fh$8UyjHOq$WX?nMQ(krJ!hMpcq_UFAmaPd7Gcntp)@28%ZzP)c{Rn&@Rx%i*9DV z^7Iy^89FcPK4d88ohy8D_v@isi`)*mUv8J_&BC;JbP%~hhckVuebK}!O?sh&BFVL= zOai<7NTZls2hv7+7LVRnZ8n2ET1tqoS(xWBci_c0HY79_rmY;cbyfc8pA?RH$dI{(;xnYv2+i}# zyoN<~FB>=CqCXhcB*!sLWg5z-QdOS9X1MQM>S|b+^2Y*g{Kzs?tJ4auMki~h#r zFWC53oG^RWIr9?*cGwWC`|loAIc^WNbu0Fkhi|t({(*;V(j7`C)cdZQiN3N?wSjcW z@pN^5`^#-`V%1?PUT2d*&l+2u;wzVl z^%ai|tGaZwdDj`a4^>1X-xzG2IimTo<}R9RweC7;jg?i`=a3DYV;aW;>0p@dqzCD) zQnPjkJ3+n#%EQ+Qqzc>zloPhlXu3I!*)Wrv&lxr6>>rb!RhRDnhreX6|Hq%P>Q&V` z=9c2kQCStK>*cM9{rJ<{nnw+lj`X6sF_Gm~WXEqjU9%s3?_Dwie9T@NbZoHGRsB(M z$!`56Im%E4fgQ7;?s^-saU{Jc&lR^{HrTLlS%We$B&W(qSMwBf&0OF6Vcq-qiuPHh z6KxRl_svu59#n{GrNMh4JOinyo8` zZRxhzmCRRVi<0ZYy+_P?3L`EovHDmAIXcqkrrM70deDx&|8>&2Y(VWEUp@NbE4oxb zC?VD70QWg1s4$&o`6ZsyVHeA936d;%J`#%ZTuKFqw=ix79|zC|$v`JV+u7!r(xlHQ z^K?yZqu1>M$qoA{?jyI1kO9xR zZio}ICikSj$Vc#@3yir9Q1GdLgaOI&l3y7fhrG;^pThk_RLPug@S%PH{!Tf2+u*tP zd*D2{D$tCGLA{M~ndk5Rg-)i=0(#?~IR5Oik$`kK<(q)+@-u`7O-SK#_kkg|MpGE!!u zxiIr=-LITh`MHcpBW$Lex$vKpMTpJUKrU~7zYKfHwYS8F1$A_WNY`!B?`|F{4}bmN zh$Aqk*jEuZAO%??L!O2z8V%%OkW`T>QBudvRsDWAXx>AIzL}u><~GVe5%4!}ycc1= z+=VWoyc}_NgAs$h%5$&$5HE~x8Opr(lNS&N9nhJ0ds~V`J|bNPp>bbsJObolnGHwW zJnG^vrDh@2)faa&l=bB0>NoR3mD6R%9NE|;7--<`8xI`aQ1EMtF=1W)a$MOt8(nl7 zVMk1OyMrJvg5vL#kIZUWL2(1mKxEHN}^o^VOrj*(J7~ZZ_zPyg3R!99IbD z%ZA9wpGn3Xm@o?PrTiI`?~<_qJn_R#W2Ou#&-kbGRbs@8yk#AA!0STJySOihj1C%* zcG<21(fOqLFuF^+kGuqb&SKt;sI%13ln*eIFRrAM_~sxSb;iSMVm^zPkn`h6jqsh5 zt%wu)_4|xXq?zg_1F_`KSAQOk#Q`qGz$}1k)D8GXn$&lmgUSQR2nQmrhwEsvy*04f z`D->7vB6v64c?~ekWZp!@fIP^AJ9~-xJxK+LM15m1zv(_(y?w;J7v4b%*s% zXgt&zSfkGoaZRg_`ss@)$=NBu(+H{9E+aoINe-0Fiv6bhj@Zw>ykjq3 z=~{KQX`Ab7cIEt4>0n|j$5w1S99n0KMbWXHI=5*rKYc~E#TO81k<=<}$*^O8^v!qJ z|M8jUm7Zkoa~#;f({63Ftb2LO>VulCKD1`no|H_C6URg4x8}#jvH8Dp+lp_1>|7j3 zrvp2A*C~7DxeH38>c6p5*Lb$Ot=6wD-AVrHXefP3hC#>9+;>`XU9$1dJ}X(2{zwHP zd8=*FR+Sm4>yBuUVtgw5=;ISiRDc)v$RbdBy5oXO7rk zdiP!SP5<;$3OlhQt4FM>GULlBzCLpss#k5jQMayS7=P&{n|xu*Cj2H3dpp&pbk((A z@wWTyhraa=`;C9@L&k5EJ$Ua?`^xidELQD-FFkMVtC}&kn#vg)kY0S!S<7}R1KF}{ zK=N?N4TL$xD9pHhblXm;GxjtaGTk$sXoJb~ae8S>tlg?)cd!?AR~7 z;4iqTAnf8hPTSMp|0bJUlE!7H9N$Q@ROd)dKLT@TYezS&dtuw__3KZp+h2I|S^KV^ z{-V^{up=jqSf|so!B*GCt(u)We$-xm;i4F*E~<=~!|{7CHfq`*c;j*VkH=Yi%M&|FUAu)apy_9`1mE8 z$S|9mY~WO_-xE*fjm$B0VRM<65sz-J*~OPGC7#j`VQ8)R9W-y-d1+EMR9$b|=4W5B zJOBPK*lNFJTdS%oVm%(qF8UqY+EQHcZXA)u`5i9BV^fR|@Hobj%?3$mt3%Zfxi#5< zmrh@P_nr3iuY1sHDzB5gbjdnFHrGbCw9)?Jsp>Ry`-`7DZ#y4EEf8CP2 z3y?;kC+eZX5G~n>>ZkZ6w}O9x^h^tv{LAC?Bqtj}ikqA=9+6Jc7iqD1;cn1fmxuOZ=lR0K-h8`*go}n)*dD9@C)8x z>ZhxJY*K`WkUdY|tK<7mSGV; z@{q@2vmiG8a)e9D^P)ruk=)BxS=N)wuj?W%xr~v=uz3aqRD3#1clQmIc|<3onyvse zva=>=>Q}hsl^Nu6`T$6Sz9d8H2I=BcH9&VOE*%kol z5e^^|I*8}wm+}{KF_{Q|(u3!WZ;~*tula_{G;g5LA?p$#w;lLT(<{;<4VNR+vxj5i zB3^t+=eDIf5rYw*5EbzcgM1Th*@FAjzN3T`2YIG86!9`;c%E`QR_sM(k|WpUJW_fL zs1JhB<3W&@(_!Mh+MvAm(_d~^zZ~$I>05Ou(x&|P(`(?yH>7gpb>r4yUdPD4DBWfG zn$~#7^+-(mw2Q9iJ<1!u{4Gbqvxph+_P25m!;utRrq<^R4^&hB;LaMvxMJG z2lC`;T~E5jBzE7pW&g5W&$ZjXd=PzED#ryj9c3=$b`tl|pOxE#u#0ruPSFRUv%Jjc z6N`9XEA8;2x)A+c_|5fyJ}4^M!-*!!3NqoV6pb_3&S4{lb;xmVXtj3B*4}*DT5mj| zT3RuFqG!laY{Z4fg0xxWdFiDsvxXj&R`uC|jX(X0RW4~<(;Uc6bx=jfqPH*pj0PIA zOXrO1*qqYcm`xw-TQ1q8uhIz9#nG{^5DxN zFJB9J-X(|6kd$e@)JpmguMvyGHRDUp)e|kd_Tp8AtJ})44IB3Q*4yd2!K@!!wJnYn zLks>@m+nRl>1f9u|K2y*JAUeMyTk&1U%HWhYh~4s6npurFN=50*6uiBo%1~#^!t8- zf{)__7R6W2toc_sY)G*Pd*a?xcJaB(DU9T*Fkc#_G2n<}#x%dFF+P<4$#W;{mGhU) ze&!j4!DefcaBSnQX3S(STnUgy< zl`7pNWAQ~yRhjMADLREypo>57F5CQT|HWDxD{^G>sBYt{8kMUk5Ea#SD}8&@+NS-< zcbv8F|EVvj%;a8OvD#R6Aqj2LQX0r2S(X0k#+ucuL%V!w$3|bgYG3-p@3n`1@F&bR zTlTI8PuOpG=Q;ZmfB%aU;UZK>?5DMU=Kcd#n!jBY`_9zgD>GKe&1k0 zn~lLi#TvblbvNpEUOZlY$7x$RecU&L#(eSO$AhDnu{ES$zN%saYk>X8j*s7e#x8&U zCF3`nsvD{c$JgxglNWsBp?R!f73F)V@Vsn!?Eces<%=))v4MV!lr$Vf#LRO_}i8Ct!rvg!CwCF*&le5jrp-JHb=1)OxnNT>lB99&%XIi`<|cryp7sb zTRXZ!m9gH|j&JC!t+xEgDr9F7ty*bIR;9HyvKN2g>+H6F_9?X&vhAVrBs*I>c2xFN zv90GXQ=RST?WgRr>~N&E1DlocN`Fn842HIG$C~Y29{6v}G50!l`*FMc)yuwN#8{s) z^R|@TXhg0zq%)Oavt{j-hHYQkwsC#Jhj+TdTjkZLo6N<=>#D2IZrRy?`vp7pRW^)Q zZBSQxq4MEKu1;U!JAL~NfBHM@EgyKu{?Hr$qMf--<*z)FBy)LAJE=%V{?&}yJbqj3 z(wolM)9-(sjn5smYInz)tra_VtnFX=Et_%5k<*QJkP zrK5Y*8$OpT`mw~2txI{C+5m4jf%I``6g>CDjIZ|rT#;R%UCjH6c^rgyhHM@WNP%>y zYjgdE^x$b0>9W{MT7I-P^2pwfp4+h7?mcP)*;C#JM;!ioKjzPgA8i$g{LHS%r8G!4 z3lnk67*e+i5C+*jd~pSluLO9-ZIWdso5F^l5Nndo_x^V`LPdEx)AaQ` zm6v|6z??lq8b#b3p`*Ywt#m1n9OrlzS5W2wB5a;_zpAbA7lU*SKmNim=O2E+zZTE* z1oHIVTNO^eav5|wiEDq)s>;jjP{5VXi3 zqVYQj2z3~3MS5laxxw5@guFqahcb{esEpi=d+c#P`OExr9)ZwEDz^mzrXdu+xbB5n z=y~L_`hY@Z;k(E@7v(~w_l0%d?&FMsj4GOd`nk*+j8~Wx>6sr<9>Igx#pq<%XAyC3 zc}^_cL)`lh6r%_aOI$S^bdYR1z=P3q$U$0iKA9Ii94d0XjrDzMeyU zE=NJ0SJII`R8@<~35BRuBFs@$x*0X3+h%i~#2*?dB64uNA#bJS#L*F4CoSoR-!9@U zMt+32pm7t@yh2ffrpFHYaeIlFzy?hU;;4_LPstd^^oe+zud0bjrIm=I{i>Qk1aTB$ zHKPjr+tQ2V@V6{=&vAS4>~6dr2XCbV@dLz>M~)fvd=}|*M2R1lDEWgz7L(qPZAu(T z$Qi`)L#Go>kb}@|e($<2%3+%S;yPZ_WRc?sRbWg`r|05J^z@^shX;%7LCYYmILTlW z3Dj%aB8WF0{jJB5bX5@VD>A@Lq;Q((Eo--YP%au*HQ-)I95qrNXfFrp9F%^!V6Xl) z5dH8ndabZb-?{ri=w_nK^I-h3{X{H&@1oK;V{cI3%5?J)`An1s%ex78WS`|PQTgfc zfImPt{#GcoD}D73s@^Q#L9}T;IipP~$lDOH+GWR#&x3@VXAU0^d0Umnp)3sgctrhT zj0YH-IOTxPUKGghmtar(*e~6Kfc!v_k02l0h(I}=GGxcE3J#j5LtxgAEv`%GKPZ3{ zL2g^JkKBgbjtcwYO?<9yhrE0R~Xo{o?sLP|k?)Gf;zI8kGYwxl4*PXQLP-Ds-8wjidr#vsUbLmJUH9z93 z($o0v+^X68&sgPcN9Ct+j@)SgSgfv(#~OAq9@cn5JZlVE{XQ*TE3}VChrU>y#&@Ge z$Lh~sG5b$XnSJWK{l-T&mC%aBV*DW)S*#O{H4dKC(^n@PCB|mU+WLm{BVInh=SwAp zkqkpU^4mERHsti|Rg6MW9vO#iZEbPu&y4YOBmQg-RqVWY`8a>vm#oN{+P<{#%E=HT z+dkj50lyy=kbhcuB^?2gaZ_3zkNWA!O9P0@Kk4iE*|agpCI?O0D;KUQvc`#UQQNMR zRi+xpHWjJgx9ZQoY{L&f=bLL4zEVTCHn5MK@7s?(u`M_0M(z`iQD=F#GJ4ZTr0+epY&t zEG+gb@K^(IzWiZfzSA38Pj$*SIah|()%>B-&^Y=HN9~@wH>`R@g);2fM;|+H|MS26 zipI<_6NGEjFsX@^~cBX(xI%=+kF<1ImVg=yNho*WncM$H``0^JZBBby1K5h zwQEc|mCi>a=|-6x4u@7#hlGCF+{Df=KYm_in(C9RRJJ7x(IfYxE6S_V;SFnktL!S9 zk19WYGYL7pZ<8=^+&p(YHO>07BfD$MEx)*S-yoXnrf5qSqBovd{tc-cY?%0+PRBt>(J5)@1{ewtT2$vJr%+w51m|oCh99 zLVFdXo~CYKY}-2=gD3?`hDx=qvXmWA=OzQY&{udxH(A{g4yGe^WvIumb>z1xuuxv;XI zq2_ng=`lyBudP~bwP|t>4GCnY5yFH(!mY# zLR$j)qvt}`vpBdb4R617Pd`TaBeMuQhPa;xX$2huQ$90(+>O1B!WP6&tV)zRc-v6g~adkg`#zu>|Y~h!aufgaF584MOY_9Mpehy!UareY4 zbTmsZ$qN#XS$I!_HbCBlhjOIwGd_Uyu+Q8L%)+Jo<^KM=N!YcV*w6^sLI-&q=U@28 zbL4R@ABEgdpllzrxP^m|hY#oJ8iB%sNIUc%ZaFAs2W4H9cjOE5d*wOVa^X)uP@v2& zm205~-EnQG{oT1rKfWmZV(b+P{Y>pcmuVg{;FhoNM!IMwHlqT$OgZl|aF2DGJWRRl z!jEu^F!lGp%aP}+thbzV*?vGS$6hGMTZa8)4J=9%H{{R#%KVne8u>1V_va%w7_0%EGu}gh(+NC-7G}qpEbY>Ts z<-F{LJdeSnjFeaYED0bS)J}8RBkj<25byyo18rSL8ch1+fiHAexYi&nh|knDTy(N3 z12#<-b37Eum40p0-2Nx7M$^1@}Dxjem><|PQM+%2bM7pdb1q=`;ate{k;LF9|@ zX>dZPs&X%6O9MvUX5;+%p-N5mu?I-MI%z0;A{HKM#eEPm@VjVG48)K+h$3LZ8G|S< zKb2z;8z&G8In%|ljCe*}K~qE8gYs}pZtDZtsj?~;pLDXo%0#NaWFT=f5H{kA?uA>9 zn%p)^C0wE;6~F8J?}?18(xnJ zx)GGiASjUE?+NTLqlmYN=Q4ORxC_|mGCByNeS}_p*V$u%>d;ywGCf(DQYrrwy*4SgUX~%!#o9)E6 zKdQmUx>dW9`@rgBFZjh%)X(D|6HHnv7nZPQr%tZ(1MGyw{<`9FKUK;<{tv%`$<17Zn-=I zJ9FC!=SP{1sDCUXGm@;e@H^uc$RF?@p(oIvk z6z}nh^6-4eD*y3m8+_@qjT-WA%T04Ej#sNHJ$?nOx+ynalycQ8UTx%G@N}hzzT5_b zzS2~Xaos-l%C@!ZO=~iDkU=-3FOB}-;zzoTG>&UY54=pZ)7`O^dP_DwvDJ-L)96qM zjQ#7Jzxlq`xvn?{k&Um`K>F+T{Eg+0C=L6ScUkN0cPi1kb=a6_?MODhJ}GJoaiu5C z6ck5gCYc*-GIj>m-tO7<$(DWLx4zz<_>TK+(Bcc5k?FtE?s)sj2SCH&&^GQoAvUr; zHc^yEUM#E*($SUtURO=|lPYC5Xjn2*UsW!AIX0k;A^&XFa9kcmr*M-Ia|GQh=$P?) zOL|ehh`S{;bvcJ?10pDthHjGBF<-$PNZ7 z>$Gu;Z7UPZXVHbsWW|r1+EzI<><1q?B^zO}HEsNT>1x+xqOvO46&ql#Kgl2=j-NU% zfh3GT8|8jA<+atY_y5$FJP*WVdzUSDF z8`v}7@t}R_PrS!=9zG+3m;5_@-}q!!+;1rFgr~q3fO2JA0*RZ|6n`{SnH_7}?ce>d zt$*`96oXB=UGZi^xvx-NFH;9!K&sB9c{jQ!gL*^#h5*md0$`u$*D3WcK4#KCc@(q= z!851baQhEnC%Z^CsoeSfG_84lzHujiw=6J|^6G7|nXgb{2JI9e3@@|BPfU>a2D+0ja==?Hmmm^K*0WrcS$a@x zCL<9I^SB^-GPep7N8 zlMZ;EUX@Q|*ycAVJ)L>IEJKu48Oz+!J5)xVr+KX=gsf#mzTD1>d-PR?$ESV>xopVd zeoL_2Cn3*E&S!e(W5lHIMes5z?m_Taq$7~E8U@`rs7u$4J#=?Hm@E5bN+{!iwz?-4 z8Qr098Y1CCLEcpGlaV2yepq7$9l5Rh+t%8Z>MZ%zp`pcNA02cUVGjw2+P z*OVy@!f727G5HEw!P&A)RgE9FIq)tEQTu*GG5q>%L@;ewNRaq3eb7bkc zKC!l>V<^?hoaP6FQ6_T;$BYucw9%Jis^1J{o$m72qnp$rv8cQbUWPY@NGH--mS!I2 zMls*^6pmlRh`g7}yNtu=XOTX`<|3W2rz!2pKk7?XZ}tTB?69;1tXN*hW<%&;kuGK^ zr<>Zo9KMh`m;QVlwcb)Li$G~&%#}7R`s!unI-Qt`@(J%;c<)cuzKf>i7Wr|%l&?Gv zX*$u$;=YU)0lrIhbrZ25ouZpakbL;Y224yq9g4TBOqb>7W?+G=uL%$#%AETWEw^z& z`f(d6^yFa=nWxbCGD0qIZ*`rzy$XnS9(y0NBfvOKhEy5$t-7PWw^g&Fzvclu`2&wy z{aC}goh=Q~yVf7}RQKv$XB+%@&OYFSdB&#Iy26h1z{0Y|i=%B=-gl=>zUy8a zpHyA$%AIm@JJvsq0qWI;HGJWfvDC;~jlLaS(Kx8zD;A#AVn}CIjwd^P#M%m4{jZm8 z#P2|KyH?wf11tWTQ`Ff-NsYGEIYEJ8JL8z%#D4z+XY9daO*u4d*c(~r(#!q@2B1|M zjRwj?(-%+EQQ#WW!k{jFsV%GNezH=x=U6ON8hnj4sbM$hSM5+=vewgLe5J1Ort;5b zm%qfu7bB{x9eivT4r1UhF8jP$V{tY&eR8G`y!VUa|KFK2)eKt^)4*iRs zkuOGa6j7xQKj{HmYd39FYgzS+SFQ3Bk6Y!*u6^r$r|kE<>2@0pd68~xCr_@soHg-k zs4T{pls7%I;q{5{d9%IY#Hw#x`9_Ltf#2(5e%95sJLGqvCf22Gm%h<2qqtsmAel#g z3>}+&%_A*8#iBNpPNlNn`-XEAs&uCSl64@xvbe}AW8eHwKI8SGa#zjT-*LZH-+bIE z10~)W+3EFlX_x_WJuRT33;G5&Ep}7}M_280zwrV4((iq{jZdvwvolnhN>?(l0Wj9! ze#AycGi}P$kFQx%SLRg`#`VtEKqIMdK$$9!*bbYDmo8ngq4LP0ZrTKty=zSF^D*C8 zp{%8Ubcn6NU-e+;!e!s!^cM*>*R6ee(|VPG#`Y6yJ#>eSRK{oj&6n)$fB6^eMloI5k^2ORqB=U$rmSl z8RtwD-#6aG(7%8Jx=?*+e5eJl4Od`-13 zfsU=&%HtR8&42zw_Q=2df~m?{e@*GP+nTR6tT$W}+ot{N`(CsUKk$^vgl%1I$ z|7O4Kfxm1Y{>e|+@s*=qR;)|Zw)@t+(zWyNyW2kX=fBNf{?!kt-pC4ex~k&R0cC}O zsc!K*W1bboU4&@Ip_WAEYud4F8{H1JJGT0|H9Pma-e&7>xlK%Di#y~|I`a9P%8uPC zQCbwoEl25DX*jvPX3y>h#Kl067bWrFa;y{3M%u)6S)3Kq0O&fYMh0&9j zK^`6%kcHdel^z{)VKd;ADEZ}Ohl{WOaj$DRe*TPHB+oS{;zZe`O~R6l?p{30Yu-Ib z@rwHDev05!gyG6Yd*@o$??G;Vhrwavr>OENxL4-l#4{-M!#C zE@(dx#!ZU8WC`#6(%dhdJ^hO|V=rK5H;RMkEn0vaW%1^G^UAwl;T*I;_5uUxgJon1 zFv0~CvfZeBhs9oLF3YF4#aV?Z>wUgK-5cdJ_R{TMejwN3UimsGJR6a>Aa|P2FS^JH zl;m(>cIX zUJ#QiC%N^8C-R9p@)YC)XOR#3b2;%VXc>}iDqb)b`Cuo!WBJGrDES+NvADB0a>yKtjp`?q%Q;aX>i?_1KRKD|!d`2GN($AMA-DkNE~wP}H0J zg%1cB=;8fZj7Q2quAuUB*`}4!%#Hk&=~f`)?=mT0E^D|K?Ih$nhjPR-I@u44;+EaY z$o(UHnO-Acxk0f|vJ{eY+P@3lmK1TWr(IbF$|$|;qI4hzF1qGz$JDQ&srz*xkH^;} z{8m(Tzydy-8x?E4=XN{uTi$G|_Z_qGMcELG&~mRRY?FLz;DK6V@oH~qY^eI^zd<8Z zH8|#Ll7183 zJA>p##jbLynZP0y8)1_=$7$(V`Q5s_W8JRgm}u-#YZi;^j1QI2xR&0ftFGt|O3{U5 z2YsWAFme!aRVf>9H=R0j)ap&X(;zMWGVaxwQF+|i+Op1e*To?w&KgU@imluXKhQl#?!-Krwf5yWtq}Hop(0bbtOyyX&)8?9t;b z*F~MpvbHs)~M}x9U*RJ?J5$#NG$nV4?uc^p|= zg|Jf@sN{N*OyMNg9jj}K-&fg7THi!rGpNI$&tB|xebbU-Bl+E4#(%vUzX8SOVba~` zn)2Qm*~&v}Hu?73%pTaVPd)R3UEAsS=FDWs*LM?ZZ>Ra&^Y6XQKJ^2yx8VaPt#)zS zMzZ4y8yu=@O2T!-<|^aqrrg<-ndr*GJzu{t{%^7iBQ*MBTj3aR>Cki3R~Yf*<2;@# ztKy?_;p76+RxmdQHX_()sQc!m=h!;uuPEQ?nK8T{LoeOcWKYNb>vQ(zzx-i4`HL^w zmCcr2-K73>Z8T`w_CWTaGU`>^wj6vIeDMYey(>ezw#5dYW`sk@taPx+ zNo}Aq=4&T5*;JB}I+u|!-gf}rSlhT*jIa^$C}Ff=rP&1@_F zkg;lwR@2t`a%;6^?F&2hz+d~YJ^X)u+{WFmZEwn7d7?bWBb7;QXx(w&e(TAX?9C@$ z_F)25q}q^eoLIBQTE&hWJ!ZYO%CM_;PxZT_w(gUE>b>^tZ+N}_M{OJuReeL1 zaY{N$6#MZETf=MPK2Uh-9`%)q;%z-2Ms<6(_O^3&^7|jK+I^cgQQ4|;D7?zZf3vG8 z+kk(Wl#zn4PiltP%SUNIl5lN9Y`ZdZJS?C;#J{oY1G^a!v7COV<$^8nqBAm-10`$&dODb8X2p3`e zN}Vj8J#$J6nb|<5yYq36h#^OkS;+MyH{|s^=y}RZ*nK}QZ}_7Z#@F#2SCDj(V3dP2EU(eDX;b-v|fOMb| zJpB@u4wGm{inatGQ~vc`8Pog~@H`j#36Rzz83KjM<`BBbk$CUMqWEq*B|@iRpL+q{ zWnoAwPj6NlGsoP2X-aeR)p`BQmCX{pEzGkJare?UNWY&2356_)=WdB>r|$T`pTRj~ z<{I~0_EYF`EgTH|uqxO$ox{L+CVrlWxOtTjX)a2)oKK#UxVzoUz-71VJa+LHmF#gL z4x)cTc&G#LTZUy(!=(4h_nci81QyCJC&J?wv<&Vu_1+y0myj=z$Km2(isu}8zNok~ z@^n<*iOAjUUnF0iW>m3$SNggDhd_A06n`FzYymw?Wh%gcWp_v#Ryud?iv+mWmAGEU za=o~6MND!OviJZ{*PO^^;>kl15BdFH@mzpuJI{n=;_Qnba$pjY^aU00!2rT% zG{^0FfPEDR{!=L#^)p?|k#ZRe?$N(3!<;X5nt#fmU-d7L>V<1h_ip7b3VIA_JgK5R z2tu!Un7j-Db$FTItBtVf>%oo0y_E>vmMQ(&AC&2#Ow#8kA8A4EjN}#I75@V z+F2&(Oyt!s629m$ot#ZUTyhXL3;L*o3cg1|9#c5QUTg1DlL0cHgNZ_6_%K+Q0a@uiB(3Ay^dW z>m-=ft9I$yj#b(0sr7Bl?~1;#W20x&ThEn~4cS~>!4-#f@)5_RDeY0ie)g41_SI{B zU%a0*(ay+fLymQ3%)_&w@!(`Qu#MwuwtcOmJRukP5)Z~ko<~M(9J?nSu^=a<5q-?b z0?43zu57lg-x=FTa=R@NMyyywW-%-+N{J-j%CWX}x6|($4K%jt_j=+fooEb1{ej1% zrTlKRtkSO8+D|@i!)tu2#3lmrz+X?4xwpScLwsv&R_Sq~HtbI6w7E604}bIp8=qeD zjgDa#v1s2o*+N!O$k}e2efE{EU6Bo}x108Fzx@&WyPtnn`X1YFzVD=c>)o67A0B_j z>aChJlviGn8%V|v+5x~6`KAX8wEE}2r_~+#*GX(HO|EwQ7nd~h zw~_3CFMnhbHdfjj%3tS&Ynooku2x&tI=*TnKR(Q?eaEKt`;vBmUaPix&k5^a*s_}9 zjio!xL>7W2%S>f_HMz?VQ|!xjjy!(V?*6gI?D$8XwmxQ!BIIA4$X+EcU-`V3!D;DDQ+&n>K0iLT1(aAZby!;x@{}Ba>Elp z4<>t>@lMHjfFgg~L2`4OXNE`+al)^VE47z1P;QY<3Nz!0{FF6>KfsN(`IqNG(Opid;hEOazi%U;YgqEdG-Dc9Yn|!->*gZoRWJY zuxLYxXWYYY=AUd9%)2Lqe6%-6NfFM6OL9^w&fj%V_@I9_1yyG9!oh7LPXT`TD;BIg zjIZ-Zu139P+iJ@%KC6DEh*Xv@%JZN==S#!W1};DzKGL6F{jV@x+KRO@=5vI?XxIss&PWm-y%Q?mt+f|r(I2c8MDUY*1#L$?0TzEw%eP9>ybMOlDK*N zFxo{0o#UWI5_~Y8n~7VY%g9sc1d2Bdg6Pop!}aEMmZzJWIV9%IG2SZjH?EW~^1=Yk z2Wd)fx6G-t;cF1@KI9+deyZ3(%ts*x-n1FLav|aQO=g zxPBH4VtiwRn^O3kN4V$yfkpYx5&n5xWB|DF7H%SU+6Br#Xi=E3vofJGD3@P1yNJ5O zm9~JlFa7Pjtc<2$5a)WM3{pAlm-mAq8*p&AJv4>vshUAM0xa#;>SAo91!@72KdrWI}6ew3s9 zybNVsT(69aa1g%NTkp~rQ#pY}ZaGqYn^9nq+pR_DBXpD3$Hho5d_d%k>n@-Zk>{SP zDCZaBh($!W$|x-id;2hgB{p~VbubqOaUKSvCk8q2~7aVonlWrN@qSEamL>XpfS(g8%K)fl3=+_QaCX#{B z9;1*4xxAe$?A7Juo~tOA+wXU3HafOyC%^MiJNf?mtg>FSL8s?$Q@8nQieFrbK3Y#4 zUB?$d8m#Gg#%me+oD!e`k8j}8wX?CrW&oQN;=xzne&n9&rrwDocZD8-s3DGU6tgh~r~x zxz}nM_sC7WeY~$hCVJzAJgX|tn)Fmw+P)dJ^0^E4z@Pf}_Rvo}DKV92#p4SzP^~r< zweClZ@%0xQ9UMhHW>>D>uz&N3XYH^2yH8v7g&nK>=Vxs2OD`yr%A=VC9!g#x8#QY7 z*FW>3J-aO)DpTt39Y<9zW9eh4XKV(2sGK+*VnF#YR>P(%Jv%8m+05*#P38lveqH+4 zwb88F3*El8>TIU8tlC#rcY6M%7GvGt{qQ-fatf&P{hGRu^fgdroNSL{_1IkGE1Zeap*P^TbH1$W z>B{d7QM&wI>qz$6P~IE7J+A`eYbO@P{r9~1a!bww#i2@YJezMqV(UywC0~riDH6&X zb&RR&`ZsCTt+73}v;XYV_R!z`n5|sgvB9e3l0JCxjQ+5}JW|?PZ`JH~oP0%*$98^{ zj(+4Fbf38PWHldr$tFMdj8(2|xhxXUZIum6Hgq1pxUFJoD*qj2U02N!N41ep6W3Zz z$%bIcyX=N~$=Kb0kBL50@=oe(#*S>`?Y6BPSx+PPTElvsYicK` zBYMWRQHB0_V8P=vPvz@6DaCD_ex2hHnYIc;*$8r0R#YhKZ9DV9C+wa-`|s`cpL)FyG70^8=4m$y;ay!6wo4ejroKWcCL%)|D{YsYM@$}xld)>_w^9qFRGWl#K? z2klFL?py8Z*WW1}%ILQF%`(XXH_9xDn+lG5T|7UMmm^E#E4O8!jQDwhiFh(D;5AX) zyx*g28eQ9xF2>!ewa%{FiSK%yZM;{qr~oHBlnu25gkwx)9xOx2I zUmy>kU(5Gua#B8u=Xw8B=ff@Z&9k>D0(7AC6J=qf~dgYJ=47sC^-< z*V6)C*2VoY3_;pUMSa#q#zWf3gvuDbYlX~VPARo@TS2)B0wa8GXh zpYi2KU(+*EFyu|`iMx3EkyrkSuP6u4E>V$I$c!U{#U!5|TyAI{k#~<*@Yo9;b^$qe z>BLF*0a^(19sI-3;}mwZ7yKw3FPJ4%a7=F^<%Hkql`7fEtH&0z9<_7GoFP5CY|G@`2&`m(8*vLsX?#j3RZTI)DMVk!l=`J+a!uf-Ao}#3qgE#>THW zXD7bxVH<8}?AYl~tD67bNTV)p#LeXL@)8f&lFpt;@pg86rM`F~PT~O-U8Ps|^rgnc znv#>Rn}&BEv&q?}+2xK+t|~x%VAr-L_NgbXTBX)tAIK&x7NGep)3kszuGYOvp75JR zlYwt;OqvZF*LqfEzv~MZZE{TkPOn;RQ*rxjn2DDJ;0Qk7T;W<7N9*|rTh$(CgH`KaR~|Pp0A%)kJYTRt-Q)@GA7)_>WvlKIJs)umn49~@%tyN zoU*6nFUxt^DBVHD){eBSxmr^gjq3+}Yad;+?lv2Q(oIceqBe?S&?YU#Ik{%7XRp{@ zKl&NF?`OX1zf09$tJy2(Hf=bd4K>+EA%`O%zsY85G!rYEs8VafXwPhR!a-&gu0d+ch* zUfiBotFAH>GigToo7l_J^NU*@`^;74UFB9$e)(N3bi`4LEbwC^wThk*kp)EA>1a5# zAAak-_7^_#m{nI>cC23Yqx1gTa~-QsdUoXO85?!4S!JbSSKoZXdd<4E+bg!J^tX0; zzCl@Al^tK~`MXs9f}7i%@`}AEA8gdMREOAzVQWLde4~Uz`1;aKQ?jx7FjQG`+?sri zA4lVO$=+qzg!D2VHmuvHgkWEmP-B|HYfAC4W|Hr;) zn=kflXH#zURn%JyZ{=ys?PJpm0NlX)~<`H?E6#SeZPJBTF;(Q*-UCf+u{65 z>CYq6iK%?(8~OU{%;|NzysZTM_v2*G1LfXPyl6zb2247LtyCZ9LyLS0aciQKE=<99gO~-9jI`3WS zs=cEwkSC0TwuxI;l5TXRj*1ucwyyT1wSsPoa7!@lpJ*rq=Y*TP>!0|yRWFCCC)CY} z>hId^8@BO=GuG?Nc3!+Hx70RJa_G|g2(^zKZSG%%vKbC<@xs155y~wYd68paqo{Hs9m4f<{fLY|Dw#% zA%O~!xR53GYY71Z$~V%F>vRJ|G5mMCDPx}9A8StQD3G(3KQCAK2BSCN3h((<`pQfC zvPn<6`qwv#PoM&E%HW?k0Y9`NfZ4wQ@Q2h}yVECjb36!VuDRUC1GK z;`-)_+&yOsMw`g|m7~OBQ<9>LeCC+yA#=}V&1J{M2|xEnI`mN7yU-~d@Rci#P3kVE zy!3}YoG+b%87o@+bC$@9b7JVaRkiWB9-nX?B89;ei9?Xm5Cujthzss&G8)n!=a-PZSRZRU3aeOT+ zF?Nsq#be|ME)QaBJ{BYgV18^{rUUgpjYIg0w?{?eIWRbqI-mv(wVzCeB- zKt5dE<})x(Du*Ubzlx8i0srKb>W_D!$%UY92mT~y$>sGv{K=Eo5JE<%*6g--qfe0C*Tg8S|rWFZPU(%n>s>tK|D z_*{%C}SvOrT*(7Wzg;SV7OU%4K86JRK1Y~)760{ zIU^<>(zOPRRZZ0W?PwO9n8+)Ji(DdaCv-QR5a>B*4&=3DvnfdN?A(@vfmbQ|G<~jc z*bj%%;lehlz|AZR=cGU07n0xd;7k7R$FRzyY*MepUmpuILPcB_%(+skH>U&ud08q246c}^8U*TRJkU%`C7 zz$%D=oz!Hrnw_&EJe1pD zVk>XI%Z`2LBi1^)VWWQEe@lh$li5T-N%TuBVkGU|02IB$B9F_)LKD~I?xb-YE?yl8 zBWksq-hU3ZcdW*-To0YJ%F(9T3tK5*EgkX2hBEb+#d==AQIBiYrsQU)syDFLon5!B zVa-NEHq~lY;|mvN~T$O$PS;4;-^kZ*}Z* zukd?E(h3VhzF@C#d!?P{P5fEu)p-NXRO(( z*)!XH`}r5IS*0l*@a4#nwhdm9J@A{O+g<-!slBoyJq&DgbzuHmzH;XaC@jqvhA1p_ zDZQ+mJ8qTU$R@+SFWT~ZRoDSX9QLKFmfG;HCL*q{Yh7KbOJl3GTUKv1tdAR;S}Lzb zrDg;4E8e}G9i>O@R30X>XZSWJHf~Ss`~TkO?dVsxY}itWW+Roo@x>SlM#Q0X zCmmPhs`R$x_77gzw2$}JZ57$sypjC1(a8EM4ZCvssM6_JL-l=pVQix>zhbR5@!n`! ztx>h(w;gjkVzY)gmAbC7W4?g;p*P-P|KXWS_T-h0^euyt2zAvPHq(5pKpE1h$zE4i zR&8r*hg+(l^dX(`MUV6~Q2G1bxPtQgP{4mnMD>CVJ~Fnl+O)pPbMp z`9|Rz;e4^Ewg{OyvXI|R+q~zrHD7mHwtLk^uOOe&uPg7;CBLOTs^8opsZfqS&dX(_49Npm&zw-WIfWYt_x(T`*ioS)zvO(R&*E{HzUIO$fpo!_Bp#RW z$gZ@;!-1W+V^htU?rHn62Z9$o{Yr8wOBW5dkOdyD8}18FAW#42UMXF7^C0@8cEI^M z5B(P(*EMc>_P$f_-=>ork3P>U;&?b=dKHPI-q*DK;xhAx{3yE=c@8*5nDEcT`8-|EDUSs&F(-s?80Ycj7BQ!b`ffhq=Ph&! zi*EfX$;^fg<8Gdb>+;f86gtll>80cQ(!J+cR}vyE=OJ>tQkb^d(64^}MX!e*PBA#* zJGWU}%P2It3lSFcin7dQoyoYHEAFK0VUmNcgfH&>Iq~vvj922m@DEJo$6dFHMZsf1 zxS2~r#0hx0K@nG%nO%~8@}q4B?pK73I4-B(%>&+nUH)>&-KJ?~yn_FX4}Qrl*O%u( zVW)X05Mj6r%!ioqChk>AJ_yeMver)B`GG&0dE|1 z^-fcHh_I2*kagzczM=xzE$~otZl#99^^`yBUPN6Wo=45%d(h&UOPPYxv|Qo}TV2yj z4asc|IpYEzzR*L!J5`ri|1)<`eg^I`=gh;*!MkR6nxzk)Tt_?y&AIzOzqxtHc)3^^ zfk>Zcm$=9??%r%iz?*_R<&;*Ww+P6vm;Y;p$i*VbZb;f&kk{P4%J)GtaGyW#k0`_a z%5oVpOpAQrl(&w1Jlfb0v% z(-mD0&(4A?l_F4>K6~f{z~wtT?eT<%_n&y%C7PY(r{6d*XFO zguWyLXw;BE;tnN`?4KX}Z=PDW(Os)4`o(QO#j3*Q5Wm+nW|4Mi9APx!EVyCcs@dlG`D+6OADZNo%x8cj%R(V3a>SJ5E^SJfdn2-+8B{?6lNIq%V zQ(Jxe?8S~<>UE^wiT&vVP$N6J?^HDBarlWT1Ke){^% z^^jKbm1X5uoxRs*g<Y>Xev7u{K~byZLikd557@~*aREqW7;)|G3HCBO2gkWPlM@^Rr?Cfk!}jh z@!c!Z@2`9KHv2pO=Cjs1wPuYo8&>Hnt#NO9yxO=r@MGed{$-hLNqj0Qh#D{E)N0lr z_x)HmOmf7cx$f4_HYq0aqXYY0`||g_+x}l4|Elslw$|nm8xDF_*=gEHa{Yy`zuW%Y zN1m`+OZGcqBY=;|q%Xxivbk!5?v9Q6lvP988(F)l3@L2)O3ycAeB%W{YZ^&a#8X

ht62+^&m&o=gHrgoF8gdr2P-w(c%fr={rFex^hckyaZBOa@^462!-;Kk%%emi2k=2+ z-&~OF9N$-$PFJxL*#xIbuJW~((z$qK#hy8LMCtO?lU!H~=j$`sbmgh8Ri5qGXr*fF zcOJE!tsUR!wMtuYWoNpjo`3P$j(tWp-tp>Dv+uqCw0-)*1#6NorB!7Ul(+Pi{?^WA zNv6C@6prHLcUoA)9k8h*UGrUmDwuCLr6abacm2V9-S#BoU?}}74(SiM4wW!pI<{o5 zYKzYP%#(KSkAKnHPhYgrYSXGs$su|9I=LMX6#?JCZ2hj zARil{-Ve*!=T+`5a+S;W+%0J*`fKmQ#mArBi9bmvZYDT+43QkBFHRQmLk3Txa4x68 zHTbjP;{9CaPN+O=T;o14efE5c16QT&VR2U*P6@h<*ctsz3NBZLP&hB)f_LJV^6s~U zjT@nSkKDe2E6{7hi?I~ZT;l-D_=-N-?k$fCMSYzBFH_E}k91_qe z&*|%~6xUz6A*_c;ya|&?&p7Ia{Q52Y|#2qj==0k@?j?;`BhSqAZ(+S*>hB2OhOI8#vHp@uThu}rpITq?y1EVRk#Oct8{N?qA z`||T5nGS>Cm-FFn8Sy7%Tb6b%WaE5SY>eoix+N}{LxG6>`0CTT3-vDH~nw>%oq^P&x9{h3kB)I?19(^?R2Ov(u} z)42m4#cjg;Q-C^*5AzTDu$%%Uoo`OXg8tVO^1T0d2FleJMZy+@seOd|b>`n~hB9^I za);dn;wuJUbf=A1vOdnk?rLWJp;>Qam7{e#@hk4Njd$MeN90WUBmZ3F2Il?PAw;T&r|#RA*BrZP@tc&Q8z1`OW9-Vz*lZLaHbd=1*-3S)#3Mi z-P9jg?U^0xpWm_3k)};n>(fnOjx=QR=*epxyNtAzrrFNGKKOwL?XP_971x>TpH)r& z5>0aQLqsT5`IxY)Ls_6>7T$E@b+n;;`)+`O;S8j2RL$Zl(ve-R{xdR7HZ|(D{^Uiw z^B?|_o%_Y}ZeG@6!Jj;*O%ui(Y@D<^9Xt8Tw#ssBog?e~q|UTm!!}s>AcK?tA9?=) zZcB3A_n~X&aLPQ(l*0RzkoKoA5-FiIpviULWIluXN{EK;-;Y|2lz9G!U6EGnFj)J;|0V(n=PCXfa46K{0_5Ai^Nd0F%>=C+)o7|F^2w-nIMmK56bG>woV$ z-CbeTTB}x7S6A)omJAJ*$9Iv8g$(pS?yh)_=|>y3I~v%JKKiWfK6S$;Pj6f6T*rnN zlx)Q2q^|wd_r2ME?C~v?-m>w0Y`h+DGUq!S4Y_2^{JT{u=bPSq+P?GN^Y*WvmL+Q) zJ9D;Y!)+Ezhc@4v*kAs#2kiSk^n`3L8%Wpgv}yCn(Dl43S$_3}9ZBD^^P5e(L-ll7 zKE*m<^Gw&qsuOnN)K~;zSJjyfm9LCSQ=4k6bh=|UW&um3N$-wKYIF ziyz0IzU8b>zC$W4TV^Ka#J1>dhDI^2M_@ZK)M0owpPGqS^A@Rg<>z$p-b$Z`t(n zo=wlTY`(#wj{KMf9wuEIZF^kpXpbFH%HL{E?1#VVE%rZuNIu3Z9N{^|U+^ys*Yru- zx%|d=6XJI&w83j6r(;i7BcH<42j!XcS33D7zCKfbl)jCmcB}X~^|je?Tc7^W)AqK1 z^r(){Nhc-755>>t;8={Je0D{_wE<`Rp1(~G^Cl&Ssqq@l;mDe@`}1FVw>|YIztpzw zl27butUko&l!yOKz9}XDXK@NW&=IGgJmA-2x;PS7vo;G--J7%^lpWLHCcolp-Sp3BpZ2>oYa7L7Ba4t6h;e$6Arp6 zKZQY zOI&jxq`1L(n(PStT;$JO`Ugv5$%4Oe&d%g;148_HPv^dHMwqTs9i;m3`;$%xcPi3& zSjv#X3!eVNB%Mck5J$i{{FfnuGSK#5QJ4MLl}nZ>bs@RP!$J>toK>Dnnd2DeISBK) za*xAzRhCZESX8YMc@@KJPB{Y4qj2x1bh6;hQStn+liO)JPr2fgE|J#1DX+X{XXuA*f%7WD7Dvj+>=0*!dHQrI1oQoAL6sdMf1VC3>xN8A z4a(^Pu9yB~y5hR~aZqJcVO=F02M87PO2a#cjB?xzT@FLJVN@Y^rh`zG3jS48hC63L zG~A$dWgo^b;Ekc6n}H}Vmp5<}S<1-sueb7gp6kk6r#CK^yBUL3zbx6=uh6qN?g#Bv z9XVF-r zLs_;eNtvcg-(!%>9|OjvK zT{b)2^j$=}Vvf}t+6)uaQ?)bSVKPefFs~1+-r10?@M|er@20k-GNxUHys&HYfALwX z|LTi2(fE40!Ty4&s-Pi}dN!X-e0r+h;Cn+I8)H0$(S5jPG*~7@BtV1hLMo-sD-wY^ zf!QoA($GI#xNy!V@KXmu0{*ZdAZ88e%J*Sf(!8fM=hH;`y?^&Z_SV1pK|A}>z{Zl7 z?*mQh(o^8n6r zpmbz?Vy)h`7cURY&YqHJecSuMOE&wlr)>7(jt#mq`?`D1$_^~jjO=~4Z`#-1dQp63 zw+8iQ{yi`j5h#oWEVi!Hr@NAQ{n^!C17O2COep4T9bSiq3Yy&vC8uLShh7@j}n zAI4{A(6p`VbDLg&cl`R(_KxrWWjpsVcKbAKSM|$l_0UyfSX=V_nV^kcxvt&7c@szh?&!QywwClrvmBA|xsq<;SW7FF=toOpi z?*CstX!rkvkK6o;eCcud6b%3X|MW>jK~!wli}HSnS!(!*oQJ@UF(!E#!{Yk@U*UCr zz2U^VTLasA>m~d3Kl_#T^uP14^-i~~c4eSEdVXf6SvGRN7kEXU1G|OaQ;xUgf_VwZ zaY-|Vc(Go@_VrSY%G60^#!-sZGY&U)_>rF?|2=Lwv`t9s6NRf zRs8!ma!6jqm|Dmo^2*1SP-$G}bPUjkJNZ2*`3i`711tA|{9ND`w!G)ze^7!iQyr#S-Et=c!oD8u7qKYn098vF@=be|Nca(`Q?3XX9YSjvb!5})AZ$09n; zqrJNBA`e%2DG%;n_`icOnbMFi_!Q@)QS~_yAdZQDk)PmLfC<7TDNHV-KYovbFYT1P zMLWc<^i%%&JNkQq3eRvp$mGWi74^q?EEoaqJM@7ZX^&u{dYGv{W;{W9Xfc;6o(p|_ zj4JsR*C3!k*liyXYhK$+Lz>UN%^l&uyf*#C<=rD!Bt;yK-4&?2o6k{k3u!pM#;+en5Wz zF#5c|uitW~1onlYQ-xms zAntydd^5^|=%52(r)7B|^=dgGS5TlV|4|VGW_a-n4d2$RbLxlz0em@kxfJ39qlJtr zS8X2Rp)Rji&Zm0#$-@qlu_`{VKj_#%wi2DxR_IdJ@s&nZT^|)8Z&_}T*I|xwp2O&k z2(%7b(Ix1JsIuR2aWi-vgk0Akbd1UAgRoAv6`N(P(|_@vT_>u>f`>XF7X5Qt@=h`Y z0dEHkG7E}y0Z*$$`(!T$%=^M6W0^-_UHBUfVb7diE37L&5BL80W%Sdz|M>()cDFk5#>z^OjRSPWOjk5fhyI%4SSmw4Z1zapWWA5ze@VBa?6Z(sZgM z`DBWNI;^SedfSgdTnB-??sG)BW#nn;4-O(RIXZzj9)w7P950vNXsFVmOaabyOPKlV znskX{mDEbE`79nJ)&H1iQ*V^*shP7<6GqNp_U2mG*+Ozh*^?)_M z>>g!mTAkOn@mf9%(NMWf>Df^m^>v}1!uK@(mR>&BxvjEQ9xoPBo8kLX)^FSFbC=Ej z$;Ykn;cM1vYqYK=G_OyTzNMTKn{`|E$iMgy4Bbs>>C7OyoV#N?-|51S+=FZl#`&E9?XjJ^NO7p%4; zqfJy-;=v9NO7OnI`}3hS+p_cYv`w2+>(8aPZ1Wd>`B}-#WUb1Q-RtwN`@&4|^{(<2 zb+|Wc+e^GMkk`a1!Pbq5@4#bs6AOPV3QaHXrUeN37U6uHe%zF8q$@kASiHhNybcPV z_r{>G`IA>wCw$jxWTO^mU#Y)g53r>DVd=5!plW#5L{)4XZjiyQ85qs^|(Mcog- zXb=5Qzhrm*_$PhG*{G+qDsRwg+KzbAUMGX0J@94s+B+WT+vk4!s%>rU_^S^ov&rry zK_*h2shW02_QbiK{no>`+T}|dzQbu=yqeBmEmw9-FF*nJcO`H?zGPW?%gipRl>=gxv@u9$;l3Y{br{v+cgp z%1>ATrj03_#T4EOF!S9<_&ixS%5FL|<@4x-@9~N~7O?ExDXVXf?4f_~5qtZ8`>*Wu z(>pfb=vaNDn--V4v{bc!-^r!2#jPP_{hq3G>MlK7^DVQHb@#^BzP@W$E_Lmr|K(TN zXa18fwfd=^&2Ma5ZBP9LDQSL^179M4jV++k!O7(nii3l+YjIHAagclqJI$nD8aJpa zCj)ECOe3{BjWBFOecNg$KyX3G> zqIF1PxI{(J3E*}G#dE*{Mcpru+c$Lz2^!0II!`NqrasDb;$hO0=PKE3up@udJ%UA+ zCiN+$)9dfxk$6WDadclQ_)?xMFAEfrf-mkA=hR8aF7BR>V^G)&-YlpfLy|-F=-12g zsDZrfG`>q^$5<~%q@`Q(f{HXw3W`OcMVKe_5Wfb@B_Y4-z`a53&R<6-gkC9WI(K_4 z_=)hwf>(s)<;F2=lU~)QJE{!V6i?Q}-8Mx$MMpmT9-zNkvY$u!-ZqPL+|#fRJ6HkX zzBoy|-}{h#DSzk%NXud*3vs~vDCeiJf~aE_0JpAjgGmXI*B6D$zMLV-3T<*%4tN^% z$$pPVX2Eycsob~*p=%&?a9v4D{g;rh1w?*y$r0h`1Ip!;k~_*p`P}0{sIXDkCWl{( z%4L?*Ib)D5t6)r~+j{2g$b%xi1`+-*wE&S$IV*V3nX00+BH?mmQ#t za^;>B%Q6|*sj(K$7;?O#z~MwpmZL7mB@Qvb8XU(iRSo@SA#8Y%9cj!#N0H?y^%Bm0 zQvay3diZC+p8i$r)IkK-`b@F-M2%dw>jwA-CIMbTg6r#X8DC`BmYE;W+Z=X{+ev;N|8&F(`Kp z#X=4PLdX|&h%3QcP(}Ew4J0U&8s?HtfN0z4f?vJIU^yd&I~@WZ+RMb`c2L=$pjZUw z9N*?V{M_S|(RYTBUdQsTupq#(p?@6nerrX?*AUTPuA`G8w`b6+iK_CesO%ie$%#bz zyF&Ys(m_l<>?6fTn&r6;1rE1y?)N9hKD`e`$a^r-lxuoeX0kI8W$?PH)J9T2RfFHl&4d0|b*x3>^9Z#I{FeZBTQ>ts9nAi1U*LFc(C&lqF zS`qiCl=&0?{1}rAMV}CH{!e*w%CW+$B3{Nl8NHs7%Q%~)2^Z$@*j=%`W9@r3?b5&f zCD#1P`)oShv-vjP$YEy>6H@fwOl#I`EFa+2J@o0g1QWCJRPjm^OE(W|+EM6G94V8w z5YL*x7lYtF>&*B(&@>uWv}xmdYEt&rC-{YqI01)wKqTN{_x|;~)LJe`D%f z?mKIzd)Th-6OEsFNg1RPyJuJoWFnOBy0lt#`?YVn&+6i1^`0-d@aiVskap_yS@CYF z?5S;C8`_v%MYua{jzxr~c*y>Z)2FO?s%NKu?HPN=U;a5e^>dHgfU^578!8R!Q2hFw zMe5WaOnd^L*Y45h)EZ4=`kjTg_NZyCY1`W4nr%qF3%4|^`HnOGZJOzDm?r33>L+B0 z)ECJ9ESm8{H~Iu$+~8Ggq-#okW)#N?)|iC1g>8?l`P{(l*RHCstJ`Ho?~dee(w8*{ zFy-E_aSDrW^*KBF8aAAam1a+}nQb#s+E5*KBzvo6lg2phUZNkBed!l|{afBEJF0F} zhlAP3+Kh?t3l;r?U;Acz(^+;V$(Sr&$+w%Aq~om{t_K~Ck3Xa%{>5Sw3mw3HU178Z zraW2QVUY<|d^f4ZBrg+~K7LU;)iXaRWY<=s-?1|)r!$$^NHWei$$7oOJlCIv&;K!>YloygB9x5mL3C@L7gdVC|)f| z(Unf}o!Q5pH~Z<&*!-C*_T6teXDwbKNLI=B@vSZ1j;K5=3=iEd{yHut_>JGAK1H@? zhmqg6MD2FlPMtmFwyZVhws(W?rD0JP7-bjQocOZt)w^`wX1$i(`eUE4cl^Mw*yb-k zW#e-ln{2dgti1k>F~4uhb5s%057ADrjZY}+8d3Ri72kpC4yHDgKR)^$@37DPi7&Ik zgBPtmkk9QRd(E!Bbi;Yf1bW9%qK{sn>J;N=!&1Fp+qHv<#(Y4{-vy74Se z7_WkxN~WIL6*BV_02-sI4fdusRvSM1ZEv;nzvls~pY7P}hS~#dccyktKP8{zb(vIs zB6)cwIolIsW&8rfbA`$%?6=$nNF9incY*NV%*IJR@xjMs2#--b{m4kRU~C1SkR$2d zu$Bl``Hw1`wX-i|a6YmD{EKT9q9bE1LcQ>!Ozt1Z9F+Wl^Q8@xMy!fzEFhhnCw)&U zDV3A3Jg2Q>;i+gpCJBivCV{EZ6GQ(Q%Nx0oPB-Le~fb;DK17YYH zb(7c6I-O7AHtWh)p!18eam=v&L0HSLgxr?Lv8l_HP93>j0!JzTI5?_oRpo|!u45)E z57YiC8iki_y0$p@V_*4xHBxxUk;}clUb3#B=o|vMY*9x!p-4`%`$uCJEc~_g_{p$Z`-u=bTG*XHo`730A9$5E*UL!D~0c)3}xGJ?|eNXmvQyME^C$R9{5Vg z{WU219?lN}@$ulw!(f^yNDqIpFh!aqXF)tY7ioDy!p1@Tnvn_A*<6p;O6&PvCW22+ zHxu#DzK#w;S(dV#N1@{Ze-1hviGQAldkYU_OUmmH+W(-%FPICe@291o=Dr%&iH<%o zQl(c_*x@MKInk<*S5ZPYe^1*&`8P!XTGFi145sRq^l-Iu?-m zAPVH?uK;oYi9mM0d*mR@``}q!?NR{)c}Umn-0yzKE`0ODI;mT8IJd?mEiz$?$(%M^ z^VeWeCvCcDWnN4K@oQf3Vv=XZq_s1Cd6=m!`NXkgNRyDudg4w5{G;efYtg!)_qy5B$19R%GG5{ zx-@ZUGQnNz$QRPCBo>J3$~Uj~tR{bJY*g>aFyz^4%jgypJI}l zS1fwJMH^E(z7Iuv8?)HPH-~6LYCz+*?6T3c-6yZu9Y69>d+7i7>(+lxI-SDjTArs} z8`?-da$a`(S8sjHe&lVBORuI)WV$Cm^Md`wZ}{tW<%MnQsQzi2&Ed>CyE7YZ_U-X+ zf51L1pSE-I>4(l){oQBWPh2*>1INd_@IUS$vbnGNs7zm&Vv%X4y4aoDM*pn8`i%){ zz8f`dZ*nOKlZ}at5&2BvGq~qSU>?5D@9g32LZ?x2#^7oCN^*;T)J^cM2us8qYW4^F9P}sc1F5{uw znO!|?+P=!7eKDM*-}1?4#q-RMYQ%T;CcZ%P?0avw&-{h2x1BG(+uL|=d#H31o2XsM zVdW=nwP~D{Yx*|vms~U1X9+Q-v3kD*dkWz)`l?q3>>fiL7FcMpvT_kdowjVG!<5~N z(!(eG8?wt(ZIU|P9$WjqO}qI1x7w-qy-7^uoV)Tl`hl6+KHnYl9<->RW5C#(HcP+#zfPCB; z@iE|hls!Eg$7;CsJD?oviw+a!SAJcit=kPu&=|`Nm zgAAUYduP$Nxs3`v-9BRFglr1O*P@)DK-6tKhl4ymr6-NbqfZgAquWk0`|JB8An7Q( z3Roz3F3R)!i*o4FeS|RQNj)ZVnRFd_lPn5TzIe7Je-ck=$fG!Ruen_KNZ}_eUQ)vL z*1)gb-qMFIwQBqmaylqem*slMQPwZ8?z%ALQaAsb%7946Jq5Vl1slT4Jc;+PA}&t@ z-^g2q(8!cFAdBcdD}}CUgRk?jWp-KQy2GZJ!Me zg4-}*rPuI+vPiHjngU9NWS!qhQSP>m4sy}}`6YlFu?R=ajdd)e90%M`ygSq2Rn7<< z7mE&~gev(7L$}@StwPT0pmaIHHV1VWz^&Z<{q4XUCcrE3~_46XQX%xuom{2Z* zkS*j3eaky2mLfA5lfpf%2J8NTTO}`o9h8?S4I~zE^aG{7V4wdL$oT~jBScwfHPT$v)g*6a1Qf!C8@R$v4%b(iF5rN*CY;e)2v_ zppPsO9ZW|7$qq^yZJ~QslmXuLOnv0#2_17f84k90-go6h-^PO=c;$1AG;M$PX~8^V&#QGiz?!;@3PPtqol%Q8Lg(Sg3DQ8A$JZn5QYRxQb|pvq$G>{CqztQKvHUzghl%-$B81&(WhVP$Dz96Gl9qVF82ipgveRH>8}Gf-ZuzcvS>r8dY__NTyBaCh z2THE=%E>YLN9sQTqe&*+c#?~F_&Ss(`u3ND^b2V`JTYFrT1e+8BA~t^NSsur-LOzZ zgpTa&U?FNg??`r8f%M+?%&uG?*=(o)UNbkT*}2W>Wdx~Qx37*E{ zo%3YuEM4nUovOfL%l`R)`d+*5*3)U@@pMCdHwy-mz0*6PZREaV`j-1bW@nn&ycXeXB z8%=xcJ07v;zV+=kxV>x5?XkbQu|1w!@3xM0-*=1E&-ay$MLPB6C?Y%lUw`5~*4=EW z(5cF6stoLxcGbW@EZwl%f!sku#fjUt|` z@xVX-{5AV;KKzV#lTG=w)B>?)HbM-g=uI`=zgc*eCmG zPfTz(=i<-AtqSmYA? z3QuF;l*dhob&Knl1G$+K{zChLC;c%CrF2F#Ne`DjdHp8tn-&O@t!BIOt)}ep#h2{1 zKk$e(?mcbO8xw2nN#=&^AvUyaPw)TIy#Uj4pZ7N#$S!lnbArd|pOU41?PVg(KR^XP z$-%BQKVok{yx;NYb5svb#L@dvC-Oz=jz!I6d|w3OwUy%?wa7O8Ic*!8wNpJQj`4R} z#+8<-IO<&$ifP&L=yj~Vi2DgUA2~+7`|}Dvxbq4~w5+Qne@N}OF|Kji0@#uGpac~x zB3-=s1{=6fi`ad;*bOh9Iu(D}fHFnCnB=@9i~hNZ3J?y(vk|;0Bl0ex+QpuvDbi7X z4xWqIIgL#s&fBI8S8o>f5s$bJds*V!@E@h6_Cx!Mxu|4|R6nkp!hCM9L~f_zxgu-@ z7V#<%jh@TUdQBB68zhBA}vMg81;pp z27f|QC@L#&alYyo3FHYLfHiO*GfEbCrod!#`Y4w@k{5EXAmdd=t`~fqm(H;h66f>F z9?vmdF0dkR;p`E{k!~J#A>%>^fm8VANHS0^{e8+8az;7u^}K#n$e5K)+aPUj$8tGK zkdOYikooOj_BZw=b!JKcbML+KmR}%O40zfKAm^)xrPJ(_r>p~dy-bAB7iAS4&~dQN zKI`mRw);u2);A8p+B(i04;)p-b^OXWiVq<{@MAzzMpaqxrJ?vy@ges@A4TvBsDluL zG@TVkcqL!kXP4rbW1VhQHq3Q!-n!*(Q1m*kL4be8I&{JOZQ`}Yim0!}%{)U@T^<#=yho91o&06Jt8h}?LGV9m z{#O#YM2A}82zL560l6>4dD(|vuCE+~leU?|c;|Y(TpXoeJFd+RlK*DPzKZ;AuzzfP z7((V;zLWR)>+VdsTvcffkUJkMGtqk>_VYQYP7cQL@3Jdn7NJ~rdi-DYqZRvWw75=Q z^7tgt0dnz6^n{|EMMDg`Ec5yTL}pv+oL_neB4v6YO(1L`dyL712#ZONKv@?it;@)5 z5q`JM1~L3y=bub}yc{qoK4pRznY=DFE@fiD%_QBJSebF5qhzR0ib*D3xu$^LgSXnL z-+8yy+jL)ixV4F|$VSR|!mjU%tF+6L!Zk$ybEubr6WK7T+-v#-ot} zrDahG`~b33>shNlwOw9aHt#B$Nms>7&)K|Tx1Vd-^H=ta53N6Z+iCmwzkbT>qgQP{ z*|A!)6LB!$^ZWM+MoJ6zic0WX4e|5BFOf>>t@`tix=v4WqZ%2 zJ9C>!m&-r(U3TFg|F-;;31TKHrQ1~XMiq|Krg~#*PFZvqs1VVdZ@l3t4dZo*{qvi) zH`KFwORZCa-2dxO+1Y>aVXO6fw$qzP#IEmn8a5}&(eQ6$x&O(QEU5XUl5}S0NWH;C zecKmfnqwB6WQS8zd*Z7fu*+X~oAtIwDs$$GQ>U+ud@k4*W@y=snvI$@n~cUb`K)~A znQJz?Hnd0o-gnx2|EnLfo$D&QBm2l^H5O^qe)+b~Y%=rRcLddVop4L(@M9**B|~jj za^H2{?A>Rr-s`#@*$p$5-LcukCmmTZX;`z-vB}<+jsL_~TJvxJid1ad#;qGR-`la_ zbrzgd2=&_@T5HVW7~k?r?ZgHn`<3r}kNw*}@kx7PPrfl5`XW*Lbk7>6TDJSl4cVR^ zY@)i*b6i8^;YdI_jpUQ(-g42lp5C_BF0a%Z*`;^hZI^%h^VaT=Yc9*yZKQjEzr{oT zI}`(U`%Jr%^U;^=z90RBb+#rp?5D|c{DH~x84Ef-={fgT`mq`0%i1IR-rJwCfB*6O zZ793-nySA!yWgm{iEKKx=fC1Ed-8p^vubCJJ#5srhU#bDnAxPQTEo@~N0zCs>z}@E zv#0h@$QO91k7=zb|7ok92ks}PdcX0Hzs1h{-XF2qtxOD`mR-_*9JY*Iy417lHwHGm zDjCkU?PGuI>+HcF{IJ!}s(p>6(-eO;-_4hHKB*jZlpo+n?0jd9k_mivAN9|ivVrPm z*6zu7_w4?keZn?>^dn}QeScjaK8XBoD<<#o8yU!t@(~sZrnRxPW-VVR^a*?x6=lU?fzZaZbyp1vWo@e<3qPXP0pQWav&c2hpC3Scp#n3Pr} zDo$a=T!lBV=|t>4JLp4MsKDn?mpi<;roKzOS!74=(A8g!xdx<}vy%o%UMInt%EWm-tVZjE-! zwsimh=+8fCruO3tZ!EBzW0Ha>~rTI_Kl^>2lHStkj{x!tn&R zdy#jclhSh@;gKA_a9!nBQ8zg%r7n1ZyeyE*flrbu;#q`Tw2@5y;6=L1@`Ri%2%BNA zq*wAKu&`%3tYC%DqH$$`gxwM&PsNQn;Q8TMq8wFWfy^=sIxfmG2XZ_3 zk()>b<#Hb+YYzDNK(OGSBbOy)$f+D2*MU6zxQIH=5&A^jQK*b6IS<0RbfMcp6n2G< zi<9PiHGo$H9SU?f4*fqE<@OzQ{BrBM%%_T~+Cn+3oF|3R$FGudE-2ES1m(O(?XPk= z479<6sLU^?lOw+aFy1?e_9Mz(91EAJlr6@o>u3dB2L-BS*e_>BzT2Rn6`mDTAxo~u zVYG^ZXC^2TPKH+ck*J8N%Ag4I*Z%NYu{Gr1kYR=wIZNcbb41IXRcUO} zXo|m+9_B>6jtnBqCl-WA{#SXCqoI!Vw~3KZAVmJ|kVR~bZked?yxQvW5pjYvjZ&01rO zBfWO_tbR-1Zv6vaXs5pJUQB1By@Bn`M|@I68RQ2{(0R=33%)~1SlTm=ON_^38;?|< zlE0x&+;`m82RQOy2k6USUB8Iqz|!-o&$=CWyz)f$DE+e7A~;n>4AWH0`e0rMAt)_v~*x zZ4dqB57_B{_S?2|u5aVM>b%i$+58((bU*A6RyEG$CpET?5F~!=uwmg2efXAEb4PVQ z8{0Eqe~*3QkG#vSyytdb;9vn^Iv!b{SHLyNuRcIxa&Kg^pYM+KZ#`@MFS}%oM=r_j zWXth(+PTz_jg^pBh_OJT!jwaK$2!8GBh5~obs2mif%n?+O2l5*CYP^U<0qfA(Z`;* z>1be$UfUWQsXwi$-}qmD$0K&>Y)>-p$zC0MdPi{+CP2q#^5yZoD@i-nZr7|W-5a)P z{Z3zU%&jXKyA9b@cHtNI?XGO4Hsb2lr5_7VQ|3O@0wiYZ{3(f-&Z!5QIQHXudVMe1 zNY}jLYs$itFSf{b^g&~_Bk9KL8tu%c)p~vFU!K?lfB&QQ)*t-1wMH}BJKgqI1X6GC zXAHq&l>3; zEo<*htSvh=Su~M*@m$ES=UaQcrVr6nPc0oEIAilKKVy^o&-#S?lny|4n9O&TzNK7h zKe9<{Cfm97*#RK`t+SIvd}YTMZm4{Wa#s4QyxNP>{ii-}_T0#7s$=UmZNm4@_&8X* zCw}ya>gUAIcNprw-!oV|*LD3u&;8`W2OhUazVGMl^iO@-W*1KTccPHR?ZjdhqDlsQ z-1{o*rFhqGniiHix|k2dZBNv1+ULIYt@h}D`DNC6*PE=fEjj2W^yk`(TP_jxhyf|($VZ$XGsHc?&sU>fHRLk59i@9L>eWVd z8_Ay={f1rmx87mB_upZ)jjqjh)hEvBt43-U@*nlBHGbG2CDfxiFRGFIT>6$H<;Xr% zP-%RT)4Ii|xTiWLXI&DDpvaFNs*e>L7kZVkNE7ioy5FcxU%#^DV$w;{Mw@hQ8n^Mv zO}~Fi2)}>GPA(7qDn5pe_y8x0pncJHiT5927hx3RMd>eNr9o=r_ih;0}DAAT^4khj_@tZ9AO8=fxP~XgRp&2dC(J7M%XH+!;tfS zxu`0;D(oZ(o0jc;7{dQ@qMgL~%f(?jMf}Ur{og2Hr(+OaTSc#DycWJdnRy!s-={4^ zd+-OSa{rPqK9q=Wb-=ewM@3bi6aD8==^!9Wu1}c`LwUjK_&DhuAj!Tcx45r?kUQdh zELo7>?=ngcZpaXna8&yxhrem=5SuBM<(T2Q+(Y) zb&A_n^-qgB_Y2j#&Zn{w`Y^fZ6W8^b-O<&#PmoWnQRkZ}DNR%L8XNYQPUM%)9p(2| zjJ^97JM-;twK}h&8%%tWhS!_1W67pXYqr^iB%kC9MH5~{rrKno)h1SJZHS}Fsx|$W z+4ZjC29oU;9<#6xfBo0( zo`3XlYYnG1+~`}U)lga%u#*1Bh5m9A8;ci^-0GWhwcgPbAAWV!~n?Ju7Lon$fl=S_PK9=*go^^ z5832w+h#j^zVPI)8C3aGjYE9WRvm^C+T1kz(u=nFEpM@Uujl?S z_t(4g8a=fWVb%~oWTbzQ-Dm9HYxMlvYX15y$>-agnk{SfR0cbbe*Srz@eQ^e`8-Of zjWnjRHU1)AymXNTEGEd&ch>Kki8eoZ#UA<_zh?LR^G`^Qnhnoy`ob5UjXwkI%fz3& z!FNot0LyMsUY|8&A(x#$@ZFIWWQ*%xe49P_=fB#neC0iEgSvdLrf_azDni$?jcnwv z&{Tc!LkgzMspw{tWy=DzA)G~ZpH&}#Iyes0&y5E|`JYZHTZUlwC9jp6$xpc-@&+Fkk^uF!*zr)8 zcgPp0VXi$z$V&g1Uo-d=of{(&tKElI_g%E|fJRvKfh2MaMG@`Jn*kdHMNyfDpo+Qc#hOQbm;KawjQR2x4b3X^6`8_pm|+FI#O&))y%* z>?%Zg@GSdA3NO+qqc2A3Bsr5Ch3AlZhlJt*;tK~SLV7rC5eRO(Wk=OyKI5Xw5NBT$yJ3_c=y z5ap9z!SiN-+rrANp+H_%6|Dn( z39B|`&MYW)_~k_UYCf`+_wPvupPDJg5j-n+oEiudB#9atZ`FOwwL;1d`I45d8GG=Z zABb;hEzgN__KxV2$_rg(D$AZz70PLRXI4XHmnasmd?KS5L;0j{P+TKDjlq zzxDYW9!CA1IltkrXVPHL7ZRA@V?w$n8~nW|Ua+5je#`kVVcofS)@JX2lQq8Tg8A$F zM%Z39*XilbY3uWi5>?F1cekk4r)op&BO2|gep)uI?|HrvuVd?~0y}M+yl}%hKmD}L zf8!Z1`{7$QY{s{2)L#5mj4W!gfOgAiukVXL{M&Z-pZ+O3_2gBXZuHW^$GqXM-y6$U zCsP)Z@!d30%*1?4j>;kruNcH;et#NGthqC=$!5bo{5_A@XTSGLY<5YuxHh!uaBdre ziM1z^1C@}a&i6aShwh`ZZ7%LiG&W6@;r)6dxUPd;mt8&jK| zY1_xPWVd$RCphbp=W~OBj!hfuUsL@CJIf|B`L*owU2nb9YI{4@L;e;%A-QUu2=~1#ZLMzrJ2b7wUOEx z%~ommu=hsa#v3g=_n{ZCcWL zCdp?ihe=d+J~p>!)>1RQ^4?4Ki9hxpyZVKjlGv7%yqMzBDTI-H8Hv5*lZTg<`s-I13@W#lA?A7gBucdtW?7SmCK!4Sp zFUCqX7ME}UU3XY)b%o#+NRp3nu#K6cH_pj zKMNu=ev1qHxv<&a@C7UH>m>(u2fS~Bls>K_%#W`V&`+s(sWr$pa_H8K1wNJ{C)QFw zG*O><=DoMsg@5;5R=;c0Y+H#Zsyo#QeWd@A1#mBtUTW3JcWL7as|NiLeI)IlmY66O zp(=r+KxI%#g^d^BIwRz%g74;1zr3}xYi(YCs&+u`5gR0~PRlLfqkfBPBGAcwk7VxEIIpKB3N9}Fz`{FK^WAP$lPKc8yXZFGGbKN99Sna^7{w%M3l2-9;MDxeBv7qgW;7+*SmOx&3*E7A z{Ce8!+0W;;vC$*Ic6N5G-e_qIH+8!J#&h-BSa#pg`Oq$$>)Q3*u}xScDynkM0tpLs z7?g>zsmAe*iCw(qtiAN?bz?Q4f9kwVKJ&bde)d^0omj2cQpxO$YAIg%kcDyc*2w<5 zfA5|413&pWd+tTWvwLbVwpm;0`YN*_i?eVtRQ>T9tAFrqR{O!f7npn%)wmTi$eW$zj!f<307L#_(MjyLoc8#4-GAH#ROEHPci}a>F)#pgp z()ByO_I^9RQM14HBcHVT<|)}D>6X4TCwoecrua?X)U(>#&RPAm`j)xuql#()Qrx9JC-wDHHUs~zk~_6@5K2J*!=)hIj5f2XQbCI4%G z{9X2!e)N;};x)CavE)Q27O)yDj`EEw6+YgT-W}Wer{83oKlD-G%_al-YxJ73@m)Xt zDLeP$pRrl9Y17TFY@uGLDPzbW*qTKF7TkF2s4uR1U*KNh3jkC3J+Db*QK7vvw%zk> zyY`)5WY0cw(dsvNrB>ZGI}O{qDxXpt@V;^^TS!;@swP?Sb-s1hJF}@iVs6_k*fYM9 z-8i~0a=)fcP@dY^#S7=`+V!pC8+S;Qfj)qH0sTNRPevVY^gDLywCpln{Xy$%h4h_o z{0E(C)}1wNx5h3r`MK|smTyY_*6EfFK7ZYIe&Hz_KDA}@jYjfSb^*#vUKx%!k?xC5 zl>`YCm-=chiuiTN@;M?Oz_uBpQ;X1Fo<1qYqO@qI9V(rM@!mK}$K5JROT`fIIoI2!mfbFX<}8_`%B)ay|~)7Kez( zPj#Bosh~P_s#sk!m*yqN-${@Du4|D##x20-J>ZdrXe(9foM*XS^cVEVC{woe$s%Eo3p=zq!7rKSu9f)y_ z*A2XiIIb5!58@P7o`*-?JSfSX!b6v`JcKiTNdBMdW+~AsR^$+ZSMUz_Id!V|!j=7; z{QhH-;(Q;(rwUQdB2RJR3*ZYR9|=_H5PZrYA3Ef484H~vZpoAS!(Y=Ch%{CCz>1^_ zCr#{*f>*ixoOfUmR_Z^!3FH;9uLA`|Cep2>EjkfU7UHNtu%P`|74~KU4I%#}q`VCB zUtOJ0hce&;&HSfTFCPcV6|dw8^01{@h1HxrAIch>jLokLr4< z_Ln8fGMDwwc^+g3;%J!bIsgZqiHKKcl;x#kPMvd331ykWFLNBG=b^F{@RE=tlP!TZ zraG?RfgbqOvW#et%l<$K{5;1xnX1Z27E}7n7L>anU9%Vk!e4?v4>CEDuPQKZtRm8J z1LnpYx#U!QN}TW9S)&`?RGGZ zoBq{AS+BZJ-v%++F&628rJ$3dT+SD0DQGbv=yY^?Pfn_{Z*nsZ6b?l2kdZLzKfCwfL3~W4yLCRVOM> zGS6;oS^w74cJ2>9XuaQizco5t8*L+R)6=qpq&aO`o#(cR>^K{{EhoiyJ*a~@GX}3G zpqpe2q`FVu!DL(5WHOnl+LTUpKO3_%rzM|M+Lm;!cVvW3`R359*|DwR7)G+R{z=_) zm(D95-<5axB9^S%pf6|9PkB^YeWv`=iS^%l)@t8=uh|0^%)gnIDmwX%`0@kxIc2S%cye6TfY zs}HMLztONKt_^H3s#$MOHay+4Gw(fbn-5>Gmg-@~Jy8v3-fY-JNBog~kk1SK&lBg;*YL8lMPjsF_GC&du*_iXE3(i3mf*>_q^Rc{YSsh#KyY2d?yOeO?@t4VTxTI zQ_0en&vqmdtY)=Q+KJR|TT6w@rR8(9iGlLqr@F?z^7+P4JVrySf7#tO`_{XxaqmS{ zwB&1aWk*?1Wy;gUSVE}pc(45b)TvWqFjCVxV{>fK#BTB#+8Mst?)YNW?zNHG&pm0i zYf`jZw=*An+8+M1KWP_#^3%$@Vf9lzv`}9romeE4KE@74^=a&E;5n3MF?QYRN_wP8 z-`a3ut!;c}W>0;?1NP{j{hhY;#dlishT89t*BGi#^c>=jQ{dn2x_n-;DgU|ir=%M` zR`;D#+at-Ta`Z=zk&H_nc^^aHh+hiB@hF`a^%eI3r{bB>^HczJUVGrrYNyiO`vBQ! zw=t6M=zgyDfNtF1vHSSy(3-cNvi|RTn{EEyw^_Z-BtLaj+@}khNa2DAlcS4h%d~TE z>k4*8(Y7vkF&1^mmnhla`6w^ts0ZRiX;p5KehJ1( ztNhb$sTA&GALJB2u94P#PQs#Nj5ku+oUh`f2NX7qG`=&cNb9yJ!gErh1o$DBRE0{+RdLI?R`!IyP zKpOuhUA$gt^94~S$$z-(rc5E1ce@#%94XI!RHc`PD;&9r47&MnnW!(Fhn4cWK(??$ zAmZ2Q6IjLF>%(_buCB$rW0a#95>j#QTZdlvt*z(TNli6N%bY#3e`-6g&dKBg9x!{GvQ$BtFVm%8=^UuZp15-cDa+i^}(VN9H zc;PY5(JP9R6z79T1q2aQMU{QV>jL;CSQYSQ*>4F97xcO{#y%kFaik3&1m4FM{_}bV z@16I_XD+gbZisJxyc`|E4#&Ys(yt@1=)Xb6+PnM$1P7HXJ^0)#9G@S8hOlujNt9R} zU%pKB6?wvLK_K^Q;BhNKq)WuVJTiD34aZ4)bS$Myz7P-05aJQWF;5rdiyb;13{pT$ zQsn*~Tmq!YucQBUNz!Qv*xpAh`tPOa8eb+f1|@tIqlm2}#ykmY%2Asqi5`ndtt84v z7;RV4P6XixRaEHhvPgG-?N1ctCp_dUzC>PTgGn-7G6`L8*myj#7T@LR&h6~)xX(7f z^3A@RrZt+|WI9&DsnRl$t`e1>i45wG2^uC{jA>pbs-{fF)ok2U`q%mftnueyF!9M! zf5nop@R5aa(FKK4xPR-0$wm@LS)cT0XO6<%25$4Fq9(=;B6bDL=Ob&jde-U8ZEue> zObs&8>;$35b2GPe2d+h4WKJwYiW>;?5J-_gjz3E>+ zVa@T}M*WtUHmxDOD0?D%w5QTZ`jgiuPF1N*@ng&$HHr-N(ZK41v0Z!UR(tw;zuaDU z*R3|6O>Lt#v(cW?vZG4&n96U)gQ>snY+xg6Np}|dy5hap?^thlAl+KlmJCeWH5ERd z)a}009lN+ux0iNhlhM?=o4l5AEIAs+H-jXs)h;w`_(0zp-BUJuZqFL*ijx0wkHon3 zT1WcH7WJVB*_*zb$E15&y-|AE3FFUOY1dorB~{APTQ+N(U3%np+u3D@lO)?z4fBnz z`M~BX`=33zWzWe5ZFZwc=ZWNQu<*d5;(5uswU=ziq&smN4cDD;UgO6mnqBGMQX2nN zx3{0PIJbGeZ#&mj$*PCRX5G%b>4IJQr=POB|L;#*|9M_J*YSlscO&_eKQH<2BGjEq z%k(SzDZ7D)YcQUmUy{BovJ9s-?bqz_Z+_68`Ca!~t)+G@8QWL(ltTX`3w;#z#3!%D z9c<2oYq8)b8EL~U{nMG%eP`0hdn=XZWi=WdoAevjluZUBF_9?sPS0QK$g3{x?hQNh z_6s(6;<|_7w=N+z8;|TO-*uOL;L)e-$__uuQN5_0sDf;!x}#aL;LVP-nRNVw>g>~> ze9q?2+_1ZU?lHUT15aA5-L_G;seTBvASLY+`(SMKNz!L3+1QyTHquG9_DWFOCXIZX z-Coz;d%HdR$KGpK9=ardpPE#%fqa6#w<#SPs7&4^{EpNEQm65a-ISCiC-T?SssoMe2QxpSm)|bZ@>G3jpV0j z?ZxU}V@_Yhf?APRkPA7v4)VV=K9)Z!p013Z%cDGv&gHAXFZC~73B^fDhR<+Bca9W? z%?QU%Dzj*@Np#8W>EY)micNl3M0=RaBQ`vaaE)9JU8nJg2Pg8PNtlqbh=&?*gzooi z(!dnC#6OF7J8;w=Ka;>NmX5BkuDnQWNOX2@_j2iX@I_CR$^f2L;hs*uLXpdI(~+`c zejzQAD6h&vM=x9CKbE5X@lV$wm;M)ARF1sC`xgbmlM#V`y2jIq)K|as{I*?vM*X7t zg472PkB^H1bx(RBcm{kdivJb5pk<`-x+xGg=dViibFes5SQQyg7k&FD;B!k;ZiGqjQOo*}+;<3xCC93RN4slySo>Q^jaimlF%q8bl zEJ91l`hrw(zCcnz6)k5#{)O<7Sx(C!!NrKEg@UVC7rqXpPMmdi%)BobUN(ABx#(Tc zIyrJDszR!K(iD6NT%UXeBs)_2Lu}+a=;)nT;cg*wI44-I2jM}hS5V&JlyO|22w8LD zPdR;lou{h;X(P(hstg~d1rOB=I>fJm0!vxqU+M@vMfiu`gqA{+-6>rzC=l1n8*?7J zM5N0}rRc=}a#9?Zh;(sdh;~^<=osk%124kUAVTMGQ5d}de8SK9=iR?Qbf86)r!c>{ zl9!uVx}hmakuQ~1B~v*p(v}f&FMJlhBCnHzD4pCs@GQ=wpYmVyy0GY?V^MJYLV>8T z9fXf~lA_!QUsC$#7bR4si|h1fi8NrVqLhaR(0!R+MPO~O!-4|TgVzNKG77mDR1B1= z5PtP?Q0B4lk2N@Ud9Fl3CqSP4s3fOwIdi(%z{4o*W^&GLzmVB~rCqcx8tEGh$x25c z>M1*4i&EUaojgUnKZF&7@mCZSP+17QKjq6)A_yW3ZBL1YEE8Oq!>nhtF15`9D7Is|ax2iwqWja1qa!1)t`je4+v?@61s;iJC zV^D-F;68JNf5~xjxBwMYE}@JxW?4^Jeok`&S@b>}6t@pK<8_oHg@sMa_pPvZ8Y{ZR z^z2>t357ICLj8~@MlRJ96aGv(<&?rxnYbXkF&O{(5KxG5eSoWKq9+jfkWc?q7;K$2 zeH#;l;?0g7eyhvJ=aHK!Kk9DIug`Uy3`aJfPOS6J+w9!$dC0nVp0VkeU+<>fQ(jil znA7+!A@w)O8eZR&t9TzZ<&FO}0LAltq#J{&*PZbS9F0S1Ti9golZBGrpR<|7PBub4 z#-Cx+qL%zGuQzOW8a5t{ePSK8=S&>I!}w(X%wONed>D3e3%FV4HXKstX_1P_?PjB8 zqk-aQ6Fd9n)3$f}rp?>p^TMvxMv{cd&i2&)=|`TkYu85Nsr)y#?Z5i&FS7sohd!xm z6l9U4u(kMp^1@J-hh%E7oO^p{p^rKQrJ9l2H8#i@hw4@JgxFjW(4Je=wUU z4X@g2@GTUTH`>^=&;5ai?783nfHlwcZ1mEO)h1)>Y@D*;Kz<{g(Q`6{(ZpH`V|NSR z!eXL-C|$kXu(%`(yFKNgP1$lNTYc*zx7at_b>4pbGglNbv%mjM57`GEyJ5TYu`lB6 zZnkW%-B-SvU3kYGHs#fkyhd$%;B6CLO#08n3uRbqnE4_i^`j>Y78N;db;Lt?Ch~oD zT4BHO#O6;($16jdwpupbs9V3+@rm=XbW}~*bHkz4nkroeYs$9l=k!-ws*L8jt~IU= zY%G?wk+R9hx*g@$|IyCK+s^LJ+&T@lG1Qh##(HStxrt|=?zvO8Ej?$d$J3vc3>O}T_;Y;qc&;8qv z*zR3toDY3X=Um$wFAdZdl)u}uNxyC#-p_hBJ5fZ1=X!)YhKcvHDnfWK*86{`qe_ zXD{xOw=Ew;XSEUe9y365YhYiwPJm+p1x!hMNF zJM~HZ`!}t9?}8* z{31>MY_yI%E9na!3q3>%p3|;(XLkQ17i^;Y3=6m{Lh~)RI{iFlsP1Y_d7!fReZ|Y? zhXD%5pL9)itA%?>{Pm;sp}hjHX4xiHcgp8u7B?n|WG~JOFn;hK1MA2$4z__WL|^RV z3s0YPBro?Rf;=Dh1zk{Y&YeH5can|2Wn24Y*vH#}@^Vl}jAwYY7&S|=1f{XOM=jvH zofL)~EO4^m?mYCD`5NyM3tidG38G#Tk%pEoYr{w9F0bc@3;a{Mr4DJq!);%LVSD#M z>PVE2$()ybl5s^^tVw!B3SS^oKf{j(NaJ=TQo)S%=&SpknmzUSwryYER@uBdwlJ1% zR?LZU&!WBwTFRN=a&n{`0c)(LDDrsbf=EVFh_KKr7$g}IrEz1_O|mO>9L4IB4 zLnQ4B8+rTFHR(C`dCh_`$vH!wkjcUQO4q1N-w=p$%D~T-+(=inCkJObU$9R;Qij_l zVoDWQ)buJ`F^*~xE5a9uut;|hNOP2QRVX{#tB0jo&~1ab2a z_C3tT5g#()z>9`19Fl z@QZc6vEVDfDhS}$DW1lCG`PeP%K0dNw2gIbWSv|GA@l;s$15|+2)+F%3O$2zkR}hS zl4+g%xxGLYe}~Elxfi5lL5ohdsNY4L(s9FQknRKZ0#PP6Al}h?P#uHdcXCv9!OJk; zQp~YL4)rN3*RK%5_PPCYd*{g0I_crj-!mNTD*2(=WE&Z<|*`r*)vbDxGpV z3DVf=sCO=GasV+qdJr85c-&k>oi6J35Ui`$JUq_vx1g##RbWCp{_z{xASTx!Kt1|{ zKa)m!COC@R`yl@%AB!MCT-WC;JgFp=F|$4O71T?I=~JI{pAUyNxjwZ1o#*Y+AAYZ$ z`MS4ApoZ-Yq@&u{8y%x&%{o`MZQ7RsI&G^>JKir&WgDO9l=1!BFFcFsoMnSrn_UQM zdv#v?6+V^fg>NLZS{<1*UGwU_RA)>`)NOAEo27|85YI8B-Pm06r_e9;DYLfpYuEi5hDk(r>aY;zeYVPLPQ`;A1+*pk zZbv>xZ!wk6ebMezV?F6zx;Nqol$vv(sPep zJ3Q~q+&=YoFWtVSl-Civn<#tSQhDB>PM}2M*5n+daohBn2)J<*=*9W5erZw>7g=mP?kpg7R0iJ* z!``&%^xZM_Nh)_Pe`@W@r+4;j^x$dx$bbCh_SCn$-M2opJhh(cXS3F{mda9fxQ_naDR(%TLjKv5Pf){*B>c5lq?LRePo3i%Tk@S|!$#6m zZX{ddc@lQgl1qx;JI|T@z6Wf2|Ay7}OfAc$KxYy{)!PpFv;J z^u>HOvPlH>7xck`>%~Dw>QsDM{f^7u;N7XjxzoyG$SuAsdV5P1qh`OSTWZrbp4_rp ztEqMY_ctEsf*jJ(c2%33Jv;qvZ?nzc|F9XaT-=`6bTUlwKDK4?PwluSXO(^Z-m6Mx z&sz?{Jucwq*t0+pzewZ1IH(}+K?+)gt%KSgyIzO11J#-QaVCFmsorQKV^>yZ>I?AP zrkp13&A=y=Lu8dR6^-SjEHtvHf=|02qjy1`R7Cstdyj{t^Q!R!VJmhJ!UmC+V?1-D zbCv7)5-0_tKjRo_7P8~_J6v&csn`V_Y1+DAqOL+(du`Iz0?>NmwR z@lWt`h39&tuq0m~y@D`-`1}Z11X7nF4@>RL=cEd9dDQNG0WT%b%1QFLq(ukGHT_QX zJ$wTSq*uQtIT6=?kb)tF>zA)1M6v}p3GPv(hqsO^{w#$5LZpdf9>;ZrVa}ky;#{_m zbb-j5^MGf0E~ZfD$jD_V=Pk>SBbQ?V?-P~?xpMhHC#|n)G4?OH=rshm+LqN0Hh8oEb=NL zl^Wu5sM0en+7%ZEz@61=NQsZ>1VQP~!8pji&ZiK=N!Qe0E>E6+T?0D^q&Pg)5>ZCZ zd*!^4Gi+a$Dd5q|Z2J&V!8>d~M;suID-S77{2`*q<7In2rt3hF)G6e2UZr#(LLz-m zWxiz)tL{Es2yw>I&zDh-2#0dtEz9QTD`jICwQX+lRKS2tNd_6Gss~4SA=GtRmOQ6X=isr|&AHEo4l8(=jJd3)w~K z*H#geP|g#S29sX8Q}A#(1ecGLeoY#X;vD|d$_NjHEMS!{ya*5S0at~*3CRMl2dwys zw=<537CIG!&Xu$ksOnRyKsx`1fs(Bw{XY^$3e%(%hzl5{uC6ur4u-=FXtc`@;-D?ZyD0giiik` za?98+E5D!*vW)oFOWKVCR`VeXr+^PvO;O1FMZ^Hrdky=%tRGfB%El{j$5P(Q4XkXRJIU zf1TRMS{lP4#2XY+xly0l^&kGM)jzvqv)eY!PD`JL#-}qDjW7=BG@jF`e~V{2wT)ii zcn#TbxGOs{U42G!vC#y4=q_JX}Oe!WyRe|J*YCL_WYr8wc z!VTs&Va8rOm;~H7)v>+Zp)a1yRS$OShRyCjV>YN+>#Fih$HuD>ZMi`!P;m5wq+yTfb7M$EGLL|d95Wx{=KXV3O*xHGZl-q06i zD5WL7K0!HUvN73s(r(xU9VHL1ID28zvQNHv&0gFciD%8e@}AT74=+z_ui3UHyHli& z98&3L*4sQ~lbxE)219F}>Dl=&f3xg1ve|Rj?XUd7hwY9_=j=nDeo1^;*k~oaR4z{= zJ|)aM5Y;c$8$DA6sD9NBe4+&9^u+Sg&_*A*?AMbEOdike?q1ifj-(g1lf1lMi$w>T z)bNJd5<837<-)7wlye~a%(h3yYnX7X_UVpv(7AN+SN-*rx7)VH-pKCxKR;%7{@A0| zkln`effWmHonc!l zy47x4S9QjYKy1MdDZVqut3ag?72*C#JAg-nI+Cok$#%D?zJ!HCB+DQhvwLd5f`;OV zrA;ku}tIdgpp} z`dzo!q~Em33qz}OFTyXVZW+h>Cssk{i{y=C?KiF=^r}yH@S+uxlH+WYJ&-cVGAectu!2pc)*+n z^HkoC5kVUIA(EEUVwxhYCl%4gV{ytC(?r~l$?vR4MV!)jKG&ZGHl@=2;PH>W;MZPr z9;HIXlf20{^rrweU@<0@4%=m1vRFbM9%tT{EOH9P^PuxA5DP9V`3WnfS;p>1IWF03 zi6|p4H!lyQs}#>-eQpEv59IlRUxW|`MR~w=DX>~%!lCiS5tQR|Sr&HmKUJKTh}hg7 z_+zzA_Jg*Ykb6MFK_$B<6h4sS&;_Z~N>W42!KF_`OM84AH_fpyiV}t+I;#qld9MSh zJmt}n-y}q-(m@K8DebP%`5`hbbd=Yn(?c>;AW5-G>Cbu`WLxhf=%~a*s_aW!mG{_n zRUod*xewz@z>`Tgtwc0@(?UNA{vZpvo3QB1`E}bZJm6vA$Dkzz- z2*^4ge}MJcR4~^|7K^Zqtz!{>02XBlaTa#snm&n6Kf-{zFb^!oDFU%MC0!Sql8%Ff zPT@-B5o?g&WfoZK9!S^epZ{036qd>jTK-YEr(x8xl41qHvr3Aj-|HLsjgs~mYI1b*(vL6Yrf_`Ni9>u1S z0{;Q@my5eAi|hh?4(vPEfGnO(fA}7Qx8Vv}JUpzC_vQFTJOmyFQmiA)!7=Rea^yJ* zs`-aBtCW6ZLOm5W^zfr$r5yT^;ySqVhcFK>Y_Q6niz-5%Rq~IG$F<8_gcr1w|D<5t z0*`eBs=|Yi`v4sJ+McovO5~3I%HSxRqaK}f?GwfBJ1M?Zn1MNcP9`j*40P6R+s0Sl zVVhrdzxB>+*lakm@n~r28wc#LnOjS_swVv2C}8rZQ|s7`PrhXH7sqCgy=1lRi8an| z+Vr&Ir|A`T^?BRvH|3pcvR#V>C0&n4@;%ireGR)oc+K8qGFJG+d9z5haf(Ump^t}{ zgg&*|v(Z?5a2?q@{o-8tJ#EW&cgD(_UisDSu{%UIR!Ux9$2Um)$JWK98m}Xozge>0 z(y`{{na%emRv*{x(W`s*@yD+kuPx(MP-$C;@=VPBU*CAY{rX3qwRyj37hb$(oncx; zU^fPfQc}iu+O#N##RgqZBtu*I>q@)x<}>!`@BRXN>C5l6`DA3LJ5AfWs>F4bO?pY| zuPbbb|G7=u+mk-NfH1Y5^xKhst=)ky%rs;tChX9ENAlF!sU&;z%XfA^b$D%;`j4IM z9eZB7wfc(db?l$KFtNdCPh(4^7o*#HUEA8_drUpI|8&eN^Q5k1?sYe8*p=NbZP@RA z_@X`g_%-{;C$3qo%YuO9uC?^&gALN+2s;&6nDt#!)Q^(P*$LH1i!jEo*V|2-Jhg4L zXRq7l=BE9Nf9DbV+aG?)cjr*1FM9YwmSk4{I-?Kq9aQ2W`MNcBvGM&R*;_hp-h0V* zukK2envMExYwb<#;%_`>_x+Pct@HE^-UDefcEGux;d1gh*}Ba_k?M|D{IzM*65W5m zCCO=(*p7v(*6zq^XFK-!uesMA|K0YE!b$I$i6ljtA_ll-`@Y zK21sWrBw3$y6VGs)G;Y7;aPx~st>B&-?7?8&t{kRtTv!6P$3G_v8KH5f6pEE*%z+a zr#^q({rG#o{vP{{k6p1^uW9G5>{vs-AQjwh*oBE-Ci3x*^lE$kS3py3xiy~Iwfj!n z$G-R7w(|vdNVuVGG+VaEBARrcH>A7zg6WjkP@0`NbJoUFz9B_htcz;WL2Vo9W-3>8 z>jmo`bw+JrsP=3S`WICufjvrZkajHTNn~ z+T{BM(NM3BDkev8T5Qi+d91{!ONW2W=Q0ZI?UpraZ{yc?%xCP{%p#%KNtzzNB=WBJ`gE zI8~VMWFn`+A%3(+Ik9*IH>x+uo%khSJC5^W!OU5E*s|P|mK|2~z3dWp<5M^63`Rmd>sXEzaRKn zO0zFrfpTbmz49iHf=8K;>n%iZUSEsn$pW6AV{u-EJT%TrJ%CV@>3>)AfZ$!`MR=G# zFF)eaMd7pQY99y>odNl((pH6$i#tj}Dkl(jtAhJcRJf4m+i#m=AZPk=kPCDaxIzWJ z*2osS=+ zpc>1zx{xKisg`A5MY4y>s0V^Hfwn|hKd^dDIjO9C@V}ghThAj8i`0o&5DYpftgz9` zK+Y?t^ev3lddU%W#(=77@;Blc3{iJpe>_wb^$Gdw0`Y?iiaf_f3?7e)sJtE}d zh;Qd@yi6xW)ZZ(O+}2g}h6g%S5SG1})-Bs=(f-!dBdPNoeomjoq)5Sw=^uQnOu2uR z<8nFZ-~X%0e^6MXV($n{cP zIu%%}ci}Tm6<`N&kQh4gnv|eazg2WJ#65c*9gd}3m4w_chhAgEeH5Cqn?y(Ij|C9s zcBgX|3lz`4!Nl65y0ss=WEcOvFR-(Z+^sfV_h0C<+lA>FCaPxhp-&L`g!&sClZK1{ zn({jOrO#fo*^fPD_MvN5Z+C6V9Aa%^)B04;(`~l_KT4mB_k80IV;^5Kl6_*lB5(Jj zW6o>Z+CGWLcVPULO_Q|P0haww8VkXP-A?|hHT-Wfk!W?her?aD!?c@7f4mO)|%p6%H`{F%pW-s2lhOn6G(mL#lCtTCO~U-^zlY{mkWFA_-`@kxs? z(p_Pkws=*ZB=Cv0!PL520~?9QXaC?s_SygReKvXUlGz>$G&S4ZmK~ZC@t02wX12SN z?9^bfu9!TZ&(Q}+*ZDNrOwm4Jtb2eYv`MF7?a5TSvT(;ei+*TkE%Du`x2%4uXFI)~ z%{Mw?A-)ZC3H=noJ zEvgF@&aKCnzv^QhWs_z@el7c}MrE!fAn#RUk)+u(zV}k=$Tloq$uH(Rb(?(X1-mp= z`1PSprAtTYI}Mg6KyW#{EFxk0u`yJ% zQrf0`n(vU&ztvTr)EV~*_ho!Y*R&BiR+`k6uD&~iWWKu!AE7{AHi|4gs=W05j(dShcI8%*gB z>852ze`TY5c&z%n`1SYO#czG9HE%s*^MUL)7|9pa@5!wum^%zm^s5j-*gEW;>L{lY zj&Tpiztfl_qq*u!bx;4T>h?6ehLTv8BJdsNY16UN0H{d=i%8}-z5)b0MuPf4c6vv8uf%FEMH0J@_H0qOlH&l@y1drgK2;Fd;R6cPr zU%^gh`k=gA?8tTWq44*6f!joO&SVFvny^Ee3jK8SIZRQW4{!}(d-^8Msh6hYO7fX) zZ|R=O>sK*yk>8)QioE0tsMvHY;=t0!6FjacE3QGLTaMEcLbfO;(gQCK-^=0;0y&qt zm&j#2Y~F^nDM?YE%IZ30dWDR+te|WQkcWl+_9I2Ck56)}vjJt~l*6wSR;9MuP^HKFb ziftE8Q4pObh=v$C<#lxwzApz=WguHsI5?_J$;ZvKl7~9Nz`8Wcu%J~`<;g3`>)+23 zR?drLDJg$ao*dk)%9JB3%8{RgsAEv&tL2bL!wr#k?z$C&mEc|GS;<%Np1v3eI2FkA zml64*ECBbsjB;u5AnzpPla=^34{T8;6m=H$mIg!nJKYr>3M}}LKGSWH)(4Ua5$53q z^7AF~vX{J;X;*7~f4q>DTZJ@fmzM+5HGIOi5~X45alk}Vl#mnQ&^kmt(Eg$gR)PAD zg{?9%@bU-JjNCTavCKEhU5BXWn}sOvxOB4+{*qI)={RD`DtMX`5N$8cUkikPfGXQU zISz||Jz^neLDe;QG=#ooz1M}W^Opee2R$6XFQ**2AKeW9sVZZM<-Py76v)r3aHy@6 z{UACHB2QV?GJ!bC$_3p#l*_B4Mc!|4nDC{qH_#7vF!s=N%20aAjh6 zZq51fhbQD?Vu#l$z0tuWo-f+)$~TQWnWXZs4E^eJHv8evTJ1Sqoo<=6=V@03q(Aje z!y2=xrC0H(|CVj2FLo{QN-lnd-e}eB`t@yNrvz1r&9GmMpFh*%%ce7Rv^<+GCJ0qX zT|7wV^)1LyzE{MUOk=#Md}FFQ>nPuB;)^HEQN!$^zSV#4omRX57MowcZniT_ zuMJ~%Rys~wlBq6PX6)i%qLKv|MTz)0JiJ-lfR&HIukTr7Z)i_{?VIhRf8p!w+BU(A^W~eG|?eJ|TmD83y z^4-}`$C~O-Jb(VFUHhf2ZL9t6d#&~*=h8iDZ))|iY+X}Yc6Q+avgd3lf9G9*lik$4 zQJm~FliVyO)th`LY+{4)$o{W?{e;bb_Gznq{CS&5x1BZ_dj2h^U;M@g?C#Tj8_8z| zP1#C$`={I1zx}k0RSztLym({V8e3y~%isTq-T#A++Q!wX4L4ghRDGczZLlf%-6!x- zx1vOosMvw=_f&Rl$)8wcne+OLgzWHr7n5iw_;JZkw7u7opjqc2< z@3Ht(Pie8MVZ)kgfi&XHi~5=>mpZBO-KUMVZS|YpZy?Xc_ShHI*cFB!VI!X`hNx7& z6R5VJ0B>J0Fh~=(GO8~K&#l+rlwas{if<-)YV;BO{=}0N5C`SzZ&UuJaBu4#lor28 z$4;L;l{*?qN9-?j`|>5)KyeQxAHbgU6^$m}UK7;kjJmSfX5Y?#;BkA`|NF=7!q0zB z{Xo~IJr>Et1OHIHvBPYf#Cc;w4%L)SO;un^=9#Eo`PUv#Y^XNVzOZTMfB)O;!Z*F$ z=B>8Pws%$6vh`xYc@^b*YS`LAT$xnXK|~b>RYU32U+vw1AFpB~&p7pgsxKCH7WY+A zdiH|1tAK!h-|5I1Xa&CD1bKY&vAB+VJ4c7gV&@(*ptt*@C~QD7`i=^@pNxYi}P} z8Gt?nLf)#n4)Y~-mhr?zxj9dEb8_uFwTk4(7(bNDERL#%1Xoq`4G& zR^4OOZ{4_-7Oj&_rMHR*egJtEKl05GvN-P|y;G4au1ObZ;U9cKgjd1KJs^ICZ$V|i z!zn9s;Rh8URoD>9(}rGwvL02klApRR1Dh?eKVLb=ip)49lmSt4c}@y+$ji!g+Q+>l z1E{h=72KA^eW(hJOK*DrUzF?Ubd6G_%;n0+uc^?~ckSoLK%xp5fvB>MCowWPJlFBF zo)}SPA~|PK_EF^bIy`}%>kx9JKZgSu50jHv?-+F~>z3F5QS{9bsSnGQ^W{7US;}z% zKU-d|#i9`vd4q?S!BK?n742^&EvQNZ2!__h=cq~&`InLF84*)xv;x;hR2Ao)up+AD zi-AKK&dUci)ISe_I(h_u(jiC*_^X2~>7(bwZy65}mePTUgDP#GQCYeO2ORyurU;?0 z310^EN%>8mzboY_eZ*CP7`UaQZt9*P!h@Ip(IE|(NK;sAA0pp^WEVd&p}`p!1u$8Z zw;!o)AkV*#mjBXKnUBgNJ6O>_1(H5da9B_2F6U<_Li8~~46;DfOVV;Z^1M~#_aA4V zYYtrN5WWKV>u2fmSV;B6iC@0zK*s|?bS23iKI+wZfqlG6mnT8Aw-^TmRkiynM82b@ z&vhv4!*x(xufsuc#{+HkX7SpO@;&;ME9rPZj{E^&ojuFp>^Tpv z3;2UCV>p~D(ao}0m3|S%u`2#3AXiQYiMxn8AWa!3mFs4}OQw1ij3FDem- za@YzX_(5oh%3hmO${#+m-&f*%dCy-(gsl=R5}TaY$*|yB^ff+aWHO8bws)+)xoM|= z|3lXO(p#+G>e`eK_mf6r$cB#0?>Cqj*MMxMF(Nw*d^ZLY%Fg)>3hCdfH|_dwKWnW4 zllrR9W-CqXv0G#?wE8EmS^e1^tKGI?)3Y+fyx}_`2{*ubDq3Y^|U2C z+twZM>Ns7xUq}v7e|Kt=!Jb`z*B$ogfAT)FuX)f$m$$7xl+?PRH^htYO|f{^n6<3g zWLHevnmzH{;I(BFpD5etcWtb5zUzY>W|EcHZnbwuV#6XQx-(Hd-*?u&=1php7oUE?ziV{y&RcBndYY{J^tGW~oy_d98#@@r{^i%d)&AAB zExWcWCXIU`|#T*qb)U$9zRay_qlW_MOydhiT19N9O#_g4GN zi@d5$85zW|LxnAA)LdIUrxR5hi(Ym6iH|;I4aqydtTGhHm1qI_aI_8-6PUi+cP zF59)y%v6+QnEAJ4=Dn`5{?#9u-Tq^rwtN4tk6CkDb=OsW^14EmG?CCMO%_o`@=6xJ z?a_99q7rFRJ8sH`Q|ZvVF|^Ueo_+c|9=0dH?d_h=@S72!0e|?#_;1pSk6X;galV<9k+3=`)kvU@=8rg|#QLG5rLE z%cp%e(nec+kr9c_I?{0}J!WIstu?hXXEtqcf9nrCWIwbw@YjgG^!N?i9g8C$fRb^|Fj?y|pTkJWj<-?D)WSC_rhw|v+WqkPJ9`qYN+LM<{b;C;1{@Qgfb zOPJF=yYTDJ*js+!7wzJ&J|kN-ZJ;p5X)_ic7wF_-K_a(O*-+LQ9bKUCP!_-fyyFMDY-|d6igA;K@q5Rcp zs#U-8zw6+;TN>(5cgObTw_cR&Q{7+ahtwxF@B^GoY0`hSBX8|Rf2nhC2MQ3eQ`XxQ zjSV5BJLyt8OB2=vgY^Bs#A`9{>#EQ;Qy$mD`w=4bSK*8ee0;z)ep)=w`?COH)P&bZ z%H`c-!7D(@RHh=~1z!^KUzaYYIQVWV4`FYCgaSC?c1^n$|hz4Ks7vY?Q9JFAs8-fdd99fW$JbdHJ zcOFSv;=HV)Oi%B5SOiS6c$h9aou)ndp=Wgerw$|weUb~rk4Vr@DC#PBfd${94nba4 zj;QNcj3OS2`UjC`$+tRw9jfBJN=wK$8La42&=Tp#1q)>PK%RFUR`LrWPqKcX#J6+| zxO|H;i=z$^p4SiMMoQ}1S&3h z$Pv1f8})JPbRFPwR8ApFAkOo!qax(b%MQJubc50TKAKUfY{0F6HX3mekEwHW(^gucuCxrABTLeDbFo%=xu zn?un#r=6P#ocXK#3R>sSOIdZkzN!kOJ}(gE1DD+=IahCTKm85CjbD9`K1R~b?MaVhc!81Qo|i{s6L`$thsx$PW<0{M9ra-DL@ zQI7M8xiu)KJt|cryzu5D+7DRBP#p8Nw1``SoX^d|QOnLz&O?8G5GhegYtyCQ$kt{5 zp)YkE75H+;u2m?@4ZRUiCHG-eg+<@IFlG4s@qB+-4r7YtxMGE}vJRv4q`sbfO(dK} z6t5jAzkbBQ1UR&U{0>(|31uCYNa>dPCL%0-VErKb9mTGZ|K(HuD_C@3yt(n!Z?TKt z{SNEix?zpox{ZgUG-*8bWHyn#S`*!CnUt-wKqX!*+DysMBE(B?njr^K0j3OZKj% z#i*2)x}d-2PdZm^c$|MfN@KnGjLG_S;JoJ&e#p ztR`cx*Lqt|GhcPy>c8hM8=dKzu_LB6x96_y_>sI#7Rfa3VV;0pSIzOv+FK*rx%;$z z`cM51``mZD)5jB=TP$u(eS&ndH?%#z^&@%l^I3CZW8Wbn8>xuNw3D8x8{#=@`sA54 zB$$E*+k4iQkOYleW;gmxAETiPR%1b6T5s6)>5grk5g+ttQrX&e$7WA9kS%00UM0sX z2(6}LV{AYD)HSQOcs-$HvX=gJWb&akRsOk4eV1o4uG#OtuVar~YOBm$-@R0qy=M=c zGJF40UaFtoG3@s!>BH$P~Xe(NQhY&LyY z8JoybzomO1bwYC!`TEF2C$fo8Xfl2k8sbU12Cq(R*X^_4_*VPaAAhfZ>&sraDtDep ze_0m+noQsiZKnF~-+oH`c(tH>fHsZucz- qOCc1WIelX2Hsz)0D0*J$(*)tenk; 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�l3zqgMS2S6`@? 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 P6TEb$LY;4*c6PXhI@BU-{5QTl&pw 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

M%F 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 z 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