Commit 84971b16a680030dbef4f1bc5353f1cc06878e86

Authored by zhuyuanliang
0 parents

项目初始化

Showing 40 changed files with 3422 additions and 0 deletions

Too many changes to show.

To preserve performance only 40 of 1203 files are displayed.

  1 +HELP.md
  2 +target/
  3 +!.mvn/wrapper/maven-wrapper.jar
  4 +!**/src/main/**
  5 +!**/src/test/**
  6 +
  7 +### STS ###
  8 +.apt_generated
  9 +.classpath
  10 +.factorypath
  11 +.project
  12 +.settings
  13 +.springBeans
  14 +.sts4-cache
  15 +
  16 +### IntelliJ IDEA ###
  17 +.idea
  18 +*.iws
  19 +*.iml
  20 +*.ipr
  21 +
  22 +### NetBeans ###
  23 +/nbproject/private/
  24 +/nbbuild/
  25 +/dist/
  26 +/nbdist/
  27 +/.nb-gradle/
  28 +build/
  29 +
  30 +### VS Code ###
  31 +.vscode/
  32 +
  33 +logs
  34 +*.log
... ...
  1 + Apache License
  2 + Version 2.0, January 2004
  3 + http://www.apache.org/licenses/
  4 +
  5 + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
  6 +
  7 + 1. Definitions.
  8 +
  9 + "License" shall mean the terms and conditions for use, reproduction,
  10 + and distribution as defined by Sections 1 through 9 of this document.
  11 +
  12 + "Licensor" shall mean the copyright owner or entity authorized by
  13 + the copyright owner that is granting the License.
  14 +
  15 + "Legal Entity" shall mean the union of the acting entity and all
  16 + other entities that control, are controlled by, or are under common
  17 + control with that entity. For the purposes of this definition,
  18 + "control" means (i) the power, direct or indirect, to cause the
  19 + direction or management of such entity, whether by contract or
  20 + otherwise, or (ii) ownership of fifty percent (50%) or more of the
  21 + outstanding shares, or (iii) beneficial ownership of such entity.
  22 +
  23 + "You" (or "Your") shall mean an individual or Legal Entity
  24 + exercising permissions granted by this License.
  25 +
  26 + "Source" form shall mean the preferred form for making modifications,
  27 + including but not limited to software source code, documentation
  28 + source, and configuration files.
  29 +
  30 + "Object" form shall mean any form resulting from mechanical
  31 + transformation or translation of a Source form, including but
  32 + not limited to compiled object code, generated documentation,
  33 + and conversions to other media types.
  34 +
  35 + "Work" shall mean the work of authorship, whether in Source or
  36 + Object form, made available under the License, as indicated by a
  37 + copyright notice that is included in or attached to the work
  38 + (an example is provided in the Appendix below).
  39 +
  40 + "Derivative Works" shall mean any work, whether in Source or Object
  41 + form, that is based on (or derived from) the Work and for which the
  42 + editorial revisions, annotations, elaborations, or other modifications
  43 + represent, as a whole, an original work of authorship. For the purposes
  44 + of this License, Derivative Works shall not include works that remain
  45 + separable from, or merely link (or bind by name) to the interfaces of,
  46 + the Work and Derivative Works thereof.
  47 +
  48 + "Contribution" shall mean any work of authorship, including
  49 + the original version of the Work and any modifications or additions
  50 + to that Work or Derivative Works thereof, that is intentionally
  51 + submitted to Licensor for inclusion in the Work by the copyright owner
  52 + or by an individual or Legal Entity authorized to submit on behalf of
  53 + the copyright owner. For the purposes of this definition, "submitted"
  54 + means any form of electronic, verbal, or written communication sent
  55 + to the Licensor or its representatives, including but not limited to
  56 + communication on electronic mailing lists, source code control systems,
  57 + and issue tracking systems that are managed by, or on behalf of, the
  58 + Licensor for the purpose of discussing and improving the Work, but
  59 + excluding communication that is conspicuously marked or otherwise
  60 + designated in writing by the copyright owner as "Not a Contribution."
  61 +
  62 + "Contributor" shall mean Licensor and any individual or Legal Entity
  63 + on behalf of whom a Contribution has been received by Licensor and
  64 + subsequently incorporated within the Work.
  65 +
  66 + 2. Grant of Copyright License. Subject to the terms and conditions of
  67 + this License, each Contributor hereby grants to You a perpetual,
  68 + worldwide, non-exclusive, no-charge, royalty-free, irrevocable
  69 + copyright license to reproduce, prepare Derivative Works of,
  70 + publicly display, publicly perform, sublicense, and distribute the
  71 + Work and such Derivative Works in Source or Object form.
  72 +
  73 + 3. Grant of Patent License. Subject to the terms and conditions of
  74 + this License, each Contributor hereby grants to You a perpetual,
  75 + worldwide, non-exclusive, no-charge, royalty-free, irrevocable
  76 + (except as stated in this section) patent license to make, have made,
  77 + use, offer to sell, sell, import, and otherwise transfer the Work,
  78 + where such license applies only to those patent claims licensable
  79 + by such Contributor that are necessarily infringed by their
  80 + Contribution(s) alone or by combination of their Contribution(s)
  81 + with the Work to which such Contribution(s) was submitted. If You
  82 + institute patent litigation against any entity (including a
  83 + cross-claim or counterclaim in a lawsuit) alleging that the Work
  84 + or a Contribution incorporated within the Work constitutes direct
  85 + or contributory patent infringement, then any patent licenses
  86 + granted to You under this License for that Work shall terminate
  87 + as of the date such litigation is filed.
  88 +
  89 + 4. Redistribution. You may reproduce and distribute copies of the
  90 + Work or Derivative Works thereof in any medium, with or without
  91 + modifications, and in Source or Object form, provided that You
  92 + meet the following conditions:
  93 +
  94 + (a) You must give any other recipients of the Work or
  95 + Derivative Works a copy of this License; and
  96 +
  97 + (b) You must cause any modified files to carry prominent notices
  98 + stating that You changed the files; and
  99 +
  100 + (c) You must retain, in the Source form of any Derivative Works
  101 + that You distribute, all copyright, patent, trademark, and
  102 + attribution notices from the Source form of the Work,
  103 + excluding those notices that do not pertain to any part of
  104 + the Derivative Works; and
  105 +
  106 + (d) If the Work includes a "NOTICE" text file as part of its
  107 + distribution, then any Derivative Works that You distribute must
  108 + include a readable copy of the attribution notices contained
  109 + within such NOTICE file, excluding those notices that do not
  110 + pertain to any part of the Derivative Works, in at least one
  111 + of the following places: within a NOTICE text file distributed
  112 + as part of the Derivative Works; within the Source form or
  113 + documentation, if provided along with the Derivative Works; or,
  114 + within a display generated by the Derivative Works, if and
  115 + wherever such third-party notices normally appear. The contents
  116 + of the NOTICE file are for informational purposes only and
  117 + do not modify the License. You may add Your own attribution
  118 + notices within Derivative Works that You distribute, alongside
  119 + or as an addendum to the NOTICE text from the Work, provided
  120 + that such additional attribution notices cannot be construed
  121 + as modifying the License.
  122 +
  123 + You may add Your own copyright statement to Your modifications and
  124 + may provide additional or different license terms and conditions
  125 + for use, reproduction, or distribution of Your modifications, or
  126 + for any such Derivative Works as a whole, provided Your use,
  127 + reproduction, and distribution of the Work otherwise complies with
  128 + the conditions stated in this License.
  129 +
  130 + 5. Submission of Contributions. Unless You explicitly state otherwise,
  131 + any Contribution intentionally submitted for inclusion in the Work
  132 + by You to the Licensor shall be under the terms and conditions of
  133 + this License, without any additional terms or conditions.
  134 + Notwithstanding the above, nothing herein shall supersede or modify
  135 + the terms of any separate license agreement you may have executed
  136 + with Licensor regarding such Contributions.
  137 +
  138 + 6. Trademarks. This License does not grant permission to use the trade
  139 + names, trademarks, service marks, or product names of the Licensor,
  140 + except as required for reasonable and customary use in describing the
  141 + origin of the Work and reproducing the content of the NOTICE file.
  142 +
  143 + 7. Disclaimer of Warranty. Unless required by applicable law or
  144 + agreed to in writing, Licensor provides the Work (and each
  145 + Contributor provides its Contributions) on an "AS IS" BASIS,
  146 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
  147 + implied, including, without limitation, any warranties or conditions
  148 + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
  149 + PARTICULAR PURPOSE. You are solely responsible for determining the
  150 + appropriateness of using or redistributing the Work and assume any
  151 + risks associated with Your exercise of permissions under this License.
  152 +
  153 + 8. Limitation of Liability. In no event and under no legal theory,
  154 + whether in tort (including negligence), contract, or otherwise,
  155 + unless required by applicable law (such as deliberate and grossly
  156 + negligent acts) or agreed to in writing, shall any Contributor be
  157 + liable to You for damages, including any direct, indirect, special,
  158 + incidental, or consequential damages of any character arising as a
  159 + result of this License or out of the use or inability to use the
  160 + Work (including but not limited to damages for loss of goodwill,
  161 + work stoppage, computer failure or malfunction, or any and all
  162 + other commercial damages or losses), even if such Contributor
  163 + has been advised of the possibility of such damages.
  164 +
  165 + 9. Accepting Warranty or Additional Liability. While redistributing
  166 + the Work or Derivative Works thereof, You may choose to offer,
  167 + and charge a fee for, acceptance of support, warranty, indemnity,
  168 + or other liability obligations and/or rights consistent with this
  169 + License. However, in accepting such obligations, You may act only
  170 + on Your own behalf and on Your sole responsibility, not on behalf
  171 + of any other Contributor, and only if You agree to indemnify,
  172 + defend, and hold each Contributor harmless for any liability
  173 + incurred by, or claims asserted against, such Contributor by reason
  174 + of your accepting any such warranty or additional liability.
  175 +
  176 + END OF TERMS AND CONDITIONS
  177 +
  178 + APPENDIX: How to apply the Apache License to your work.
  179 +
  180 + To apply the Apache License to your work, attach the following
  181 + boilerplate notice, with the fields enclosed by brackets "[]"
  182 + replaced with your own identifying information. (Don't include
  183 + the brackets!) The text should be enclosed in the appropriate
  184 + comment syntax for the file format. We also recommend that a
  185 + file or class name and description of purpose be included on the
  186 + same "printed page" as the copyright notice for easier
  187 + identification within third-party archives.
  188 +
  189 + Copyright [yyyy] [name of copyright owner]
  190 +
  191 + Licensed under the Apache License, Version 2.0 (the "License");
  192 + you may not use this file except in compliance with the License.
  193 + You may obtain a copy of the License at
  194 +
  195 + http://www.apache.org/licenses/LICENSE-2.0
  196 +
  197 + Unless required by applicable law or agreed to in writing, software
  198 + distributed under the License is distributed on an "AS IS" BASIS,
  199 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  200 + See the License for the specific language governing permissions and
  201 + limitations under the License.
... ...
  1 +**项目代码开源免费可商用 遵循开源协议即可**
  2 +
  3 +**过去、现在和未来都不会有商业版!!!**
  4 +
  5 +### 项目介绍
  6 +
  7 +星云ERP基于SpringBoot框架,为中小企业提供完全开源、永久免费、用户体验好的进销存ERP系统,解决开店难、管理难、数据统计难的问题。星云ERP主要包括基础信息管理、商品中心、采购管理、销售管理、零售管理、库存管理、盘点管理、结算管理等,各业务模块均支持参数配置,满足实际遇到的各种业务场景。丰富的报表模块支持用户做各项数据分析。同时支持对部门、角色、用户、权限等进行精细化管理。最终,达到业务线上化、透明化、简易化管理的目标,实现物流、资金流、信息流的一体化管控。
  8 +
  9 +### 开源协议说明
  10 +> **已申请软著,您如果需要修改源码或者二开,需要注意以下几点:**
  11 +> * 请不要删除和修改根目录下的LICENSE文件。
  12 +> * 请不要删除和修改源码头部的版权声明。
  13 +> * 本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处、作者声明等。
  14 +> * 分发源码时,请注明软件出处 https://www.lframework.com/
  15 +> * 不可二次分发开源参与同类竞品。
  16 +#### 具体说明
  17 +> * 不可二次分发开源参与同类竞品指的是:不可以基于本项目代码二开后再进行开源。
  18 +> * 分发源码时,注明软件出处的目的:分发源码时,接收源码的人也需要知晓上述的注意事项,所以要注明软件出处。
  19 +> * 允许改包名,但是不要删除源码和相关描述文件的项目出处、作者声明等信息。
  20 +
  21 +### 单体架构
  22 +
  23 +集成常用的SpringBoot、MybatisPlus等框架,更利于上手使用或二次开发。
  24 +
  25 +### 演示环境地址
  26 +
  27 +星云ERP平台地址:http://erp.lframework.com <a href="http://erp.lframework.com" target="_blank">
  28 +点此进入</a>
  29 +
  30 +### 底层框架源码
  31 +
  32 +底层框架源码:https://gitee.com/lframework/jugg <a href="https://gitee.com/lframework/jugg" target="_blank">
  33 +点此进入</a>
  34 +
  35 +### 前端项目源码
  36 +
  37 +前端项目源码:https://gitee.com/lframework/xingyun-front <a href="https://gitee.com/lframework/xingyun-front" target="_blank">
  38 +点此进入</a>
  39 +
  40 +### 后端开发的一些约定
  41 +* cacheName不使用{}
  42 +* 主库的名称为master
  43 +* 创建子线程时使用DefaultCallable或DefaultRunnable包装
  44 +
  45 +### 关于多租户
  46 +application.yml中的tenant.enabled改为true则代表开启多租户模式;false则代表关闭多租户模式。
  47 +虽然开启和关闭多租户是由配置文件控制,但是由于两种模式数据库结构不同,不支持正在运行中的系统修改租户模式。
  48 +
  49 +### 使用说明文档
  50 +
  51 +星云ERP说明文档:https://www.lframework.com <a href="https://www.lframework.com" target="_blank">点此进入</a>
  52 +
  53 +### 为什么将代码分了这么多仓库? 全部放在一个仓库里面不是更方便吗?
  54 +
  55 +因为这些代码全部放在一个仓库的话,会导致这个仓库的文件占用很大,并且有些代码可能您并不需要,所以分了几个仓库,这样选择性下载代码,速度更快、体验更好。
  56 +
  57 +### 系统功能
  58 +
  59 +| 系统功能 | 功能描述 |
  60 +|------|-----------------------------|
  61 +| 系统管理 | 系统设置、菜单、部门、角色、用户、操作日志 |
  62 +| 基础信息 | 仓库、供应商、客户、会员基础信息 |
  63 +| 商品中心 | 商品主数据、商品分类、品牌、属性(自定义属性) |
  64 +| 采购管理 | 采购订单、收货单、退货单 |
  65 +| 销售管理 | 销售订单、出库单、退货单 |
  66 +| 零售管理 | 零售出库单、退货单 |
  67 +| 库存管理 | 商品库存 |
  68 +| 库存盘点 | 盘点参数设置、预先盘点单管理、盘点任务管理、盘点单管理 |
  69 +| 库存调整 | 库存调整原因管理、库存调整 |
  70 +| 结算管理 | 供应商费用单、预付款单、对账单、结算单、收入/支出项目 |
  71 +| 代码生成 | 生成增删改查代码 |
  72 +| 多租户 | 支持多租户 |
  73 +
  74 +### 主要技术框架
  75 +
  76 +* Springboot 2.2.2.RELEASE
  77 +* MyBatis-plus 3.4.2
  78 +* Spring-session-data-redis 2.2.0.RELEASE
  79 +* HuTool 5.7.17
  80 +* Lombok 1.18.10
  81 +* EasyExcel 2.2.10(内置了两种导出excel方式:一次性导出、分段导出(只支持简单表头))
  82 +
  83 +### 开发环境
  84 +
  85 +* JDK 1.8
  86 +* Mysql 5.7.18
  87 +* Redis 4.0.8(版本可以根据自己的redis进行调整,项目本身依赖Redis的功能很简单,就是两部分:缓存、Session,不会出现大的兼容问题)
  88 +* RabbitMQ 3.12.4
  89 +
  90 +### 技术交流
  91 +
  92 +QQ交流群号: **717574596(已满员)** **562654879**
  93 +
  94 +### 注意事项
  95 +
  96 +项目依赖的底层框架全部封装成starter,关于这部分的代码详见:<a href="https://gitee.com/lframework/jugg" target="_blank">点此进入</a>
  97 +
  98 +### License
  99 +
  100 +项目使用Apache 2.0许可证,请遵守此许可证的限制条件。
  101 +
  102 +### 集成第三方库
  103 +
  104 +<a href="https://gitee.com/dromara/sa-token" target="_blank">Sa-Token</a> 统一用户鉴权
  105 +
  106 +<a href="https://gitee.com/xiaoym/knife4j" target="_blank">knife4j</a> knife4j是为Java MVC框架集成Swagger生成Api文档的工具
  107 +
  108 +<a href="https://github.com/xaboy/form-create" target="_blank">FormCreate</a> 强大的动态表单生成器
  109 +
  110 +<a href="https://gitee.com/dromara/warm-flow" target="_blank">Warm-Flow</a> Dromara Warm-Flow国产工作流引擎
\ No newline at end of file
... ...
  1 +spring:
  2 + servlet:
  3 + multipart:
  4 + #是否开启文件上传
  5 + enabled: true
  6 + #临时文件路径
  7 + location: D:\tmp\tmp-datas
  8 + #单个文件最大值
  9 + max-file-size: 10MB
  10 + #请求中所有文件的最大值
  11 + max-request-size: 100MB
  12 + #将文件写入磁盘的阈值
  13 + #file-size-threshold: 0
  14 + #是否要延迟解析文件
  15 + #resolve-lazily: false
  16 + quartz:
  17 + jdbc:
  18 + initialize-schema: never
  19 + job-store-type: jdbc
  20 + wait-for-jobs-to-complete-on-shutdown: true
  21 + properties:
  22 + # ID设置为自动获取 每一个必须不同
  23 + "org.quartz.scheduler.instanceId": AUTO
  24 + # 开启集群
  25 + "org.quartz.jobStore.isClustered": true
  26 + #时间格式
  27 + jackson:
  28 + date-format: yyyy-MM-dd HH:mm:ss
  29 + default-property-inclusion: non_null
  30 + #使用redis存储SESSION
  31 + session:
  32 + store-type: redis
  33 + redis:
  34 + lettuce:
  35 + reader-idle-time-seconds: 30
  36 +
  37 +knife4j:
  38 + enable: true
  39 + setting:
  40 + language: zh-CN
  41 + # 是否显示界面中SwaggerModel功能
  42 + enableSwaggerModels: false
  43 + # 是否显示界面中"文档管理"功能
  44 + enableDocumentManage: true
  45 + # 是否默认显示底部Footer
  46 + enableFooter: false
  47 + # 是否自定义Footer
  48 + enableFooterCustom: true
  49 + # 自定义Footer内容(支持Markdown语法)
  50 + footerCustomContent: Apache License 2.0 | Copyright 2019-[星云ERP](https://gitee.com/lframework/xingyun)
  51 + # 是否开启调试
  52 + enableDebug: true
  53 + # 是否显示OpenAPI原始结构的Tab框,默认显示
  54 + enableOpenApi: false
  55 + # 是否生产环境
  56 + production: false
  57 +
  58 +# Sa-Token配置
  59 +sa-token:
  60 + # token名称 (同时也是cookie名称),此值不要修改
  61 + token-name: X-Auth-Token
  62 + # token有效期,单位s 默认30天, -1代表永不过期
  63 + timeout: 25920000
  64 + # token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
  65 + activity-timeout: 7200
  66 + # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
  67 + is-concurrent: true
  68 + # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
  69 + is-share: false
  70 + # token风格
  71 + token-style: uuid
  72 + # 是否输出操作日志
  73 + is-log: false
  74 +
  75 +jugg:
  76 + secret:
  77 + # 秘钥,用于敏感信息加密,生产环境一定要更改此项,并且产生数据后不要更改秘钥
  78 + # 提供了EncryptUtil工具类,包含:生成秘钥、加密、解密方法。
  79 + key: eRE2drUFINojkG9ivqtfOA==
  80 + # 公开上传
  81 + upload:
  82 + #下载时的baseUrl,与domain的区别:会在url后面拼接/**作为静态资源的url,而domain是后端系统的具体域名,下载时的完整url例如:upload.domain + upload.url/xxx.jpg
  83 + url: /oss
  84 + #下载时的域名
  85 + domain: http://localhost:8080
  86 + #上传文件的路径
  87 + location: D:\upload\upload-data
  88 + # 安全上传
  89 + security-upload:
  90 + #下载时的域名,一般情况下和公开上传的域名一致
  91 + domain: ${jugg.upload.domain}
  92 + # 上传文件的路径
  93 + location: ${jugg.upload.location}
  94 + #默认配置
  95 + default-setting:
  96 + #默认的用户ID,用于写入数据库时的createById和updateById的自动赋值,如果有登录人则取登录人ID,如果没有则取默认用户ID,如果不配置,默认是1
  97 + default-user-id: 1
  98 + #默认的用户姓名,用于写入数据库时的createBy和updateBy的自动赋值,如果有登录人则取登录人姓名,如果没有则取默认用户姓名,如果不配置,默认是系统管理员
  99 + default-user-name: 系统管理员
  100 + #缓存TTL配置 单位:秒
  101 + cache:
  102 + #公共缓存过期时间
  103 + ttl: 1800
  104 + #特殊指定缓存过期时间,以下示例为cacheName的过期时间是3600秒、cacheName2的过期是7200秒。cacheName、cacheName2对应的是@Cacheable的Value属性
  105 + #regions:
  106 + # cacheName: 3600
  107 + # cacheName2: 7200
  108 + regions:
  109 + product_stock_warning_notify: 86400
  110 + #验证码配置
  111 + kaptcha:
  112 + #过期时间(单位:分钟)
  113 + expire-time: 5
  114 + session-config-key: KAPTCHA_SESSION_KEY
  115 + session-config-date: KAPTCHA_SESSION_DATE
  116 + border: true
  117 + border-color: black
  118 + border-thickness: 1
  119 + noise-color: black
  120 + noise-impl: com.google.code.kaptcha.impl.DefaultNoise
  121 + obscurificator-impl: com.google.code.kaptcha.impl.WaterRipple
  122 + producer-impl: com.google.code.kaptcha.impl.DefaultKaptcha
  123 + text-producer-impl: com.google.code.kaptcha.text.impl.DefaultTextCreator
  124 + text-producer-char-string: abcde2345678gfynmnpwx
  125 + text-producer-char-length: 4
  126 + text-producer-font-names: Arial,Courier
  127 + text-producer-font-color: black
  128 + text-producer-font-size: 28
  129 + text-producer-char-space: 2
  130 + word-render-impl: com.google.code.kaptcha.text.impl.DefaultWordRenderer
  131 + back-ground-impl: com.google.code.kaptcha.impl.DefaultBackground
  132 + back-ground-clr-from: lightGray
  133 + back-ground-clr-to: white
  134 + image-width: 120
  135 + image-height: 40
  136 +
  137 +#PageHelper分页器
  138 +pagehelper:
  139 + offset-as-page-num: true
  140 + row-bounds-with-count: true
  141 + page-size-zero: true
  142 + reasonable: false
  143 + params: pageNum=pageIndex;pageSize=pageSize;
  144 + support-methods-arguments: false
  145 +mybatis-plus:
  146 + mapper-locations: classpath*:/mappers/**/*.xml
  147 + typeEnumsPackage: com.lframework.xingyun.**.enums,com.lframework.xingyun.**.enums
  148 +
  149 +op-logs:
  150 + #是否开启
  151 + enabled: true
  152 + #操作日志保留天数
  153 + retain-days: 7
  154 +
  155 +# 是否移除内置权限,针对admin等内置权限,因为内置权限等同于通配符权限,设置为true时会用具体的权限将内置权限替换掉,生产环境建议设置为true
  156 +remove-fixed-permissions: false
  157 +
  158 +feign:
  159 + # feign使用HttpClient
  160 + httpclient:
  161 + enabled: true
  162 + client:
  163 + config:
  164 + default:
  165 + connect-timeout: 500
  166 + read-time-out: 60000
... ...
  1 +spring:
  2 + datasource:
  3 + dynamic:
  4 + # 设置默认数据源
  5 + primary: master
  6 + # 是否严格匹配数据源 未匹配到指定数据源时true抛异常,false使用默认数据源
  7 + strict: true
  8 + datasource:
  9 + master:
  10 + type: com.alibaba.druid.pool.DruidDataSource
  11 + driver-class-name: com.mysql.cj.jdbc.Driver
  12 + url: jdbc:mysql://127.0.0.1:3306/xingyun?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
  13 + username: root
  14 + password: password
  15 + druid:
  16 + initial-size: 10
  17 + min-idle: 10
  18 + max-active: 200
  19 + max-wait: 60000
  20 + time-between-eviction-runs-millis: 300000
  21 + validation-query: SELECT 'x'
  22 + test-while-idle: true
  23 + test-on-borrow: false
  24 + test-on-return: false
  25 + pool-prepared-statements: true
  26 + max-pool-prepared-statement-per-connection-size: 20
  27 + filters: stat
\ No newline at end of file
... ...
  1 +spring:
  2 + #RabbitMQ配置
  3 + rabbitmq:
  4 + addresses: 127.0.0.1:5672 # RabbitMQ集群地址列表,多个地址用逗号分隔
  5 + virtual-host: /
  6 + username: username
  7 + password: password
  8 + connection-timeout: 60000 # 连接超时时间(毫秒),默认为60000毫秒(60秒)
  9 + ssl:
  10 + enabled: false # 是否启用SSL,默认为false
  11 + algorithm: TLSv1.2 # SSL算法,默认为TLSv1.2
  12 + publisher-confirm-type: SIMPLE # 发布确认机制
  13 + publisher-returns: true # 是否开启发布返回机制,默认为false
  14 + listener:
  15 + type: direct
  16 + simple:
  17 + acknowledge-mode: AUTO # 消费者确认模式,默认为auto
  18 + retry:
  19 + enabled: false # 是否启用重试机制,默认为false
  20 + direct:
  21 + acknowledge-mode: AUTO # 消费者确认模式,默认为auto
  22 + retry:
  23 + enabled: false # 是否启用重试机制,默认为false
\ No newline at end of file
... ...
  1 +spring:
  2 + #redis配置,这个redis用来缓存业务数据
  3 + redis:
  4 + #地址
  5 + host: 127.0.0.1
  6 + #端口,默认为6379
  7 + port: 6379
  8 + #数据库
  9 + database: 0
  10 + #密码
  11 + password: password
  12 + #连接超时时间
  13 + timeout: 10s
  14 + lettuce:
  15 + pool:
  16 + #连接池中的最小空闲连接
  17 + min-idle: 0
  18 + #连接池中的最大空闲连接
  19 + max-idle: 8
  20 + #连接池的最大数据库连接数
  21 + max-active: 8
  22 + #连接池最大阻塞等待时间(使用负值表示没有限制)
  23 + max-wait: -1ms
  24 +
  25 +sa-token:
  26 + # 配置 Sa-Token 单独使用的 Redis 连接,将业务和鉴权独立
  27 + alone-redis:
  28 + # Redis数据库索引(默认为0),最好与业务数据的redis隔离
  29 + database: 1
  30 + # Redis服务器地址
  31 + host: ${spring.redis.host}
  32 + # Redis服务器连接端口
  33 + port: ${spring.redis.port}
  34 + # Redis服务器连接密码(默认为空)
  35 + password: ${spring.redis.password}
  36 + # 连接超时时间
  37 + timeout: ${spring.redis.timeout}
\ No newline at end of file
... ...
  1 +spring:
  2 + zipkin:
  3 + # zipkin-server地址
  4 + base-url: http://127.0.0.1:9411
  5 + discovery-client-enabled: false
  6 + sleuth:
  7 + sampler:
  8 + # 每秒跟踪请求的最大数量 可设置0-2147483647
  9 + rate: 2147483647
\ No newline at end of file
... ...
  1 +FROM openjdk:8-jre-slim
  2 +
  3 +WORKDIR /opt
  4 +
  5 +ARG JAR_FILE=@build.finalName@.jar
  6 +COPY ${JAR_FILE} /opt/app.jar
  7 +
  8 +EXPOSE 15020
  9 +
  10 +ENV JAVA_OPTS="-Dspring.profiles.active=prod"
  11 +
  12 +CMD ["sh", "-c", "java $JAVA_OPTS -jar -server app.jar"]
... ...
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <artifactId>xingyun</artifactId>
  7 + <groupId>com.lframework</groupId>
  8 + <version>1.0.0-SNAPSHOT</version>
  9 + <relativePath>../../pom.xml</relativePath>
  10 + </parent>
  11 + <modelVersion>4.0.0</modelVersion>
  12 +
  13 + <artifactId>xingyun-cloud-api</artifactId>
  14 + <name>【${project.artifactId}】SpringCloud架构的Api接口层</name>
  15 +
  16 + <dependencies>
  17 + <dependency>
  18 + <groupId>com.lframework</groupId>
  19 + <artifactId>xingyun-comp</artifactId>
  20 + </dependency>
  21 + <dependency>
  22 + <groupId>com.lframework</groupId>
  23 + <artifactId>xingyun-basedata</artifactId>
  24 + </dependency>
  25 +
  26 + <dependency>
  27 + <groupId>com.lframework</groupId>
  28 + <artifactId>xingyun-sc</artifactId>
  29 + </dependency>
  30 +
  31 + <dependency>
  32 + <groupId>com.lframework</groupId>
  33 + <artifactId>xingyun-settle</artifactId>
  34 + </dependency>
  35 +
  36 + <dependency>
  37 + <groupId>com.lframework</groupId>
  38 + <artifactId>xingyun-chart</artifactId>
  39 + </dependency>
  40 +
  41 + <dependency>
  42 + <groupId>com.lframework</groupId>
  43 + <artifactId>cloud-starter</artifactId>
  44 + </dependency>
  45 + </dependencies>
  46 +
  47 + <build>
  48 + <finalName>${project.artifactId}</finalName>
  49 + <plugins>
  50 + <plugin>
  51 + <groupId>org.springframework.boot</groupId>
  52 + <artifactId>spring-boot-maven-plugin</artifactId>
  53 + </plugin>
  54 + <plugin>
  55 + <groupId>org.apache.maven.plugins</groupId>
  56 + <artifactId>maven-resources-plugin</artifactId>
  57 + <version>3.2.0</version>
  58 + <executions>
  59 + <execution>
  60 + <id>copy-resources-to-target</id>
  61 + <phase>package</phase>
  62 + <goals>
  63 + <goal>copy-resources</goal>
  64 + </goals>
  65 + <configuration>
  66 + <outputDirectory>${project.build.directory}</outputDirectory>
  67 + <resources>
  68 + <resource>
  69 + <directory>${project.basedir}</directory>
  70 + <filtering>true</filtering>
  71 + <includes>
  72 + <include>Dockerfile</include>
  73 + </includes>
  74 + </resource>
  75 + <resource>
  76 + <directory>${project.basedir}/src/main/resources</directory>
  77 + <filtering>true</filtering>
  78 + <includes>
  79 + <include>scripts/*</include>
  80 + </includes>
  81 + </resource>
  82 + </resources>
  83 + </configuration>
  84 + </execution>
  85 + </executions>
  86 + </plugin>
  87 + </plugins>
  88 + <resources>
  89 + <resource>
  90 + <directory>src/main/resources</directory>
  91 + <filtering>true</filtering>
  92 + <includes>
  93 + <include>bootstrap.yml</include>
  94 + </includes>
  95 + </resource>
  96 + <resource>
  97 + <directory>src/main/resources</directory>
  98 + <filtering>false</filtering>
  99 + <includes>
  100 + <include>**</include>
  101 + </includes>
  102 + <excludes>
  103 + <exclude>scripts/*</exclude>
  104 + <exclude>project.yaml</exclude>
  105 + </excludes>
  106 + </resource>
  107 + </resources>
  108 + </build>
  109 +</project>
... ...
  1 +package com.lframework.xingyun.api;
  2 +
  3 +import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
  4 +import com.lframework.starter.web.core.annotations.locker.EnableLock;
  5 +import com.lframework.starter.web.core.annotations.locker.LockType;
  6 +import org.mybatis.spring.annotation.MapperScan;
  7 +import org.springframework.boot.SpringApplication;
  8 +import org.springframework.boot.autoconfigure.SpringBootApplication;
  9 +import org.springframework.boot.web.servlet.ServletComponentScan;
  10 +import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  11 +import org.springframework.cloud.openfeign.EnableFeignClients;
  12 +import org.springframework.context.annotation.Bean;
  13 +import org.springframework.context.annotation.Configuration;
  14 +import springfox.documentation.builders.ApiInfoBuilder;
  15 +import springfox.documentation.builders.PathSelectors;
  16 +import springfox.documentation.builders.RequestHandlerSelectors;
  17 +import springfox.documentation.service.ApiInfo;
  18 +import springfox.documentation.spi.DocumentationType;
  19 +import springfox.documentation.spring.web.plugins.Docket;
  20 +
  21 +@EnableLock(type = LockType.REDIS)
  22 +@EnableDiscoveryClient
  23 +@EnableFeignClients(basePackages = "com.lframework.xingyun")
  24 +@ServletComponentScan(basePackages = "com.lframework.xingyun")
  25 +@SpringBootApplication(scanBasePackages = "com.lframework.xingyun")
  26 +@MapperScan("com.lframework.xingyun.**.mappers")
  27 +public class XingYunCloudApiApplication {
  28 +
  29 + public static void main(String[] args) {
  30 +
  31 + SpringApplication.run(XingYunCloudApiApplication.class, args);
  32 + }
  33 +
  34 + /**
  35 + * Swagger 自定义配置信息 请自行修改
  36 + */
  37 + @Configuration
  38 + public static class SwaggerApiConfiguration {
  39 +
  40 + @Bean(value = "defaultApi")
  41 + public Docket defaultApi(OpenApiExtensionResolver openApiExtensionResolver) {
  42 +
  43 + Docket docket = new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName("星云ERP")
  44 + .select()
  45 + .apis(RequestHandlerSelectors.basePackage("com.lframework.xingyun.api")
  46 + .or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.basedata"))
  47 + .or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.chart"))
  48 + .or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.core"))
  49 + .or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.sc"))
  50 + .or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.settle")))
  51 + .paths(PathSelectors.any())
  52 + .build().extensions(openApiExtensionResolver.buildSettingExtensions());
  53 + return docket;
  54 + }
  55 +
  56 + // 可以修改内容 但是不要删除这个Bean
  57 + @Bean
  58 + public ApiInfo apiInfo() {
  59 +
  60 + return new ApiInfoBuilder().title("星云ERP接口文档").description("# 星云ERP接口文档")
  61 + .contact("lframework@163.com")
  62 + .build();
  63 + }
  64 + }
  65 +}
... ...
  1 +config.stopBubbling=true
  2 +lombok.equalsAndHashCode.callSuper=call
\ No newline at end of file
... ...
  1 + ▄ ▄ ▀
  2 + █ █ ▄▄▄ ▄ ▄▄ ▄▄▄▄ ▄ ▄ ▄ ▄ ▄ ▄▄
  3 + ██ █ █▀ █ █▀ ▀█ ▀▄ ▄▀ █ █ █▀ █
  4 + ▄▀▀▄ █ █ █ █ █ █▄█ █ █ █ █
  5 + ▄▀ ▀▄ ▄▄█▄▄ █ █ ▀█▄▀█ ▀█ ▀▄▄▀█ █ █
  6 + ▄ █ ▄▀
  7 + ▀▀ ▀▀
\ No newline at end of file
... ...
  1 +server:
  2 + #端口
  3 + port: 15020
  4 +
  5 +spring:
  6 + application:
  7 + name: @project.artifactId@
  8 + profiles:
  9 + active: @profiles-active@
  10 + cloud:
  11 + nacos:
  12 + config:
  13 + server-addr: ${nacos-server-addr}
  14 + file-extension: yaml
  15 + namespace: 79a12770-4d6c-4931-a734-07240f088d33
  16 + extension-configs[0]:
  17 + data-id: common.yaml
  18 + refresh: true
  19 + extension-configs[1]:
  20 + data-id: db.yaml
  21 + refresh: true
  22 + extension-configs[2]:
  23 + data-id: redis.yaml
  24 + refresh: true
  25 + extension-configs[3]:
  26 + data-id: zipkin.yaml
  27 + refresh: true
  28 + extension-configs[4]:
  29 + data-id: mq.yaml
  30 + refresh: true
  31 + discovery:
  32 + server-addr: ${nacos-server-addr}
  33 + namespace: ${spring.profiles.active}
  34 +
  35 +# nacos-server地址
  36 +nacos-server-addr: 10.9.1.252:58849
\ No newline at end of file
... ...
  1 +var MAGIC_EDITOR_CONFIG = {
  2 + title: '在线开发平台',
  3 + header: {
  4 + skin: false, // 屏蔽皮肤按钮
  5 + document: false, // 屏蔽文档按钮
  6 + repo: false, // 屏蔽gitee和github
  7 + qqGroup: false // 屏蔽加入QQ群
  8 + },
  9 + getMagicTokenValue: function(){
  10 + return this.getCookie('X-Auth-Token');
  11 + },
  12 + getCookie: function(name) {
  13 + var cookies = document.cookie.split(';');
  14 + for (var i = 0; i < cookies.length; i++) {
  15 + var cookie = cookies[i].trim().split('=');
  16 + if (cookie[0] === name) {
  17 + return decodeURIComponent(cookie[1]);
  18 + }
  19 + }
  20 + }
  21 +}
\ No newline at end of file
... ...
  1 +logging:
  2 + pattern:
  3 + console: "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint}|%clr(%5p)|%clr(${PID:- }){magenta}|%clr(%15.15t){faint}|%clr(${spring.application.name}){cyan}|%clr(%X{X-B3-TraceId:-N/A}){blue}|%X{X-B3-SpanId:-N/A}|%clr(%-40.40logger{39}){cyan}|%m%n%wEx"
  4 + file: ${logging.pattern.console}
  5 + file:
  6 + name: logs/${spring.application.name}.log
  7 + max-history: 14
  8 + level:
  9 + io.lettuce.core.protocol: OFF
  10 +
  11 +jugg:
  12 + web:
  13 + #不需要认证的Url
  14 + filter-url: ${magic-api.push_path}
  15 + #终端ID
  16 + worker-id: 1
  17 + #数据中心ID
  18 + center-id: 1
  19 + #开启多租户
  20 + tenant:
  21 + enabled: true
  22 + #开启websocket
  23 + ws:
  24 + enabled: true
  25 + #通信topic
  26 + #topic: xingyun:ws:topic
  27 + #是否支持跨域
  28 + #support-cross-domain: false
  29 +magic-api:
  30 + # 编辑器配置项
  31 + editor-config: classpath:magic-editor-config.js
  32 + # 这里改为项目运行时的域名,菜单中嵌入的页面为base-url + web,这里示例即为http://localhost:8080/dynamic/web
  33 + base-url: http://localhost:15000
  34 + # 编辑器页面的访问路径url
  35 + web: /dynamic/web
  36 + resource:
  37 + type: database
  38 + tableName: magic_api_file
  39 + prefix: /magic-api
  40 + readonly: false
  41 + # 接口前缀
  42 + prefix: /dynamic-api
  43 + # 禁止覆盖应用接口
  44 + allow-override: true
  45 + # 是否支持跨域
  46 + support-cross-domain: true
  47 + # 推送路径
  48 + push_path: /_magic-api-sync
  49 + # 推送秘钥,自行修改
  50 + secret-key: 123456789
  51 + throw-exception: true
  52 + response: |- #配置JSON格式,格式为magic-script中的表达式
  53 + {
  54 + code: code,
  55 + msg: message,
  56 + data,
  57 + timestamp,
  58 + requestTime,
  59 + executeTime,
  60 + }
  61 + response-code:
  62 + success: 200
  63 + invalid: 400
  64 + exception: 500
  65 + page:
  66 + size: pageSize # 页大小的参数名称
  67 + page: pageIndex # 页码的参数名称
  68 + default-page: 1 # 未传页码时的默认首页
  69 + default-size: 20 # 未传页大小时的默认页大小
  70 + backup:
  71 + enable: true
  72 + max-history: 14 #备份保留天数,-1为永久保留
  73 + table-name: magic_api_file_backup
  74 +
  75 +# warm-flow
  76 +warm-flow:
  77 + token-name: ${sa-token.token-name}
  78 + data-fill-handler-path: com.lframework.starter.bpm.handlers.BpmDataFillHandler
  79 + # 是否开启逻辑删除(orm框架本身不支持逻辑删除,可通过这种方式开启)
  80 + logic_delete: true
  81 + # 逻辑删除字段值(开启后默认为2)
  82 + logic_delete_value: 2
  83 + # 逻辑未删除字段(开启后默认为0)
  84 + logic_not_delete_value: 0
\ No newline at end of file
... ...
  1 +#!/bin/sh
  2 +
  3 +export BUILD_ID=dontkillme
  4 +if [ -z $JAVA_HOME ] ;
  5 +then
  6 +echo "JAVA_HOME is not exist, please check"
  7 +exit 1
  8 +fi
  9 +export APP_HOME_BIN_PATH=$(cd `dirname $0`; pwd)
  10 +export APP_HOME=${APP_HOME_BIN_PATH%/bin}
  11 +
  12 +$JAVA_HOME/bin/java -jar -server -Xmx256m -XX:MaxPermSize=32m -XX:MaxNewSize=32m $APP_HOME/@build.finalName@.jar >/dev/null 2>&1 &
\ No newline at end of file
... ...
  1 +#!/bin/sh
  2 +
  3 +export APP_HOME_BIN_PATH=$(cd `dirname $0`; pwd)
  4 +export APP_HOME=${APP_HOME_BIN_PATH%/bin}
  5 +
  6 +export C_PID=`ps -ef | grep java | grep $APP_HOME | grep -v grep | awk '{print $2}'`
  7 +
  8 +if [ ! -z "$C_PID" ]; then
  9 + kill -15 $C_PID;
  10 +fi
\ No newline at end of file
... ...
  1 +FROM openjdk:8-jre-slim
  2 +
  3 +WORKDIR /opt
  4 +
  5 +ARG JAR_FILE=@build.finalName@.jar
  6 +COPY ${JAR_FILE} /opt/app.jar
  7 +
  8 +EXPOSE 15000
  9 +
  10 +ENV JAVA_OPTS="-Dspring.profiles.active=prod"
  11 +
  12 +CMD ["sh", "-c", "java $JAVA_OPTS -jar -server app.jar"]
... ...
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <artifactId>xingyun</artifactId>
  7 + <groupId>com.lframework</groupId>
  8 + <version>1.0.0-SNAPSHOT</version>
  9 + <relativePath>../../pom.xml</relativePath>
  10 + </parent>
  11 + <modelVersion>4.0.0</modelVersion>
  12 +
  13 + <artifactId>xingyun-cloud-gateway</artifactId>
  14 +
  15 + <name>【${project.artifactId}】GateWay网关</name>
  16 +
  17 + <dependencies>
  18 + <dependency>
  19 + <groupId>org.springframework.cloud</groupId>
  20 + <artifactId>spring-cloud-starter-gateway</artifactId>
  21 + </dependency>
  22 +
  23 + <dependency>
  24 + <groupId>com.alibaba.cloud</groupId>
  25 + <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  26 + </dependency>
  27 +
  28 + <dependency>
  29 + <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  30 + <groupId>com.alibaba.cloud</groupId>
  31 + </dependency>
  32 +
  33 + <dependency>
  34 + <artifactId>nacos-client</artifactId>
  35 + <groupId>com.alibaba.nacos</groupId>
  36 + </dependency>
  37 +
  38 + <dependency>
  39 + <artifactId>spring-cloud-starter-zipkin</artifactId>
  40 + <groupId>org.springframework.cloud</groupId>
  41 + </dependency>
  42 + </dependencies>
  43 +
  44 + <properties>
  45 + <maven.deploy.skip>true</maven.deploy.skip>
  46 + </properties>
  47 +
  48 + <build>
  49 + <finalName>${project.artifactId}</finalName>
  50 + <plugins>
  51 + <plugin>
  52 + <groupId>org.springframework.boot</groupId>
  53 + <artifactId>spring-boot-maven-plugin</artifactId>
  54 + </plugin>
  55 + <plugin>
  56 + <groupId>org.apache.maven.plugins</groupId>
  57 + <artifactId>maven-resources-plugin</artifactId>
  58 + <version>3.2.0</version>
  59 + <executions>
  60 + <execution>
  61 + <id>copy-resources-to-target</id>
  62 + <phase>package</phase>
  63 + <goals>
  64 + <goal>copy-resources</goal>
  65 + </goals>
  66 + <configuration>
  67 + <outputDirectory>${project.build.directory}</outputDirectory>
  68 + <resources>
  69 + <resource>
  70 + <directory>${project.basedir}</directory>
  71 + <filtering>true</filtering>
  72 + <includes>
  73 + <include>Dockerfile</include>
  74 + </includes>
  75 + </resource>
  76 + <resource>
  77 + <directory>${project.basedir}/src/main/resources</directory>
  78 + <filtering>true</filtering>
  79 + <includes>
  80 + <include>scripts/*</include>
  81 + </includes>
  82 + </resource>
  83 + </resources>
  84 + </configuration>
  85 + </execution>
  86 + </executions>
  87 + </plugin>
  88 + </plugins>
  89 + <resources>
  90 + <resource>
  91 + <directory>src/main/resources</directory>
  92 + <filtering>true</filtering>
  93 + <includes>
  94 + <include>bootstrap.yml</include>
  95 + </includes>
  96 + </resource>
  97 + <resource>
  98 + <directory>src/main/resources</directory>
  99 + <filtering>false</filtering>
  100 + <includes>
  101 + <include>**</include>
  102 + </includes>
  103 + <excludes>
  104 + <exclude>scripts/*</exclude>
  105 + <exclude>project.yaml</exclude>
  106 + </excludes>
  107 + </resource>
  108 + </resources>
  109 + </build>
  110 +</project>
\ No newline at end of file
... ...
  1 +package com.lframework.xingyun.gateway;
  2 +
  3 +import org.springframework.boot.SpringApplication;
  4 +import org.springframework.boot.autoconfigure.SpringBootApplication;
  5 +import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  6 +
  7 +@EnableDiscoveryClient
  8 +@SpringBootApplication
  9 +public class GateWayApplication {
  10 +
  11 + public static void main(String[] args) {
  12 + SpringApplication.run(GateWayApplication.class, args);
  13 + }
  14 +}
... ...
  1 + ▄ ▄ ▀
  2 + █ █ ▄▄▄ ▄ ▄▄ ▄▄▄▄ ▄ ▄ ▄ ▄ ▄ ▄▄
  3 + ██ █ █▀ █ █▀ ▀█ ▀▄ ▄▀ █ █ █▀ █
  4 + ▄▀▀▄ █ █ █ █ █ █▄█ █ █ █ █
  5 + ▄▀ ▀▄ ▄▄█▄▄ █ █ ▀█▄▀█ ▀█ ▀▄▄▀█ █ █
  6 + ▄ █ ▄▀
  7 + ▀▀ ▀▀
\ No newline at end of file
... ...
  1 +server:
  2 + #端口
  3 + port: 15000
  4 +
  5 +spring:
  6 + application:
  7 + name: @project.artifactId@
  8 + profiles:
  9 + active: @profiles-active@
  10 + cloud:
  11 + nacos:
  12 + config:
  13 + server-addr: ${nacos-server-addr}
  14 + file-extension: yaml
  15 + namespace: ${spring.profiles.active}
  16 + extension-configs[0]:
  17 + data-id: zipkin.yaml
  18 + refresh: true
  19 + discovery:
  20 + server-addr: ${nacos-server-addr}
  21 + namespace: ${spring.profiles.active}
  22 +
  23 +# nacos-server地址
  24 +nacos-server-addr: @discovery-server@
\ No newline at end of file
... ...
  1 +logging:
  2 + pattern:
  3 + console: "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint}|%clr(%5p)|%clr(${PID:- }){magenta}|%clr(%15.15t){faint}|%clr(${spring.application.name}){cyan}|%clr(%X{X-B3-TraceId:-N/A}){blue}|%X{X-B3-SpanId:-N/A}|%clr(%-40.40logger{39}){cyan}|%m%n%wEx"
  4 + file: ${logging.pattern.console}
  5 + file:
  6 + name: logs/${spring.application.name}.log
  7 + max-history: 14
  8 +
  9 +spring:
  10 + cloud:
  11 + gateway:
  12 + discovery:
  13 + locator:
  14 + enabled: true
  15 + routes:
  16 + - id: xingyun-cloud-api
  17 + uri: lb://xingyun-cloud-api
  18 + predicates:
  19 + - Path=/cloud-api/**
  20 + filters:
  21 + - StripPrefix=1
  22 + - id: xingyun-dynamic-api
  23 + uri: lb://xingyun-cloud-api
  24 + predicates:
  25 + - Path=/dynamic/web/**,/dynamic-api/**
  26 + - id: xingyun-oss
  27 + uri: lb://xingyun-cloud-api
  28 + predicates:
  29 + - Path=/oss/**
\ No newline at end of file
... ...
  1 +#!/bin/sh
  2 +
  3 +export BUILD_ID=dontkillme
  4 +if [ -z $JAVA_HOME ] ;
  5 +then
  6 +echo "JAVA_HOME is not exist, please check"
  7 +exit 1
  8 +fi
  9 +export APP_HOME_BIN_PATH=$(cd `dirname $0`; pwd)
  10 +export APP_HOME=${APP_HOME_BIN_PATH%/bin}
  11 +
  12 +$JAVA_HOME/bin/java -jar -server -Xmx256m -XX:MaxPermSize=32m -XX:MaxNewSize=32m $APP_HOME/@build.finalName@.jar >/dev/null 2>&1 &
\ No newline at end of file
... ...
  1 +#!/bin/sh
  2 +
  3 +export APP_HOME_BIN_PATH=$(cd `dirname $0`; pwd)
  4 +export APP_HOME=${APP_HOME_BIN_PATH%/bin}
  5 +
  6 +export C_PID=`ps -ef | grep java | grep $APP_HOME | grep -v grep | awk '{print $2}'`
  7 +
  8 +if [ ! -z "$C_PID" ]; then
  9 + kill -15 $C_PID;
  10 +fi
\ No newline at end of file
... ...
  1 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2 +<profiles version="13">
  3 +<profile kind="CodeFormatterProfile" name="GoogleStyle" version="13">
  4 +<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
  5 +<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
  6 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
  7 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
  8 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
  9 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
  10 +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
  11 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
  12 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
  13 +<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
  14 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_cascading_method_invocation_with_arguments.count_dependent" value="16|-1|16"/>
  15 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
  16 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
  17 +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
  18 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
  19 +<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true"/>
  20 +<setting id="org.eclipse.jdt.core.formatter.wrap_prefer_two_fragments" value="false"/>
  21 +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
  22 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
  23 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
  24 +<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
  25 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
  26 +<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
  27 +<setting id="org.eclipse.jdt.core.formatter.wrap_comment_inline_tags" value="false"/>
  28 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
  29 +<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
  30 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
  31 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_local_variable_declaration" value="16"/>
  32 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
  33 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter" value="1040"/>
  34 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
  35 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type.count_dependent" value="1585|-1|1585"/>
  36 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
  37 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
  38 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields.count_dependent" value="16|-1|16"/>
  39 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
  40 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
  41 +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
  42 +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
  43 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
  44 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
  45 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
  46 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
  47 +<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
  48 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression.count_dependent" value="16|4|80"/>
  49 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration.count_dependent" value="16|4|48"/>
  50 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
  51 +<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
  52 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration.count_dependent" value="16|4|49"/>
  53 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
  54 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
  55 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
  56 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
  57 +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
  58 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
  59 +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
  60 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_cascading_method_invocation_with_arguments" value="16"/>
  61 +<setting id="org.eclipse.jdt.core.compiler.source" value="1.7"/>
  62 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration.count_dependent" value="16|4|48"/>
  63 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
  64 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
  65 +<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
  66 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert"/>
  67 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
  68 +<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
  69 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
  70 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
  71 +<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_local_variable_annotation" value="true"/>
  72 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
  73 +<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
  74 +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="0"/>
  75 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
  76 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants.count_dependent" value="16|5|48"/>
  77 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
  78 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
  79 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
  80 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
  81 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
  82 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
  83 +<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false"/>
  84 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
  85 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
  86 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
  87 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
  88 +<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
  89 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
  90 +<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="100"/>
  91 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
  92 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation.count_dependent" value="16|4|48"/>
  93 +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
  94 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
  95 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
  96 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
  97 +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
  98 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
  99 +<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
  100 +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
  101 +<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
  102 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
  103 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package" value="1585"/>
  104 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
  105 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="16"/>
  106 +<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/>
  107 +<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
  108 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>
  109 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
  110 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
  111 +<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
  112 +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
  113 +<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
  114 +<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_type_annotation" value="true"/>
  115 +<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
  116 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
  117 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_field_declaration" value="16"/>
  118 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
  119 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
  120 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
  121 +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
  122 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="do not insert"/>
  123 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
  124 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>
  125 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
  126 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
  127 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
  128 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
  129 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
  130 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
  131 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
  132 +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
  133 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
  134 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
  135 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
  136 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
  137 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
  138 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
  139 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
  140 +<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>
  141 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
  142 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
  143 +<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/>
  144 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_generic_type_arguments" value="16"/>
  145 +<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
  146 +<setting id="org.eclipse.jdt.core.formatter.comment_new_line_at_start_of_html_paragraph" value="true"/>
  147 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
  148 +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
  149 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comment_prefix" value="do not insert"/>
  150 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
  151 +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
  152 +<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
  153 +<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_parameter_annotation" value="false"/>
  154 +<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
  155 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
  156 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
  157 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method" value="1585"/>
  158 +<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true"/>
  159 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
  160 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
  161 +<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
  162 +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
  163 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
  164 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>
  165 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
  166 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
  167 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
  168 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
  169 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
  170 +<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="2"/>
  171 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
  172 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
  173 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
  174 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
  175 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="do not insert"/>
  176 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
  177 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
  178 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
  179 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
  180 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation.count_dependent" value="16|5|80"/>
  181 +<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
  182 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter.count_dependent" value="1040|-1|1040"/>
  183 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
  184 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
  185 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
  186 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package.count_dependent" value="1585|-1|1585"/>
  187 +<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
  188 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
  189 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
  190 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
  191 +<setting id="org.eclipse.jdt.core.formatter.force_if_else_statement_brace" value="true"/>
  192 +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
  193 +<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="3"/>
  194 +<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_package_annotation" value="true"/>
  195 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
  196 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
  197 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
  198 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
  199 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
  200 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
  201 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation.count_dependent" value="16|-1|16"/>
  202 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
  203 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type" value="1585"/>
  204 +<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.7"/>
  205 +<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
  206 +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
  207 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
  208 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
  209 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
  210 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
  211 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_new_anonymous_class" value="20"/>
  212 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
  213 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable.count_dependent" value="1585|-1|1585"/>
  214 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
  215 +<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
  216 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
  217 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field.count_dependent" value="1585|-1|1585"/>
  218 +<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
  219 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
  220 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
  221 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
  222 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert"/>
  223 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
  224 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
  225 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration.count_dependent" value="16|5|80"/>
  226 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
  227 +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
  228 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="16"/>
  229 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
  230 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
  231 +<setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled"/>
  232 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
  233 +<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
  234 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
  235 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
  236 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
  237 +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
  238 +<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
  239 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
  240 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
  241 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant.count_dependent" value="16|-1|16"/>
  242 +<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="100"/>
  243 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
  244 +<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="0"/>
  245 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
  246 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
  247 +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
  248 +<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
  249 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
  250 +<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
  251 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
  252 +<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true"/>
  253 +<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="2"/>
  254 +<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
  255 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
  256 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
  257 +<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
  258 +<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
  259 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
  260 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
  261 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
  262 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
  263 +<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
  264 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
  265 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
  266 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
  267 +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
  268 +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="0"/>
  269 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
  270 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field" value="1585"/>
  271 +<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
  272 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
  273 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
  274 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
  275 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert"/>
  276 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
  277 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
  278 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
  279 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer.count_dependent" value="16|5|80"/>
  280 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
  281 +<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
  282 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
  283 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
  284 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
  285 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
  286 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
  287 +<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.7"/>
  288 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>
  289 +<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
  290 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="16"/>
  291 +<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="true"/>
  292 +<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
  293 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
  294 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="0"/>
  295 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
  296 +<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
  297 +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
  298 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
  299 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
  300 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
  301 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration.count_dependent" value="16|4|48"/>
  302 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
  303 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
  304 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method.count_dependent" value="1585|-1|1585"/>
  305 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
  306 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
  307 +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
  308 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
  309 +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
  310 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression.count_dependent" value="16|-1|16"/>
  311 +<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_member_annotation" value="true"/>
  312 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable" value="1585"/>
  313 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
  314 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
  315 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call.count_dependent" value="16|5|80"/>
  316 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
  317 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
  318 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
  319 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
  320 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_generic_type_arguments.count_dependent" value="16|-1|16"/>
  321 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
  322 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression.count_dependent" value="16|5|80"/>
  323 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
  324 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration.count_dependent" value="16|5|80"/>
  325 +<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
  326 +<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
  327 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
  328 +<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
  329 +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
  330 +<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
  331 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
  332 +<setting id="org.eclipse.jdt.core.formatter.alignment_for_for_statement" value="16"/>
  333 +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
  334 +<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
  335 +<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
  336 +</profile>
  337 +</profiles>
... ...
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<code_scheme name="GoogleStyle">
  3 + <option name="OTHER_INDENT_OPTIONS">
  4 + <value>
  5 + <option name="INDENT_SIZE" value="2" />
  6 + <option name="CONTINUATION_INDENT_SIZE" value="4" />
  7 + <option name="TAB_SIZE" value="2" />
  8 + <option name="USE_TAB_CHARACTER" value="false" />
  9 + <option name="SMART_TABS" value="false" />
  10 + <option name="LABEL_INDENT_SIZE" value="0" />
  11 + <option name="LABEL_INDENT_ABSOLUTE" value="false" />
  12 + <option name="USE_RELATIVE_INDENTS" value="false" />
  13 + </value>
  14 + </option>
  15 + <option name="INSERT_INNER_CLASS_IMPORTS" value="true" />
  16 + <option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
  17 + <option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
  18 + <option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
  19 + <value />
  20 + </option>
  21 + <option name="IMPORT_LAYOUT_TABLE">
  22 + <value>
  23 + <package name="" withSubpackages="true" static="true" />
  24 + <emptyLine />
  25 + <package name="" withSubpackages="true" static="false" />
  26 + </value>
  27 + </option>
  28 + <option name="RIGHT_MARGIN" value="100" />
  29 + <option name="JD_ALIGN_PARAM_COMMENTS" value="false" />
  30 + <option name="JD_ALIGN_EXCEPTION_COMMENTS" value="false" />
  31 + <option name="JD_P_AT_EMPTY_LINES" value="false" />
  32 + <option name="JD_KEEP_EMPTY_PARAMETER" value="false" />
  33 + <option name="JD_KEEP_EMPTY_EXCEPTION" value="false" />
  34 + <option name="JD_KEEP_EMPTY_RETURN" value="false" />
  35 + <option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
  36 + <option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="0" />
  37 + <option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
  38 + <option name="BLANK_LINES_AFTER_CLASS_HEADER" value="0" />
  39 + <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
  40 + <option name="ALIGN_MULTILINE_FOR" value="false" />
  41 + <option name="CALL_PARAMETERS_WRAP" value="1" />
  42 + <option name="METHOD_PARAMETERS_WRAP" value="1" />
  43 + <option name="EXTENDS_LIST_WRAP" value="1" />
  44 + <option name="THROWS_KEYWORD_WRAP" value="1" />
  45 + <option name="METHOD_CALL_CHAIN_WRAP" value="1" />
  46 + <option name="BINARY_OPERATION_WRAP" value="1" />
  47 + <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
  48 + <option name="TERNARY_OPERATION_WRAP" value="1" />
  49 + <option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
  50 + <option name="FOR_STATEMENT_WRAP" value="1" />
  51 + <option name="ARRAY_INITIALIZER_WRAP" value="1" />
  52 + <option name="WRAP_COMMENTS" value="true" />
  53 + <option name="IF_BRACE_FORCE" value="3" />
  54 + <option name="DOWHILE_BRACE_FORCE" value="3" />
  55 + <option name="WHILE_BRACE_FORCE" value="3" />
  56 + <option name="FOR_BRACE_FORCE" value="3" />
  57 + <option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true" />
  58 + <AndroidXmlCodeStyleSettings>
  59 + <option name="USE_CUSTOM_SETTINGS" value="true" />
  60 + <option name="LAYOUT_SETTINGS">
  61 + <value>
  62 + <option name="INSERT_BLANK_LINE_BEFORE_TAG" value="false" />
  63 + </value>
  64 + </option>
  65 + </AndroidXmlCodeStyleSettings>
  66 + <JSCodeStyleSettings>
  67 + <option name="INDENT_CHAINED_CALLS" value="false" />
  68 + </JSCodeStyleSettings>
  69 + <Python>
  70 + <option name="USE_CONTINUATION_INDENT_FOR_ARGUMENTS" value="true" />
  71 + </Python>
  72 + <TypeScriptCodeStyleSettings>
  73 + <option name="INDENT_CHAINED_CALLS" value="false" />
  74 + </TypeScriptCodeStyleSettings>
  75 + <XML>
  76 + <option name="XML_ALIGN_ATTRIBUTES" value="false" />
  77 + <option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
  78 + </XML>
  79 + <codeStyleSettings language="CSS">
  80 + <indentOptions>
  81 + <option name="INDENT_SIZE" value="2" />
  82 + <option name="CONTINUATION_INDENT_SIZE" value="4" />
  83 + <option name="TAB_SIZE" value="2" />
  84 + </indentOptions>
  85 + </codeStyleSettings>
  86 + <codeStyleSettings language="ECMA Script Level 4">
  87 + <option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
  88 + <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
  89 + <option name="ALIGN_MULTILINE_FOR" value="false" />
  90 + <option name="CALL_PARAMETERS_WRAP" value="1" />
  91 + <option name="METHOD_PARAMETERS_WRAP" value="1" />
  92 + <option name="EXTENDS_LIST_WRAP" value="1" />
  93 + <option name="BINARY_OPERATION_WRAP" value="1" />
  94 + <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
  95 + <option name="TERNARY_OPERATION_WRAP" value="1" />
  96 + <option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
  97 + <option name="FOR_STATEMENT_WRAP" value="1" />
  98 + <option name="ARRAY_INITIALIZER_WRAP" value="1" />
  99 + <option name="IF_BRACE_FORCE" value="3" />
  100 + <option name="DOWHILE_BRACE_FORCE" value="3" />
  101 + <option name="WHILE_BRACE_FORCE" value="3" />
  102 + <option name="FOR_BRACE_FORCE" value="3" />
  103 + <option name="PARENT_SETTINGS_INSTALLED" value="true" />
  104 + </codeStyleSettings>
  105 + <codeStyleSettings language="HTML">
  106 + <indentOptions>
  107 + <option name="INDENT_SIZE" value="2" />
  108 + <option name="CONTINUATION_INDENT_SIZE" value="4" />
  109 + <option name="TAB_SIZE" value="2" />
  110 + </indentOptions>
  111 + </codeStyleSettings>
  112 + <codeStyleSettings language="JAVA">
  113 + <option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
  114 + <option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
  115 + <option name="BLANK_LINES_AFTER_CLASS_HEADER" value="1" />
  116 + <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
  117 + <option name="ALIGN_MULTILINE_RESOURCES" value="false" />
  118 + <option name="ALIGN_MULTILINE_FOR" value="false" />
  119 + <option name="CALL_PARAMETERS_WRAP" value="1" />
  120 + <option name="METHOD_PARAMETERS_WRAP" value="1" />
  121 + <option name="EXTENDS_LIST_WRAP" value="1" />
  122 + <option name="THROWS_KEYWORD_WRAP" value="1" />
  123 + <option name="METHOD_CALL_CHAIN_WRAP" value="1" />
  124 + <option name="BINARY_OPERATION_WRAP" value="1" />
  125 + <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
  126 + <option name="TERNARY_OPERATION_WRAP" value="1" />
  127 + <option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
  128 + <option name="FOR_STATEMENT_WRAP" value="1" />
  129 + <option name="ARRAY_INITIALIZER_WRAP" value="1" />
  130 + <option name="WRAP_COMMENTS" value="true" />
  131 + <option name="IF_BRACE_FORCE" value="3" />
  132 + <option name="DOWHILE_BRACE_FORCE" value="3" />
  133 + <option name="WHILE_BRACE_FORCE" value="3" />
  134 + <option name="FOR_BRACE_FORCE" value="3" />
  135 + <option name="PARENT_SETTINGS_INSTALLED" value="true" />
  136 + <indentOptions>
  137 + <option name="INDENT_SIZE" value="2" />
  138 + <option name="CONTINUATION_INDENT_SIZE" value="4" />
  139 + <option name="TAB_SIZE" value="2" />
  140 + </indentOptions>
  141 + </codeStyleSettings>
  142 + <codeStyleSettings language="JSON">
  143 + <indentOptions>
  144 + <option name="CONTINUATION_INDENT_SIZE" value="4" />
  145 + <option name="TAB_SIZE" value="2" />
  146 + </indentOptions>
  147 + </codeStyleSettings>
  148 + <codeStyleSettings language="JavaScript">
  149 + <option name="RIGHT_MARGIN" value="80" />
  150 + <option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
  151 + <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
  152 + <option name="ALIGN_MULTILINE_FOR" value="false" />
  153 + <option name="CALL_PARAMETERS_WRAP" value="1" />
  154 + <option name="METHOD_PARAMETERS_WRAP" value="1" />
  155 + <option name="BINARY_OPERATION_WRAP" value="1" />
  156 + <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
  157 + <option name="TERNARY_OPERATION_WRAP" value="1" />
  158 + <option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
  159 + <option name="FOR_STATEMENT_WRAP" value="1" />
  160 + <option name="ARRAY_INITIALIZER_WRAP" value="1" />
  161 + <option name="IF_BRACE_FORCE" value="3" />
  162 + <option name="DOWHILE_BRACE_FORCE" value="3" />
  163 + <option name="WHILE_BRACE_FORCE" value="3" />
  164 + <option name="FOR_BRACE_FORCE" value="3" />
  165 + <option name="PARENT_SETTINGS_INSTALLED" value="true" />
  166 + <indentOptions>
  167 + <option name="INDENT_SIZE" value="2" />
  168 + <option name="TAB_SIZE" value="2" />
  169 + </indentOptions>
  170 + </codeStyleSettings>
  171 + <codeStyleSettings language="PROTO">
  172 + <option name="RIGHT_MARGIN" value="80" />
  173 + <indentOptions>
  174 + <option name="INDENT_SIZE" value="2" />
  175 + <option name="CONTINUATION_INDENT_SIZE" value="2" />
  176 + <option name="TAB_SIZE" value="2" />
  177 + </indentOptions>
  178 + </codeStyleSettings>
  179 + <codeStyleSettings language="protobuf">
  180 + <option name="RIGHT_MARGIN" value="80" />
  181 + <indentOptions>
  182 + <option name="INDENT_SIZE" value="2" />
  183 + <option name="CONTINUATION_INDENT_SIZE" value="2" />
  184 + <option name="TAB_SIZE" value="2" />
  185 + </indentOptions>
  186 + </codeStyleSettings>
  187 + <codeStyleSettings language="Python">
  188 + <option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
  189 + <option name="RIGHT_MARGIN" value="80" />
  190 + <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
  191 + <option name="PARENT_SETTINGS_INSTALLED" value="true" />
  192 + <indentOptions>
  193 + <option name="INDENT_SIZE" value="2" />
  194 + <option name="CONTINUATION_INDENT_SIZE" value="4" />
  195 + <option name="TAB_SIZE" value="2" />
  196 + </indentOptions>
  197 + </codeStyleSettings>
  198 + <codeStyleSettings language="SASS">
  199 + <indentOptions>
  200 + <option name="CONTINUATION_INDENT_SIZE" value="4" />
  201 + <option name="TAB_SIZE" value="2" />
  202 + </indentOptions>
  203 + </codeStyleSettings>
  204 + <codeStyleSettings language="SCSS">
  205 + <indentOptions>
  206 + <option name="CONTINUATION_INDENT_SIZE" value="4" />
  207 + <option name="TAB_SIZE" value="2" />
  208 + </indentOptions>
  209 + </codeStyleSettings>
  210 + <codeStyleSettings language="TypeScript">
  211 + <indentOptions>
  212 + <option name="INDENT_SIZE" value="2" />
  213 + <option name="TAB_SIZE" value="2" />
  214 + </indentOptions>
  215 + </codeStyleSettings>
  216 + <codeStyleSettings language="XML">
  217 + <indentOptions>
  218 + <option name="INDENT_SIZE" value="2" />
  219 + <option name="CONTINUATION_INDENT_SIZE" value="2" />
  220 + <option name="TAB_SIZE" value="2" />
  221 + </indentOptions>
  222 + <arrangement>
  223 + <rules>
  224 + <section>
  225 + <rule>
  226 + <match>
  227 + <AND>
  228 + <NAME>xmlns:android</NAME>
  229 + <XML_ATTRIBUTE />
  230 + <XML_NAMESPACE>^$</XML_NAMESPACE>
  231 + </AND>
  232 + </match>
  233 + </rule>
  234 + </section>
  235 + <section>
  236 + <rule>
  237 + <match>
  238 + <AND>
  239 + <NAME>xmlns:.*</NAME>
  240 + <XML_ATTRIBUTE />
  241 + <XML_NAMESPACE>^$</XML_NAMESPACE>
  242 + </AND>
  243 + </match>
  244 + <order>BY_NAME</order>
  245 + </rule>
  246 + </section>
  247 + <section>
  248 + <rule>
  249 + <match>
  250 + <AND>
  251 + <NAME>.*:id</NAME>
  252 + <XML_ATTRIBUTE />
  253 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  254 + </AND>
  255 + </match>
  256 + </rule>
  257 + </section>
  258 + <section>
  259 + <rule>
  260 + <match>
  261 + <AND>
  262 + <NAME>style</NAME>
  263 + <XML_ATTRIBUTE />
  264 + <XML_NAMESPACE>^$</XML_NAMESPACE>
  265 + </AND>
  266 + </match>
  267 + </rule>
  268 + </section>
  269 + <section>
  270 + <rule>
  271 + <match>
  272 + <AND>
  273 + <NAME>.*</NAME>
  274 + <XML_ATTRIBUTE />
  275 + <XML_NAMESPACE>^$</XML_NAMESPACE>
  276 + </AND>
  277 + </match>
  278 + <order>BY_NAME</order>
  279 + </rule>
  280 + </section>
  281 + <section>
  282 + <rule>
  283 + <match>
  284 + <AND>
  285 + <NAME>.*:.*Style</NAME>
  286 + <XML_ATTRIBUTE />
  287 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  288 + </AND>
  289 + </match>
  290 + <order>BY_NAME</order>
  291 + </rule>
  292 + </section>
  293 + <section>
  294 + <rule>
  295 + <match>
  296 + <AND>
  297 + <NAME>.*:layout_width</NAME>
  298 + <XML_ATTRIBUTE />
  299 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  300 + </AND>
  301 + </match>
  302 + </rule>
  303 + </section>
  304 + <section>
  305 + <rule>
  306 + <match>
  307 + <AND>
  308 + <NAME>.*:layout_height</NAME>
  309 + <XML_ATTRIBUTE />
  310 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  311 + </AND>
  312 + </match>
  313 + </rule>
  314 + </section>
  315 + <section>
  316 + <rule>
  317 + <match>
  318 + <AND>
  319 + <NAME>.*:layout_weight</NAME>
  320 + <XML_ATTRIBUTE />
  321 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  322 + </AND>
  323 + </match>
  324 + </rule>
  325 + </section>
  326 + <section>
  327 + <rule>
  328 + <match>
  329 + <AND>
  330 + <NAME>.*:layout_margin</NAME>
  331 + <XML_ATTRIBUTE />
  332 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  333 + </AND>
  334 + </match>
  335 + </rule>
  336 + </section>
  337 + <section>
  338 + <rule>
  339 + <match>
  340 + <AND>
  341 + <NAME>.*:layout_marginTop</NAME>
  342 + <XML_ATTRIBUTE />
  343 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  344 + </AND>
  345 + </match>
  346 + </rule>
  347 + </section>
  348 + <section>
  349 + <rule>
  350 + <match>
  351 + <AND>
  352 + <NAME>.*:layout_marginBottom</NAME>
  353 + <XML_ATTRIBUTE />
  354 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  355 + </AND>
  356 + </match>
  357 + </rule>
  358 + </section>
  359 + <section>
  360 + <rule>
  361 + <match>
  362 + <AND>
  363 + <NAME>.*:layout_marginStart</NAME>
  364 + <XML_ATTRIBUTE />
  365 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  366 + </AND>
  367 + </match>
  368 + </rule>
  369 + </section>
  370 + <section>
  371 + <rule>
  372 + <match>
  373 + <AND>
  374 + <NAME>.*:layout_marginEnd</NAME>
  375 + <XML_ATTRIBUTE />
  376 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  377 + </AND>
  378 + </match>
  379 + </rule>
  380 + </section>
  381 + <section>
  382 + <rule>
  383 + <match>
  384 + <AND>
  385 + <NAME>.*:layout_marginLeft</NAME>
  386 + <XML_ATTRIBUTE />
  387 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  388 + </AND>
  389 + </match>
  390 + </rule>
  391 + </section>
  392 + <section>
  393 + <rule>
  394 + <match>
  395 + <AND>
  396 + <NAME>.*:layout_marginRight</NAME>
  397 + <XML_ATTRIBUTE />
  398 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  399 + </AND>
  400 + </match>
  401 + </rule>
  402 + </section>
  403 + <section>
  404 + <rule>
  405 + <match>
  406 + <AND>
  407 + <NAME>.*:layout_.*</NAME>
  408 + <XML_ATTRIBUTE />
  409 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  410 + </AND>
  411 + </match>
  412 + <order>BY_NAME</order>
  413 + </rule>
  414 + </section>
  415 + <section>
  416 + <rule>
  417 + <match>
  418 + <AND>
  419 + <NAME>.*:padding</NAME>
  420 + <XML_ATTRIBUTE />
  421 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  422 + </AND>
  423 + </match>
  424 + </rule>
  425 + </section>
  426 + <section>
  427 + <rule>
  428 + <match>
  429 + <AND>
  430 + <NAME>.*:paddingTop</NAME>
  431 + <XML_ATTRIBUTE />
  432 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  433 + </AND>
  434 + </match>
  435 + </rule>
  436 + </section>
  437 + <section>
  438 + <rule>
  439 + <match>
  440 + <AND>
  441 + <NAME>.*:paddingBottom</NAME>
  442 + <XML_ATTRIBUTE />
  443 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  444 + </AND>
  445 + </match>
  446 + </rule>
  447 + </section>
  448 + <section>
  449 + <rule>
  450 + <match>
  451 + <AND>
  452 + <NAME>.*:paddingStart</NAME>
  453 + <XML_ATTRIBUTE />
  454 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  455 + </AND>
  456 + </match>
  457 + </rule>
  458 + </section>
  459 + <section>
  460 + <rule>
  461 + <match>
  462 + <AND>
  463 + <NAME>.*:paddingEnd</NAME>
  464 + <XML_ATTRIBUTE />
  465 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  466 + </AND>
  467 + </match>
  468 + </rule>
  469 + </section>
  470 + <section>
  471 + <rule>
  472 + <match>
  473 + <AND>
  474 + <NAME>.*:paddingLeft</NAME>
  475 + <XML_ATTRIBUTE />
  476 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  477 + </AND>
  478 + </match>
  479 + </rule>
  480 + </section>
  481 + <section>
  482 + <rule>
  483 + <match>
  484 + <AND>
  485 + <NAME>.*:paddingRight</NAME>
  486 + <XML_ATTRIBUTE />
  487 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  488 + </AND>
  489 + </match>
  490 + </rule>
  491 + </section>
  492 + <section>
  493 + <rule>
  494 + <match>
  495 + <AND>
  496 + <NAME>.*</NAME>
  497 + <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
  498 + </AND>
  499 + </match>
  500 + <order>BY_NAME</order>
  501 + </rule>
  502 + </section>
  503 + <section>
  504 + <rule>
  505 + <match>
  506 + <AND>
  507 + <NAME>.*</NAME>
  508 + <XML_NAMESPACE>http://schemas.android.com/apk/res-auto</XML_NAMESPACE>
  509 + </AND>
  510 + </match>
  511 + <order>BY_NAME</order>
  512 + </rule>
  513 + </section>
  514 + <section>
  515 + <rule>
  516 + <match>
  517 + <AND>
  518 + <NAME>.*</NAME>
  519 + <XML_NAMESPACE>http://schemas.android.com/tools</XML_NAMESPACE>
  520 + </AND>
  521 + </match>
  522 + <order>BY_NAME</order>
  523 + </rule>
  524 + </section>
  525 + <section>
  526 + <rule>
  527 + <match>
  528 + <AND>
  529 + <NAME>.*</NAME>
  530 + <XML_NAMESPACE>.*</XML_NAMESPACE>
  531 + </AND>
  532 + </match>
  533 + <order>BY_NAME</order>
  534 + </rule>
  535 + </section>
  536 + </rules>
  537 + </arrangement>
  538 + </codeStyleSettings>
  539 + <Objective-C>
  540 + <option name="INDENT_NAMESPACE_MEMBERS" value="0" />
  541 + <option name="INDENT_C_STRUCT_MEMBERS" value="2" />
  542 + <option name="INDENT_CLASS_MEMBERS" value="2" />
  543 + <option name="INDENT_VISIBILITY_KEYWORDS" value="1" />
  544 + <option name="INDENT_INSIDE_CODE_BLOCK" value="2" />
  545 + <option name="KEEP_STRUCTURES_IN_ONE_LINE" value="true" />
  546 + <option name="FUNCTION_PARAMETERS_WRAP" value="5" />
  547 + <option name="FUNCTION_CALL_ARGUMENTS_WRAP" value="5" />
  548 + <option name="TEMPLATE_CALL_ARGUMENTS_WRAP" value="5" />
  549 + <option name="TEMPLATE_CALL_ARGUMENTS_ALIGN_MULTILINE" value="true" />
  550 + <option name="ALIGN_INIT_LIST_IN_COLUMNS" value="false" />
  551 + <option name="SPACE_BEFORE_SUPERCLASS_COLON" value="false" />
  552 + </Objective-C>
  553 + <Objective-C-extensions>
  554 + <option name="GENERATE_INSTANCE_VARIABLES_FOR_PROPERTIES" value="ASK" />
  555 + <option name="RELEASE_STYLE" value="IVAR" />
  556 + <option name="TYPE_QUALIFIERS_PLACEMENT" value="BEFORE" />
  557 + <file>
  558 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
  559 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
  560 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
  561 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
  562 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
  563 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
  564 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
  565 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
  566 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
  567 + </file>
  568 + <class>
  569 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
  570 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
  571 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
  572 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
  573 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
  574 + <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
  575 + </class>
  576 + <extensions>
  577 + <pair source="cc" header="h" />
  578 + <pair source="c" header="h" />
  579 + </extensions>
  580 + </Objective-C-extensions>
  581 + <codeStyleSettings language="ObjectiveC">
  582 + <option name="RIGHT_MARGIN" value="80" />
  583 + <option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="1" />
  584 + <option name="BLANK_LINES_BEFORE_IMPORTS" value="0" />
  585 + <option name="BLANK_LINES_AFTER_IMPORTS" value="0" />
  586 + <option name="BLANK_LINES_AROUND_CLASS" value="0" />
  587 + <option name="BLANK_LINES_AROUND_METHOD" value="0" />
  588 + <option name="BLANK_LINES_AROUND_METHOD_IN_INTERFACE" value="0" />
  589 + <option name="ALIGN_MULTILINE_BINARY_OPERATION" value="false" />
  590 + <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
  591 + <option name="FOR_STATEMENT_WRAP" value="1" />
  592 + <option name="ASSIGNMENT_WRAP" value="1" />
  593 + <indentOptions>
  594 + <option name="INDENT_SIZE" value="2" />
  595 + <option name="CONTINUATION_INDENT_SIZE" value="4" />
  596 + </indentOptions>
  597 + </codeStyleSettings>
  598 +</code_scheme>
... ...
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <groupId>org.springframework.boot</groupId>
  7 + <artifactId>spring-boot-starter-parent</artifactId>
  8 + <version>2.2.2.RELEASE</version>
  9 + <relativePath/> <!-- lookup parent from repository -->
  10 + </parent>
  11 +
  12 + <groupId>com.lframework</groupId>
  13 + <artifactId>xingyun</artifactId>
  14 + <name>【${project.artifactId}】星云ERP</name>
  15 + <version>1.0.0-SNAPSHOT</version>
  16 +
  17 + <modelVersion>4.0.0</modelVersion>
  18 + <packaging>pom</packaging>
  19 +
  20 + <modules>
  21 + <module>xingyun-core</module>
  22 + <module>xingyun-api</module>
  23 + <module>xingyun-basedata</module>
  24 + <module>xingyun-sc</module>
  25 + <module>xingyun-chart</module>
  26 + <module>xingyun-settle</module>
  27 + <module>cloud/xingyun-cloud-api</module>
  28 + <module>xingyun-comp</module>
  29 + <module>cloud/xingyun-cloud-gateway</module>
  30 + </modules>
  31 +
  32 + <properties>
  33 + <maven.compiler.source>8</maven.compiler.source>
  34 + <maven.compiler.target>8</maven.compiler.target>
  35 + <xingyun.version>1.0.0-SNAPSHOT</xingyun.version>
  36 + <jugg.version>4.0.6</jugg.version>
  37 + </properties>
  38 +
  39 + <dependencyManagement>
  40 + <dependencies>
  41 + <dependency>
  42 + <groupId>com.lframework</groupId>
  43 + <artifactId>parent</artifactId>
  44 + <version>${jugg.version}</version>
  45 + <type>pom</type>
  46 + <scope>import</scope>
  47 + </dependency>
  48 + <dependency>
  49 + <groupId>com.lframework</groupId>
  50 + <artifactId>mq-starter</artifactId>
  51 + <version>${jugg.version}</version>
  52 + <type>pom</type>
  53 + <scope>import</scope>
  54 + </dependency>
  55 + <dependency>
  56 + <groupId>com.lframework</groupId>
  57 + <artifactId>xingyun-basedata</artifactId>
  58 + <version>${xingyun.version}</version>
  59 + </dependency>
  60 +
  61 + <dependency>
  62 + <groupId>com.lframework</groupId>
  63 + <artifactId>xingyun-comp</artifactId>
  64 + <version>${xingyun.version}</version>
  65 + </dependency>
  66 + <dependency>
  67 + <groupId>com.lframework</groupId>
  68 + <artifactId>xingyun-sc</artifactId>
  69 + <version>${xingyun.version}</version>
  70 + </dependency>
  71 +
  72 + <dependency>
  73 + <groupId>com.lframework</groupId>
  74 + <artifactId>xingyun-chart</artifactId>
  75 + <version>${xingyun.version}</version>
  76 + </dependency>
  77 +
  78 + <dependency>
  79 + <groupId>com.lframework</groupId>
  80 + <artifactId>xingyun-settle</artifactId>
  81 + <version>${xingyun.version}</version>
  82 + </dependency>
  83 +
  84 + <dependency>
  85 + <groupId>com.lframework</groupId>
  86 + <artifactId>xingyun-core</artifactId>
  87 + <version>${xingyun.version}</version>
  88 + </dependency>
  89 + </dependencies>
  90 + </dependencyManagement>
  91 +
  92 + <build>
  93 + <plugins>
  94 + <plugin>
  95 + <groupId>org.apache.maven.plugins</groupId>
  96 + <artifactId>maven-compiler-plugin</artifactId>
  97 + </plugin>
  98 + </plugins>
  99 + </build>
  100 +
  101 + <!-- 指定仓库 -->
  102 + <repositories>
  103 + <repository>
  104 + <id>ali-public</id>
  105 + <name>阿里云public库</name>
  106 + <url>https://maven.aliyun.com/repository/public</url>
  107 + <layout>default</layout>
  108 + </repository>
  109 +
  110 + <repository>
  111 + <id>ali-central</id>
  112 + <name>阿里云central库</name>
  113 + <url>https://maven.aliyun.com/repository/central</url>
  114 + </repository>
  115 +
  116 + <repository>
  117 + <id>ali-central-old</id>
  118 + <name>阿里云central库old</name>
  119 + <url>https://maven.aliyun.com/nexus/content/groups/public</url>
  120 + </repository>
  121 + </repositories>
  122 +
  123 + <profiles>
  124 + <profile>
  125 + <id>dev</id>
  126 + <activation>
  127 + <activeByDefault>true</activeByDefault>
  128 + </activation>
  129 + <properties>
  130 + <profiles-active>dev</profiles-active>
  131 + <discovery-server>127.0.0.1:10000</discovery-server>
  132 + </properties>
  133 + </profile>
  134 + <profile>
  135 + <id>test</id>
  136 + <properties>
  137 + <profiles-active>test</profiles-active>
  138 + <discovery-server>127.0.0.1:10000</discovery-server>
  139 + </properties>
  140 + </profile>
  141 + <profile>
  142 + <id>prod</id>
  143 + <properties>
  144 + <profiles-active>prod</profiles-active>
  145 + <discovery-server>127.0.0.1:10000</discovery-server>
  146 + </properties>
  147 + </profile>
  148 + </profiles>
  149 +</project>
... ...
  1 +FROM frolvlad/alpine-java:jdk8-slim
  2 +
  3 +WORKDIR /opt
  4 +
  5 +ARG JAR_FILE=@build.finalName@.jar
  6 +COPY ${JAR_FILE} /opt/app.jar
  7 +
  8 +EXPOSE 8080
  9 +
  10 +ENV JAVA_OPTS="-Dspring.profiles.active=prod"
  11 +
  12 +# 在默认情况下
  13 +# /opt/data/tmp是tomcat临时文件目录
  14 +# /opt/data/upload是公开上传文件的存储目录
  15 +# /opt/data/security-upload是安全上传文件的存储目录
  16 +# /opt/logs是日志的存储目录
  17 +CMD ["sh", "-c", "java -Dspring.servlet.multipart.location=/opt/data/tmp -Djugg.upload.location=/opt/data/upload -Djugg.security-upload.location=/opt/data/security-upload $JAVA_OPTS -jar -server app.jar"]
... ...
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <artifactId>xingyun</artifactId>
  7 + <groupId>com.lframework</groupId>
  8 + <version>1.0.0-SNAPSHOT</version>
  9 + </parent>
  10 + <modelVersion>4.0.0</modelVersion>
  11 +
  12 + <artifactId>xingyun-api</artifactId>
  13 + <name>【${project.artifactId}】Api接口层</name>
  14 +
  15 + <dependencies>
  16 + <dependency>
  17 + <groupId>com.lframework</groupId>
  18 + <artifactId>xingyun-comp</artifactId>
  19 + </dependency>
  20 + <dependency>
  21 + <groupId>com.lframework</groupId>
  22 + <artifactId>xingyun-basedata</artifactId>
  23 + </dependency>
  24 +
  25 + <dependency>
  26 + <groupId>com.lframework</groupId>
  27 + <artifactId>xingyun-sc</artifactId>
  28 + </dependency>
  29 +
  30 + <dependency>
  31 + <groupId>com.lframework</groupId>
  32 + <artifactId>xingyun-settle</artifactId>
  33 + </dependency>
  34 +
  35 + <dependency>
  36 + <groupId>com.lframework</groupId>
  37 + <artifactId>xingyun-chart</artifactId>
  38 + </dependency>
  39 +
  40 + <dependency>
  41 + <groupId>com.lframework</groupId>
  42 + <artifactId>rabbitmq-starter</artifactId>
  43 + </dependency>
  44 + </dependencies>
  45 +
  46 + <build>
  47 + <finalName>${project.artifactId}</finalName>
  48 + <plugins>
  49 + <plugin>
  50 + <groupId>org.springframework.boot</groupId>
  51 + <artifactId>spring-boot-maven-plugin</artifactId>
  52 + </plugin>
  53 + <plugin>
  54 + <groupId>org.apache.maven.plugins</groupId>
  55 + <artifactId>maven-resources-plugin</artifactId>
  56 + <version>3.2.0</version>
  57 + <executions>
  58 + <execution>
  59 + <id>copy-resources-to-target</id>
  60 + <phase>package</phase>
  61 + <goals>
  62 + <goal>copy-resources</goal>
  63 + </goals>
  64 + <configuration>
  65 + <outputDirectory>${project.build.directory}</outputDirectory>
  66 + <resources>
  67 + <resource>
  68 + <directory>${project.basedir}</directory>
  69 + <filtering>true</filtering>
  70 + <includes>
  71 + <include>Dockerfile</include>
  72 + </includes>
  73 + </resource>
  74 + <resource>
  75 + <directory>${project.basedir}/src/main/resources</directory>
  76 + <filtering>true</filtering>
  77 + <includes>
  78 + <include>scripts/*</include>
  79 + </includes>
  80 + </resource>
  81 + </resources>
  82 + </configuration>
  83 + </execution>
  84 + </executions>
  85 + </plugin>
  86 + </plugins>
  87 + <resources>
  88 + <resource>
  89 + <directory>src/main/resources</directory>
  90 + <filtering>true</filtering>
  91 + <includes>
  92 + <include>application.yml</include>
  93 + </includes>
  94 + </resource>
  95 + <resource>
  96 + <directory>src/main/resources</directory>
  97 + <filtering>false</filtering>
  98 + <includes>
  99 + <include>**</include>
  100 + </includes>
  101 + <excludes>
  102 + <exclude>db/**</exclude>
  103 + <exclude>scripts/*</exclude>
  104 + </excludes>
  105 + </resource>
  106 + </resources>
  107 + </build>
  108 +</project>
... ...
  1 +package com.lframework.xingyun.api;
  2 +
  3 +import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
  4 +import com.lframework.starter.web.core.annotations.locker.EnableLock;
  5 +import com.lframework.starter.web.core.annotations.locker.LockType;
  6 +import org.mybatis.spring.annotation.MapperScan;
  7 +import org.springframework.boot.SpringApplication;
  8 +import org.springframework.boot.autoconfigure.SpringBootApplication;
  9 +import org.springframework.boot.web.servlet.ServletComponentScan;
  10 +import org.springframework.context.annotation.Bean;
  11 +import org.springframework.context.annotation.Configuration;
  12 +import springfox.documentation.builders.ApiInfoBuilder;
  13 +import springfox.documentation.builders.PathSelectors;
  14 +import springfox.documentation.builders.RequestHandlerSelectors;
  15 +import springfox.documentation.service.ApiInfo;
  16 +import springfox.documentation.spi.DocumentationType;
  17 +import springfox.documentation.spring.web.plugins.Docket;
  18 +
  19 +@EnableLock(type = LockType.REDIS)
  20 +@ServletComponentScan(basePackages = {"com.lframework.xingyun"})
  21 +@SpringBootApplication(scanBasePackages = {"com.lframework.xingyun"})
  22 +@MapperScan({"com.lframework.xingyun.**.mappers"})
  23 +public class XingYunApiApplication {
  24 +
  25 + public static void main(String[] args) {
  26 +
  27 + SpringApplication.run(XingYunApiApplication.class, args);
  28 + }
  29 +
  30 + /**
  31 + * Swagger 自定义配置信息 请自行修改
  32 + */
  33 + @Configuration
  34 + public static class SwaggerApiConfiguration {
  35 +
  36 + @Bean(value = "defaultApi")
  37 + public Docket defaultApi(OpenApiExtensionResolver openApiExtensionResolver) {
  38 +
  39 + Docket docket = new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName("星云ERP")
  40 + .select()
  41 + .apis(RequestHandlerSelectors.basePackage("com.lframework.xingyun.api")
  42 + .or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.basedata"))
  43 + .or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.chart"))
  44 + .or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.core"))
  45 + .or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.sc"))
  46 + .or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.settle")))
  47 + .paths(PathSelectors.any())
  48 + .build().extensions(openApiExtensionResolver.buildSettingExtensions());
  49 + return docket;
  50 + }
  51 +
  52 + // 可以修改内容 但是不要删除这个Bean
  53 + @Bean
  54 + public ApiInfo apiInfo() {
  55 +
  56 + return new ApiInfoBuilder().title("星云ERP接口文档").description("# 星云ERP接口文档")
  57 + .contact("lframework@163.com")
  58 + .build();
  59 + }
  60 + }
  61 +}
... ...
  1 +config.stopBubbling=true
  2 +lombok.equalsAndHashCode.callSuper=call
\ No newline at end of file
... ...
  1 +logging:
  2 + pattern:
  3 + console: "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint}|%clr(%5p)|%clr(${PID:- }){magenta}|%clr(%15.15t){faint}|%clr(${spring.application.name}){cyan}|%clr(%X{X-B3-TraceId:-N/A}){blue}|%X{X-B3-SpanId:-N/A}|%clr(%-40.40logger{39}){cyan}|%m%n%wEx"
  4 + file: ${logging.pattern.console}
  5 + level:
  6 + com.lframework: DEBUG
  7 + io.lettuce.core.protocol: OFF
  8 + org.dromara.warm.flow: DEBUG
  9 +
  10 +spring:
  11 + servlet:
  12 + multipart:
  13 + #临时文件路径
  14 + location: D:\tmp\tmp-datas
  15 + datasource:
  16 + dynamic:
  17 + # 设置默认数据源
  18 + primary: master
  19 + # 是否严格匹配数据源 未匹配到指定数据源时true抛异常,false使用默认数据源
  20 + strict: true
  21 + datasource:
  22 + master:
  23 + type: com.alibaba.druid.pool.DruidDataSource
  24 + driver-class-name: com.mysql.cj.jdbc.Driver
  25 + url: jdbc:mysql://10.9.0.16:3307/platform?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
  26 + username: root
  27 + password: qihua
  28 + druid:
  29 + initial-size: 10
  30 + min-idle: 10
  31 + max-active: 200
  32 + max-wait: 60000
  33 + time-between-eviction-runs-millis: 300000
  34 + validation-query: SELECT 'x'
  35 + test-while-idle: true
  36 + test-on-borrow: false
  37 + test-on-return: false
  38 + pool-prepared-statements: true
  39 + max-pool-prepared-statement-per-connection-size: 20
  40 + filters: stat
  41 + #redis配置,这个redis用来缓存业务数据
  42 + redis:
  43 + #地址
  44 + host: 10.9.0.116
  45 + #端口,默认为6379
  46 + port: 6379
  47 + #数据库
  48 + database: 0
  49 + #密码
  50 + password: 123456
  51 + #连接超时时间
  52 + timeout: 10s
  53 + lettuce:
  54 + pool:
  55 + #连接池中的最小空闲连接
  56 + min-idle: 0
  57 + #连接池中的最大空闲连接
  58 + max-idle: 8
  59 + #连接池的最大数据库连接数
  60 + max-active: 8
  61 + #连接池最大阻塞等待时间(使用负值表示没有限制)
  62 + max-wait: -1ms
  63 + #RabbitMQ配置
  64 + rabbitmq:
  65 + addresses: 10.9.1.180:5672 # RabbitMQ集群地址列表,多个地址用逗号分隔
  66 + virtual-host: /
  67 + username: admin
  68 + password: 123456
  69 + connection-timeout: 60000 # 连接超时时间(毫秒),默认为60000毫秒(60秒)
  70 + ssl:
  71 + enabled: false # 是否启用SSL,默认为false
  72 + algorithm: TLSv1.2 # SSL算法,默认为TLSv1.2
  73 + publisher-confirm-type: SIMPLE # 发布确认机制
  74 + publisher-returns: true # 是否开启发布返回机制,默认为false
  75 + listener:
  76 + type: direct
  77 + simple:
  78 + acknowledge-mode: AUTO # 消费者确认模式,默认为auto
  79 + retry:
  80 + enabled: false # 是否启用重试机制,默认为false
  81 + direct:
  82 + acknowledge-mode: AUTO # 消费者确认模式,默认为auto
  83 + retry:
  84 + enabled: false # 是否启用重试机制,默认为false
  85 +
  86 +sa-token:
  87 + # 配置 Sa-Token 单独使用的 Redis 连接,将业务和鉴权独立
  88 + alone-redis:
  89 + # Redis数据库索引(默认为0),最好与业务数据的redis隔离
  90 + database: 1
  91 + # Redis服务器地址
  92 + host: ${spring.redis.host}
  93 + # Redis服务器连接端口
  94 + port: ${spring.redis.port}
  95 + # Redis服务器连接密码(默认为空)
  96 + password: ${spring.redis.password}
  97 + # 连接超时时间
  98 + timeout: ${spring.redis.timeout}
  99 +
  100 +jugg:
  101 + # 公开上传
  102 + upload:
  103 + #下载时的baseUrl,与domain的区别:会在url后面拼接/**作为静态资源的url,而domain是后端系统的具体域名,下载时的完整url例如:upload.domain + upload.url/xxx.jpg
  104 + url: /oss
  105 + #下载时的域名
  106 + domain: http://localhost:8080
  107 + #上传文件的路径
  108 + location: D:\upload\upload-data
  109 + # 安全上传
  110 + security-upload:
  111 + #下载时的域名,一般情况下和公开上传的域名一致
  112 + domain: ${jugg.upload.domain}
  113 + # 上传文件的路径
  114 + location: ${jugg.upload.location}
... ...
  1 +logging:
  2 + pattern:
  3 + console: "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint}|%clr(%5p)|%clr(${PID:- }){magenta}|%clr(%15.15t){faint}|%clr(${spring.application.name}){cyan}|%clr(%X{X-B3-TraceId:-N/A}){blue}|%X{X-B3-SpanId:-N/A}|%clr(%-40.40logger{39}){cyan}|%m%n%wEx"
  4 + file: ${logging.pattern.console}
  5 + file:
  6 + name: logs/${spring.application.name}.log
  7 + max-history: 14
  8 + level:
  9 + io.lettuce.core.protocol: OFF
  10 +
  11 +spring:
  12 + servlet:
  13 + multipart:
  14 + #临时文件路径
  15 + location: D:\tmp\tmp-datas
  16 + datasource:
  17 + dynamic:
  18 + # 设置默认数据源
  19 + primary: master
  20 + # 是否严格匹配数据源 未匹配到指定数据源时true抛异常,false使用默认数据源
  21 + strict: true
  22 + datasource:
  23 + master:
  24 + type: com.alibaba.druid.pool.DruidDataSource
  25 + driver-class-name: com.mysql.cj.jdbc.Driver
  26 + url: jdbc:mysql://127.0.0.1:3306/platform?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
  27 + username: root
  28 + password: password
  29 + druid:
  30 + initial-size: 10
  31 + min-idle: 10
  32 + max-active: 200
  33 + max-wait: 60000
  34 + time-between-eviction-runs-millis: 300000
  35 + validation-query: SELECT 'x'
  36 + test-while-idle: true
  37 + test-on-borrow: false
  38 + test-on-return: false
  39 + pool-prepared-statements: true
  40 + max-pool-prepared-statement-per-connection-size: 20
  41 + filters: stat
  42 + #redis配置,这个redis用来缓存业务数据
  43 + redis:
  44 + #地址
  45 + host: 127.0.0.1
  46 + #端口,默认为6379
  47 + port: 6379
  48 + #数据库
  49 + database: 0
  50 + #密码
  51 + password: password
  52 + #连接超时时间
  53 + timeout: 10s
  54 + lettuce:
  55 + pool:
  56 + #连接池中的最小空闲连接
  57 + min-idle: 0
  58 + #连接池中的最大空闲连接
  59 + max-idle: 8
  60 + #连接池的最大数据库连接数
  61 + max-active: 8
  62 + #连接池最大阻塞等待时间(使用负值表示没有限制)
  63 + max-wait: -1ms
  64 + #RabbitMQ配置
  65 + rabbitmq:
  66 + addresses: 127.0.0.1:5672 # RabbitMQ集群地址列表,多个地址用逗号分隔
  67 + virtual-host: /
  68 + username: username
  69 + password: password
  70 + connection-timeout: 60000 # 连接超时时间(毫秒),默认为60000毫秒(60秒)
  71 + ssl:
  72 + enabled: false # 是否启用SSL,默认为false
  73 + algorithm: TLSv1.2 # SSL算法,默认为TLSv1.2
  74 + publisher-confirm-type: SIMPLE # 发布确认机制
  75 + publisher-returns: true # 是否开启发布返回机制,默认为false
  76 + listener:
  77 + type: direct
  78 + simple:
  79 + acknowledge-mode: AUTO # 消费者确认模式,默认为auto
  80 + retry:
  81 + enabled: false # 是否启用重试机制,默认为false
  82 + direct:
  83 + acknowledge-mode: AUTO # 消费者确认模式,默认为auto
  84 + retry:
  85 + enabled: false # 是否启用重试机制,默认为false
  86 +
  87 +sa-token:
  88 + # 配置 Sa-Token 单独使用的 Redis 连接,将业务和鉴权独立
  89 + alone-redis:
  90 + # Redis数据库索引(默认为0),最好与业务数据的redis隔离
  91 + database: 1
  92 + # Redis服务器地址
  93 + host: ${spring.redis.host}
  94 + # Redis服务器连接端口
  95 + port: ${spring.redis.port}
  96 + # Redis服务器连接密码(默认为空)
  97 + password: ${spring.redis.password}
  98 + # 连接超时时间
  99 + timeout: ${spring.redis.timeout}
  100 +
  101 +jugg:
  102 + # 公开上传
  103 + upload:
  104 + #下载时的baseUrl,与domain的区别:会在url后面拼接/**作为静态资源的url,而domain是后端系统的具体域名,下载时的完整url例如:upload.domain + upload.url/xxx.jpg
  105 + url: /oss
  106 + #下载时的域名
  107 + domain: http://localhost:8080
  108 + #上传文件的路径
  109 + location: D:\upload\upload-data
  110 + # 安全上传
  111 + security-upload:
  112 + #下载时的域名,一般情况下和公开上传的域名一致
  113 + domain: ${jugg.upload.domain}
  114 + # 上传文件的路径
  115 + location: ${jugg.upload.location}
\ No newline at end of file
... ...
  1 +logging:
  2 + pattern:
  3 + console: "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint}|%clr(%5p)|%clr(${PID:- }){magenta}|%clr(%15.15t){faint}|%clr(${spring.application.name}){cyan}|%clr(%X{X-B3-TraceId:-N/A}){blue}|%X{X-B3-SpanId:-N/A}|%clr(%-40.40logger{39}){cyan}|%m%n%wEx"
  4 + file: ${logging.pattern.console}
  5 + file:
  6 + name: logs/${spring.application.name}.log
  7 + max-history: 14
  8 + level:
  9 + io.lettuce.core.protocol: OFF
  10 +
  11 +spring:
  12 + servlet:
  13 + multipart:
  14 + #临时文件路径
  15 + location: D:\tmp\tmp-datas
  16 + datasource:
  17 + dynamic:
  18 + # 设置默认数据源
  19 + primary: master
  20 + # 是否严格匹配数据源 未匹配到指定数据源时true抛异常,false使用默认数据源
  21 + strict: true
  22 + datasource:
  23 + master:
  24 + type: com.alibaba.druid.pool.DruidDataSource
  25 + driver-class-name: com.mysql.cj.jdbc.Driver
  26 + url: jdbc:mysql://127.0.0.1:3306/platform?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
  27 + username: root
  28 + password: password
  29 + druid:
  30 + initial-size: 10
  31 + min-idle: 10
  32 + max-active: 200
  33 + max-wait: 60000
  34 + time-between-eviction-runs-millis: 300000
  35 + validation-query: SELECT 'x'
  36 + test-while-idle: true
  37 + test-on-borrow: false
  38 + test-on-return: false
  39 + pool-prepared-statements: true
  40 + max-pool-prepared-statement-per-connection-size: 20
  41 + filters: stat
  42 + #redis配置,这个redis用来缓存业务数据
  43 + redis:
  44 + #地址
  45 + host: 127.0.0.1
  46 + #端口,默认为6379
  47 + port: 6379
  48 + #数据库
  49 + database: 0
  50 + #密码
  51 + password: password
  52 + #连接超时时间
  53 + timeout: 10s
  54 + lettuce:
  55 + pool:
  56 + #连接池中的最小空闲连接
  57 + min-idle: 0
  58 + #连接池中的最大空闲连接
  59 + max-idle: 8
  60 + #连接池的最大数据库连接数
  61 + max-active: 8
  62 + #连接池最大阻塞等待时间(使用负值表示没有限制)
  63 + max-wait: -1ms
  64 + #RabbitMQ配置
  65 + rabbitmq:
  66 + addresses: 127.0.0.1:5672 # RabbitMQ集群地址列表,多个地址用逗号分隔
  67 + virtual-host: /
  68 + username: username
  69 + password: password
  70 + connection-timeout: 60000 # 连接超时时间(毫秒),默认为60000毫秒(60秒)
  71 + ssl:
  72 + enabled: false # 是否启用SSL,默认为false
  73 + algorithm: TLSv1.2 # SSL算法,默认为TLSv1.2
  74 + publisher-confirm-type: SIMPLE # 发布确认机制
  75 + publisher-returns: true # 是否开启发布返回机制,默认为false
  76 + listener:
  77 + type: direct
  78 + simple:
  79 + acknowledge-mode: AUTO # 消费者确认模式,默认为auto
  80 + retry:
  81 + enabled: false # 是否启用重试机制,默认为false
  82 + direct:
  83 + acknowledge-mode: AUTO # 消费者确认模式,默认为auto
  84 + retry:
  85 + enabled: false # 是否启用重试机制,默认为false
  86 +
  87 +sa-token:
  88 + # 配置 Sa-Token 单独使用的 Redis 连接,将业务和鉴权独立
  89 + alone-redis:
  90 + # Redis数据库索引(默认为0),最好与业务数据的redis隔离
  91 + database: 1
  92 + # Redis服务器地址
  93 + host: ${spring.redis.host}
  94 + # Redis服务器连接端口
  95 + port: ${spring.redis.port}
  96 + # Redis服务器连接密码(默认为空)
  97 + password: ${spring.redis.password}
  98 + # 连接超时时间
  99 + timeout: ${spring.redis.timeout}
  100 +
  101 +jugg:
  102 + # 公开上传
  103 + upload:
  104 + #下载时的baseUrl,与domain的区别:会在url后面拼接/**作为静态资源的url,而domain是后端系统的具体域名,下载时的完整url例如:upload.domain + upload.url/xxx.jpg
  105 + url: /oss
  106 + #下载时的域名
  107 + domain: http://localhost:8080
  108 + #上传文件的路径
  109 + location: D:\upload\upload-data
  110 + # 安全上传
  111 + security-upload:
  112 + #下载时的域名,一般情况下和公开上传的域名一致
  113 + domain: ${jugg.upload.domain}
  114 + # 上传文件的路径
  115 + location: ${jugg.upload.location}
... ...
  1 +server:
  2 + #端口
  3 + port: 8080
  4 +spring:
  5 + application:
  6 + name: @project.artifactId@
  7 + profiles:
  8 + active: @profiles-active@
  9 + servlet:
  10 + multipart:
  11 + #是否开启文件上传
  12 + enabled: true
  13 + #单个文件最大值
  14 + max-file-size: 10MB
  15 + #请求中所有文件的最大值
  16 + max-request-size: 100MB
  17 + #将文件写入磁盘的阈值
  18 + #file-size-threshold: 0
  19 + #是否要延迟解析文件
  20 + #resolve-lazily: false
  21 + quartz:
  22 + jdbc:
  23 + initialize-schema: never
  24 + job-store-type: jdbc
  25 + wait-for-jobs-to-complete-on-shutdown: true
  26 + #时间格式
  27 + jackson:
  28 + date-format: yyyy-MM-dd HH:mm:ss
  29 + default-property-inclusion: non_null
  30 + #使用redis存储SESSION
  31 + session:
  32 + store-type: redis
  33 + redis:
  34 + lettuce:
  35 + reader-idle-time-seconds: 30
  36 +
  37 +knife4j:
  38 + enable: true
  39 + setting:
  40 + language: zh-CN
  41 + # 是否显示界面中SwaggerModel功能
  42 + enableSwaggerModels: false
  43 + # 是否显示界面中"文档管理"功能
  44 + enableDocumentManage: true
  45 + # 是否默认显示底部Footer
  46 + enableFooter: false
  47 + # 是否自定义Footer
  48 + enableFooterCustom: true
  49 + # 自定义Footer内容(支持Markdown语法)
  50 + footerCustomContent: Apache License 2.0 | Copyright 2019-[星云ERP](https://gitee.com/lframework/xingyun)
  51 + # 是否开启调试
  52 + enableDebug: true
  53 + # 是否显示OpenAPI原始结构的Tab框,默认显示
  54 + enableOpenApi: false
  55 + # 是否生产环境
  56 + production: false
  57 +
  58 +# Sa-Token配置
  59 +sa-token:
  60 + # token名称 (同时也是cookie名称),此值不要修改
  61 + token-name: X-Auth-Token
  62 + # token有效期,单位s 默认30天, -1代表永不过期
  63 + timeout: 25920000
  64 + # token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
  65 + activity-timeout: 7200
  66 + # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
  67 + is-concurrent: true
  68 + # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
  69 + is-share: false
  70 + # token风格
  71 + token-style: uuid
  72 + # 是否输出操作日志
  73 + is-log: false
  74 +
  75 +jugg:
  76 + secret:
  77 + # 秘钥,用于敏感信息加密,生产环境一定要更改此项,并且产生数据后不要更改秘钥
  78 + # 提供了EncryptUtil工具类,包含:生成秘钥、加密、解密方法。
  79 + key: eRE2drUFINojkG9ivqtfOA==
  80 + #默认配置
  81 + default-setting:
  82 + #默认的用户ID,用于写入数据库时的createById和updateById的自动赋值,如果有登录人则取登录人ID,如果没有则取默认用户ID,如果不配置,默认是1
  83 + default-user-id: 1
  84 + #默认的用户姓名,用于写入数据库时的createBy和updateBy的自动赋值,如果有登录人则取登录人姓名,如果没有则取默认用户姓名,如果不配置,默认是系统管理员
  85 + default-user-name: 系统管理员
  86 + web:
  87 + #不需要认证的Url
  88 + filter-url: ${magic-api.push_path}
  89 + #终端ID
  90 + worker-id: 1
  91 + #数据中心ID
  92 + center-id: 1
  93 + #重复提交拦截暂时不实现
  94 + #repeat-request:
  95 + #重复提交拦截间隔(单位:秒)
  96 + #filter-interval: 1
  97 + #缓存TTL配置 单位:秒
  98 + cache:
  99 + #公共缓存过期时间
  100 + ttl: 1800
  101 + #特殊指定缓存过期时间,以下示例为cacheName的过期时间是3600秒、cacheName2的过期是7200秒。cacheName、cacheName2对应的是@Cacheable的Value属性
  102 + #regions:
  103 + # cacheName: 3600
  104 + # cacheName2: 7200
  105 + regions:
  106 + product_stock_warning_notify: 86400
  107 + #开启多租户
  108 + tenant:
  109 + enabled: false
  110 + #开启websocket
  111 + ws:
  112 + enabled: true
  113 + #通信topic
  114 + #topic: xingyun:ws:topic
  115 + #是否支持跨域
  116 + #support-cross-domain: false
  117 + #验证码配置
  118 + kaptcha:
  119 + #过期时间(单位:分钟)
  120 + expire-time: 5
  121 + session-config-key: KAPTCHA_SESSION_KEY
  122 + session-config-date: KAPTCHA_SESSION_DATE
  123 + border: true
  124 + border-color: black
  125 + border-thickness: 1
  126 + noise-color: black
  127 + noise-impl: com.google.code.kaptcha.impl.DefaultNoise
  128 + obscurificator-impl: com.google.code.kaptcha.impl.WaterRipple
  129 + producer-impl: com.google.code.kaptcha.impl.DefaultKaptcha
  130 + text-producer-impl: com.google.code.kaptcha.text.impl.DefaultTextCreator
  131 + text-producer-char-string: abcde2345678gfynmnpwx
  132 + text-producer-char-length: 4
  133 + text-producer-font-names: Arial,Courier
  134 + text-producer-font-color: black
  135 + text-producer-font-size: 28
  136 + text-producer-char-space: 2
  137 + word-render-impl: com.google.code.kaptcha.text.impl.DefaultWordRenderer
  138 + back-ground-impl: com.google.code.kaptcha.impl.DefaultBackground
  139 + back-ground-clr-from: lightGray
  140 + back-ground-clr-to: white
  141 + image-width: 120
  142 + image-height: 40
  143 +
  144 +
  145 +#PageHelper分页器
  146 +pagehelper:
  147 + offset-as-page-num: true
  148 + row-bounds-with-count: true
  149 + page-size-zero: true
  150 + reasonable: false
  151 + params: pageNum=pageIndex;pageSize=pageSize;
  152 + support-methods-arguments: false
  153 +mybatis-plus:
  154 + mapper-locations: classpath*:/mappers/**/*.xml
  155 + typeEnumsPackage: com.lframework.starter.**.enums,com.lframework.xingyun.**.enums
  156 +
  157 +op-logs:
  158 + #是否开启
  159 + enabled: true
  160 + #操作日志保留天数
  161 + retain-days: 7
  162 +
  163 +# 是否移除内置权限,针对admin等内置权限,因为内置权限等同于通配符权限,设置为true时会用具体的权限将内置权限替换掉,生产环境建议设置为true
  164 +remove-fixed-permissions: false
  165 +
  166 +magic-api:
  167 + # 编辑器配置项
  168 + editor-config: classpath:magic-editor-config.js
  169 + # 这里改为项目运行时的域名,菜单中嵌入的页面为base-url + web,这里示例即为http://localhost:8080/dynamic/web
  170 + base-url: http://localhost:8080
  171 + # 编辑器页面的访问路径url
  172 + web: /dynamic/web
  173 + resource:
  174 + type: database
  175 + tableName: magic_api_file
  176 + prefix: /magic-api
  177 + readonly: false
  178 + # 接口前缀
  179 + prefix: /dynamic-api
  180 + # 禁止覆盖应用接口
  181 + allow-override: true
  182 + # 是否支持跨域
  183 + support-cross-domain: false
  184 + # 推送路径
  185 + push_path: /_magic-api-sync
  186 + # 推送秘钥,自行修改
  187 + secret-key: 123456789
  188 + throw-exception: true
  189 + response: |- #配置JSON格式,格式为magic-script中的表达式
  190 + {
  191 + code: code,
  192 + msg: message,
  193 + data,
  194 + timestamp,
  195 + requestTime,
  196 + executeTime,
  197 + }
  198 + response-code:
  199 + success: 200
  200 + invalid: 400
  201 + exception: 500
  202 + page:
  203 + size: pageSize # 页大小的参数名称
  204 + page: pageIndex # 页码的参数名称
  205 + default-page: 1 # 未传页码时的默认首页
  206 + default-size: 20 # 未传页大小时的默认页大小
  207 + backup:
  208 + enable: true
  209 + max-history: 14 #备份保留天数,-1为永久保留
  210 + table-name: magic_api_file_backup
  211 +
  212 +# warm-flow
  213 +warm-flow:
  214 + token-name: ${sa-token.token-name}
  215 + data-fill-handler-path: com.lframework.starter.bpm.handlers.BpmDataFillHandler
  216 + # 是否开启逻辑删除(orm框架本身不支持逻辑删除,可通过这种方式开启)
  217 + logic_delete: true
  218 + # 逻辑删除字段值(开启后默认为2)
  219 + logic_delete_value: 2
  220 + # 逻辑未删除字段(开启后默认为0)
  221 + logic_not_delete_value: 0
\ No newline at end of file
... ...
  1 + ▄ ▄ ▀
  2 + █ █ ▄▄▄ ▄ ▄▄ ▄▄▄▄ ▄ ▄ ▄ ▄ ▄ ▄▄
  3 + ██ █ █▀ █ █▀ ▀█ ▀▄ ▄▀ █ █ █▀ █
  4 + ▄▀▀▄ █ █ █ █ █ █▄█ █ █ █ █
  5 + ▄▀ ▀▄ ▄▄█▄▄ █ █ ▀█▄▀█ ▀█ ▀▄▄▀█ █ █
  6 + ▄ █ ▄▀
  7 + ▀▀ ▀▀
\ No newline at end of file
... ...
  1 +all目录中的是全量SQL,其中platform.sql是平台库SQL;tenant.sql是租户库SQL。
  2 +migration目录中的是增量SQL,其中platform目录中是平台库的增量SQL;tenant目录中是租户库的增量SQL。
  3 +如果不使用多租户,那么平台库和租户库的SQL就在同一个库中执行。
  4 +使用多租户时,租户库是从平台库的tenant表中获取的,不要忘记修改这个表里面的数据
  5 +tenant表中存储的密码不是明文密码,需要将明文密码加密后存储,参见EncryptUtil中的main方法进行转换。
\ No newline at end of file
... ...
  1 +SET NAMES utf8mb4;
  2 +SET FOREIGN_KEY_CHECKS = 0;
  3 +
  4 +-- ----------------------------
  5 +-- Table structure for magic_api_file
  6 +-- ----------------------------
  7 +DROP TABLE IF EXISTS `magic_api_file`;
  8 +CREATE TABLE `magic_api_file` (
  9 + `file_path` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  10 + `file_content` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  11 + PRIMARY KEY (`file_path`) USING BTREE
  12 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
  13 +
  14 +-- ----------------------------
  15 +-- Records of magic_api_file
  16 +-- ----------------------------
  17 +
  18 +-- ----------------------------
  19 +-- Table structure for magic_api_file_backup
  20 +-- ----------------------------
  21 +DROP TABLE IF EXISTS `magic_api_file_backup`;
  22 +CREATE TABLE `magic_api_file_backup` (
  23 + `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '原对象ID',
  24 + `create_date` bigint(13) NOT NULL COMMENT '备份时间',
  25 + `tag` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标签',
  26 + `type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类型',
  27 + `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '原名称',
  28 + `content` blob NULL COMMENT '备份内容',
  29 + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作人',
  30 + PRIMARY KEY (`id`, `create_date`) USING BTREE
  31 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
  32 +
  33 +-- ----------------------------
  34 +-- Records of magic_api_file_backup
  35 +-- ----------------------------
  36 +
  37 +-- ----------------------------
  38 +-- Table structure for qrtz_blob_triggers
  39 +-- ----------------------------
  40 +DROP TABLE IF EXISTS `qrtz_blob_triggers`;
  41 +CREATE TABLE `qrtz_blob_triggers` (
  42 + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  43 + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  44 + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  45 + `BLOB_DATA` blob NULL,
  46 + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  47 + INDEX `SCHED_NAME`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  48 + 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
  49 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
  50 +
  51 +-- ----------------------------
  52 +-- Records of qrtz_blob_triggers
  53 +-- ----------------------------
  54 +
  55 +-- ----------------------------
  56 +-- Table structure for qrtz_calendars
  57 +-- ----------------------------
  58 +DROP TABLE IF EXISTS `qrtz_calendars`;
  59 +CREATE TABLE `qrtz_calendars` (
  60 + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  61 + `CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  62 + `CALENDAR` blob NOT NULL,
  63 + PRIMARY KEY (`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE
  64 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
  65 +
  66 +-- ----------------------------
  67 +-- Records of qrtz_calendars
  68 +-- ----------------------------
  69 +
  70 +-- ----------------------------
  71 +-- Table structure for qrtz_cron_triggers
  72 +-- ----------------------------
  73 +DROP TABLE IF EXISTS `qrtz_cron_triggers`;
  74 +CREATE TABLE `qrtz_cron_triggers` (
  75 + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  76 + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  77 + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  78 + `CRON_EXPRESSION` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  79 + `TIME_ZONE_ID` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  80 + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  81 + 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
  82 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
  83 +
  84 +-- ----------------------------
  85 +-- Records of qrtz_cron_triggers
  86 +-- ----------------------------
  87 +
  88 +-- ----------------------------
  89 +-- Table structure for qrtz_fired_triggers
  90 +-- ----------------------------
  91 +DROP TABLE IF EXISTS `qrtz_fired_triggers`;
  92 +CREATE TABLE `qrtz_fired_triggers` (
  93 + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  94 + `ENTRY_ID` varchar(95) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  95 + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  96 + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  97 + `INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  98 + `FIRED_TIME` bigint(13) NOT NULL,
  99 + `SCHED_TIME` bigint(13) NOT NULL,
  100 + `PRIORITY` int(11) NOT NULL,
  101 + `STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  102 + `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  103 + `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  104 + `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  105 + `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  106 + PRIMARY KEY (`SCHED_NAME`, `ENTRY_ID`) USING BTREE,
  107 + INDEX `IDX_QRTZ_FT_TRIG_INST_NAME`(`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE,
  108 + INDEX `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY`(`SCHED_NAME`, `INSTANCE_NAME`, `REQUESTS_RECOVERY`) USING BTREE,
  109 + INDEX `IDX_QRTZ_FT_J_G`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
  110 + INDEX `IDX_QRTZ_FT_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE,
  111 + INDEX `IDX_QRTZ_FT_T_G`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  112 + INDEX `IDX_QRTZ_FT_TG`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE
  113 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
  114 +
  115 +-- ----------------------------
  116 +-- Records of qrtz_fired_triggers
  117 +-- ----------------------------
  118 +
  119 +-- ----------------------------
  120 +-- Table structure for qrtz_job_details
  121 +-- ----------------------------
  122 +DROP TABLE IF EXISTS `qrtz_job_details`;
  123 +CREATE TABLE `qrtz_job_details` (
  124 + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  125 + `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  126 + `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  127 + `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  128 + `JOB_CLASS_NAME` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  129 + `IS_DURABLE` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  130 + `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  131 + `IS_UPDATE_DATA` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  132 + `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  133 + `JOB_DATA` blob NULL,
  134 + PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
  135 + INDEX `IDX_QRTZ_J_REQ_RECOVERY`(`SCHED_NAME`, `REQUESTS_RECOVERY`) USING BTREE,
  136 + INDEX `IDX_QRTZ_J_GRP`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE
  137 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
  138 +
  139 +-- ----------------------------
  140 +-- Records of qrtz_job_details
  141 +-- ----------------------------
  142 +
  143 +-- ----------------------------
  144 +-- Table structure for qrtz_locks
  145 +-- ----------------------------
  146 +DROP TABLE IF EXISTS `qrtz_locks`;
  147 +CREATE TABLE `qrtz_locks` (
  148 + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  149 + `LOCK_NAME` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  150 + PRIMARY KEY (`SCHED_NAME`, `LOCK_NAME`) USING BTREE
  151 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
  152 +
  153 +-- ----------------------------
  154 +-- Records of qrtz_locks
  155 +-- ----------------------------
  156 +
  157 +-- ----------------------------
  158 +-- Table structure for qrtz_paused_trigger_grps
  159 +-- ----------------------------
  160 +DROP TABLE IF EXISTS `qrtz_paused_trigger_grps`;
  161 +CREATE TABLE `qrtz_paused_trigger_grps` (
  162 + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  163 + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  164 + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE
  165 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
  166 +
  167 +-- ----------------------------
  168 +-- Records of qrtz_paused_trigger_grps
  169 +-- ----------------------------
  170 +
  171 +-- ----------------------------
  172 +-- Table structure for qrtz_scheduler_state
  173 +-- ----------------------------
  174 +DROP TABLE IF EXISTS `qrtz_scheduler_state`;
  175 +CREATE TABLE `qrtz_scheduler_state` (
  176 + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  177 + `INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  178 + `LAST_CHECKIN_TIME` bigint(13) NOT NULL,
  179 + `CHECKIN_INTERVAL` bigint(13) NOT NULL,
  180 + PRIMARY KEY (`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE
  181 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
  182 +
  183 +-- ----------------------------
  184 +-- Records of qrtz_scheduler_state
  185 +-- ----------------------------
  186 +
  187 +-- ----------------------------
  188 +-- Table structure for qrtz_simple_triggers
  189 +-- ----------------------------
  190 +DROP TABLE IF EXISTS `qrtz_simple_triggers`;
  191 +CREATE TABLE `qrtz_simple_triggers` (
  192 + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  193 + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  194 + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  195 + `REPEAT_COUNT` bigint(7) NOT NULL,
  196 + `REPEAT_INTERVAL` bigint(12) NOT NULL,
  197 + `TIMES_TRIGGERED` bigint(10) NOT NULL,
  198 + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  199 + 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
  200 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
  201 +
  202 +-- ----------------------------
  203 +-- Records of qrtz_simple_triggers
  204 +-- ----------------------------
  205 +
  206 +-- ----------------------------
  207 +-- Table structure for qrtz_simprop_triggers
  208 +-- ----------------------------
  209 +DROP TABLE IF EXISTS `qrtz_simprop_triggers`;
  210 +CREATE TABLE `qrtz_simprop_triggers` (
  211 + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  212 + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  213 + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  214 + `STR_PROP_1` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  215 + `STR_PROP_2` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  216 + `STR_PROP_3` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  217 + `INT_PROP_1` int(11) NULL DEFAULT NULL,
  218 + `INT_PROP_2` int(11) NULL DEFAULT NULL,
  219 + `LONG_PROP_1` bigint(20) NULL DEFAULT NULL,
  220 + `LONG_PROP_2` bigint(20) NULL DEFAULT NULL,
  221 + `DEC_PROP_1` decimal(13, 4) NULL DEFAULT NULL,
  222 + `DEC_PROP_2` decimal(13, 4) NULL DEFAULT NULL,
  223 + `BOOL_PROP_1` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  224 + `BOOL_PROP_2` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  225 + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  226 + 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
  227 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
  228 +
  229 +-- ----------------------------
  230 +-- Records of qrtz_simprop_triggers
  231 +-- ----------------------------
  232 +
  233 +-- ----------------------------
  234 +-- Table structure for qrtz_triggers
  235 +-- ----------------------------
  236 +DROP TABLE IF EXISTS `qrtz_triggers`;
  237 +CREATE TABLE `qrtz_triggers` (
  238 + `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  239 + `TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  240 + `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  241 + `JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  242 + `JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  243 + `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  244 + `NEXT_FIRE_TIME` bigint(13) NULL DEFAULT NULL,
  245 + `PREV_FIRE_TIME` bigint(13) NULL DEFAULT NULL,
  246 + `PRIORITY` int(11) NULL DEFAULT NULL,
  247 + `TRIGGER_STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  248 + `TRIGGER_TYPE` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  249 + `START_TIME` bigint(13) NOT NULL,
  250 + `END_TIME` bigint(13) NULL DEFAULT NULL,
  251 + `CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  252 + `MISFIRE_INSTR` smallint(2) NULL DEFAULT NULL,
  253 + `JOB_DATA` blob NULL,
  254 + PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
  255 + INDEX `IDX_QRTZ_T_J`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
  256 + INDEX `IDX_QRTZ_T_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE,
  257 + INDEX `IDX_QRTZ_T_C`(`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE,
  258 + INDEX `IDX_QRTZ_T_G`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE,
  259 + INDEX `IDX_QRTZ_T_STATE`(`SCHED_NAME`, `TRIGGER_STATE`) USING BTREE,
  260 + INDEX `IDX_QRTZ_T_N_STATE`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
  261 + INDEX `IDX_QRTZ_T_N_G_STATE`(`SCHED_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
  262 + INDEX `IDX_QRTZ_T_NEXT_FIRE_TIME`(`SCHED_NAME`, `NEXT_FIRE_TIME`) USING BTREE,
  263 + INDEX `IDX_QRTZ_T_NFT_ST`(`SCHED_NAME`, `TRIGGER_STATE`, `NEXT_FIRE_TIME`) USING BTREE,
  264 + INDEX `IDX_QRTZ_T_NFT_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`) USING BTREE,
  265 + INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_STATE`) USING BTREE,
  266 + INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
  267 + 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
  268 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
  269 +
  270 +-- ----------------------------
  271 +-- Records of qrtz_triggers
  272 +-- ----------------------------
  273 +
  274 +-- ----------------------------
  275 +-- Table structure for sys_module
  276 +-- ----------------------------
  277 +DROP TABLE IF EXISTS `sys_module`;
  278 +CREATE TABLE `sys_module` (
  279 + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  280 + `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
  281 + `description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '备注',
  282 + `create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
  283 + `create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人ID',
  284 + `create_time` datetime NOT NULL COMMENT '创建时间',
  285 + `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人',
  286 + `update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人ID',
  287 + `update_time` datetime NOT NULL COMMENT '修改时间',
  288 + PRIMARY KEY (`id`) USING BTREE
  289 +) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统模块' ROW_FORMAT = DYNAMIC;
  290 +
  291 +-- ----------------------------
  292 +-- Records of sys_module
  293 +-- ----------------------------
  294 +INSERT INTO `sys_module` VALUES (1, '平台管理', '系统平台的核心模块。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  295 +INSERT INTO `sys_module` VALUES (2, '系统管理', '维护企业、系统基础数据,包括部门、岗位、角色、系统菜单和参数等。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  296 +INSERT INTO `sys_module` VALUES (3, '基础信息管理', '维护基础业务数据,包括仓库、客户、供应商、会员等。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  297 +INSERT INTO `sys_module` VALUES (4, '商品中心', '管理商品核心数据。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  298 +INSERT INTO `sys_module` VALUES (5, '采购业务', '管理供应商与企业的采购业务。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  299 +INSERT INTO `sys_module` VALUES (6, '销售业务', '管理企业与TOB端大客户的销售业务。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  300 +INSERT INTO `sys_module` VALUES (7, '零售业务', '管理企业与TOC端会员的零售业务。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  301 +INSERT INTO `sys_module` VALUES (8, '库存管理及调拨', '查询商品库存和进行商品调拨。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  302 +INSERT INTO `sys_module` VALUES (9, '库存盘点', '库存商品盘点。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  303 +INSERT INTO `sys_module` VALUES (10, '库存调整', '商品库存调整。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  304 +INSERT INTO `sys_module` VALUES (11, '结算管理', '企业与供应商、客户进行结算。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  305 +INSERT INTO `sys_module` VALUES (12, '开发管理', '系统快捷开发,如管理定时器、数据实体、数据对象、表单生成等。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  306 +INSERT INTO `sys_module` VALUES (13, '便捷办公', '支持文件收纳和在线Excel。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  307 +INSERT INTO `sys_module` VALUES (14, '开放平台', '系统开放平台管理。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  308 +INSERT INTO `sys_module` VALUES (15, '物流发货', '管理企业物流业务。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  309 +INSERT INTO `sys_module` VALUES (16, '审批流程', '管理审批流程。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
  310 +
  311 +-- ----------------------------
  312 +-- Table structure for sys_module_tenant
  313 +-- ----------------------------
  314 +DROP TABLE IF EXISTS `sys_module_tenant`;
  315 +CREATE TABLE `sys_module_tenant` (
  316 + `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID',
  317 + `module_id` int(11) NOT NULL COMMENT '模块ID',
  318 + `tenant_id` int(11) NOT NULL COMMENT '租户ID',
  319 + `expire_time` datetime NOT NULL COMMENT '过期时间',
  320 + PRIMARY KEY (`id`) USING BTREE,
  321 + UNIQUE INDEX `name`(`tenant_id`, `module_id`) USING BTREE
  322 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户和系统模块关系表' ROW_FORMAT = DYNAMIC;
  323 +
  324 +-- ----------------------------
  325 +-- Records of sys_module_tenant
  326 +-- ----------------------------
  327 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875135', 1, 1000, '2099-01-01 00:00:00');
  328 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875136', 2, 1000, '2099-01-01 00:00:00');
  329 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875137', 3, 1000, '2099-01-01 00:00:00');
  330 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875138', 4, 1000, '2099-01-01 00:00:00');
  331 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875139', 5, 1000, '2099-01-01 00:00:00');
  332 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875140', 6, 1000, '2099-01-01 00:00:00');
  333 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875141', 7, 1000, '2099-01-01 00:00:00');
  334 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875142', 8, 1000, '2099-01-01 00:00:00');
  335 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875143', 9, 1000, '2099-01-01 00:00:00');
  336 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875144', 10, 1000, '2099-01-01 00:00:00');
  337 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875145', 11, 1000, '2099-01-01 00:00:00');
  338 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875146', 12, 1000, '2099-01-01 00:00:00');
  339 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875147', 13, 1000, '2099-01-01 00:00:00');
  340 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875148', 14, 1000, '2099-01-01 00:00:00');
  341 +INSERT INTO `sys_module_tenant` VALUES ('1666286094246875149', 15, 1000, '2099-01-01 00:00:00');
  342 +INSERT INTO `sys_module_tenant` VALUES ('1748649349774184463', 16, 1000, '2099-01-01 00:00:00');
  343 +
  344 +-- ----------------------------
  345 +-- Table structure for sys_open_domain
  346 +-- ----------------------------
  347 +DROP TABLE IF EXISTS `sys_open_domain`;
  348 +CREATE TABLE `sys_open_domain` (
  349 + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  350 + `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
  351 + `api_secret` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'API秘钥',
  352 + `available` tinyint(1) NOT NULL COMMENT '状态',
  353 + `description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '备注',
  354 + `tenant_id` int(11) NULL DEFAULT NULL COMMENT '租户ID',
  355 + `create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
  356 + `create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人ID',
  357 + `create_time` datetime NOT NULL COMMENT '创建时间',
  358 + `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人',
  359 + `update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人ID',
  360 + `update_time` datetime NOT NULL COMMENT '修改时间',
  361 + PRIMARY KEY (`id`) USING BTREE,
  362 + UNIQUE INDEX `name`(`name`) USING BTREE
  363 +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '开放域' ROW_FORMAT = DYNAMIC;
  364 +
  365 +-- ----------------------------
  366 +-- Records of sys_open_domain
  367 +-- ----------------------------
  368 +
  369 +-- ----------------------------
  370 +-- Table structure for tenant
  371 +-- ----------------------------
  372 +DROP TABLE IF EXISTS `tenant`;
  373 +CREATE TABLE `tenant` (
  374 + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  375 + `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
  376 + `jdbc_url` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'JDBC连接地址',
  377 + `jdbc_username` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'JDBC用户名',
  378 + `jdbc_password` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'JDBC密码',
  379 + `available` tinyint(1) NOT NULL COMMENT '状态',
  380 + `create_time` datetime NOT NULL COMMENT '创建时间',
  381 + `update_time` datetime NOT NULL COMMENT '修改时间',
  382 + PRIMARY KEY (`id`) USING BTREE
  383 +) ENGINE = InnoDB AUTO_INCREMENT = 1001 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户' ROW_FORMAT = DYNAMIC;
  384 +
  385 +-- ----------------------------
  386 +-- Records of tenant
  387 +-- ----------------------------
  388 +INSERT INTO `tenant` VALUES (1000, '测试租户', 'jdbc:mysql://127.0.0.1:3306/xingyun', 'root', '24590d72bfb4d71ccbc533570aa9627b', 1, '2022-12-31 22:59:21', '2023-03-13 22:14:07');
  389 +
  390 +SET FOREIGN_KEY_CHECKS = 1;
... ...