This commit is contained in:
lijiaqi 2024-10-11 10:27:26 +08:00
parent 636f611d8a
commit 08d45450f7
1870 changed files with 178926 additions and 0 deletions

34
.gitignore vendored Normal file
View File

@ -0,0 +1,34 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
logs
*.log

201
LICENSE Normal file
View File

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

157
cloud/conf/common.yaml Normal file
View File

@ -0,0 +1,157 @@
spring:
servlet:
multipart:
#是否开启文件上传
enabled: true
#临时文件路径
location: D:\tmp\tmp-datas
#单个文件最大值
max-file-size: 10MB
#请求中所有文件的最大值
max-request-size: 100MB
#将文件写入磁盘的阈值
#file-size-threshold: 0
#是否要延迟解析文件
#resolve-lazily: false
quartz:
jdbc:
initialize-schema: never
job-store-type: jdbc
wait-for-jobs-to-complete-on-shutdown: true
properties:
# ID设置为自动获取 每一个必须不同
"org.quartz.scheduler.instanceId": AUTO
# 开启集群
"org.quartz.jobStore.isClustered": true
#时间格式
jackson:
date-format: yyyy-MM-dd HH:mm:ss
default-property-inclusion: non_null
#使用redis存储SESSION
session:
store-type: redis
knife4j:
enable: true
setting:
language: zh-CN
# 是否显示界面中SwaggerModel功能
enableSwaggerModels: false
# 是否显示界面中"文档管理"功能
enableDocumentManage: true
# 是否默认显示底部Footer
enableFooter: false
# 是否自定义Footer
enableFooterCustom: true
# 自定义Footer内容(支持Markdown语法)
footerCustomContent: Apache License 2.0 | Copyright 2019-[星云ERP](https://gitee.com/lframework/xingyun)
# 是否开启调试
enableDebug: true
# 是否显示OpenAPI原始结构的Tab框默认显示
enableOpenApi: false
# 是否生产环境
production: false
# Sa-Token配置
sa-token:
# token名称 (同时也是cookie名称),此值不要修改
token-name: X-Auth-Token
# token有效期单位s 默认30天, -1代表永不过期
timeout: 25920000
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
activity-timeout: 7200
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
is-concurrent: true
# 在多人登录同一账号时是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
is-share: false
# token风格
token-style: uuid
# 是否输出操作日志
is-log: false
jugg:
secret:
# 秘钥,用于敏感信息加密,生产环境一定要更改此项,并且产生数据后不要更改秘钥
# 提供了EncryptUtil工具类包含生成秘钥、加密、解密方法。
key: eRE2drUFINojkG9ivqtfOA==
upload:
#下载时的baseUrl与domain的区别会在url后面拼接/**作为静态资源的url而domain是后端系统的具体域名下载时的完整url例如upload.domain + upload.url/xxx.jpg
url: /oss
#下载时的域名
domain: http://localhost:8080
#上传文件的路径
location: D:\upload\upload-data
#默认配置
default-setting:
#默认单号生成类型 FLOW流水号 SNOW_FLAKE雪花算法如果不配置默认是SNOW_FLAKE
generator-type: SNOW_FLAKE
#默认的用户ID用于写入数据库时的createById和updateById的自动赋值如果有登录人则取登录人ID如果没有则取默认用户ID如果不配置默认是1
default-user-id: 1
#默认的用户姓名用于写入数据库时的createBy和updateBy的自动赋值如果有登录人则取登录人姓名如果没有则取默认用户姓名如果不配置默认是系统管理员
default-user-name: 系统管理员
#缓存TTL配置 单位:秒
cache:
#公共缓存过期时间
ttl: 1800
#特殊指定缓存过期时间以下示例为cacheName的过期时间是3600秒、cacheName2的过期是7200秒。cacheName、cacheName2对应的是@Cacheable的Value属性
#regions:
# cacheName: 3600
# cacheName2: 7200
#验证码配置
kaptcha:
#过期时间(单位:分钟)
expire-time: 5
session-config-key: KAPTCHA_SESSION_KEY
session-config-date: KAPTCHA_SESSION_DATE
border: true
border-color: black
border-thickness: 1
noise-color: black
noise-impl: com.google.code.kaptcha.impl.DefaultNoise
obscurificator-impl: com.google.code.kaptcha.impl.WaterRipple
producer-impl: com.google.code.kaptcha.impl.DefaultKaptcha
text-producer-impl: com.google.code.kaptcha.text.impl.DefaultTextCreator
text-producer-char-string: abcde2345678gfynmnpwx
text-producer-char-length: 4
text-producer-font-names: Arial,Courier
text-producer-font-color: black
text-producer-font-size: 28
text-producer-char-space: 2
word-render-impl: com.google.code.kaptcha.text.impl.DefaultWordRenderer
back-ground-impl: com.google.code.kaptcha.impl.DefaultBackground
back-ground-clr-from: lightGray
back-ground-clr-to: white
image-width: 120
image-height: 40
#PageHelper分页器
pagehelper:
offset-as-page-num: true
row-bounds-with-count: true
page-size-zero: true
reasonable: false
params: pageNum=pageIndex;pageSize=pageSize;
support-methods-arguments: false
mybatis-plus:
mapper-locations: classpath*:/mappers/**/*.xml
typeEnumsPackage: com.lframework.xingyun.**.enums
op-logs:
#是否开启
enabled: true
#操作日志保留天数
retain-days: 7
# 是否移除内置权限针对admin等内置权限因为内置权限等同于通配符权限设置为true时会用具体的权限将内置权限替换掉生产环境建议设置为true
remove-fixed-permissions: false
feign:
# feign使用HttpClient
httpclient:
enabled: true
client:
config:
default:
connect-timeout: 500
read-time-out: 60000

27
cloud/conf/db.yaml Normal file
View File

@ -0,0 +1,27 @@
spring:
datasource:
dynamic:
# 设置默认数据源
primary: master
# 是否严格匹配数据源 未匹配到指定数据源时true抛异常,false使用默认数据源
strict: true
datasource:
master:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
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
username: root
password: password
druid:
initial-size: 10
min-idle: 10
max-active: 200
max-wait: 60000
time-between-eviction-runs-millis: 300000
validation-query: SELECT 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
filters: stat

11
cloud/conf/mq.yaml Normal file
View File

@ -0,0 +1,11 @@
spring:
activemq:
broker-url: tcp://127.0.0.1:61616
user: user
password: password
pool:
enabled: true
max-connections: 5
in-memory: false
packages:
trust-all: true

37
cloud/conf/redis.yaml Normal file
View File

@ -0,0 +1,37 @@
spring:
#redis配置这个redis用来缓存业务数据
redis:
#地址
host: 127.0.0.1
#端口默认为6379
port: 6379
#数据库
database: 0
#密码
password: password
#连接超时时间
timeout: 10s
lettuce:
pool:
#连接池中的最小空闲连接
min-idle: 0
#连接池中的最大空闲连接
max-idle: 8
#连接池的最大数据库连接数
max-active: 8
#连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
sa-token:
# 配置 Sa-Token 单独使用的 Redis 连接,将业务和鉴权独立
alone-redis:
# Redis数据库索引默认为0最好与业务数据的redis隔离
database: 1
# Redis服务器地址
host: ${spring.redis.host}
# Redis服务器连接端口
port: ${spring.redis.port}
# Redis服务器连接密码默认为空
password: ${spring.redis.password}
# 连接超时时间
timeout: ${spring.redis.timeout}

9
cloud/conf/zipkin.yaml Normal file
View File

@ -0,0 +1,9 @@
spring:
zipkin:
# zipkin-server地址
base-url: http://127.0.0.1:9411
discovery-client-enabled: false
sleuth:
sampler:
# 每秒跟踪请求的最大数量 可设置0-2147483647
rate: 2147483647

View File

@ -0,0 +1,12 @@
FROM openjdk:8-jre-slim
WORKDIR /opt
ARG JAR_FILE=@build.finalName@.jar
COPY ${JAR_FILE} /opt/app.jar
EXPOSE 15020
ENV JAVA_OPTS="-Dspring.profiles.active=prod"
CMD ["sh", "-c", "java $JAVA_OPTS -jar -server app.jar"]

View File

@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>xingyun</artifactId>
<groupId>com.lframework</groupId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>xingyun-cloud-api</artifactId>
<name>【${project.artifactId}】SpringCloud架构的Api接口层</name>
<dependencies>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-common</artifactId>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-basedata</artifactId>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-sc</artifactId>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-settle</artifactId>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-chart</artifactId>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-template</artifactId>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>cloud-starter</artifactId>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>copy-resources-to-target</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}</directory>
<filtering>true</filtering>
<includes>
<include>Dockerfile</include>
</includes>
</resource>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>scripts/*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>bootstrap.yml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>scripts/*</exclude>
<exclude>project.yaml</exclude>
</excludes>
</resource>
</resources>
</build>
</project>

View File

@ -0,0 +1,65 @@
package com.lframework.xingyun.api;
import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
import com.lframework.starter.web.annotations.locker.EnableLock;
import com.lframework.starter.web.annotations.locker.LockType;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
@EnableLock(type = LockType.REDIS)
@EnableDiscoveryClient
@EnableFeignClients(basePackages = "com.lframework.xingyun")
@ServletComponentScan(basePackages = "com.lframework.xingyun")
@SpringBootApplication(scanBasePackages = "com.lframework.xingyun")
@MapperScan("com.lframework.xingyun.**.mappers")
public class XingYunCloudApiApplication {
public static void main(String[] args) {
SpringApplication.run(XingYunCloudApiApplication.class, args);
}
/**
* Swagger 自定义配置信息 请自行修改
*/
@Configuration
public static class SwaggerApiConfiguration {
@Bean(value = "defaultApi")
public Docket defaultApi(OpenApiExtensionResolver openApiExtensionResolver) {
Docket docket = new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName("星云ERP")
.select()
.apis(RequestHandlerSelectors.basePackage("com.lframework.xingyun.api")
.or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.basedata"))
.or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.chart"))
.or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.core"))
.or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.sc"))
.or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.settle")))
.paths(PathSelectors.any())
.build().extensions(openApiExtensionResolver.buildSettingExtensions());
return docket;
}
// 可以修改内容 但是不要删除这个Bean
@Bean
public ApiInfo apiInfo() {
return new ApiInfoBuilder().title("星云ERP接口文档").description("# 星云ERP接口文档")
.contact("lframework@163.com")
.build();
}
}
}

View File

@ -0,0 +1,2 @@
config.stopBubbling=true
lombok.equalsAndHashCode.callSuper=call

View File

@ -0,0 +1,7 @@
▄ ▄ ▀
█ █ ▄▄▄ ▄ ▄▄ ▄▄▄▄ ▄ ▄ ▄ ▄ ▄ ▄▄
██ █ █▀ █ █▀ ▀█ ▀▄ ▄▀ █ █ █▀ █
▄▀▀▄ █ █ █ █ █ █▄█ █ █ █ █
▄▀ ▀▄ ▄▄█▄▄ █ █ ▀█▄▀█ ▀█ ▀▄▄▀█ █ █
▄ █ ▄▀
▀▀ ▀▀

View File

@ -0,0 +1,36 @@
server:
#端口
port: 15020
spring:
application:
name: @project.artifactId@
profiles:
active: @profiles-active@
cloud:
nacos:
config:
server-addr: ${nacos-server-addr}
file-extension: yaml
namespace: ${spring.profiles.active}
extension-configs[0]:
data-id: common.yaml
refresh: true
extension-configs[1]:
data-id: db.yaml
refresh: true
extension-configs[2]:
data-id: redis.yaml
refresh: true
extension-configs[3]:
data-id: zipkin.yaml
refresh: true
#extension-configs[4]:
# data-id: mq.yaml
# refresh: true
discovery:
server-addr: ${nacos-server-addr}
namespace: ${spring.profiles.active}
# nacos-server地址
nacos-server-addr: @discovery-server@

View File

@ -0,0 +1,21 @@
var MAGIC_EDITOR_CONFIG = {
title: '在线开发平台',
header: {
skin: false, // 屏蔽皮肤按钮
document: false, // 屏蔽文档按钮
repo: false, // 屏蔽gitee和github
qqGroup: false // 屏蔽加入QQ群
},
getMagicTokenValue: function(){
return this.getCookie('X-Auth-Token');
},
getCookie: function(name) {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].trim().split('=');
if (cookie[0] === name) {
return decodeURIComponent(cookie[1]);
}
}
}
}

View File

@ -0,0 +1,71 @@
logging:
pattern:
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"
file: ${logging.pattern.console}
file:
name: logs/${spring.application.name}.log
max-history: 14
jugg:
web:
#不需要认证的Url
filter-url: ${magic-api.push_path}
#终端ID
worker-id: 1
#数据中心ID
center-id: 1
#开启多租户
tenant:
enabled: true
#开启websocket
ws:
enabled: true
#通信topic
#topic: xingyun:ws:topic
#是否支持跨域
#support-cross-domain: false
magic-api:
# 编辑器配置项
editor-config: classpath:magic-editor-config.js
# 这里改为项目运行时的域名菜单中嵌入的页面为base-url + web这里示例即为http://localhost:8080/dynamic/web
base-url: http://localhost:15000
# 编辑器页面的访问路径url
web: /dynamic/web
resource:
type: database
tableName: magic_api_file
prefix: /magic-api
readonly: false
# 接口前缀
prefix: /dynamic-api
# 禁止覆盖应用接口
allow-override: true
# 是否支持跨域
support-cross-domain: true
# 推送路径
push_path: /_magic-api-sync
# 推送秘钥,自行修改
secret-key: 123456789
throw-exception: true
response: |- #配置JSON格式格式为magic-script中的表达式
{
code: code,
msg: message,
data,
timestamp,
requestTime,
executeTime,
}
response-code:
success: 200
invalid: 400
exception: 500
page:
size: pageSize # 页大小的参数名称
page: pageIndex # 页码的参数名称
default-page: 1 # 未传页码时的默认首页
default-size: 20 # 未传页大小时的默认页大小
backup:
enable: true
max-history: 14 #备份保留天数,-1为永久保留
table-name: magic_api_file_backup

View File

@ -0,0 +1,12 @@
#!/bin/sh
export BUILD_ID=dontkillme
if [ -z $JAVA_HOME ] ;
then
echo "JAVA_HOME is not exist, please check"
exit 1
fi
export APP_HOME_BIN_PATH=$(cd `dirname $0`; pwd)
export APP_HOME=${APP_HOME_BIN_PATH%/bin}
$JAVA_HOME/bin/java -jar -server -Xmx256m -XX:MaxPermSize=32m -XX:MaxNewSize=32m $APP_HOME/@build.finalName@.jar >/dev/null 2>&1 &

View File

@ -0,0 +1,10 @@
#!/bin/sh
export APP_HOME_BIN_PATH=$(cd `dirname $0`; pwd)
export APP_HOME=${APP_HOME_BIN_PATH%/bin}
export C_PID=`ps -ef | grep java | grep $APP_HOME | grep -v grep | awk '{print $2}'`
if [ ! -z "$C_PID" ]; then
kill -15 $C_PID;
fi

View File

@ -0,0 +1,12 @@
FROM openjdk:8-jre-slim
WORKDIR /opt
ARG JAR_FILE=@build.finalName@.jar
COPY ${JAR_FILE} /opt/app.jar
EXPOSE 15000
ENV JAVA_OPTS="-Dspring.profiles.active=prod"
CMD ["sh", "-c", "java $JAVA_OPTS -jar -server app.jar"]

View File

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>xingyun</artifactId>
<groupId>com.lframework</groupId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>xingyun-cloud-gateway</artifactId>
<name>【${project.artifactId}】GateWay网关</name>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<groupId>com.alibaba.cloud</groupId>
</dependency>
<dependency>
<artifactId>nacos-client</artifactId>
<groupId>com.alibaba.nacos</groupId>
</dependency>
<dependency>
<artifactId>spring-cloud-starter-zipkin</artifactId>
<groupId>org.springframework.cloud</groupId>
</dependency>
</dependencies>
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>copy-resources-to-target</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}</directory>
<filtering>true</filtering>
<includes>
<include>Dockerfile</include>
</includes>
</resource>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>scripts/*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>bootstrap.yml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>scripts/*</exclude>
<exclude>project.yaml</exclude>
</excludes>
</resource>
</resources>
</build>
</project>

View File

@ -0,0 +1,14 @@
package com.lframework.xingyun.gateway;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class GateWayApplication {
public static void main(String[] args) {
SpringApplication.run(GateWayApplication.class, args);
}
}

View File

@ -0,0 +1,7 @@
▄ ▄ ▀
█ █ ▄▄▄ ▄ ▄▄ ▄▄▄▄ ▄ ▄ ▄ ▄ ▄ ▄▄
██ █ █▀ █ █▀ ▀█ ▀▄ ▄▀ █ █ █▀ █
▄▀▀▄ █ █ █ █ █ █▄█ █ █ █ █
▄▀ ▀▄ ▄▄█▄▄ █ █ ▀█▄▀█ ▀█ ▀▄▄▀█ █ █
▄ █ ▄▀
▀▀ ▀▀

View File

@ -0,0 +1,24 @@
server:
#端口
port: 15000
spring:
application:
name: @project.artifactId@
profiles:
active: @profiles-active@
cloud:
nacos:
config:
server-addr: ${nacos-server-addr}
file-extension: yaml
namespace: ${spring.profiles.active}
extension-configs[0]:
data-id: zipkin.yaml
refresh: true
discovery:
server-addr: ${nacos-server-addr}
namespace: ${spring.profiles.active}
# nacos-server地址
nacos-server-addr: @discovery-server@

View File

@ -0,0 +1,29 @@
logging:
pattern:
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"
file: ${logging.pattern.console}
file:
name: logs/${spring.application.name}.log
max-history: 14
spring:
cloud:
gateway:
discovery:
locator:
enabled: true
routes:
- id: xingyun-cloud-api
uri: lb://xingyun-cloud-api
predicates:
- Path=/cloud-api/**
filters:
- StripPrefix=1
- id: xingyun-dynamic-api
uri: lb://xingyun-cloud-api
predicates:
- Path=/dynamic/web/**,/dynamic-api/**
- id: xingyun-oss
uri: lb://xingyun-cloud-api
predicates:
- Path=/oss/**

View File

@ -0,0 +1,12 @@
#!/bin/sh
export BUILD_ID=dontkillme
if [ -z $JAVA_HOME ] ;
then
echo "JAVA_HOME is not exist, please check"
exit 1
fi
export APP_HOME_BIN_PATH=$(cd `dirname $0`; pwd)
export APP_HOME=${APP_HOME_BIN_PATH%/bin}
$JAVA_HOME/bin/java -jar -server -Xmx256m -XX:MaxPermSize=32m -XX:MaxNewSize=32m $APP_HOME/@build.finalName@.jar >/dev/null 2>&1 &

View File

@ -0,0 +1,10 @@
#!/bin/sh
export APP_HOME_BIN_PATH=$(cd `dirname $0`; pwd)
export APP_HOME=${APP_HOME_BIN_PATH%/bin}
export C_PID=`ps -ef | grep java | grep $APP_HOME | grep -v grep | awk '{print $2}'`
if [ ! -z "$C_PID" ]; then
kill -15 $C_PID;
fi

View File

@ -0,0 +1,337 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="13">
<profile kind="CodeFormatterProfile" name="GoogleStyle" version="13">
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_cascading_method_invocation_with_arguments.count_dependent" value="16|-1|16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_prefer_two_fragments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_comment_inline_tags" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_local_variable_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter" value="1040"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type.count_dependent" value="1585|-1|1585"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields.count_dependent" value="16|-1|16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression.count_dependent" value="16|4|80"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration.count_dependent" value="16|4|48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration.count_dependent" value="16|4|49"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_cascading_method_invocation_with_arguments" value="16"/>
<setting id="org.eclipse.jdt.core.compiler.source" value="1.7"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration.count_dependent" value="16|4|48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_local_variable_annotation" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants.count_dependent" value="16|5|48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="100"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation.count_dependent" value="16|4|48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package" value="1585"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="16"/>
<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_type_annotation" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_field_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_generic_type_arguments" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.comment_new_line_at_start_of_html_paragraph" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comment_prefix" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_parameter_annotation" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method" value="1585"/>
<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation.count_dependent" value="16|5|80"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter.count_dependent" value="1040|-1|1040"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package.count_dependent" value="1585|-1|1585"/>
<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.force_if_else_statement_brace" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="3"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_package_annotation" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation.count_dependent" value="16|-1|16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type" value="1585"/>
<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.7"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_new_anonymous_class" value="20"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable.count_dependent" value="1585|-1|1585"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field.count_dependent" value="1585|-1|1585"/>
<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration.count_dependent" value="16|5|80"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
<setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant.count_dependent" value="16|-1|16"/>
<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="100"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field" value="1585"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer.count_dependent" value="16|5|80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.7"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration.count_dependent" value="16|4|48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method.count_dependent" value="1585|-1|1585"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression.count_dependent" value="16|-1|16"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_member_annotation" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable" value="1585"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call.count_dependent" value="16|5|80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_generic_type_arguments.count_dependent" value="16|-1|16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression.count_dependent" value="16|5|80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration.count_dependent" value="16|5|80"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_for_statement" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
</profile>
</profiles>

View File

@ -0,0 +1,598 @@
<?xml version="1.0" encoding="UTF-8"?>
<code_scheme name="GoogleStyle">
<option name="OTHER_INDENT_OPTIONS">
<value>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
<option name="USE_TAB_CHARACTER" value="false" />
<option name="SMART_TABS" value="false" />
<option name="LABEL_INDENT_SIZE" value="0" />
<option name="LABEL_INDENT_ABSOLUTE" value="false" />
<option name="USE_RELATIVE_INDENTS" value="false" />
</value>
</option>
<option name="INSERT_INNER_CLASS_IMPORTS" value="true" />
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
<option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
<value />
</option>
<option name="IMPORT_LAYOUT_TABLE">
<value>
<package name="" withSubpackages="true" static="true" />
<emptyLine />
<package name="" withSubpackages="true" static="false" />
</value>
</option>
<option name="RIGHT_MARGIN" value="100" />
<option name="JD_ALIGN_PARAM_COMMENTS" value="false" />
<option name="JD_ALIGN_EXCEPTION_COMMENTS" value="false" />
<option name="JD_P_AT_EMPTY_LINES" value="false" />
<option name="JD_KEEP_EMPTY_PARAMETER" value="false" />
<option name="JD_KEEP_EMPTY_EXCEPTION" value="false" />
<option name="JD_KEEP_EMPTY_RETURN" value="false" />
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
<option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="0" />
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
<option name="BLANK_LINES_AFTER_CLASS_HEADER" value="0" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_FOR" value="false" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="METHOD_PARAMETERS_WRAP" value="1" />
<option name="EXTENDS_LIST_WRAP" value="1" />
<option name="THROWS_KEYWORD_WRAP" value="1" />
<option name="METHOD_CALL_CHAIN_WRAP" value="1" />
<option name="BINARY_OPERATION_WRAP" value="1" />
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
<option name="TERNARY_OPERATION_WRAP" value="1" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="1" />
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
<option name="WRAP_COMMENTS" value="true" />
<option name="IF_BRACE_FORCE" value="3" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
<option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true" />
<AndroidXmlCodeStyleSettings>
<option name="USE_CUSTOM_SETTINGS" value="true" />
<option name="LAYOUT_SETTINGS">
<value>
<option name="INSERT_BLANK_LINE_BEFORE_TAG" value="false" />
</value>
</option>
</AndroidXmlCodeStyleSettings>
<JSCodeStyleSettings>
<option name="INDENT_CHAINED_CALLS" value="false" />
</JSCodeStyleSettings>
<Python>
<option name="USE_CONTINUATION_INDENT_FOR_ARGUMENTS" value="true" />
</Python>
<TypeScriptCodeStyleSettings>
<option name="INDENT_CHAINED_CALLS" value="false" />
</TypeScriptCodeStyleSettings>
<XML>
<option name="XML_ALIGN_ATTRIBUTES" value="false" />
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
</XML>
<codeStyleSettings language="CSS">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="ECMA Script Level 4">
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_FOR" value="false" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="METHOD_PARAMETERS_WRAP" value="1" />
<option name="EXTENDS_LIST_WRAP" value="1" />
<option name="BINARY_OPERATION_WRAP" value="1" />
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
<option name="TERNARY_OPERATION_WRAP" value="1" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="1" />
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
<option name="IF_BRACE_FORCE" value="3" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
</codeStyleSettings>
<codeStyleSettings language="HTML">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JAVA">
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
<option name="BLANK_LINES_AFTER_CLASS_HEADER" value="1" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_RESOURCES" value="false" />
<option name="ALIGN_MULTILINE_FOR" value="false" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="METHOD_PARAMETERS_WRAP" value="1" />
<option name="EXTENDS_LIST_WRAP" value="1" />
<option name="THROWS_KEYWORD_WRAP" value="1" />
<option name="METHOD_CALL_CHAIN_WRAP" value="1" />
<option name="BINARY_OPERATION_WRAP" value="1" />
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
<option name="TERNARY_OPERATION_WRAP" value="1" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="1" />
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
<option name="WRAP_COMMENTS" value="true" />
<option name="IF_BRACE_FORCE" value="3" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JSON">
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JavaScript">
<option name="RIGHT_MARGIN" value="80" />
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_FOR" value="false" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="METHOD_PARAMETERS_WRAP" value="1" />
<option name="BINARY_OPERATION_WRAP" value="1" />
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
<option name="TERNARY_OPERATION_WRAP" value="1" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="1" />
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
<option name="IF_BRACE_FORCE" value="3" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="PROTO">
<option name="RIGHT_MARGIN" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="protobuf">
<option name="RIGHT_MARGIN" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="Python">
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
<option name="RIGHT_MARGIN" value="80" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="SASS">
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="SCSS">
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="TypeScript">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="XML">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:.*Style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_width</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_height</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_weight</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_margin</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_marginTop</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_marginBottom</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_marginStart</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_marginEnd</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_marginLeft</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_marginRight</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:padding</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:paddingTop</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:paddingBottom</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:paddingStart</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:paddingEnd</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:paddingLeft</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:paddingRight</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_NAMESPACE>http://schemas.android.com/apk/res-auto</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_NAMESPACE>http://schemas.android.com/tools</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
<Objective-C>
<option name="INDENT_NAMESPACE_MEMBERS" value="0" />
<option name="INDENT_C_STRUCT_MEMBERS" value="2" />
<option name="INDENT_CLASS_MEMBERS" value="2" />
<option name="INDENT_VISIBILITY_KEYWORDS" value="1" />
<option name="INDENT_INSIDE_CODE_BLOCK" value="2" />
<option name="KEEP_STRUCTURES_IN_ONE_LINE" value="true" />
<option name="FUNCTION_PARAMETERS_WRAP" value="5" />
<option name="FUNCTION_CALL_ARGUMENTS_WRAP" value="5" />
<option name="TEMPLATE_CALL_ARGUMENTS_WRAP" value="5" />
<option name="TEMPLATE_CALL_ARGUMENTS_ALIGN_MULTILINE" value="true" />
<option name="ALIGN_INIT_LIST_IN_COLUMNS" value="false" />
<option name="SPACE_BEFORE_SUPERCLASS_COLON" value="false" />
</Objective-C>
<Objective-C-extensions>
<option name="GENERATE_INSTANCE_VARIABLES_FOR_PROPERTIES" value="ASK" />
<option name="RELEASE_STYLE" value="IVAR" />
<option name="TYPE_QUALIFIERS_PLACEMENT" value="BEFORE" />
<file>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
</file>
<class>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
</class>
<extensions>
<pair source="cc" header="h" />
<pair source="c" header="h" />
</extensions>
</Objective-C-extensions>
<codeStyleSettings language="ObjectiveC">
<option name="RIGHT_MARGIN" value="80" />
<option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="1" />
<option name="BLANK_LINES_BEFORE_IMPORTS" value="0" />
<option name="BLANK_LINES_AFTER_IMPORTS" value="0" />
<option name="BLANK_LINES_AROUND_CLASS" value="0" />
<option name="BLANK_LINES_AROUND_METHOD" value="0" />
<option name="BLANK_LINES_AROUND_METHOD_IN_INTERFACE" value="0" />
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="false" />
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="1" />
<option name="ASSIGNMENT_WRAP" value="1" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
</codeStyleSettings>
</code_scheme>

156
pom.xml Normal file
View File

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.lframework</groupId>
<artifactId>xingyun</artifactId>
<name>【${project.artifactId}】星云ERP</name>
<version>1.0.0-SNAPSHOT</version>
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<modules>
<module>xingyun-core</module>
<module>xingyun-api</module>
<module>xingyun-basedata</module>
<module>xingyun-sc</module>
<module>xingyun-chart</module>
<module>xingyun-settle</module>
<module>xingyun-template</module>
<module>xingyun-template-core</module>
<module>cloud/xingyun-cloud-api</module>
<module>xingyun-common</module>
<module>cloud/xingyun-cloud-gateway</module>
</modules>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<xingyun.version>1.0.0-SNAPSHOT</xingyun.version>
<jugg.version>3.1.3</jugg.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>parent</artifactId>
<version>${jugg.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-basedata</artifactId>
<version>${xingyun.version}</version>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-common</artifactId>
<version>${xingyun.version}</version>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-sc</artifactId>
<version>${xingyun.version}</version>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-chart</artifactId>
<version>${xingyun.version}</version>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-template</artifactId>
<version>${xingyun.version}</version>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-template-core</artifactId>
<version>${xingyun.version}</version>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-settle</artifactId>
<version>${xingyun.version}</version>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-core</artifactId>
<version>${xingyun.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
</plugins>
</build>
<!-- 指定仓库 -->
<repositories>
<repository>
<id>ali-public</id>
<name>阿里云public库</name>
<url>https://maven.aliyun.com/repository/public</url>
<layout>default</layout>
</repository>
<repository>
<id>ali-central</id>
<name>阿里云central库</name>
<url>https://maven.aliyun.com/repository/central</url>
</repository>
<repository>
<id>ali-central-old</id>
<name>阿里云central库old</name>
<url>https://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
</repositories>
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profiles-active>dev</profiles-active>
<discovery-server>127.0.0.1:10000</discovery-server>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profiles-active>test</profiles-active>
<discovery-server>127.0.0.1:10000</discovery-server>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profiles-active>prod</profiles-active>
<discovery-server>127.0.0.1:10000</discovery-server>
</properties>
</profile>
</profiles>
</project>

BIN
screenshots/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

BIN
screenshots/10.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

BIN
screenshots/11.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

BIN
screenshots/12.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

BIN
screenshots/2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

BIN
screenshots/3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

BIN
screenshots/4.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

BIN
screenshots/5.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

BIN
screenshots/6.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

BIN
screenshots/7.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

BIN
screenshots/8.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

BIN
screenshots/9.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

16
xingyun-api/Dockerfile Normal file
View File

@ -0,0 +1,16 @@
FROM frolvlad/alpine-java:jdk8-slim
WORKDIR /opt
ARG JAR_FILE=@build.finalName@.jar
COPY ${JAR_FILE} /opt/app.jar
EXPOSE 8080
ENV JAVA_OPTS="-Dspring.profiles.active=prod"
# 在默认情况下
# /opt/data/tmp是tomcat临时文件目录
# /opt/data/upload是上传文件的存储目录
# /opt/logs是日志的存储目录
CMD ["sh", "-c", "java -Dspring.servlet.multipart.location=/opt/data/tmp -Djugg.upload.location=/opt/data/upload $JAVA_OPTS -jar -server app.jar"]

108
xingyun-api/pom.xml Normal file
View File

@ -0,0 +1,108 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>xingyun</artifactId>
<groupId>com.lframework</groupId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>xingyun-api</artifactId>
<name>【${project.artifactId}】Api接口层</name>
<dependencies>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-common</artifactId>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-basedata</artifactId>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-sc</artifactId>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-settle</artifactId>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-chart</artifactId>
</dependency>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-template</artifactId>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>copy-resources-to-target</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}</directory>
<filtering>true</filtering>
<includes>
<include>Dockerfile</include>
</includes>
</resource>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>scripts/*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application.yml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>db/**</exclude>
<exclude>scripts/*</exclude>
</excludes>
</resource>
</resources>
</build>
</project>

View File

@ -0,0 +1,61 @@
package com.lframework.xingyun.api;
import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
import com.lframework.starter.web.annotations.locker.EnableLock;
import com.lframework.starter.web.annotations.locker.LockType;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
@EnableLock(type = LockType.REDIS)
@ServletComponentScan(basePackages = {"com.lframework.xingyun"})
@SpringBootApplication(scanBasePackages = {"com.lframework.xingyun"})
@MapperScan({"com.lframework.xingyun.**.mappers"})
public class XingYunApiApplication {
public static void main(String[] args) {
SpringApplication.run(XingYunApiApplication.class, args);
}
/**
* Swagger 自定义配置信息 请自行修改
*/
@Configuration
public static class SwaggerApiConfiguration {
@Bean(value = "defaultApi")
public Docket defaultApi(OpenApiExtensionResolver openApiExtensionResolver) {
Docket docket = new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName("星云ERP")
.select()
.apis(RequestHandlerSelectors.basePackage("com.lframework.xingyun.api")
.or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.basedata"))
.or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.chart"))
.or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.core"))
.or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.sc"))
.or(RequestHandlerSelectors.basePackage("com.lframework.xingyun.settle")))
.paths(PathSelectors.any())
.build().extensions(openApiExtensionResolver.buildSettingExtensions());
return docket;
}
// 可以修改内容 但是不要删除这个Bean
@Bean
public ApiInfo apiInfo() {
return new ApiInfoBuilder().title("星云ERP接口文档").description("# 星云ERP接口文档")
.contact("lframework@163.com")
.build();
}
}
}

View File

@ -0,0 +1,2 @@
config.stopBubbling=true
lombok.equalsAndHashCode.callSuper=call

View File

@ -0,0 +1,83 @@
logging:
pattern:
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"
file: ${logging.pattern.console}
level:
com.lframework: DEBUG
spring:
servlet:
multipart:
#临时文件路径
location: D:\tmp\tmp-datas
datasource:
dynamic:
# 设置默认数据源
primary: master
# 是否严格匹配数据源 未匹配到指定数据源时true抛异常,false使用默认数据源
strict: true
datasource:
master:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:1234/platform?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
username: platform
password: wnaHZEmN6BPTTR2M
druid:
initial-size: 10
min-idle: 10
max-active: 200
max-wait: 60000
time-between-eviction-runs-millis: 300000
validation-query: SELECT 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
filters: stat
#redis配置这个redis用来缓存业务数据
redis:
#地址
host: 127.0.0.1
#端口默认为6379
port: 6379
#数据库
database: 0
#密码
password:
#连接超时时间
timeout: 10s
lettuce:
pool:
#连接池中的最小空闲连接
min-idle: 0
#连接池中的最大空闲连接
max-idle: 8
#连接池的最大数据库连接数
max-active: 8
#连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
sa-token:
# 配置 Sa-Token 单独使用的 Redis 连接,将业务和鉴权独立
alone-redis:
# Redis数据库索引默认为0最好与业务数据的redis隔离
database: 1
# Redis服务器地址
host: ${spring.redis.host}
# Redis服务器连接端口
port: ${spring.redis.port}
# Redis服务器连接密码默认为空
password: ${spring.redis.password}
# 连接超时时间
timeout: ${spring.redis.timeout}
jugg:
upload:
#下载时的baseUrl与domain的区别会在url后面拼接/**作为静态资源的url而domain是后端系统的具体域名下载时的完整url例如upload.domain + upload.url/xxx.jpg
url: /oss
#下载时的域名
domain: http://localhost:8080
#上传文件的路径
location: D:\upload\upload-data

View File

@ -0,0 +1,87 @@
server:
#端口
port: 10062
logging:
pattern:
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"
file: ${logging.pattern.console}
file:
name: logs/${spring.application.name}.log
max-history: 14
spring:
servlet:
multipart:
#临时文件路径
location: /mnt/erp.fpvone.cn/tmp-datas
datasource:
dynamic:
# 设置默认数据源
primary: master
# 是否严格匹配数据源 未匹配到指定数据源时true抛异常,false使用默认数据源
strict: true
datasource:
master:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
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
username: platform
password: wnaHZEmN6BPTTR2M
druid:
initial-size: 10
min-idle: 10
max-active: 200
max-wait: 60000
time-between-eviction-runs-millis: 300000
validation-query: SELECT 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
filters: stat
#redis配置这个redis用来缓存业务数据
redis:
#地址
host: 127.0.0.1
#端口默认为6379
port: 6379
#数据库
database: 0
#密码
password:
#连接超时时间
timeout: 10s
lettuce:
pool:
#连接池中的最小空闲连接
min-idle: 0
#连接池中的最大空闲连接
max-idle: 8
#连接池的最大数据库连接数
max-active: 8
#连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
sa-token:
# 配置 Sa-Token 单独使用的 Redis 连接,将业务和鉴权独立
alone-redis:
# Redis数据库索引默认为0最好与业务数据的redis隔离
database: 1
# Redis服务器地址
host: ${spring.redis.host}
# Redis服务器连接端口
port: ${spring.redis.port}
# Redis服务器连接密码默认为空
password: ${spring.redis.password}
# 连接超时时间
timeout: ${spring.redis.timeout}
jugg:
upload:
#下载时的baseUrl与domain的区别会在url后面拼接/**作为静态资源的url而domain是后端系统的具体域名下载时的完整url例如upload.domain + upload.url/xxx.jpg
url: /oss
#下载时的域名
domain: http://localhost:10662
#上传文件的路径
location: /mnt/erp.fpvone.cn/upload

View File

@ -0,0 +1,84 @@
logging:
pattern:
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"
file: ${logging.pattern.console}
file:
name: logs/${spring.application.name}.log
max-history: 14
spring:
servlet:
multipart:
#临时文件路径
location: D:\tmp\tmp-datas
datasource:
dynamic:
# 设置默认数据源
primary: master
# 是否严格匹配数据源 未匹配到指定数据源时true抛异常,false使用默认数据源
strict: true
datasource:
master:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
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
username: root
password: password
druid:
initial-size: 10
min-idle: 10
max-active: 200
max-wait: 60000
time-between-eviction-runs-millis: 300000
validation-query: SELECT 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
filters: stat
#redis配置这个redis用来缓存业务数据
redis:
#地址
host: 127.0.0.1
#端口默认为6379
port: 6379
#数据库
database: 0
#密码
password: password
#连接超时时间
timeout: 10s
lettuce:
pool:
#连接池中的最小空闲连接
min-idle: 0
#连接池中的最大空闲连接
max-idle: 8
#连接池的最大数据库连接数
max-active: 8
#连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
sa-token:
# 配置 Sa-Token 单独使用的 Redis 连接,将业务和鉴权独立
alone-redis:
# Redis数据库索引默认为0最好与业务数据的redis隔离
database: 1
# Redis服务器地址
host: ${spring.redis.host}
# Redis服务器连接端口
port: ${spring.redis.port}
# Redis服务器连接密码默认为空
password: ${spring.redis.password}
# 连接超时时间
timeout: ${spring.redis.timeout}
jugg:
upload:
#下载时的baseUrl与domain的区别会在url后面拼接/**作为静态资源的url而domain是后端系统的具体域名下载时的完整url例如upload.domain + upload.url/xxx.jpg
url: /oss
#下载时的域名
domain: http://localhost:8080
#上传文件的路径
location: D:\upload\upload-data

View File

@ -0,0 +1,207 @@
server:
#端口
port: 8080
spring:
application:
name: @project.artifactId@
profiles:
active: dev
servlet:
multipart:
#是否开启文件上传
enabled: true
#单个文件最大值
max-file-size: 10MB
#请求中所有文件的最大值
max-request-size: 100MB
#将文件写入磁盘的阈值
#file-size-threshold: 0
#是否要延迟解析文件
#resolve-lazily: false
quartz:
jdbc:
initialize-schema: never
job-store-type: jdbc
wait-for-jobs-to-complete-on-shutdown: true
#时间格式
jackson:
date-format: yyyy-MM-dd HH:mm:ss
default-property-inclusion: non_null
#使用redis存储SESSION
session:
store-type: redis
knife4j:
enable: true
setting:
language: zh-CN
# 是否显示界面中SwaggerModel功能
enableSwaggerModels: false
# 是否显示界面中"文档管理"功能
enableDocumentManage: true
# 是否默认显示底部Footer
enableFooter: false
# 是否自定义Footer
enableFooterCustom: true
# 自定义Footer内容(支持Markdown语法)
footerCustomContent: Apache License 2.0 | Copyright 2019-[星云ERP](https://gitee.com/lframework/xingyun)
# 是否开启调试
enableDebug: true
# 是否显示OpenAPI原始结构的Tab框默认显示
enableOpenApi: false
# 是否生产环境
production: false
# Sa-Token配置
sa-token:
# token名称 (同时也是cookie名称),此值不要修改
token-name: X-Auth-Token
# token有效期单位s 默认30天, -1代表永不过期
timeout: 25920000
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
activity-timeout: 7200
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
is-concurrent: true
# 在多人登录同一账号时是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
is-share: false
# token风格
token-style: uuid
# 是否输出操作日志
is-log: false
jugg:
secret:
# 秘钥,用于敏感信息加密,生产环境一定要更改此项,并且产生数据后不要更改秘钥
# 提供了EncryptUtil工具类包含生成秘钥、加密、解密方法。
key: eRE2drUFINojkG9ivqtfOA==
#默认配置
default-setting:
#默认单号生成类型 FLOW流水号 SNOW_FLAKE雪花算法如果不配置默认是SNOW_FLAKE
generator-type: SNOW_FLAKE
#默认的用户ID用于写入数据库时的createById和updateById的自动赋值如果有登录人则取登录人ID如果没有则取默认用户ID如果不配置默认是1
default-user-id: 1
#默认的用户姓名用于写入数据库时的createBy和updateBy的自动赋值如果有登录人则取登录人姓名如果没有则取默认用户姓名如果不配置默认是系统管理员
default-user-name: 系统管理员
web:
#不需要认证的Url
filter-url: ${magic-api.push_path}
#终端ID
worker-id: 1
#数据中心ID
center-id: 1
#重复提交拦截暂时不实现
#repeat-request:
#重复提交拦截间隔(单位:秒)
#filter-interval: 1
#缓存TTL配置 单位:秒
cache:
#公共缓存过期时间
ttl: 1800
#特殊指定缓存过期时间以下示例为cacheName的过期时间是3600秒、cacheName2的过期是7200秒。cacheName、cacheName2对应的是@Cacheable的Value属性
#regions:
# cacheName: 3600
# cacheName2: 7200
#开启多租户
tenant:
enabled: false
#开启websocket
ws:
enabled: true
#通信topic
#topic: xingyun:ws:topic
#是否支持跨域
#support-cross-domain: false
#验证码配置
kaptcha:
#过期时间(单位:分钟)
expire-time: 5
session-config-key: KAPTCHA_SESSION_KEY
session-config-date: KAPTCHA_SESSION_DATE
border: true
border-color: black
border-thickness: 1
noise-color: black
noise-impl: com.google.code.kaptcha.impl.DefaultNoise
obscurificator-impl: com.google.code.kaptcha.impl.WaterRipple
producer-impl: com.google.code.kaptcha.impl.DefaultKaptcha
text-producer-impl: com.google.code.kaptcha.text.impl.DefaultTextCreator
text-producer-char-string: abcde2345678gfynmnpwx
text-producer-char-length: 4
text-producer-font-names: Arial,Courier
text-producer-font-color: black
text-producer-font-size: 28
text-producer-char-space: 2
word-render-impl: com.google.code.kaptcha.text.impl.DefaultWordRenderer
back-ground-impl: com.google.code.kaptcha.impl.DefaultBackground
back-ground-clr-from: lightGray
back-ground-clr-to: white
image-width: 120
image-height: 40
#PageHelper分页器
pagehelper:
offset-as-page-num: true
row-bounds-with-count: true
page-size-zero: true
reasonable: false
params: pageNum=pageIndex;pageSize=pageSize;
support-methods-arguments: false
mybatis-plus:
mapper-locations: classpath*:/mappers/**/*.xml
typeEnumsPackage: com.lframework.starter.**.enums,com.lframework.xingyun.**.enums
op-logs:
#是否开启
enabled: true
#操作日志保留天数
retain-days: 7
# 是否移除内置权限针对admin等内置权限因为内置权限等同于通配符权限设置为true时会用具体的权限将内置权限替换掉生产环境建议设置为true
remove-fixed-permissions: false
magic-api:
# 编辑器配置项
editor-config: classpath:magic-editor-config.js
# 这里改为项目运行时的域名菜单中嵌入的页面为base-url + web这里示例即为http://localhost:8080/dynamic/web
base-url: http://localhost:8080
# 编辑器页面的访问路径url
web: /dynamic/web
resource:
type: database
tableName: magic_api_file
prefix: /magic-api
readonly: false
# 接口前缀
prefix: /dynamic-api
# 禁止覆盖应用接口
allow-override: true
# 是否支持跨域
support-cross-domain: false
# 推送路径
push_path: /_magic-api-sync
# 推送秘钥,自行修改
secret-key: 123456789
throw-exception: true
response: |- #配置JSON格式格式为magic-script中的表达式
{
code: code,
msg: message,
data,
timestamp,
requestTime,
executeTime,
}
response-code:
success: 200
invalid: 400
exception: 500
page:
size: pageSize # 页大小的参数名称
page: pageIndex # 页码的参数名称
default-page: 1 # 未传页码时的默认首页
default-size: 20 # 未传页大小时的默认页大小
backup:
enable: true
max-history: 14 #备份保留天数,-1为永久保留
table-name: magic_api_file_backup

View File

@ -0,0 +1,7 @@
▄ ▄ ▀
█ █ ▄▄▄ ▄ ▄▄ ▄▄▄▄ ▄ ▄ ▄ ▄ ▄ ▄▄
██ █ █▀ █ █▀ ▀█ ▀▄ ▄▀ █ █ █▀ █
▄▀▀▄ █ █ █ █ █ █▄█ █ █ █ █
▄▀ ▀▄ ▄▄█▄▄ █ █ ▀█▄▀█ ▀█ ▀▄▄▀█ █ █
▄ █ ▄▀
▀▀ ▀▀

View File

@ -0,0 +1,5 @@
all目录中的是全量SQL其中platform.sql是平台库SQLtenant.sql是租户库SQL。
migration目录中的是增量SQL其中platform目录中是平台库的增量SQLtenant目录中是租户库的增量SQL。
如果不使用多租户那么平台库和租户库的SQL就在同一个库中执行。
使用多租户时租户库是从平台库的tenant表中获取的不要忘记修改这个表里面的数据
tenant表中存储的密码不是明文密码需要将明文密码加密后存储参见EncryptUtil中的main方法进行转换。

View File

@ -0,0 +1,388 @@
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for magic_api_file
-- ----------------------------
DROP TABLE IF EXISTS `magic_api_file`;
CREATE TABLE `magic_api_file` (
`file_path` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`file_content` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
PRIMARY KEY (`file_path`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of magic_api_file
-- ----------------------------
-- ----------------------------
-- Table structure for magic_api_file_backup
-- ----------------------------
DROP TABLE IF EXISTS `magic_api_file_backup`;
CREATE TABLE `magic_api_file_backup` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '原对象ID',
`create_date` bigint(13) NOT NULL COMMENT '备份时间',
`tag` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标签',
`type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类型',
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '原名称',
`content` blob NULL COMMENT '备份内容',
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作人',
PRIMARY KEY (`id`, `create_date`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of magic_api_file_backup
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_blob_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_blob_triggers`;
CREATE TABLE `qrtz_blob_triggers` (
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`BLOB_DATA` blob NULL,
PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
INDEX `SCHED_NAME`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qrtz_blob_triggers
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_calendars
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_calendars`;
CREATE TABLE `qrtz_calendars` (
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`CALENDAR` blob NOT NULL,
PRIMARY KEY (`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qrtz_calendars
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_cron_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_cron_triggers`;
CREATE TABLE `qrtz_cron_triggers` (
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`CRON_EXPRESSION` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TIME_ZONE_ID` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qrtz_cron_triggers
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_fired_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_fired_triggers`;
CREATE TABLE `qrtz_fired_triggers` (
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`ENTRY_ID` varchar(95) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`FIRED_TIME` bigint(13) NOT NULL,
`SCHED_TIME` bigint(13) NOT NULL,
`PRIORITY` int(11) NOT NULL,
`STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`SCHED_NAME`, `ENTRY_ID`) USING BTREE,
INDEX `IDX_QRTZ_FT_TRIG_INST_NAME`(`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE,
INDEX `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY`(`SCHED_NAME`, `INSTANCE_NAME`, `REQUESTS_RECOVERY`) USING BTREE,
INDEX `IDX_QRTZ_FT_J_G`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
INDEX `IDX_QRTZ_FT_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE,
INDEX `IDX_QRTZ_FT_T_G`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
INDEX `IDX_QRTZ_FT_TG`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qrtz_fired_triggers
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_job_details
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_job_details`;
CREATE TABLE `qrtz_job_details` (
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`JOB_CLASS_NAME` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`IS_DURABLE` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`IS_UPDATE_DATA` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`JOB_DATA` blob NULL,
PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
INDEX `IDX_QRTZ_J_REQ_RECOVERY`(`SCHED_NAME`, `REQUESTS_RECOVERY`) USING BTREE,
INDEX `IDX_QRTZ_J_GRP`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qrtz_job_details
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_locks
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_locks`;
CREATE TABLE `qrtz_locks` (
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`LOCK_NAME` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
PRIMARY KEY (`SCHED_NAME`, `LOCK_NAME`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qrtz_locks
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_paused_trigger_grps
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_paused_trigger_grps`;
CREATE TABLE `qrtz_paused_trigger_grps` (
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
PRIMARY KEY (`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qrtz_paused_trigger_grps
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_scheduler_state
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_scheduler_state`;
CREATE TABLE `qrtz_scheduler_state` (
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`INSTANCE_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`LAST_CHECKIN_TIME` bigint(13) NOT NULL,
`CHECKIN_INTERVAL` bigint(13) NOT NULL,
PRIMARY KEY (`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qrtz_scheduler_state
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_simple_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_simple_triggers`;
CREATE TABLE `qrtz_simple_triggers` (
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`REPEAT_COUNT` bigint(7) NOT NULL,
`REPEAT_INTERVAL` bigint(12) NOT NULL,
`TIMES_TRIGGERED` bigint(10) NOT NULL,
PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qrtz_simple_triggers
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_simprop_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_simprop_triggers`;
CREATE TABLE `qrtz_simprop_triggers` (
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`STR_PROP_1` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`STR_PROP_2` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`STR_PROP_3` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`INT_PROP_1` int(11) NULL DEFAULT NULL,
`INT_PROP_2` int(11) NULL DEFAULT NULL,
`LONG_PROP_1` bigint(20) NULL DEFAULT NULL,
`LONG_PROP_2` bigint(20) NULL DEFAULT NULL,
`DEC_PROP_1` decimal(13, 4) NULL DEFAULT NULL,
`DEC_PROP_2` decimal(13, 4) NULL DEFAULT NULL,
`BOOL_PROP_1` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`BOOL_PROP_2` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qrtz_simprop_triggers
-- ----------------------------
-- ----------------------------
-- Table structure for qrtz_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_triggers`;
CREATE TABLE `qrtz_triggers` (
`SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`JOB_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`JOB_GROUP` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`NEXT_FIRE_TIME` bigint(13) NULL DEFAULT NULL,
`PREV_FIRE_TIME` bigint(13) NULL DEFAULT NULL,
`PRIORITY` int(11) NULL DEFAULT NULL,
`TRIGGER_STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TRIGGER_TYPE` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`START_TIME` bigint(13) NOT NULL,
`END_TIME` bigint(13) NULL DEFAULT NULL,
`CALENDAR_NAME` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`MISFIRE_INSTR` smallint(2) NULL DEFAULT NULL,
`JOB_DATA` blob NULL,
PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
INDEX `IDX_QRTZ_T_J`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
INDEX `IDX_QRTZ_T_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE,
INDEX `IDX_QRTZ_T_C`(`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE,
INDEX `IDX_QRTZ_T_G`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE,
INDEX `IDX_QRTZ_T_STATE`(`SCHED_NAME`, `TRIGGER_STATE`) USING BTREE,
INDEX `IDX_QRTZ_T_N_STATE`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
INDEX `IDX_QRTZ_T_N_G_STATE`(`SCHED_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
INDEX `IDX_QRTZ_T_NEXT_FIRE_TIME`(`SCHED_NAME`, `NEXT_FIRE_TIME`) USING BTREE,
INDEX `IDX_QRTZ_T_NFT_ST`(`SCHED_NAME`, `TRIGGER_STATE`, `NEXT_FIRE_TIME`) USING BTREE,
INDEX `IDX_QRTZ_T_NFT_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`) USING BTREE,
INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_STATE`) USING BTREE,
INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of qrtz_triggers
-- ----------------------------
-- ----------------------------
-- Table structure for sys_module
-- ----------------------------
DROP TABLE IF EXISTS `sys_module`;
CREATE TABLE `sys_module` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
`description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '备注',
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人',
`update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统模块' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_module
-- ----------------------------
INSERT INTO `sys_module` VALUES (1, '平台管理', '系统平台的核心模块。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (2, '系统管理', '维护企业、系统基础数据,包括部门、岗位、角色、系统菜单和参数等。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (3, '基础信息管理', '维护基础业务数据,包括仓库、客户、供应商、会员等。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (4, '商品中心', '管理商品核心数据。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (5, '采购业务', '管理供应商与企业的采购业务。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (6, '销售业务', '管理企业与TOB端大客户的销售业务。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (7, '零售业务', '管理企业与TOC端会员的零售业务。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (8, '库存管理及调拨', '查询商品库存和进行商品调拨。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (9, '库存盘点', '库存商品盘点。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (10, '库存调整', '商品库存数量和成本调整。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (11, '结算管理', '企业与供应商、客户进行结算。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (12, '开发管理', '系统快捷开发,如管理定时器、数据实体、数据对象、表单生成等。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (13, '便捷办公', '支持文件收纳和在线Excel。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (14, '开放平台', '系统开放平台管理。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (15, '物流发货', '管理企业物流业务。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
-- ----------------------------
-- Table structure for sys_module_tenant
-- ----------------------------
DROP TABLE IF EXISTS `sys_module_tenant`;
CREATE TABLE `sys_module_tenant` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID',
`module_id` int(11) NOT NULL COMMENT '模块ID',
`tenant_id` int(11) NOT NULL COMMENT '租户ID',
`expire_time` datetime NOT NULL COMMENT '过期时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `name`(`tenant_id`, `module_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户和系统模块关系表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_module_tenant
-- ----------------------------
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875135', 1, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875136', 2, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875137', 3, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875138', 4, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875139', 5, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875140', 6, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875141', 7, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875142', 8, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875143', 9, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875144', 10, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875145', 11, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875146', 12, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875147', 13, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875148', 14, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875149', 15, 1000, '2099-01-01 00:00:00');
-- ----------------------------
-- Table structure for sys_open_domain
-- ----------------------------
DROP TABLE IF EXISTS `sys_open_domain`;
CREATE TABLE `sys_open_domain` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
`api_secret` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'API秘钥',
`available` tinyint(1) NOT NULL COMMENT '状态',
`description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '备注',
`tenant_id` int(11) NULL DEFAULT NULL COMMENT '租户ID',
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人',
`update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `name`(`name`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '开放域' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sys_open_domain
-- ----------------------------
-- ----------------------------
-- Table structure for tenant
-- ----------------------------
DROP TABLE IF EXISTS `tenant`;
CREATE TABLE `tenant` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
`jdbc_url` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'JDBC连接地址',
`jdbc_username` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'JDBC用户名',
`jdbc_password` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'JDBC密码',
`available` tinyint(1) NOT NULL COMMENT '状态',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1001 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of tenant
-- ----------------------------
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');
SET FOREIGN_KEY_CHECKS = 1;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,313 @@
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for qrtz_blob_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_blob_triggers`;
CREATE TABLE `qrtz_blob_triggers` (
`SCHED_NAME` varchar(120) NOT NULL,
`TRIGGER_NAME` varchar(190) NOT NULL,
`TRIGGER_GROUP` varchar(190) NOT NULL,
`BLOB_DATA` blob,
PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
KEY `SCHED_NAME` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of qrtz_blob_triggers
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for qrtz_calendars
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_calendars`;
CREATE TABLE `qrtz_calendars` (
`SCHED_NAME` varchar(120) NOT NULL,
`CALENDAR_NAME` varchar(190) NOT NULL,
`CALENDAR` blob NOT NULL,
PRIMARY KEY (`SCHED_NAME`,`CALENDAR_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of qrtz_calendars
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for qrtz_cron_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_cron_triggers`;
CREATE TABLE `qrtz_cron_triggers` (
`SCHED_NAME` varchar(120) NOT NULL,
`TRIGGER_NAME` varchar(190) NOT NULL,
`TRIGGER_GROUP` varchar(190) NOT NULL,
`CRON_EXPRESSION` varchar(120) NOT NULL,
`TIME_ZONE_ID` varchar(80) DEFAULT NULL,
PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of qrtz_cron_triggers
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for qrtz_fired_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_fired_triggers`;
CREATE TABLE `qrtz_fired_triggers` (
`SCHED_NAME` varchar(120) NOT NULL,
`ENTRY_ID` varchar(95) NOT NULL,
`TRIGGER_NAME` varchar(190) NOT NULL,
`TRIGGER_GROUP` varchar(190) NOT NULL,
`INSTANCE_NAME` varchar(190) NOT NULL,
`FIRED_TIME` bigint(13) NOT NULL,
`SCHED_TIME` bigint(13) NOT NULL,
`PRIORITY` int(11) NOT NULL,
`STATE` varchar(16) NOT NULL,
`JOB_NAME` varchar(190) DEFAULT NULL,
`JOB_GROUP` varchar(190) DEFAULT NULL,
`IS_NONCONCURRENT` varchar(1) DEFAULT NULL,
`REQUESTS_RECOVERY` varchar(1) DEFAULT NULL,
PRIMARY KEY (`SCHED_NAME`,`ENTRY_ID`),
KEY `IDX_QRTZ_FT_TRIG_INST_NAME` (`SCHED_NAME`,`INSTANCE_NAME`),
KEY `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY` (`SCHED_NAME`,`INSTANCE_NAME`,`REQUESTS_RECOVERY`),
KEY `IDX_QRTZ_FT_J_G` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
KEY `IDX_QRTZ_FT_JG` (`SCHED_NAME`,`JOB_GROUP`),
KEY `IDX_QRTZ_FT_T_G` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
KEY `IDX_QRTZ_FT_TG` (`SCHED_NAME`,`TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of qrtz_fired_triggers
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for qrtz_job_details
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_job_details`;
CREATE TABLE `qrtz_job_details` (
`SCHED_NAME` varchar(120) NOT NULL,
`JOB_NAME` varchar(190) NOT NULL,
`JOB_GROUP` varchar(190) NOT NULL,
`DESCRIPTION` varchar(250) DEFAULT NULL,
`JOB_CLASS_NAME` varchar(250) NOT NULL,
`IS_DURABLE` varchar(1) NOT NULL,
`IS_NONCONCURRENT` varchar(1) NOT NULL,
`IS_UPDATE_DATA` varchar(1) NOT NULL,
`REQUESTS_RECOVERY` varchar(1) NOT NULL,
`JOB_DATA` blob,
PRIMARY KEY (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
KEY `IDX_QRTZ_J_REQ_RECOVERY` (`SCHED_NAME`,`REQUESTS_RECOVERY`),
KEY `IDX_QRTZ_J_GRP` (`SCHED_NAME`,`JOB_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of qrtz_job_details
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for qrtz_locks
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_locks`;
CREATE TABLE `qrtz_locks` (
`SCHED_NAME` varchar(120) NOT NULL,
`LOCK_NAME` varchar(40) NOT NULL,
PRIMARY KEY (`SCHED_NAME`,`LOCK_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of qrtz_locks
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for qrtz_paused_trigger_grps
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_paused_trigger_grps`;
CREATE TABLE `qrtz_paused_trigger_grps` (
`SCHED_NAME` varchar(120) NOT NULL,
`TRIGGER_GROUP` varchar(190) NOT NULL,
PRIMARY KEY (`SCHED_NAME`,`TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of qrtz_paused_trigger_grps
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for qrtz_scheduler_state
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_scheduler_state`;
CREATE TABLE `qrtz_scheduler_state` (
`SCHED_NAME` varchar(120) NOT NULL,
`INSTANCE_NAME` varchar(190) NOT NULL,
`LAST_CHECKIN_TIME` bigint(13) NOT NULL,
`CHECKIN_INTERVAL` bigint(13) NOT NULL,
PRIMARY KEY (`SCHED_NAME`,`INSTANCE_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of qrtz_scheduler_state
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for qrtz_simple_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_simple_triggers`;
CREATE TABLE `qrtz_simple_triggers` (
`SCHED_NAME` varchar(120) NOT NULL,
`TRIGGER_NAME` varchar(190) NOT NULL,
`TRIGGER_GROUP` varchar(190) NOT NULL,
`REPEAT_COUNT` bigint(7) NOT NULL,
`REPEAT_INTERVAL` bigint(12) NOT NULL,
`TIMES_TRIGGERED` bigint(10) NOT NULL,
PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of qrtz_simple_triggers
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for qrtz_simprop_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_simprop_triggers`;
CREATE TABLE `qrtz_simprop_triggers` (
`SCHED_NAME` varchar(120) NOT NULL,
`TRIGGER_NAME` varchar(190) NOT NULL,
`TRIGGER_GROUP` varchar(190) NOT NULL,
`STR_PROP_1` varchar(512) DEFAULT NULL,
`STR_PROP_2` varchar(512) DEFAULT NULL,
`STR_PROP_3` varchar(512) DEFAULT NULL,
`INT_PROP_1` int(11) DEFAULT NULL,
`INT_PROP_2` int(11) DEFAULT NULL,
`LONG_PROP_1` bigint(20) DEFAULT NULL,
`LONG_PROP_2` bigint(20) DEFAULT NULL,
`DEC_PROP_1` decimal(13,4) DEFAULT NULL,
`DEC_PROP_2` decimal(13,4) DEFAULT NULL,
`BOOL_PROP_1` varchar(1) DEFAULT NULL,
`BOOL_PROP_2` varchar(1) DEFAULT NULL,
PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of qrtz_simprop_triggers
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for qrtz_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_triggers`;
CREATE TABLE `qrtz_triggers` (
`SCHED_NAME` varchar(120) NOT NULL,
`TRIGGER_NAME` varchar(190) NOT NULL,
`TRIGGER_GROUP` varchar(190) NOT NULL,
`JOB_NAME` varchar(190) NOT NULL,
`JOB_GROUP` varchar(190) NOT NULL,
`DESCRIPTION` varchar(250) DEFAULT NULL,
`NEXT_FIRE_TIME` bigint(13) DEFAULT NULL,
`PREV_FIRE_TIME` bigint(13) DEFAULT NULL,
`PRIORITY` int(11) DEFAULT NULL,
`TRIGGER_STATE` varchar(16) NOT NULL,
`TRIGGER_TYPE` varchar(8) NOT NULL,
`START_TIME` bigint(13) NOT NULL,
`END_TIME` bigint(13) DEFAULT NULL,
`CALENDAR_NAME` varchar(190) DEFAULT NULL,
`MISFIRE_INSTR` smallint(2) DEFAULT NULL,
`JOB_DATA` blob,
PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
KEY `IDX_QRTZ_T_J` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
KEY `IDX_QRTZ_T_JG` (`SCHED_NAME`,`JOB_GROUP`),
KEY `IDX_QRTZ_T_C` (`SCHED_NAME`,`CALENDAR_NAME`),
KEY `IDX_QRTZ_T_G` (`SCHED_NAME`,`TRIGGER_GROUP`),
KEY `IDX_QRTZ_T_STATE` (`SCHED_NAME`,`TRIGGER_STATE`),
KEY `IDX_QRTZ_T_N_STATE` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
KEY `IDX_QRTZ_T_N_G_STATE` (`SCHED_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
KEY `IDX_QRTZ_T_NEXT_FIRE_TIME` (`SCHED_NAME`,`NEXT_FIRE_TIME`),
KEY `IDX_QRTZ_T_NFT_ST` (`SCHED_NAME`,`TRIGGER_STATE`,`NEXT_FIRE_TIME`),
KEY `IDX_QRTZ_T_NFT_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`),
KEY `IDX_QRTZ_T_NFT_ST_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_STATE`),
KEY `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of qrtz_triggers
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for sys_open_domain
-- ----------------------------
DROP TABLE IF EXISTS `sys_open_domain`;
CREATE TABLE `sys_open_domain` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(20) NOT NULL COMMENT '名称',
`api_secret` varchar(100) NOT NULL COMMENT 'API秘钥',
`available` tinyint(1) NOT NULL COMMENT '状态',
`description` varchar(200) NOT NULL DEFAULT '' COMMENT '备注',
`tenant_id` int(11) DEFAULT NULL COMMENT '租户ID',
`create_by` varchar(32) NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) NOT NULL COMMENT '修改人',
`update_by_id` varchar(32) NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='开放域';
-- ----------------------------
-- Records of sys_open_domain
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for tenant
-- ----------------------------
DROP TABLE IF EXISTS `tenant`;
CREATE TABLE `tenant` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(200) NOT NULL COMMENT '名称',
`jdbc_url` varchar(400) NOT NULL COMMENT 'JDBC连接地址',
`jdbc_username` varchar(200) NOT NULL COMMENT 'JDBC用户名',
`jdbc_password` varchar(200) NOT NULL COMMENT 'JDBC密码',
`available` tinyint(1) NOT NULL COMMENT '状态',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1003 DEFAULT CHARSET=utf8mb4 COMMENT='租户';
-- ----------------------------
-- Records of tenant
-- ----------------------------
BEGIN;
INSERT INTO `tenant` (`id`, `name`, `jdbc_url`, `jdbc_username`, `jdbc_password`, `available`, `create_time`, `update_time`) VALUES (1000, '测试租户', 'jdbc:mysql://127.0.0.1:3306/xingyun', 'root', '123456', 1, '2022-12-31 22:59:21', '2023-03-13 22:14:07');
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -0,0 +1,61 @@
DROP TABLE IF EXISTS `sys_module`;
CREATE TABLE `sys_module` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
`description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '备注',
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人',
`update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统模块' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sys_module
-- ----------------------------
INSERT INTO `sys_module` VALUES (1, '平台管理', '系统平台的核心模块。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (2, '系统管理', '维护企业、系统基础数据,包括部门、岗位、角色、系统菜单和参数等。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (3, '基础信息管理', '维护基础业务数据,包括仓库、客户、供应商、会员等。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (4, '商品中心', '管理商品核心数据。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (5, '采购业务', '管理供应商与企业的采购业务。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (6, '销售业务', '管理企业与TOB端大客户的销售业务。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (7, '零售业务', '管理企业与TOC端会员的零售业务。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (8, '库存管理及调拨', '查询商品库存和进行商品调拨。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (9, '库存盘点', '库存商品盘点。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (10, '库存调整', '商品库存数量和成本调整。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (11, '结算管理', '企业与供应商、客户进行结算。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (12, '开发管理', '系统快捷开发,如管理定时器、数据实体、数据对象、表单生成等。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (13, '便捷办公', '支持文件收纳和在线Excel。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (14, '开放平台', '系统开放平台管理。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
INSERT INTO `sys_module` VALUES (15, '物流发货', '管理企业物流业务。', '系统管理员', '1', '2023-06-06 10:26:30', '系统管理员', '1', '2023-06-06 10:26:41');
DROP TABLE IF EXISTS `sys_module_tenant`;
CREATE TABLE `sys_module_tenant` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID',
`module_id` int(11) NOT NULL COMMENT '模块ID',
`tenant_id` int(11) NOT NULL COMMENT '租户ID',
`expire_time` datetime NOT NULL COMMENT '过期时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `name`(`tenant_id`, `module_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户和系统模块关系表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sys_module_tenant
-- ----------------------------
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875135', 1, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875136', 2, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875137', 3, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875138', 4, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875139', 5, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875140', 6, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875141', 7, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875142', 8, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875143', 9, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875144', 10, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875145', 11, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875146', 12, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875147', 13, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875148', 14, 1000, '2099-01-01 00:00:00');
INSERT INTO `sys_module_tenant` VALUES ('1666286094246875149', 15, 1000, '2099-01-01 00:00:00');

View File

@ -0,0 +1,17 @@
DROP TABLE IF EXISTS `magic_api_file`;
CREATE TABLE `magic_api_file` (
`file_path` varchar(512) NOT NULL,
`file_content` mediumtext,
PRIMARY KEY (`file_path`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `magic_api_file_backup`;
CREATE TABLE `magic_api_file_backup` (
`id` varchar(32) NOT NULL COMMENT '原对象ID',
`create_date` bigint(13) NOT NULL COMMENT '备份时间',
`tag` varchar(32) DEFAULT NULL COMMENT '标签',
`type` varchar(32) DEFAULT NULL COMMENT '类型',
`name` varchar(64) DEFAULT NULL COMMENT '原名称',
`content` blob COMMENT '备份内容',
`create_by` varchar(64) DEFAULT NULL COMMENT '操作人',
PRIMARY KEY (`id`,`create_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

View File

@ -0,0 +1 @@
UPDATE `qrtz_job_details` SET `JOB_CLASS_NAME` = 'com.lframework.xingyun.template.inner.config.OpLogTimerConfiguration$OpLogClearJob' WHERE `qrtz_job_details`.`SCHED_NAME` = 'quartzScheduler' AND `qrtz_job_details`.`JOB_NAME` = 'OP_LOG_TIMER' AND `qrtz_job_details`.`JOB_GROUP` = 'OP_LOG_TIMER_GROUP';

View File

@ -0,0 +1 @@
UPDATE `tenant` SET jdbc_password = '24590d72bfb4d71ccbc533570aa9627b' WHERE jdbc_password = '123456';

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,425 @@
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('2000008', '2000008', 'PayType', '支付方式', NULL, 0, '/base-data/pay-type/index', NULL, '2000', '/pay-type', 0, 1, 0, 'base-data:pay-type:query', 1, 1, '', '系统管理员', '1', '2021-07-05 21:59:35', '系统管理员', '1', '2021-07-05 21:59:36');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('2000008001', '2000008001', '', '新增支付方式', NULL, 0, '', NULL, '2000008', '', 0, 2, 0, 'base-data:pay-type:add', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('2000008002', '2000008002', '', '修改支付方式', NULL, 0, '', NULL, '2000008', '', 0, 2, 0, 'base-data:pay-type:modify', 1, 1, '', '系统管理员', '1', '2021-05-12 23:23:33', '系统管理员', '1', '2021-07-04 00:34:23');
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for base_data_pay_type
-- ----------------------------
DROP TABLE IF EXISTS `base_data_pay_type`;
CREATE TABLE `base_data_pay_type` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID',
`code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编号',
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
`rec_text` tinyint(1) NOT NULL COMMENT '是否记录内容',
`available` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态',
`description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '备注',
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人',
`update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `code`(`code`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '支付方式' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of base_data_pay_type
-- ----------------------------
INSERT INTO `base_data_pay_type` VALUES ('1', '001', '现金', 0, 1, '', '系统管理员', '1', '2023-03-21 10:09:44', '系统管理员', '1', '2023-03-21 10:12:30');
INSERT INTO `base_data_pay_type` VALUES ('2', '002', '微信支付', 0, 1, '', '系统管理员', '1', '2023-03-21 10:09:44', '系统管理员', '1', '2023-03-21 10:12:30');
INSERT INTO `base_data_pay_type` VALUES ('3', '003', '支付宝支付', 0, 1, '', '系统管理员', '1', '2023-03-21 10:09:44', '系统管理员', '1', '2023-03-21 10:12:30');
INSERT INTO `base_data_pay_type` VALUES ('4', '004', '移动支付', 0, 1, '', '系统管理员', '1', '2023-03-21 10:09:44', '系统管理员', '1', '2023-03-21 10:12:30');
INSERT INTO `base_data_pay_type` VALUES ('5', '005', '优惠券', 1, 1, '', '系统管理员', '1', '2023-03-21 10:09:44', '系统管理员', '1', '2023-03-21 10:12:30');
INSERT INTO `base_data_pay_type` VALUES ('6', '006', '积分', 0, 1, '', '系统管理员', '1', '2023-03-21 10:09:44', '系统管理员', '1', '2023-03-21 10:12:30');
SET FOREIGN_KEY_CHECKS = 1;
ALTER TABLE `base_data_store_center`
ADD COLUMN `zip_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮编' AFTER `people_num`,
ADD COLUMN `receiver` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收货人' AFTER `zip_code`,
ADD COLUMN `receive_telephone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收货手机号' AFTER `receiver`,
ADD COLUMN `receive_address` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收货地址' AFTER `receive_telephone`,
ADD COLUMN `sender` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发货人' AFTER `receive_address`,
ADD COLUMN `send_telephone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发货手机号' AFTER `sender`,
ADD COLUMN `send_address` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发货地址' AFTER `send_telephone`;
ALTER TABLE `base_data_supplier`
CHANGE COLUMN `delivery_address` `send_address` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发货地址' AFTER `address`,
ADD COLUMN `sender` varchar(200) NULL COMMENT '发货人' AFTER `address`,
ADD COLUMN `send_telephone` varchar(20) NULL COMMENT '发货手机号' AFTER `sender`;
ALTER TABLE `base_data_member`
ADD COLUMN `city_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地区ID' AFTER `guider_id`,
ADD COLUMN `zip_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮编' AFTER `city_id`,
ADD COLUMN `receiver` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收货人' AFTER `zip_code`,
ADD COLUMN `receive_telephone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收货手机号' AFTER `receiver`,
ADD COLUMN `receive_address` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收货地址' AFTER `receive_telephone`;
DROP TABLE IF EXISTS `base_data_address`;
CREATE TABLE `base_data_address` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID',
`entity_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '实体ID',
`entity_type` tinyint(3) NOT NULL COMMENT '实体类型',
`address_type` tinyint(3) NOT NULL COMMENT '地址类型',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '姓名',
`telephone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '手机号',
`province_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '',
`city_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '',
`district_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '',
`address` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '详细地址',
`is_default` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否默认地址',
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人',
`update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `entity_id`(`entity_id`, `entity_type`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '地址库' ROW_FORMAT = Dynamic;
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('2000009', '2000009', 'Address', '地址库', NULL, 0, '/base-data/address/index', NULL, '2000', '/address', 0, 1, 0, 'base-data:address:query', 1, 1, '', '系统管理员', '1', '2021-07-05 21:59:35', '系统管理员', '1', '2021-07-05 21:59:36');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('2000009001', '2000009001', '', '新增地址', NULL, 0, '', NULL, '2000009', '', 0, 2, 0, 'base-data:address:add', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('2000009002', '2000009002', '', '修改地址', NULL, 0, '', NULL, '2000009', '', 0, 2, 0, 'base-data:address:modify', 1, 1, '', '系统管理员', '1', '2021-05-12 23:23:33', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('2000009003', '2000009003', '', '导出地址', NULL, 0, '', NULL, '2000009', '', 0, 2, 0, 'base-data:address:export', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('2000009004', '2000009004', '', '导入地址', NULL, 0, '', NULL, '2000009', '', 0, 2, 0, 'base-data:address:import', 1, 1, '', '系统管理员', '1', '2021-05-12 23:23:33', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO base_data_address (
id,
entity_id,
entity_type,
address_type,
`name`,
telephone,
province_id,
city_id,
district_id,
address,
is_default,
create_by,
create_by_id,
create_time,
update_by,
update_by_id,
update_time
) SELECT
CONCAT(tb.id, 2) AS id,
tb.id AS entity_id,
1 AS entity_type,
2 AS address_type,
tb.receiver,
tb.receive_telephone,
p.id AS province_id,
c.id AS city_id,
d.id AS district_id,
tb.receive_address,
1 AS is_default,
tb.create_by,
tb.create_by_id,
tb.create_time,
tb.update_by,
tb.update_by_id,
tb.update_time
FROM
base_data_store_center AS tb
INNER JOIN dic_city AS d ON d.id = tb.city_id
INNER JOIN dic_city as c ON c.id = d.parent_id
INNER JOIN dic_city as p ON p.id = c.parent_id
WHERE
tb.receiver IS NOT NULL
AND tb.receiver != ''
AND tb.receive_telephone IS NOT NULL
AND tb.receive_telephone != ''
AND tb.receive_address IS NOT NULL
AND tb.receive_address != '';
INSERT INTO base_data_address (
id,
entity_id,
entity_type,
address_type,
`name`,
telephone,
province_id,
city_id,
district_id,
address,
is_default,
create_by,
create_by_id,
create_time,
update_by,
update_by_id,
update_time
) SELECT
CONCAT(tb.id, 2) AS id,
tb.id AS entity_id,
2 AS entity_type,
2 AS address_type,
tb.receiver,
tb.receive_telephone,
p.id AS province_id,
c.id AS city_id,
d.id AS district_id,
tb.receive_address,
1 AS is_default,
tb.create_by,
tb.create_by_id,
tb.create_time,
tb.update_by,
tb.update_by_id,
tb.update_time
FROM
base_data_customer AS tb
INNER JOIN dic_city AS d ON d.id = tb.city_id
INNER JOIN dic_city as c ON c.id = d.parent_id
INNER JOIN dic_city as p ON p.id = c.parent_id
WHERE
tb.receiver IS NOT NULL
AND tb.receiver != ''
AND tb.receive_telephone IS NOT NULL
AND tb.receive_telephone != ''
AND tb.receive_address IS NOT NULL
AND tb.receive_address != '';
INSERT INTO base_data_address (
id,
entity_id,
entity_type,
address_type,
`name`,
telephone,
province_id,
city_id,
district_id,
address,
is_default,
create_by,
create_by_id,
create_time,
update_by,
update_by_id,
update_time
) SELECT
CONCAT(tb.id, 2) AS id,
tb.id AS entity_id,
4 AS entity_type,
2 AS address_type,
tb.receiver,
tb.receive_telephone,
p.id AS province_id,
c.id AS city_id,
d.id AS district_id,
tb.receive_address,
1 AS is_default,
tb.create_by,
tb.create_by_id,
tb.create_time,
tb.update_by,
tb.update_by_id,
tb.update_time
FROM
base_data_member AS tb
INNER JOIN dic_city AS d ON d.id = tb.city_id
INNER JOIN dic_city as c ON c.id = d.parent_id
INNER JOIN dic_city as p ON p.id = c.parent_id
WHERE
tb.receiver IS NOT NULL
AND tb.receiver != ''
AND tb.receive_telephone IS NOT NULL
AND tb.receive_telephone != ''
AND tb.receive_address IS NOT NULL
AND tb.receive_address != '';
INSERT INTO base_data_address (
id,
entity_id,
entity_type,
address_type,
`name`,
telephone,
province_id,
city_id,
district_id,
address,
is_default,
create_by,
create_by_id,
create_time,
update_by,
update_by_id,
update_time
) SELECT
CONCAT(tb.id, 1) AS id,
tb.id AS entity_id,
1 AS entity_type,
1 AS address_type,
tb.sender,
tb.send_telephone,
p.id AS province_id,
c.id AS city_id,
d.id AS district_id,
tb.send_address,
1 AS is_default,
tb.create_by,
tb.create_by_id,
tb.create_time,
tb.update_by,
tb.update_by_id,
tb.update_time
FROM
base_data_store_center AS tb
INNER JOIN dic_city AS d ON d.id = tb.city_id
INNER JOIN dic_city as c ON c.id = d.parent_id
INNER JOIN dic_city as p ON p.id = c.parent_id
WHERE
tb.sender IS NOT NULL
AND tb.sender != ''
AND tb.send_telephone IS NOT NULL
AND tb.send_telephone != ''
AND tb.send_address IS NOT NULL
AND tb.send_address != '';
INSERT INTO base_data_address (
id,
entity_id,
entity_type,
address_type,
`name`,
telephone,
province_id,
city_id,
district_id,
address,
is_default,
create_by,
create_by_id,
create_time,
update_by,
update_by_id,
update_time
) SELECT
CONCAT(tb.id, 1) AS id,
tb.id AS entity_id,
3 AS entity_type,
1 AS address_type,
tb.sender,
tb.send_telephone,
p.id AS province_id,
c.id AS city_id,
d.id AS district_id,
tb.send_address,
1 AS is_default,
tb.create_by,
tb.create_by_id,
tb.create_time,
tb.update_by,
tb.update_by_id,
tb.update_time
FROM
base_data_supplier AS tb
INNER JOIN dic_city AS d ON d.id = tb.city_id
INNER JOIN dic_city as c ON c.id = d.parent_id
INNER JOIN dic_city as p ON p.id = c.parent_id
WHERE
tb.sender IS NOT NULL
AND tb.sender != ''
AND tb.send_telephone IS NOT NULL
AND tb.send_telephone != ''
AND tb.send_address IS NOT NULL
AND tb.send_address != '';
ALTER TABLE `base_data_customer`
DROP COLUMN `receiver`,
DROP COLUMN `receive_telephone`,
DROP COLUMN `receive_address`;
ALTER TABLE `base_data_member`
DROP COLUMN `zip_code`,
DROP COLUMN `receiver`,
DROP COLUMN `receive_telephone`,
DROP COLUMN `receive_address`;
ALTER TABLE `base_data_supplier`
DROP COLUMN `sender`,
DROP COLUMN `send_telephone`,
DROP COLUMN `send_address`;
ALTER TABLE `base_data_store_center`
DROP COLUMN `zip_code`,
DROP COLUMN `receiver`,
DROP COLUMN `receive_telephone`,
DROP COLUMN `receive_address`,
DROP COLUMN `sender`,
DROP COLUMN `send_telephone`,
DROP COLUMN `send_address`;
DROP TABLE IF EXISTS `tbl_order_pay_type`;
CREATE TABLE `tbl_order_pay_type` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID',
`order_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '订单ID',
`pay_type_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '支付方式ID',
`pay_amount` decimal(24, 2) NOT NULL COMMENT '支付金额',
`text` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付内容',
PRIMARY KEY (`id`) USING BTREE,
INDEX `order_id`(`order_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单支付方式' ROW_FORMAT = Dynamic;
insert into tbl_order_pay_type (id, order_id, pay_type_id, pay_amount, text) select id, id, 1, total_amount, NULL from tbl_purchase_order where total_amount > 0;
insert into tbl_order_pay_type (id, order_id, pay_type_id, pay_amount, text) select id, id, 1, total_amount, NULL from tbl_receive_sheet where total_amount > 0;
insert into tbl_order_pay_type (id, order_id, pay_type_id, pay_amount, text) select id, id, 1, total_amount, NULL from tbl_purchase_return where total_amount > 0;
insert into tbl_order_pay_type (id, order_id, pay_type_id, pay_amount, text) select id, id, 1, total_amount, NULL from tbl_retail_out_sheet where total_amount > 0;
insert into tbl_order_pay_type (id, order_id, pay_type_id, pay_amount, text) select id, id, 1, total_amount, NULL from tbl_retail_return where total_amount > 0;
insert into tbl_order_pay_type (id, order_id, pay_type_id, pay_amount, text) select id, id, 1, total_amount, NULL from tbl_sale_order where total_amount > 0;
insert into tbl_order_pay_type (id, order_id, pay_type_id, pay_amount, text) select id, id, 1, total_amount, NULL from tbl_sale_out_sheet where total_amount > 0;
insert into tbl_order_pay_type (id, order_id, pay_type_id, pay_amount, text) select id, id, 1, total_amount, NULL from tbl_sale_return where total_amount > 0;
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('1000002003', '1000002003', '', '部门权限', NULL, 0, '', NULL, '1000002', '', 0, 2, 0, 'system:dept:permission', 1, 1, '', '系统管理员', '1', '2021-06-27 01:33:47', '系统管理员', '1', '2021-07-04 00:34:23');
DROP TABLE IF EXISTS `sys_data_permission_data`;
CREATE TABLE `sys_data_permission_data` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`biz_id` varchar(32) NOT NULL COMMENT '业务ID',
`biz_type` tinyint(3) NOT NULL COMMENT '业务类型',
`permission_type` tinyint(3) NOT NULL COMMENT '权限类型',
`permission` longtext NOT NULL COMMENT '数据权限',
PRIMARY KEY (`id`),
UNIQUE KEY `biz_id` (`biz_id`,`biz_type`,`permission_type`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据权限数据';
DROP TABLE IF EXISTS `sys_data_permission_model_detail`;
CREATE TABLE `sys_data_permission_model_detail` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
`model_id` int(11) NOT NULL COMMENT '模型ID',
`condition_type` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '条件',
`input_type` tinyint(3) NOT NULL COMMENT '输入类型',
`table_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '表名',
`column_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '字段名',
`enum_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '前端枚举名',
`sql_value` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'SQL',
PRIMARY KEY (`id`) USING BTREE,
INDEX `model_id`(`model_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据权限模型明细' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sys_data_permission_model_detail
-- ----------------------------
INSERT INTO `sys_data_permission_model_detail` VALUES (1, '编号', 1, '0,1,2,3,4,5,6,7,8,9,10', 0, 'product', 'code', NULL, NULL);
INSERT INTO `sys_data_permission_model_detail` VALUES (2, '名称', 1, '0,1,2,3,4,5,6,7,8,9,10', 0, 'product', 'name', NULL, NULL);
INSERT INTO `sys_data_permission_model_detail` VALUES (3, '简称', 1, '0,1,2,3,4,5,6,7,8,9,10', 0, 'product', 'short_name', NULL, NULL);
INSERT INTO `sys_data_permission_model_detail` VALUES (4, 'SKU', 1, '0,1,2,3,4,5,6,7,8,9,10', 0, 'product', 'sku_code', NULL, NULL);
INSERT INTO `sys_data_permission_model_detail` VALUES (5, '外部编号', 1, '0,1,2,3,4,5,6,7,8,9,10', 0, 'product', 'external_code', NULL, NULL);
INSERT INTO `sys_data_permission_model_detail` VALUES (6, '品类编号', 1, '0,1,2,3,4,5,6,7,8,9,10', 0, 'category', 'code', NULL, NULL);
INSERT INTO `sys_data_permission_model_detail` VALUES (7, '品类名称', 1, '0,1,2,3,4,5,6,7,8,9,10', 0, 'category', 'name', NULL, NULL);
INSERT INTO `sys_data_permission_model_detail` VALUES (8, '品牌编号', 1, '0,1,2,3,4,5,6,7,8,9,10', 0, 'brand', 'code', NULL, NULL);
INSERT INTO `sys_data_permission_model_detail` VALUES (9, '品牌名称', 1, '0,1,2,3,4,5,6,7,8,9,10', 0, 'brand', 'name', NULL, NULL);
INSERT INTO `sys_data_permission_model_detail` VALUES (10, '规格', 1, '0,1,2,3,4,5,6,7,8,9,10', 0, 'product', 'spec', NULL, NULL);
INSERT INTO `sys_data_permission_model_detail` VALUES (11, '单位', 1, '0,1,2,3,4,5,6,7,8,9,10', 0, 'product', 'unit', NULL, NULL);
INSERT INTO `sys_data_permission_model_detail` VALUES (12, '状态', 1, '0,5,6,7', 1, 'product', 'available', 'AVAILABLE', NULL);
INSERT INTO `sys_data_permission_model_detail` VALUES (13, '创建时间', 1, '0,1,2,3,4,5', 2, 'product', 'create_time', NULL, NULL);
INSERT INTO `sys_data_permission_model_detail` VALUES (14, '创建人部门与本人相同', 2, '6', 99, 'order', 'create_by_id', NULL, 'SELECT __ud.user_id FROM sys_user_dept AS __ud WHERE __ud.dept_id IN ({__var#curDeptIds})');
INSERT INTO `sys_data_permission_model_detail` VALUES (15, '创建人部门是本人的上级部门', 2, '6', 99, 'order', 'create_by_id', NULL, 'SELECT DISTINCT __ud.user_id FROM sys_user_dept AS __ud WHERE FIND_IN_SET(__ud.dept_id,(SELECT GROUP_CONCAT(__mp.path) FROM sys_dept AS __d INNER JOIN recursion_mapping AS __mp ON __mp.node_id=__d.id AND __mp.node_type=1 WHERE __d.id IN ({__var#curDeptIds}) AND __mp.level> 1))');
INSERT INTO `sys_data_permission_model_detail` VALUES (16, '创建人部门是本人的下级部门', 2, '6', 99, 'order', 'create_by_id', NULL, 'SELECT DISTINCT __ud.user_id FROM sys_user_dept AS __ud WHERE __ud.dept_id IN (SELECT __mp.node_id FROM recursion_mapping AS __mp WHERE FIND_IN_SET((SELECT __d.id FROM sys_dept AS __d WHERE __d.id IN ({__var#curDeptIds})),__mp.path) AND __mp.node_type=1)');
INSERT INTO `sys_data_permission_model_detail` VALUES (17, '创建时间', 2, '0,1,2,3,4,5', 2, 'order', 'create_time', NULL, NULL);

View File

@ -0,0 +1,69 @@
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000005002', '3000005002', 'StockAdjustReason', '库存调整原因', NULL, 0, '/sc/stock/adjust/stock/reason/index', NULL, '3000005', '/stock/reason', 0, 1, 0, 'stock:adjust:reason:query', 1, 1, '', '系统管理员', '1', '2021-07-05 21:59:35', '系统管理员', '1', '2021-07-05 21:59:36');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000005002001', '3000005002001', '', '新增库存成本调整单', NULL, 0, '', NULL, '3000005002', '', 0, 2, 0, 'stock:adjust:reason:add', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000005002002', '3000005002002', '', '修改库存成本调整单', NULL, 0, '', NULL, '3000005002', '', 0, 2, 0, 'stock:adjust:reason:modify', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
DROP TABLE IF EXISTS `tbl_stock_adjust_reason`;
CREATE TABLE `tbl_stock_adjust_reason` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID',
`code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编号',
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称',
`available` tinyint(1) NOT NULL COMMENT '状态',
`description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '备注',
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人',
`update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `code`(`code`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '库存调整原因' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of tbl_stock_adjust_reason
-- ----------------------------
INSERT INTO `tbl_stock_adjust_reason` VALUES ('1', '001', '初始化数据', 1, '系统内置', '系统管理员', '1', '2023-04-18 14:04:34', '系统管理员', '1', '2023-04-18 14:04:53');
INSERT INTO `tbl_stock_adjust_reason` VALUES ('2', '002', '损溢', 1, '系统内置', '系统管理员', '1', '2023-04-18 14:04:34', '系统管理员', '1', '2023-04-18 14:04:53');
INSERT INTO `tbl_stock_adjust_reason` VALUES ('3', '003', '其他', 1, '系统内置', '系统管理员', '1', '2023-04-18 14:04:34', '系统管理员', '1', '2023-04-18 14:04:53');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000005003', '3000005003', 'StockAdjustSheet', '库存调整', NULL, 0, '/sc/stock/adjust/stock/index', NULL, '3000005', '/stock', 0, 1, 0, 'stock:adjust:query', 1, 1, '', '系统管理员', '1', '2021-07-05 21:59:35', '系统管理员', '1', '2021-07-05 21:59:36');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000005003001', '3000005003001', '', '新增库存调整单', NULL, 0, '', NULL, '3000005003', '', 0, 2, 0, 'stock:adjust:add', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000005003002', '3000005003002', '', '修改库存调整单', NULL, 0, '', NULL, '3000005003', '', 0, 2, 0, 'stock:adjust:modify', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000005003003', '3000005003003', '', '删除库存调整单', NULL, 0, '', NULL, '3000005003', '', 0, 2, 0, 'stock:adjust:delete', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000005003004', '3000005003004', '', '导出库存调整单', NULL, 0, '', NULL, '3000005003', '', 0, 2, 0, 'stock:adjust:export', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000005003005', '3000005003005', '', '审核库存调整单', NULL, 0, '', NULL, '3000005003', '', 0, 2, 0, 'stock:adjust:approve', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
DROP TABLE IF EXISTS `tbl_stock_adjust_sheet`;
CREATE TABLE `tbl_stock_adjust_sheet` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`code` varchar(32) NOT NULL COMMENT '业务单据号',
`sc_id` varchar(32) NOT NULL COMMENT '仓库ID',
`biz_type` tinyint(3) NOT NULL COMMENT '业务类型',
`reason_id` varchar(32) NOT NULL COMMENT '调整原因ID',
`status` tinyint(3) NOT NULL COMMENT '状态',
`description` varchar(200) DEFAULT NULL COMMENT '备注',
`create_by` varchar(32) NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) NOT NULL COMMENT '修改人',
`update_by_id` varchar(32) NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
`approve_by` varchar(32) DEFAULT NULL COMMENT '审核人',
`approve_time` datetime DEFAULT NULL COMMENT '审核时间',
`refuse_reason` varchar(200) DEFAULT NULL COMMENT '拒绝原因',
PRIMARY KEY (`id`),
UNIQUE KEY `code` (`code`),
KEY `sc_id` (`sc_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存调整单';
DROP TABLE IF EXISTS `tbl_stock_adjust_sheet_detail`;
CREATE TABLE `tbl_stock_adjust_sheet_detail` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`sheet_id` varchar(32) NOT NULL COMMENT '单据ID',
`product_id` varchar(32) NOT NULL COMMENT '商品ID',
`stock_num` int(11) NOT NULL COMMENT '调整库存数量',
`description` varchar(200) DEFAULT NULL COMMENT '备注',
`order_no` int(11) NOT NULL COMMENT '排序',
PRIMARY KEY (`id`),
UNIQUE KEY `sheet_id` (`sheet_id`,`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存调整单明细';

View File

@ -0,0 +1,74 @@
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000006', '3000006', 'ScTransferOrder', '仓库调拨', NULL, 0, '/sc/stock/transfer/index', NULL, '3000', '/transfer', 0, 1, 0, 'stock:sc-transfer:query', 1, 1, '', '系统管理员', '1', '2021-07-05 21:59:35', '系统管理员', '1', '2021-07-05 21:59:36');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000006001', '3000006001', '', '新增仓库调拨单', NULL, 0, '', NULL, '3000006', '', 0, 2, 0, 'stock:sc-transfer:add', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000006002', '3000006002', '', '修改仓库调拨单', NULL, 0, '', NULL, '3000006', '', 0, 2, 0, 'stock:sc-transfer:modify', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000006003', '3000006003', '', '删除仓库调拨单', NULL, 0, '', NULL, '3000006', '', 0, 2, 0, 'stock:sc-transfer:delete', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000006004', '3000006004', '', '导出仓库调拨单', NULL, 0, '', NULL, '3000006', '', 0, 2, 0, 'stock:sc-transfer:export', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000006005', '3000006005', '', '审核仓库调拨单', NULL, 0, '', NULL, '3000006', '', 0, 2, 0, 'stock:sc-transfer:approve', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('3000006006', '3000006006', '', '仓库调拨单收货', NULL, 0, '', NULL, '3000006', '', 0, 2, 0, 'stock:sc-transfer:receive', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
ALTER TABLE `tbl_retail_out_sheet_detail_lot`
DROP COLUMN `cost_un_tax_amount`;
ALTER TABLE `tbl_sale_out_sheet_detail_lot`
DROP COLUMN `cost_un_tax_amount`;
ALTER TABLE `tbl_product_stock_log`
DROP COLUMN `ori_un_tax_price`,
DROP COLUMN `cur_un_tax_price`,
DROP COLUMN `un_tax_amount`;
ALTER TABLE `tbl_product_stock`
DROP COLUMN `un_tax_price`,
DROP COLUMN `un_tax_amount`;
DROP TABLE IF EXISTS `tbl_sc_transfer_order`;
CREATE TABLE `tbl_sc_transfer_order` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID',
`code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '单号',
`source_sc_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '转出仓库ID',
`target_sc_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '转入仓库ID',
`total_num` int(11) NOT NULL DEFAULT 0 COMMENT '调拨数量',
`total_amount` decimal(24, 2) NOT NULL DEFAULT 0.00 COMMENT '调拨成本金额',
`description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人',
`update_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
`approve_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '审核人',
`approve_time` datetime NULL DEFAULT NULL COMMENT '审核时间',
`status` tinyint(3) NOT NULL COMMENT '状态',
`refuse_reason` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '拒绝原因',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `code`(`code`) USING BTREE,
INDEX `source_sc_id`(`source_sc_id`) USING BTREE,
INDEX `target_sc_id`(`target_sc_id`) USING BTREE,
INDEX `create_time`(`create_time`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '仓库调拨单' ROW_FORMAT = Dynamic;
CREATE TABLE `tbl_sc_transfer_order_detail` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID',
`order_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '调拨单ID',
`product_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商品ID',
`transfer_num` int(11) NOT NULL COMMENT '调拨数量',
`tax_price` decimal(16, 2) NULL DEFAULT NULL COMMENT '成本价',
`description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
`order_no` int(11) NOT NULL COMMENT '排序编号',
`receive_num` int(11) NOT NULL DEFAULT 0 COMMENT '已收货数量',
PRIMARY KEY (`id`) USING BTREE,
INDEX `order_id`(`order_id`) USING BTREE,
INDEX `product_id`(`product_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '仓库调拨单明细' ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS `tbl_sc_transfer_order_detail_receive`;
CREATE TABLE `tbl_sc_transfer_order_detail_receive` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'ID',
`order_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '调拨单ID',
`detail_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '明细ID',
`receive_num` int(11) NOT NULL COMMENT '收货数量',
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `order_id`(`order_id`, `detail_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '仓库调拨单收货明细' ROW_FORMAT = Dynamic;

View File

@ -0,0 +1,81 @@
ALTER TABLE `base_data_product`
ADD COLUMN `product_type` tinyint(3) NOT NULL DEFAULT 1 COMMENT '商品类型' AFTER `brand_id`;
ALTER TABLE `tbl_sale_out_sheet_detail`
ADD COLUMN `ori_bundle_detail_id` varchar(32) NULL COMMENT '组合商品原始明细ID' AFTER `sale_order_detail_id`;
ALTER TABLE `tbl_sale_order_detail`
ADD COLUMN `ori_bundle_detail_id` varchar(32) NULL COMMENT '组合商品原始明细ID' AFTER `out_num`;
ALTER TABLE `tbl_retail_out_sheet_detail`
ADD COLUMN `ori_bundle_detail_id` varchar(32) NULL COMMENT '组合商品原始明细ID' AFTER `return_num`;
DROP TABLE IF EXISTS `base_data_product_bundle`;
CREATE TABLE `base_data_product_bundle` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`main_product_id` varchar(32) NOT NULL COMMENT '主商品ID',
`product_id` varchar(32) NOT NULL COMMENT '单品ID',
`bundle_num` int(11) NOT NULL COMMENT '包含数量',
`sale_price` decimal(24,2) NOT NULL COMMENT '销售价',
`retail_price` decimal(24,2) NOT NULL COMMENT '零售价',
`create_by` varchar(32) NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) NOT NULL COMMENT '修改人',
`update_by_id` varchar(32) NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `main_product_id` (`main_product_id`,`product_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='组合商品';
DROP TABLE IF EXISTS `tbl_sale_out_sheet_detail_bundle`;
CREATE TABLE `tbl_sale_out_sheet_detail_bundle` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`sheet_id` varchar(32) NOT NULL COMMENT '出库单ID',
`detail_id` varchar(32) NOT NULL COMMENT '明细ID',
`main_product_id` varchar(32) NOT NULL COMMENT '组合商品ID',
`order_num` int(11) NOT NULL DEFAULT '0' COMMENT '组合商品数量',
`product_id` varchar(32) NOT NULL COMMENT '单品ID',
`product_order_num` int(11) NOT NULL COMMENT '单品数量',
`product_ori_price` decimal(16,2) NOT NULL COMMENT '单品原价',
`product_tax_price` decimal(16,2) NOT NULL COMMENT '单品含税价格',
`product_tax_rate` varchar(16) NOT NULL COMMENT '单品税率',
`product_detail_id` varchar(32) DEFAULT NULL COMMENT '单品明细ID',
PRIMARY KEY (`id`),
UNIQUE KEY `sheet_id` (`sheet_id`,`product_detail_id`) USING BTREE,
KEY `detail_id` (`detail_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='销售出库单组合商品明细';
DROP TABLE IF EXISTS `tbl_sale_order_detail_bundle`;
CREATE TABLE `tbl_sale_order_detail_bundle` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`order_id` varchar(32) NOT NULL COMMENT '销售单ID',
`detail_id` varchar(32) NOT NULL COMMENT '明细ID',
`main_product_id` varchar(32) NOT NULL COMMENT '组合商品ID',
`order_num` int(11) NOT NULL DEFAULT '0' COMMENT '组合商品数量',
`product_id` varchar(32) NOT NULL COMMENT '单品ID',
`product_order_num` int(11) NOT NULL COMMENT '单品数量',
`product_ori_price` decimal(16,2) NOT NULL COMMENT '单品原价',
`product_tax_price` decimal(16,2) NOT NULL COMMENT '单品含税价格',
`product_tax_rate` varchar(16) NOT NULL COMMENT '单品税率',
`product_detail_id` varchar(32) DEFAULT NULL COMMENT '单品明细ID',
PRIMARY KEY (`id`),
UNIQUE KEY `order_id` (`order_id`,`product_detail_id`) USING BTREE,
KEY `detail_id` (`detail_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='销售单组合商品明细';
DROP TABLE IF EXISTS `tbl_retail_out_sheet_detail_bundle`;
CREATE TABLE `tbl_retail_out_sheet_detail_bundle` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`sheet_id` varchar(32) NOT NULL COMMENT '出库单ID',
`detail_id` varchar(32) NOT NULL COMMENT '明细ID',
`main_product_id` varchar(32) NOT NULL COMMENT '组合商品ID',
`order_num` int(11) NOT NULL DEFAULT '0' COMMENT '组合商品数量',
`product_id` varchar(32) NOT NULL COMMENT '单品ID',
`product_order_num` int(11) NOT NULL COMMENT '单品数量',
`product_ori_price` decimal(16,2) NOT NULL COMMENT '单品原价',
`product_tax_price` decimal(16,2) NOT NULL COMMENT '单品含税价格',
`product_tax_rate` varchar(16) NOT NULL COMMENT '单品税率',
`product_detail_id` varchar(32) DEFAULT NULL COMMENT '单品明细ID',
PRIMARY KEY (`id`),
UNIQUE KEY `sheet_id` (`sheet_id`,`product_detail_id`) USING BTREE,
KEY `detail_id` (`detail_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='零售出库单组合商品明细';

View File

@ -0,0 +1,376 @@
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('2000010', '2000010', 'LogisticsCompany', '物流公司', NULL, 0, '/base-data/logistics/company/index', NULL, '2000', '/logistics/company', 0, 1, 0, 'base-data:logistics-company:query', 1, 1, '', '系统管理员', '1', '2021-07-05 21:59:35', '系统管理员', '1', '2021-07-05 21:59:36');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('2000010001', '2000010001', '', '新增物流公司', NULL, 0, '', NULL, '2000010', '', 0, 2, 0, 'base-data:logistics-company:add', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('2000010002', '2000010002', '', '修改物流公司', NULL, 0, '', NULL, '2000010', '', 0, 2, 0, 'base-data:logistics-company:modify', 1, 1, '', '系统管理员', '1', '2021-05-12 23:23:33', '系统管理员', '1', '2021-07-04 00:34:23');
ALTER TABLE `base_data_product`
ADD COLUMN `weight` decimal(16, 2) NULL COMMENT '重量kg' AFTER `unit`,
ADD COLUMN `volume` decimal(16, 2) NULL COMMENT '体积cm3' AFTER `weight`;
ALTER TABLE `sys_menu`
ADD COLUMN `sys_module_id` varchar(32) NULL COMMENT '系统模块ID' AFTER `parent_id`;
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000001';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000001001';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000001002';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000001003';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000002';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000002001';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000002002';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000002003';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000003';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000003001';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000003002';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000004';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000004001';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000004002';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000004003';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000005';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000005001';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000005002';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000005003';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000006';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000007';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000007001';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000007002';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000007003';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000008';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000008001';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000008002';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000009';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000010';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000010001';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000010002';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000010003';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000010004';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000010005';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000010006';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000010007';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000010008';
UPDATE `sys_menu` SET `sys_module_id` = '2' WHERE `id` = '1000010009';
UPDATE `sys_menu` SET `sys_module_id` = '1' WHERE `id` = '1000011';
UPDATE `sys_menu` SET `sys_module_id` = '1' WHERE `id` = '1000011001';
UPDATE `sys_menu` SET `sys_module_id` = '1' WHERE `id` = '1000011002';
UPDATE `sys_menu` SET `sys_module_id` = '14' WHERE `id` = '1000012';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000002';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000002001';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000002002';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000002003';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000004';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000004001';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000004002';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000004003';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000005';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000005001';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000005002';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000005003';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000006';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000006001';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000006002';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000006003';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000007';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000007001';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000007002';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000007003';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000008';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000008001';
UPDATE `sys_menu` SET `sys_module_id` = '3' WHERE `id` = '2000008002';
UPDATE `sys_menu` SET `sys_module_id` = '15' WHERE `id` = '2000009';
UPDATE `sys_menu` SET `sys_module_id` = '15' WHERE `id` = '2000009001';
UPDATE `sys_menu` SET `sys_module_id` = '15' WHERE `id` = '2000009002';
UPDATE `sys_menu` SET `sys_module_id` = '15' WHERE `id` = '2000009003';
UPDATE `sys_menu` SET `sys_module_id` = '15' WHERE `id` = '2000009004';
UPDATE `sys_menu` SET `sys_module_id` = '15' WHERE `id` = '2000010';
UPDATE `sys_menu` SET `sys_module_id` = '15' WHERE `id` = '2000010001';
UPDATE `sys_menu` SET `sys_module_id` = '15' WHERE `id` = '2000010002';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001001';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001001001';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001001002';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001001003';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001002';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001002001';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001002002';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001002003';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001003';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001003001';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001003002';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001003003';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001003004';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001003005';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001004';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001004001';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001004002';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001004003';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001004004';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001004005';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001005';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001005001';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001005002';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001005003';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001006';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001006001';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001006002';
UPDATE `sys_menu` SET `sys_module_id` = '4' WHERE `id` = '2001006003';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002001';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002002';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002002001';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002002002';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002002003';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002002004';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002002005';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002002006';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002003';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002003001';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002003002';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002003003';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002003004';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002003005';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002003006';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002004';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002004001';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002004002';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002004003';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002004004';
UPDATE `sys_menu` SET `sys_module_id` = '5' WHERE `id` = '2002004005';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003001';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003002';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003002001';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003002002';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003002003';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003002004';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003002005';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003003';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003003001';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003003002';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003003003';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003003004';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003003005';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003004';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003004001';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003004002';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003004003';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003004004';
UPDATE `sys_menu` SET `sys_module_id` = '6' WHERE `id` = '2003004005';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004001';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004002';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004002001';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004002002';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004002003';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004002004';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004002005';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004003';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004003001';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004003002';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004003003';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004003004';
UPDATE `sys_menu` SET `sys_module_id` = '7' WHERE `id` = '2004003005';
UPDATE `sys_menu` SET `sys_module_id` = '8' WHERE `id` = '3000';
UPDATE `sys_menu` SET `sys_module_id` = '8' WHERE `id` = '3000001';
UPDATE `sys_menu` SET `sys_module_id` = '8' WHERE `id` = '3000001001';
UPDATE `sys_menu` SET `sys_module_id` = '8' WHERE `id` = '3000003';
UPDATE `sys_menu` SET `sys_module_id` = '8' WHERE `id` = '3000003001';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004001';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004002';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004002001';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004002002';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004002003';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004002004';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004003';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004003001';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004003002';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004003003';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004003004';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004003005';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004003006';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004003007';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004004';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004004001';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004004002';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004004003';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004004004';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004004005';
UPDATE `sys_menu` SET `sys_module_id` = '9' WHERE `id` = '3000004004006';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005001';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005001001';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005001002';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005001003';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005001004';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005001005';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005002';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005002001';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005002002';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005003';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005003001';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005003002';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005003003';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005003004';
UPDATE `sys_menu` SET `sys_module_id` = '10' WHERE `id` = '3000005003005';
UPDATE `sys_menu` SET `sys_module_id` = '8' WHERE `id` = '3000006';
UPDATE `sys_menu` SET `sys_module_id` = '8' WHERE `id` = '3000006001';
UPDATE `sys_menu` SET `sys_module_id` = '8' WHERE `id` = '3000006002';
UPDATE `sys_menu` SET `sys_module_id` = '8' WHERE `id` = '3000006003';
UPDATE `sys_menu` SET `sys_module_id` = '8' WHERE `id` = '3000006004';
UPDATE `sys_menu` SET `sys_module_id` = '8' WHERE `id` = '3000006005';
UPDATE `sys_menu` SET `sys_module_id` = '8' WHERE `id` = '3000006006';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000001';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000001001';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000001002';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000001003';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000002';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000002001';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000002002';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000002003';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000003';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000003001';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000003002';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000003003';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000003004';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000003005';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000004';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000004001';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000004002';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000004003';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000004004';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000004005';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000005';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000005001';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000005002';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000005003';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000005004';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000005005';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000006';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000006001';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000006002';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000006003';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000006004';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000006005';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000007';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000008';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000009';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000009001';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000009002';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000009003';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000009004';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000009005';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000010';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000010001';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000010002';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000010003';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000010004';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000010005';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000011';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000011001';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000011002';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000011003';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000011004';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000011005';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000012';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000012001';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000012002';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000012003';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000012004';
UPDATE `sys_menu` SET `sys_module_id` = '11' WHERE `id` = '4000012005';
UPDATE `sys_menu` SET `sys_module_id` = '12' WHERE `id` = '9000';
UPDATE `sys_menu` SET `sys_module_id` = '12' WHERE `id` = '9000001';
UPDATE `sys_menu` SET `sys_module_id` = '12' WHERE `id` = '9000002';
UPDATE `sys_menu` SET `sys_module_id` = '12' WHERE `id` = '9000003';
UPDATE `sys_menu` SET `sys_module_id` = '12' WHERE `id` = '9000004';
UPDATE `sys_menu` SET `sys_module_id` = '12' WHERE `id` = '9000005';
UPDATE `sys_menu` SET `sys_module_id` = '12' WHERE `id` = '9000006';
UPDATE `sys_menu` SET `sys_module_id` = '12' WHERE `id` = '9000007';
UPDATE `sys_menu` SET `sys_module_id` = '13' WHERE `id` = '9001';
UPDATE `sys_menu` SET `sys_module_id` = '13' WHERE `id` = '9001001';
UPDATE `sys_menu` SET `sys_module_id` = '13' WHERE `id` = '9001002';
UPDATE `sys_menu` SET `title` = '库存数量调整' WHERE `id` = '3000005003';
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `sys_module_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('1000011003', '1000011003', '', '授权模块', NULL, 0, '', NULL, '1000011', '1', '', 0, 2, 0, 'system:tenant:module', 0, 1, '', '系统管理员', '1', '2022-08-18 14:31:12', '系统管理员', '1', '2022-08-18 14:31:12');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `sys_module_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('1001', '1001', 'Platform', '平台管理', 'a-menu', NULL, '', NULL, '0001', '1', '/platform', 0, 0, 0, '', 1, 1, '', '系统管理员', '1', '2021-07-04 00:22:05', '系统管理员', '1', '2021-07-04 00:34:23');
UPDATE `sys_menu` SET `parent_id` = '1001' WHERE `id` = '1000011';
UPDATE `sys_menu` SET `parent_id` = '1001' WHERE `id` = '1000012';
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `sys_module_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('5000', '5000', 'Logistics', '物流管理', 'a-menu', NULL, '', NULL, '0001', '15', '/logistics', 0, 0, 0, '', 1, 1, '', '系统管理员', '1', '2021-07-04 00:22:05', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `sys_module_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('5000001', '5000001', 'LogisticsSheet', '物流单管理', NULL, 0, '/sc/logistics/sheet/index', NULL, '5000', '15', '/sheet', 0, 1, 0, 'logistics:sheet:query', 1, 1, '', '系统管理员', '1', '2021-05-08 18:37:01', '系统管理员', '1', '2021-12-09 17:54:42');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `sys_module_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('5000001001', '5000001001', '', '新增物流单', NULL, 0, '', NULL, '5000001', '15', '', 0, 2, 0, 'logistics:sheet:add', 1, 1, '', '系统管理员', '1', '2021-05-12 22:50:27', '系统管理员', '1', '2021-12-09 17:54:42');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `sys_module_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('5000001002', '5000001002', '', '修改物流单', NULL, 0, '', NULL, '5000001', '15', '', 0, 2, 0, 'logistics:sheet:modify', 1, 1, '', '系统管理员', '1', '2021-05-12 23:23:33', '系统管理员', '1', '2021-12-09 17:54:42');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `sys_module_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('5000001003', '5000001003', '', '删除物流单', NULL, 0, '', NULL, '5000001', '15', '', 0, 2, 0, 'logistics:sheet:delete', 1, 1, '', '系统管理员', '1', '2021-05-12 23:24:36', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `sys_module_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('5000001004', '5000001004', '', '物流单发货', NULL, 0, '', NULL, '5000001', '15', '', 0, 2, 0, 'logistics:sheet:delivery', 1, 1, '', '系统管理员', '1', '2021-05-12 23:24:36', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `sys_module_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('5000001005', '5000001005', '', '导入物流单', NULL, 0, '', NULL, '5000001', '15', '', 0, 2, 0, 'logistics:sheet:import', 1, 1, '', '系统管理员', '1', '2021-05-12 23:24:36', '系统管理员', '1', '2021-07-04 00:34:23');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `sys_module_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('5000001006', '5000001006', '', '导出物流单', NULL, 0, '', NULL, '5000001', '15', '', 0, 2, 0, 'logistics:sheet:export', 1, 1, '', '系统管理员', '1', '2021-05-12 23:24:36', '系统管理员', '1', '2021-07-04 00:34:23');
ALTER TABLE `tbl_sale_config`
ADD COLUMN `out_stock_require_logistics` tinyint(1) NOT NULL DEFAULT 0 COMMENT '销售出库单是否需要物流单' AFTER `sale_return_multiple_relate_out_stock`;
ALTER TABLE `tbl_retail_config`
ADD COLUMN `retail_out_sheet_require_logistics` tinyint(1) NOT NULL DEFAULT 0 COMMENT '零售出库单是否需要发货' AFTER `retail_return_require_member`;
DROP TABLE IF EXISTS `base_data_logistics_company`;
CREATE TABLE `base_data_logistics_company` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`code` varchar(20) NOT NULL COMMENT '编号',
`name` varchar(20) NOT NULL COMMENT '名称',
`contact` varchar(100) DEFAULT NULL COMMENT '联系人',
`telephone` varchar(20) DEFAULT NULL COMMENT '联系电话',
`city_id` varchar(32) DEFAULT NULL COMMENT '地区ID',
`address` varchar(200) DEFAULT NULL COMMENT '地址',
`available` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态',
`description` varchar(200) NOT NULL DEFAULT '' COMMENT '备注',
`create_by` varchar(32) NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) NOT NULL COMMENT '修改人',
`update_by_id` varchar(32) NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `code` (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物流公司';
DROP TABLE IF EXISTS `tbl_logistics_sheet`;
CREATE TABLE `tbl_logistics_sheet` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`code` varchar(32) NOT NULL COMMENT '业务单据号',
`logistics_no` varchar(100) DEFAULT NULL COMMENT '物流单号',
`logistics_company_id` varchar(32) NOT NULL COMMENT '物流公司ID',
`sender_name` varchar(100) NOT NULL COMMENT '寄件人姓名',
`sender_telephone` varchar(20) NOT NULL COMMENT '寄件人联系电话',
`sender_province_id` varchar(32) NOT NULL COMMENT '寄件人省',
`sender_city_id` varchar(32) NOT NULL COMMENT '寄件人市',
`sender_district_id` varchar(32) NOT NULL COMMENT '寄件人区',
`sender_address` varchar(200) NOT NULL COMMENT '寄件人地址',
`receiver_name` varchar(100) NOT NULL COMMENT '收件人姓名',
`receiver_telephone` varchar(20) NOT NULL COMMENT '收件人联系电话',
`receiver_province_id` varchar(32) NOT NULL COMMENT '收件人省',
`receiver_city_id` varchar(32) NOT NULL COMMENT '收件人市',
`receiver_district_id` varchar(32) NOT NULL COMMENT '收件人区',
`receiver_address` varchar(200) NOT NULL COMMENT '收件人地址',
`total_weight` decimal(16,2) DEFAULT NULL COMMENT '总重量kg',
`total_volume` decimal(16,2) DEFAULT NULL COMMENT '总体积cm3',
`total_amount` decimal(16,2) DEFAULT NULL COMMENT '物流费',
`status` tinyint(3) NOT NULL COMMENT '状态',
`description` varchar(200) NOT NULL DEFAULT '' COMMENT '备注',
`delivery_by` varchar(32) DEFAULT NULL COMMENT '发货人',
`delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
`create_by` varchar(32) NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) NOT NULL COMMENT '修改人',
`update_by_id` varchar(32) NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `code` (`code`),
KEY `logistics_no` (`logistics_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物流单';
DROP TABLE IF EXISTS `tbl_logistics_sheet_detail`;
CREATE TABLE `tbl_logistics_sheet_detail` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`sheet_id` varchar(32) NOT NULL COMMENT '物流单ID',
`biz_id` varchar(32) NOT NULL COMMENT '业务单据ID',
`biz_type` tinyint(3) NOT NULL COMMENT '业务类型',
PRIMARY KEY (`id`),
UNIQUE KEY ```biz_id``` (`biz_id`,`biz_type`) USING BTREE,
KEY `sheet_id` (`sheet_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物流单明细';

View File

@ -0,0 +1,34 @@
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `sys_module_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('9000008', '9000008', 'CustomPage', '自定义页面', NULL, 0, '/development/custom/page/index', NULL, '9000', '12', '/custom/page', 0, 1, 0, '', 1, 1, '', '系统管理员', '1', '2021-05-08 18:37:01', '系统管理员', '1', '2021-12-09 17:54:42');
INSERT INTO `sys_menu` (`id`, `code`, `name`, `title`, `icon`, `component_type`, `component`, `request_param`, `parent_id`, `sys_module_id`, `path`, `no_cache`, `display`, `hidden`, `permission`, `is_special`, `available`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES ('1001001', '1001001', 'OnelineCode', '在线开发', 'a-menu', 0, '/iframes/index', NULL, '1001', '1', '/online-code?src=${magic-api.base-url}${magic-api.web}/index.html', 0, 1, 0, 'system:online-code:config', 1, 1, '', '系统管理员', '1', '2021-05-08 18:37:01', '系统管理员', '1', '2021-12-09 17:54:42');
DROP TABLE IF EXISTS `gen_custom_page_category`;
CREATE TABLE `gen_custom_page_category` (
`id` varchar(32) NOT NULL COMMENT 'ID',
`parent_id` varchar(32) DEFAULT NULL COMMENT '父级ID',
`code` varchar(20) NOT NULL COMMENT '编号',
`name` varchar(20) NOT NULL COMMENT '名称',
`create_by` varchar(32) NOT NULL COMMENT '创建人',
`create_by_id` varchar(32) NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) NOT NULL COMMENT '修改人',
`update_by_id` varchar(32) NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `code` (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自定义页面分类';
DROP TABLE IF EXISTS `gen_custom_page`;
CREATE TABLE `gen_custom_page` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(20) NOT NULL COMMENT '名称',
`category_id` varchar(32) DEFAULT NULL COMMENT '分类ID',
`page_code` longtext NOT NULL COMMENT '页面代码',
`script_code` longtext COMMENT '脚本代码',
`description` varchar(200) DEFAULT NULL COMMENT '备注',
`create_by` varchar(32) NOT NULL COMMENT '创建人ID',
`create_by_id` varchar(32) NOT NULL COMMENT '创建人ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_by` varchar(32) NOT NULL COMMENT '修改人ID',
`update_by_id` varchar(32) NOT NULL COMMENT '修改人ID',
`update_time` datetime NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE,
KEY `category_id` (`category_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='自定义页面';

View File

@ -0,0 +1,7 @@
ALTER TABLE `sys_parameter`
MODIFY COLUMN `pm_value` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '' AFTER `pm_key`;
INSERT INTO `sys_parameter` (`id`, `pm_key`, `pm_value`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES (9, 'upload.type', 'LOCAL', '上传类型分为LOCAL、OSS、COS、OBS。LOCAL服务器本地存储。OSS阿里云对象存储。COS腾讯云对象存储。OBS华为云对象存储', '系统管理员', '1', '2023-06-27 10:38:05', '系统管理员', '1', '2023-06-27 10:38:10');
INSERT INTO `sys_parameter` (`id`, `pm_key`, `pm_value`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES (11, 'upload.obs.config', '{\"customUrl\":\"\",\"endpoint\":\"yourEndpoint\",\"ak\":\"yourAccessKeyId\",\"sk\":\"yourAccessKeySecret\",\"bucketName\":\"yourBucketName\"}', '华为云对象存储配置信息upload.type=OBS时生效。customUrl为自定义域名需带协议为空代表不使用自定义域名示例值https://www.lframework.com。其他参数均在华为云控台获取。', '系统管理员', '1', '2023-06-27 10:38:05', '系统管理员', '1', '2023-06-27 10:38:10');
DELETE FROM `sys_parameter` WHERE `id` = 7 AND `pm_key` = 'sms.ali';
INSERT INTO `sys_parameter` (`id`, `pm_key`, `pm_value`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES (10, 'upload.oss.config', '{\"customUrl\":\"\",\"endpoint\":\"yourEndpoint\",\"internalEndPoint\":\"\",\"accessKeyId\":\"yourAccessKeyId\",\"accessKeySecret\":\"yourAccessKeySecret\",\"bucketName\":\"yourBucketName\"}', '阿里云对象存储配置信息upload.type=OSS时生效注意当服务器与OSS同一地域时建议填写internalEndPoint此值表示内网endpoint在上传时会优先使用内网endpoint。customUrl为自定义域名需带协议为空代表不使用自定义域名示例值https://www.lframework.com。其他参数均在阿里云控台获取。', '系统管理员', '1', '2023-06-27 10:38:05', '系统管理员', '1', '2023-06-27 10:38:10');
INSERT INTO `sys_parameter` (`id`, `pm_key`, `pm_value`, `description`, `create_by`, `create_by_id`, `create_time`, `update_by`, `update_by_id`, `update_time`) VALUES (12, 'upload.cos.config', '{\"customUrl\":\"yourCustomUrl\",\"region\":\"yourRegion\",\"secretId\":\"yourSecretId\",\"secretKey\":\"yourSecretKey\",\"bucketName\":\"yourBucketName\"}', '腾讯云对象存储配置信息upload.type=COS时生效。customUrl为下载文件时的域名如果使用自定义域名示例值https://www.lframework.com如果不使用自定义域名那么就填写COS的访问域名。其他参数均在腾讯云控台获取。', '系统管理员', '1', '2023-06-27 10:38:05', '系统管理员', '1', '2023-06-27 14:48:02');

View File

@ -0,0 +1,49 @@
ALTER TABLE `sw_file_box` ADD COLUMN `content_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'ContentType' AFTER `url`;
ALTER TABLE `sw_file_box` MODIFY COLUMN `url` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'Url' AFTER `name`;
ALTER TABLE `sw_file_box` ADD COLUMN `file_type` tinyint(3) NOT NULL COMMENT '文件类型' AFTER `content_type`;
ALTER TABLE `sw_file_box` ADD COLUMN `file_size` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件大小' AFTER `file_type`;
ALTER TABLE `sw_file_box` ADD COLUMN `file_path` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文件路径' AFTER `file_size`;
ALTER TABLE `sw_file_box` ADD COLUMN `file_suffix` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件后缀' AFTER `file_path`;
ALTER TABLE `sw_file_box` DROP COLUMN `available`;
DELETE FROM `sys_menu` WHERE `id` = '0001';
DELETE FROM `sys_menu` WHERE `id` = '2001003';
DELETE FROM `sys_menu` WHERE `id` = '2001003001';
DELETE FROM `sys_menu` WHERE `id` = '2001003002';
DELETE FROM `sys_menu` WHERE `id` = '2001003003';
DELETE FROM `sys_menu` WHERE `id` = '2001003004';
DELETE FROM `sys_menu` WHERE `id` = '2001003005';
DELETE FROM `sys_menu` WHERE `id` = '2001006';
DELETE FROM `sys_menu` WHERE `id` = '2001006001';
DELETE FROM `sys_menu` WHERE `id` = '2001006002';
DELETE FROM `sys_menu` WHERE `id` = '2001006003';
DELETE FROM `sys_menu` WHERE `id` = '9000006';
DELETE FROM `sys_menu` WHERE `id` = '9000007';
DELETE FROM `sys_menu` WHERE `id` = '9001002';
UPDATE `sys_menu` SET `code` = '1000', `name` = 'System', `title` = '系统管理', `icon` = 'ant-design:setting-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '2', `path` = '/system', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-04 00:22:05', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2023-10-27 17:01:09' WHERE `id` = '1000';
UPDATE `sys_menu` SET `code` = '1000001', `name` = 'Menu', `title` = '菜单管理', `icon` = NULL, `component_type` = 0, `component` = '/system/menu/index', `request_param` = NULL, `parent_id` = '1000', `sys_module_id` = '2', `path` = '/menu', `no_cache` = 0, `display` = 1, `hidden` = 0, `permission` = 'system:menu:query', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-05-08 18:37:01', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2023-10-27 17:01:09' WHERE `id` = '1000001';
UPDATE `sys_menu` SET `code` = '1000001001', `name` = '', `title` = '新增菜单', `icon` = NULL, `component_type` = 0, `component` = '', `request_param` = NULL, `parent_id` = '1000001', `sys_module_id` = '2', `path` = '', `no_cache` = 0, `display` = 2, `hidden` = 0, `permission` = 'system:menu:add', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-05-12 22:50:27', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2023-10-27 17:01:09' WHERE `id` = '1000001001';
UPDATE `sys_menu` SET `code` = '1000001002', `name` = '', `title` = '修改菜单', `icon` = NULL, `component_type` = 0, `component` = '', `request_param` = NULL, `parent_id` = '1000001', `sys_module_id` = '2', `path` = '', `no_cache` = 0, `display` = 2, `hidden` = 0, `permission` = 'system:menu:modify', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-05-12 23:23:33', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2023-10-27 17:00:27' WHERE `id` = '1000001002';
UPDATE `sys_menu` SET `code` = '1000001003', `name` = '', `title` = '删除菜单', `icon` = NULL, `component_type` = 0, `component` = '', `request_param` = NULL, `parent_id` = '1000001', `sys_module_id` = '2', `path` = '', `no_cache` = 0, `display` = 2, `hidden` = 0, `permission` = 'system:menu:delete', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-05-12 23:24:36', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2023-10-27 17:00:27' WHERE `id` = '1000001003';
UPDATE `sys_menu` SET `code` = '1000002', `name` = 'Dept', `title` = '部门管理', `icon` = NULL, `component_type` = 0, `component` = '/system/dept/index', `request_param` = NULL, `parent_id` = '1000', `sys_module_id` = '2', `path` = '/dept', `no_cache` = 0, `display` = 1, `hidden` = 0, `permission` = 'system:dept:query', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-05 01:09:27', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2023-10-27 17:00:27' WHERE `id` = '1000002';
UPDATE `sys_menu` SET `code` = '1000002001', `name` = '', `title` = '新增部门', `icon` = NULL, `component_type` = 0, `component` = '', `request_param` = NULL, `parent_id` = '1000002', `sys_module_id` = '2', `path` = '', `no_cache` = 0, `display` = 2, `hidden` = 0, `permission` = 'system:dept:add', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-06-27 01:33:31', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2023-10-27 17:00:27' WHERE `id` = '1000002001';
UPDATE `sys_menu` SET `code` = '1000002002', `name` = '', `title` = '修改部门', `icon` = NULL, `component_type` = 0, `component` = '', `request_param` = NULL, `parent_id` = '1000002', `sys_module_id` = '2', `path` = '', `no_cache` = 0, `display` = 2, `hidden` = 0, `permission` = 'system:dept:modify', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-06-27 01:33:47', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2023-10-27 17:00:27' WHERE `id` = '1000002002';
UPDATE `sys_menu` SET `code` = '1000002003', `name` = '', `title` = '部门权限', `icon` = NULL, `component_type` = 0, `component` = '', `request_param` = NULL, `parent_id` = '1000002', `sys_module_id` = '2', `path` = '', `no_cache` = 0, `display` = 2, `hidden` = 0, `permission` = 'system:dept:permission', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-06-27 01:33:47', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2023-10-27 17:00:27' WHERE `id` = '1000002003';
UPDATE `sys_menu` SET `code` = '1000012', `name` = 'OpenDomain', `title` = '开放域', `icon` = NULL, `component_type` = 0, `component` = '/system/open-domain/index', `request_param` = NULL, `parent_id` = '1001', `sys_module_id` = '14', `path` = '/open-domain', `no_cache` = 0, `display` = 1, `hidden` = 0, `permission` = 'system:open-domain:config', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-05-08 18:37:01', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-12-09 17:54:42' WHERE `id` = '1000012';
UPDATE `sys_menu` SET `code` = '1001', `name` = 'Platform', `title` = '平台管理', `icon` = 'ant-design:global-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '1', `path` = '/platform', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-04 00:22:05', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-04 00:34:23' WHERE `id` = '1001';
UPDATE `sys_menu` SET `code` = '1001001', `name` = 'OnelineCode', `title` = '在线开发', `icon` = NULL, `component_type` = 0, `component` = '/iframes/index', `request_param` = NULL, `parent_id` = '1001', `sys_module_id` = '1', `path` = '/online-code?src=${magic-api.base-url}${magic-api.web}/index.html', `no_cache` = 0, `display` = 1, `hidden` = 0, `permission` = 'system:online-code:config', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-05-08 18:37:01', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-12-09 17:54:42' WHERE `id` = '1001001';
UPDATE `sys_menu` SET `code` = '2000', `name` = 'BaseData', `title` = '基础信息管理', `icon` = 'ant-design:container-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '3', `path` = '/base-data', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-05 01:21:35', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-05 01:21:39' WHERE `id` = '2000';
UPDATE `sys_menu` SET `code` = '2001', `name` = 'Product', `title` = '商品中心', `icon` = 'ant-design:appstore-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '4', `path` = '/product', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-05 01:21:35', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-05 01:21:39' WHERE `id` = '2001';
UPDATE `sys_menu` SET `code` = '2002', `name` = 'Purchase', `title` = '采购管理', `icon` = 'ant-design:money-collect-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '5', `path` = '/purchase', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-05 01:21:35', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-05 01:21:39' WHERE `id` = '2002';
UPDATE `sys_menu` SET `code` = '2003', `name` = 'Sale', `title` = '销售管理', `icon` = 'ant-design:rocket-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '6', `path` = '/sale', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-05 01:21:35', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-05 01:21:39' WHERE `id` = '2003';
UPDATE `sys_menu` SET `code` = '2004', `name` = 'Retail', `title` = '零售管理', `icon` = 'ant-design:flag-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '7', `path` = '/retail', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-05 01:21:35', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-05 01:21:39' WHERE `id` = '2004';
UPDATE `sys_menu` SET `code` = '3000', `name` = 'StockManage', `title` = '库存管理', `icon` = 'ant-design:hdd-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '8', `path` = '/stock', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-05 01:21:35', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-05 01:21:39' WHERE `id` = '3000';
UPDATE `sys_menu` SET `code` = '3000004', `name` = 'TakeStock', `title` = '库存盘点', `icon` = 'ant-design:monitor-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '9', `path` = '/take', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-05 01:21:35', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-05 01:21:39' WHERE `id` = '3000004';
UPDATE `sys_menu` SET `code` = '3000005', `name` = 'StockAdjust', `title` = '库存调整', `icon` = 'ant-design:thunderbolt-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '10', `path` = '/take-adjust', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-05 01:21:35', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-05 01:21:39' WHERE `id` = '3000005';
UPDATE `sys_menu` SET `code` = '4000', `name` = 'SettleManage', `title` = '结算管理', `icon` = 'ant-design:credit-card-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '11', `path` = '/settle', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-05 01:21:35', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-05 01:21:39' WHERE `id` = '4000';
UPDATE `sys_menu` SET `code` = '4000007', `name` = 'SupplierSettleManage', `title` = '供应商结算', `icon` = NULL, `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = '4000', `sys_module_id` = '11', `path` = '/supplier', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-05 01:21:35', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-05 01:21:39' WHERE `id` = '4000007';
UPDATE `sys_menu` SET `code` = '4000008', `name` = 'CustomerSettleManage', `title` = '客户结算', `icon` = NULL, `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = '4000', `sys_module_id` = '11', `path` = '/customer', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-05 01:21:35', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-05 01:21:39' WHERE `id` = '4000008';
UPDATE `sys_menu` SET `code` = '5000', `name` = 'Logistics', `title` = '物流管理', `icon` = 'ant-design:gift-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '15', `path` = '/logistics', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-04 00:22:05', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-04 00:34:23' WHERE `id` = '5000';
UPDATE `sys_menu` SET `code` = '9000', `name` = 'Development', `title` = '开发管理', `icon` = 'ant-design:tool-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '12', `path` = '/development', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-04 00:22:05', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-04 00:34:23' WHERE `id` = '9000';
UPDATE `sys_menu` SET `code` = '9001', `name` = 'SmartWork', `title` = '便捷办公', `icon` = 'ant-design:read-outlined', `component_type` = NULL, `component` = '', `request_param` = NULL, `parent_id` = NULL, `sys_module_id` = '13', `path` = '/smart-work', `no_cache` = 0, `display` = 0, `hidden` = 0, `permission` = '', `is_special` = 1, `available` = 1, `description` = '', `create_by` = '系统管理员', `create_by_id` = '1', `create_time` = '2021-07-04 00:22:05', `update_by` = '系统管理员', `update_by_id` = '1', `update_time` = '2021-07-04 00:34:23' WHERE `id` = '9001';
ALTER TABLE `op_logs`
MODIFY COLUMN `log_type` int(11) NOT NULL COMMENT '类别' AFTER `name`;

View File

@ -0,0 +1,21 @@
var MAGIC_EDITOR_CONFIG = {
title: '在线开发平台',
header: {
skin: false, // 屏蔽皮肤按钮
document: false, // 屏蔽文档按钮
repo: false, // 屏蔽gitee和github
qqGroup: false // 屏蔽加入QQ群
},
getMagicTokenValue: function(){
return this.getCookie('X-Auth-Token');
},
getCookie: function(name) {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].trim().split('=');
if (cookie[0] === name) {
return decodeURIComponent(cookie[1]);
}
}
}
}

View File

@ -0,0 +1,12 @@
#!/bin/sh
export BUILD_ID=dontkillme
if [ -z $JAVA_HOME ] ;
then
echo "JAVA_HOME is not exist, please check"
exit 1
fi
export APP_HOME_BIN_PATH=$(cd `dirname $0`; pwd)
export APP_HOME=${APP_HOME_BIN_PATH%/bin}
$JAVA_HOME/bin/java -jar -server -Xmx256m -XX:MaxPermSize=32m -XX:MaxNewSize=32m $APP_HOME/@build.finalName@.jar >/dev/null 2>&1 &

View File

@ -0,0 +1,10 @@
#!/bin/sh
export APP_HOME_BIN_PATH=$(cd `dirname $0`; pwd)
export APP_HOME=${APP_HOME_BIN_PATH%/bin}
export C_PID=`ps -ef | grep java | grep $APP_HOME | grep -v grep | awk '{print $2}'`
if [ ! -z "$C_PID" ]; then
kill -15 $C_PID;
fi

21
xingyun-basedata/pom.xml Normal file
View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>xingyun</artifactId>
<groupId>com.lframework</groupId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>xingyun-basedata</artifactId>
<name>【${project.artifactId}】基础数据服务层</name>
<dependencies>
<dependency>
<groupId>com.lframework</groupId>
<artifactId>xingyun-core</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,120 @@
package com.lframework.xingyun.basedata.bo.address;
import com.lframework.starter.common.constants.StringPool;
import com.lframework.starter.web.annotations.convert.EnumConvert;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.starter.web.common.utils.ApplicationUtil;
import com.lframework.xingyun.basedata.entity.Address;
import com.lframework.xingyun.core.dto.dic.city.DicCityDto;
import com.lframework.xingyun.core.service.DicCityService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class AddressSelectorBo extends BaseBo<Address> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 地址类型
*/
@ApiModelProperty("地址类型")
@EnumConvert
private Integer addressType;
/**
* 姓名
*/
@ApiModelProperty("姓名")
private String name;
/**
* 手机号
*/
@ApiModelProperty("手机号")
private String telephone;
/**
* 省ID
*/
@ApiModelProperty("省ID")
private String provinceId;
/**
* 省名称
*/
@ApiModelProperty("省名称")
private String provinceName;
/**
* 市ID
*/
@ApiModelProperty("市ID")
private String cityId;
/**
* 市名称
*/
@ApiModelProperty("市名称")
private String cityName;
/**
* 区ID
*/
@ApiModelProperty("区ID")
private String districtId;
/**
* 区名称
*/
@ApiModelProperty("区名称")
private String districtName;
/**
* 地区全称
*/
@ApiModelProperty("地区全称")
private String areaFullName;
/**
* 详细地址
*/
@ApiModelProperty("详细地址")
private String address;
/**
* 是否默认地址
*/
@ApiModelProperty("是否默认地址")
private Boolean isDefault;
public AddressSelectorBo() {
}
public AddressSelectorBo(Address dto) {
super(dto);
}
@Override
protected void afterInit(Address dto) {
DicCityService dicCityService = ApplicationUtil.getBean(DicCityService.class);
DicCityDto province = dicCityService.findById(dto.getProvinceId());
this.provinceName = province.getName();
DicCityDto city = dicCityService.findById(dto.getCityId());
this.cityName = city.getName();
DicCityDto district = dicCityService.findById(dto.getDistrictId());
this.districtName = district.getName();
this.areaFullName =
this.provinceName + StringPool.CITY_SPLIT + this.cityName + StringPool.CITY_SPLIT
+ this.districtName;
}
}

View File

@ -0,0 +1,161 @@
package com.lframework.xingyun.basedata.bo.address;
import com.lframework.starter.web.annotations.convert.EnumConvert;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.starter.web.common.utils.ApplicationUtil;
import com.lframework.xingyun.basedata.entity.Address;
import com.lframework.xingyun.basedata.entity.Customer;
import com.lframework.xingyun.basedata.entity.Member;
import com.lframework.xingyun.basedata.entity.Shop;
import com.lframework.xingyun.basedata.entity.StoreCenter;
import com.lframework.xingyun.basedata.entity.Supplier;
import com.lframework.xingyun.basedata.enums.AddressEntityType;
import com.lframework.xingyun.basedata.service.customer.CustomerService;
import com.lframework.xingyun.basedata.service.member.MemberService;
import com.lframework.xingyun.basedata.service.shop.ShopService;
import com.lframework.xingyun.basedata.service.storecenter.StoreCenterService;
import com.lframework.xingyun.basedata.service.supplier.SupplierService;
import com.lframework.xingyun.core.dto.dic.city.DicCityDto;
import com.lframework.xingyun.core.service.DicCityService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class GetAddressBo extends BaseBo<Address> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 实体ID
*/
@ApiModelProperty("实体ID")
private String entityId;
/**
* 实体名称
*/
@ApiModelProperty("实体名称")
private String entityName;
/**
* 实体类型
*/
@ApiModelProperty("实体类型")
@EnumConvert
private Integer entityType;
/**
* 地址类型
*/
@ApiModelProperty("地址类型")
@EnumConvert
private Integer addressType;
/**
* 姓名
*/
@ApiModelProperty("姓名")
private String name;
/**
* 手机号
*/
@ApiModelProperty("手机号")
private String telephone;
/**
* 省ID
*/
@ApiModelProperty("省ID")
private String provinceId;
/**
* 省名称
*/
@ApiModelProperty("省名称")
private String provinceName;
/**
* 市ID
*/
@ApiModelProperty("市ID")
private String cityId;
/**
* 市名称
*/
@ApiModelProperty("市名称")
private String cityName;
/**
* 区ID
*/
@ApiModelProperty("区ID")
private String districtId;
/**
* 区名称
*/
@ApiModelProperty("区名称")
private String districtName;
/**
* 详细地址
*/
@ApiModelProperty("详细地址")
private String address;
/**
* 是否默认地址
*/
@ApiModelProperty("是否默认地址")
private Boolean isDefault;
public GetAddressBo() {
}
public GetAddressBo(Address dto) {
super(dto);
}
@Override
protected void afterInit(Address dto) {
DicCityService dicCityService = ApplicationUtil.getBean(DicCityService.class);
DicCityDto province = dicCityService.findById(dto.getProvinceId());
this.provinceName = province.getName();
DicCityDto city = dicCityService.findById(dto.getCityId());
this.cityName = city.getName();
DicCityDto district = dicCityService.findById(dto.getDistrictId());
this.districtName = district.getName();
if (dto.getEntityType() == AddressEntityType.SC) {
StoreCenterService storeCenterService = ApplicationUtil.getBean(StoreCenterService.class);
StoreCenter sc = storeCenterService.findById(dto.getEntityId());
this.entityName = sc.getName();
} else if (dto.getEntityType() == AddressEntityType.CUSTOMER) {
CustomerService customerService = ApplicationUtil.getBean(CustomerService.class);
Customer customer = customerService.findById(dto.getEntityId());
this.entityName = customer.getName();
} else if (dto.getEntityType() == AddressEntityType.SUPPLIER) {
SupplierService supplierService = ApplicationUtil.getBean(SupplierService.class);
Supplier supplier = supplierService.findById(dto.getEntityId());
this.entityName = supplier.getName();
} else if (dto.getEntityType() == AddressEntityType.MEMBER) {
MemberService memberService = ApplicationUtil.getBean(MemberService.class);
Member member = memberService.findById(dto.getEntityId());
this.entityName = member.getName();
} else if (dto.getEntityType() == AddressEntityType.SHOP) {
ShopService shopService = ApplicationUtil.getBean(ShopService.class);
Shop shop = shopService.findById(dto.getEntityId());
this.entityName = shop.getName();
}
}
}

View File

@ -0,0 +1,174 @@
package com.lframework.xingyun.basedata.bo.address;
import com.lframework.starter.web.annotations.convert.EnumConvert;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.starter.web.common.utils.ApplicationUtil;
import com.lframework.xingyun.basedata.entity.Address;
import com.lframework.xingyun.basedata.entity.Customer;
import com.lframework.xingyun.basedata.entity.Member;
import com.lframework.xingyun.basedata.entity.Shop;
import com.lframework.xingyun.basedata.entity.StoreCenter;
import com.lframework.xingyun.basedata.entity.Supplier;
import com.lframework.xingyun.basedata.enums.AddressEntityType;
import com.lframework.xingyun.basedata.service.customer.CustomerService;
import com.lframework.xingyun.basedata.service.member.MemberService;
import com.lframework.xingyun.basedata.service.shop.ShopService;
import com.lframework.xingyun.basedata.service.storecenter.StoreCenterService;
import com.lframework.xingyun.basedata.service.supplier.SupplierService;
import com.lframework.xingyun.core.dto.dic.city.DicCityDto;
import com.lframework.xingyun.core.service.DicCityService;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class QueryAddressBo extends BaseBo<Address> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 实体ID
*/
@ApiModelProperty("实体ID")
private String entityId;
/**
* 实体名称
*/
@ApiModelProperty("实体名称")
private String entityName;
/**
* 实体类型
*/
@ApiModelProperty("实体类型")
@EnumConvert
private Integer entityType;
/**
* 地址类型
*/
@ApiModelProperty("地址类型")
@EnumConvert
private Integer addressType;
/**
* 姓名
*/
@ApiModelProperty("姓名")
private String name;
/**
* 手机号
*/
@ApiModelProperty("手机号")
private String telephone;
/**
* 省ID
*/
@ApiModelProperty("省ID")
private String provinceId;
/**
* 省名称
*/
@ApiModelProperty("省名称")
private String provinceName;
/**
* 市ID
*/
@ApiModelProperty("市ID")
private String cityId;
/**
* 市名称
*/
@ApiModelProperty("市名称")
private String cityName;
/**
* 区ID
*/
@ApiModelProperty("区ID")
private String districtId;
/**
* 区名称
*/
@ApiModelProperty("区名称")
private String districtName;
/**
* 详细地址
*/
@ApiModelProperty("详细地址")
private String address;
/**
* 是否默认地址
*/
@ApiModelProperty("是否默认地址")
private Boolean isDefault;
/**
* 创建人ID
*/
@ApiModelProperty("创建人ID")
private String createBy;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
public QueryAddressBo() {
}
public QueryAddressBo(Address dto) {
super(dto);
}
@Override
protected void afterInit(Address dto) {
DicCityService dicCityService = ApplicationUtil.getBean(DicCityService.class);
DicCityDto province = dicCityService.findById(dto.getProvinceId());
this.provinceName = province.getName();
DicCityDto city = dicCityService.findById(dto.getCityId());
this.cityName = city.getName();
DicCityDto district = dicCityService.findById(dto.getDistrictId());
this.districtName = district.getName();
if (dto.getEntityType() == AddressEntityType.SC) {
StoreCenterService storeCenterService = ApplicationUtil.getBean(StoreCenterService.class);
StoreCenter sc = storeCenterService.findById(dto.getEntityId());
this.entityName = sc.getName();
} else if (dto.getEntityType() == AddressEntityType.CUSTOMER) {
CustomerService customerService = ApplicationUtil.getBean(CustomerService.class);
Customer customer = customerService.findById(dto.getEntityId());
this.entityName = customer.getName();
} else if (dto.getEntityType() == AddressEntityType.SUPPLIER) {
SupplierService supplierService = ApplicationUtil.getBean(SupplierService.class);
Supplier supplier = supplierService.findById(dto.getEntityId());
this.entityName = supplier.getName();
} else if (dto.getEntityType() == AddressEntityType.MEMBER) {
MemberService memberService = ApplicationUtil.getBean(MemberService.class);
Member member = memberService.findById(dto.getEntityId());
this.entityName = member.getName();
} else if (dto.getEntityType() == AddressEntityType.SHOP) {
ShopService shopService = ApplicationUtil.getBean(ShopService.class);
Shop shop = shopService.findById(dto.getEntityId());
this.entityName = shop.getName();
}
}
}

View File

@ -0,0 +1,43 @@
package com.lframework.xingyun.basedata.bo.customer;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.Customer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CustomerSelectorBo extends BaseBo<Customer> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
public CustomerSelectorBo() {
}
public CustomerSelectorBo(Customer dto) {
super(dto);
}
}

View File

@ -0,0 +1,169 @@
package com.lframework.xingyun.basedata.bo.customer;
import com.lframework.starter.common.constants.StringPool;
import com.lframework.starter.common.utils.StringUtil;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.starter.web.common.utils.ApplicationUtil;
import com.lframework.xingyun.basedata.entity.Customer;
import com.lframework.xingyun.core.dto.dic.city.DicCityDto;
import com.lframework.xingyun.core.service.DicCityService;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import java.util.stream.Collectors;
import lombok.Data;
@Data
public class GetCustomerBo extends BaseBo<Customer> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 助记码
*/
@ApiModelProperty("助记码")
private String mnemonicCode;
/**
* 联系人
*/
@ApiModelProperty("联系人")
private String contact;
/**
* 联系电话
*/
@ApiModelProperty("联系电话")
private String telephone;
/**
* 电子邮箱
*/
@ApiModelProperty("电子邮箱")
private String email;
/**
* 邮编
*/
@ApiModelProperty("邮编")
private String zipCode;
/**
* 传真
*/
@ApiModelProperty("传真")
private String fax;
/**
* 地区ID
*/
@ApiModelProperty("地区ID")
private List<String> city;
/**
* 地区名称
*/
@ApiModelProperty("地区名称")
private String cityName;
/**
* 地址
*/
@ApiModelProperty("地址")
private String address;
/**
* 结账方式
*/
@ApiModelProperty("结账方式")
private Integer settleType;
/**
* 统一社会信用代码
*/
@ApiModelProperty("统一社会信用代码")
private String creditCode;
/**
* 纳税人识别号
*/
@ApiModelProperty("纳税人识别号")
private String taxIdentifyNo;
/**
* 开户银行
*/
@ApiModelProperty("开户银行")
private String bankName;
/**
* 户名
*/
@ApiModelProperty("户名")
private String accountName;
/**
* 银行账号
*/
@ApiModelProperty("银行账号")
private String accountNo;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
public GetCustomerBo() {
}
public GetCustomerBo(Customer dto) {
super(dto);
}
@Override
public BaseBo<Customer> convert(Customer dto) {
return super.convert(dto, GetCustomerBo::getSettleType);
}
@Override
protected void afterInit(Customer dto) {
if (dto.getSettleType() != null) {
this.settleType = dto.getSettleType().getCode();
}
if (!StringUtil.isBlank(dto.getCityId())) {
DicCityService dicCityService = ApplicationUtil.getBean(DicCityService.class);
List<DicCityDto> cityList = dicCityService.getChainById(dto.getCityId());
this.city = cityList.stream().map(DicCityDto::getId).collect(Collectors.toList());
this.cityName = cityList.stream().map(DicCityDto::getName)
.collect(Collectors.joining(StringPool.CITY_SPLIT));
}
}
}

View File

@ -0,0 +1,82 @@
package com.lframework.xingyun.basedata.bo.customer;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.lframework.starter.common.constants.StringPool;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.Customer;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class QueryCustomerBo extends BaseBo<Customer> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
/**
* 创建人ID
*/
@ApiModelProperty("创建人ID")
private String createBy;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
private LocalDateTime createTime;
/**
* 修改人ID
*/
@ApiModelProperty("修改人ID")
private String updateBy;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
private LocalDateTime updateTime;
public QueryCustomerBo() {
}
public QueryCustomerBo(Customer dto) {
super(dto);
}
@Override
protected void afterInit(Customer dto) {
}
}

View File

@ -0,0 +1,99 @@
package com.lframework.xingyun.basedata.bo.logistics.company;
import com.lframework.starter.common.constants.StringPool;
import com.lframework.starter.common.utils.StringUtil;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.starter.web.common.utils.ApplicationUtil;
import com.lframework.xingyun.basedata.entity.LogisticsCompany;
import com.lframework.xingyun.core.dto.dic.city.DicCityDto;
import com.lframework.xingyun.core.service.DicCityService;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import java.util.stream.Collectors;
import lombok.Data;
@Data
public class GetLogisticsCompanyBo extends BaseBo<LogisticsCompany> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 联系人
*/
@ApiModelProperty("联系人")
private String contact;
/**
* 联系电话
*/
@ApiModelProperty("联系电话")
private String telephone;
/**
* 地区ID
*/
@ApiModelProperty("地区ID")
private List<String> city;
/**
* 地区名称
*/
@ApiModelProperty("地区名称")
private String cityName;
/**
* 地址
*/
@ApiModelProperty("地址")
private String address;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
public GetLogisticsCompanyBo() {
}
public GetLogisticsCompanyBo(LogisticsCompany dto) {
super(dto);
}
@Override
protected void afterInit(LogisticsCompany dto) {
if (!StringUtil.isBlank(dto.getCityId())) {
DicCityService dicCityService = ApplicationUtil.getBean(DicCityService.class);
List<DicCityDto> cityList = dicCityService.getChainById(dto.getCityId());
this.city = cityList.stream().map(DicCityDto::getId).collect(Collectors.toList());
this.cityName = cityList.stream().map(DicCityDto::getName)
.collect(Collectors.joining(StringPool.CITY_SPLIT));
}
}
}

View File

@ -0,0 +1,43 @@
package com.lframework.xingyun.basedata.bo.logistics.company;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.LogisticsCompany;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class LogisticsCompanySelectorBo extends BaseBo<LogisticsCompany> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
public LogisticsCompanySelectorBo() {
}
public LogisticsCompanySelectorBo(LogisticsCompany dto) {
super(dto);
}
}

View File

@ -0,0 +1,82 @@
package com.lframework.xingyun.basedata.bo.logistics.company;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.lframework.starter.common.constants.StringPool;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.LogisticsCompany;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class QueryLogisticsCompanyBo extends BaseBo<LogisticsCompany> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
/**
* 创建人ID
*/
@ApiModelProperty("创建人ID")
private String createBy;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
private LocalDateTime createTime;
/**
* 修改人ID
*/
@ApiModelProperty("修改人ID")
private String updateBy;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
private LocalDateTime updateTime;
public QueryLogisticsCompanyBo() {
}
public QueryLogisticsCompanyBo(LogisticsCompany dto) {
super(dto);
}
@Override
protected void afterInit(LogisticsCompany dto) {
}
}

View File

@ -0,0 +1,138 @@
package com.lframework.xingyun.basedata.bo.member;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.lframework.starter.common.constants.StringPool;
import com.lframework.starter.common.utils.StringUtil;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.starter.web.common.utils.ApplicationUtil;
import com.lframework.xingyun.basedata.entity.Member;
import com.lframework.xingyun.basedata.entity.Shop;
import com.lframework.xingyun.basedata.service.shop.ShopService;
import com.lframework.xingyun.template.core.dto.UserDto;
import com.lframework.xingyun.template.core.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDate;
import lombok.Data;
@Data
public class GetMemberBo extends BaseBo<Member> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 性别
*/
@ApiModelProperty("性别")
private Integer gender;
/**
* 联系电话
*/
@ApiModelProperty("联系电话")
private String telephone;
/**
* 电子邮箱
*/
@ApiModelProperty("电子邮箱")
private String email;
/**
* 出生日期
*/
@ApiModelProperty("出生日期")
@JsonFormat(pattern = StringPool.DATE_PATTERN)
private LocalDate birthday;
/**
* 入会日期
*/
@ApiModelProperty("入会日期")
@JsonFormat(pattern = StringPool.DATE_PATTERN)
private LocalDate joinDay;
/**
* 所属门店ID
*/
@ApiModelProperty("所属门店ID")
private String shopId;
/**
* 所属门店名称
*/
@ApiModelProperty("所属门店名称")
private String shopName;
/**
* 所属导购ID
*/
@ApiModelProperty("所属导购ID")
private String guiderId;
/**
* 所属导购名称
*/
@ApiModelProperty("所属导购名称")
private String guiderName;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
public GetMemberBo() {
}
public GetMemberBo(Member dto) {
super(dto);
}
@Override
public BaseBo<Member> convert(Member dto) {
return super.convert(dto, GetMemberBo::getGender);
}
@Override
protected void afterInit(Member dto) {
this.gender = dto.getGender().getCode();
if (!StringUtil.isBlank(dto.getShopId())) {
ShopService shopService = ApplicationUtil.getBean(ShopService.class);
Shop shop = shopService.findById(dto.getShopId());
this.shopName = shop.getName();
}
if (!StringUtil.isBlank(dto.getGuiderId())) {
UserService userService = ApplicationUtil.getBean(UserService.class);
UserDto guider = userService.findById(dto.getGuiderId());
this.guiderName = guider.getName();
}
}
}

View File

@ -0,0 +1,39 @@
package com.lframework.xingyun.basedata.bo.member;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.Member;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class MemberSelectorBo extends BaseBo<Member> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
public MemberSelectorBo(Member dto) {
super(dto);
}
}

View File

@ -0,0 +1,82 @@
package com.lframework.xingyun.basedata.bo.member;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.lframework.starter.common.constants.StringPool;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.Member;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class QueryMemberBo extends BaseBo<Member> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
/**
* 创建人ID
*/
@ApiModelProperty("创建人ID")
private String createBy;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
private LocalDateTime createTime;
/**
* 修改人ID
*/
@ApiModelProperty("修改人ID")
private String updateBy;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
private LocalDateTime updateTime;
public QueryMemberBo() {
}
public QueryMemberBo(Member dto) {
super(dto);
}
@Override
protected void afterInit(Member dto) {
}
}

View File

@ -0,0 +1,55 @@
package com.lframework.xingyun.basedata.bo.paytype;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.PayType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class GetPayTypeBo extends BaseBo<PayType> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 是否记录内容
*/
@ApiModelProperty("是否记录内容")
private Boolean recText;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
public GetPayTypeBo() {
}
public GetPayTypeBo(PayType dto) {
super(dto);
}
}

View File

@ -0,0 +1,49 @@
package com.lframework.xingyun.basedata.bo.paytype;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.PayType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class PayTypeSelectorBo extends BaseBo<PayType> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 是否记录内容
*/
@ApiModelProperty("是否记录内容")
private Boolean recText;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
public PayTypeSelectorBo() {
}
public PayTypeSelectorBo(PayType dto) {
super(dto);
}
}

View File

@ -0,0 +1,82 @@
package com.lframework.xingyun.basedata.bo.paytype;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.lframework.starter.common.constants.StringPool;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.PayType;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class QueryPayTypeBo extends BaseBo<PayType> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
/**
* 创建人ID
*/
@ApiModelProperty("创建人ID")
private String createBy;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
private LocalDateTime createTime;
/**
* 修改人ID
*/
@ApiModelProperty("修改人ID")
private String updateBy;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
private LocalDateTime updateTime;
public QueryPayTypeBo() {
}
public QueryPayTypeBo(PayType dto) {
super(dto);
}
@Override
protected void afterInit(PayType dto) {
}
}

View File

@ -0,0 +1,67 @@
package com.lframework.xingyun.basedata.bo.product.brand;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.ProductBrand;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class GetProductBrandBo extends BaseBo<ProductBrand> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 简称
*/
@ApiModelProperty("简称")
private String shortName;
/**
* logo
*/
@ApiModelProperty("logo")
private String logo;
/**
* 简介
*/
@ApiModelProperty("简介")
private String introduction;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
public GetProductBrandBo() {
}
public GetProductBrandBo(ProductBrand dto) {
super(dto);
}
}

View File

@ -0,0 +1,43 @@
package com.lframework.xingyun.basedata.bo.product.brand;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.ProductBrand;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ProductBrandSelectorBo extends BaseBo<ProductBrand> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
public ProductBrandSelectorBo() {
}
public ProductBrandSelectorBo(ProductBrand dto) {
super(dto);
}
}

View File

@ -0,0 +1,49 @@
package com.lframework.xingyun.basedata.bo.product.brand;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.ProductCategory;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ProductCategorySelectorBo extends BaseBo<ProductCategory> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 父级ID
*/
@ApiModelProperty("父级ID")
private String parentId;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
public ProductCategorySelectorBo() {
}
public ProductCategorySelectorBo(ProductCategory dto) {
super(dto);
}
}

View File

@ -0,0 +1,49 @@
package com.lframework.xingyun.basedata.bo.product.brand;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.ProductBrand;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class QueryProductBrandBo extends BaseBo<ProductBrand> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
public QueryProductBrandBo() {
}
public QueryProductBrandBo(ProductBrand dto) {
super(dto);
}
}

View File

@ -0,0 +1,78 @@
package com.lframework.xingyun.basedata.bo.product.category;
import com.lframework.starter.common.utils.ObjectUtil;
import com.lframework.starter.common.utils.StringUtil;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.starter.web.common.utils.ApplicationUtil;
import com.lframework.xingyun.basedata.entity.ProductCategory;
import com.lframework.xingyun.basedata.service.product.ProductCategoryService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class GetProductCategoryBo extends BaseBo<ProductCategory> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 父级ID
*/
@ApiModelProperty("父级ID")
private String parentId;
/**
* 父级名称
*/
@ApiModelProperty("父级名称")
private String parentName;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
public GetProductCategoryBo() {
}
public GetProductCategoryBo(ProductCategory dto) {
super(dto);
}
@Override
protected void afterInit(ProductCategory dto) {
if (!StringUtil.isBlank(this.getParentId())) {
ProductCategoryService productCategoryService = ApplicationUtil.getBean(
ProductCategoryService.class);
ProductCategory parentCategory = productCategoryService.findById(this.getParentId());
if (!ObjectUtil.isNull(parentCategory)) {
this.setParentName(parentCategory.getName());
}
}
}
}

View File

@ -0,0 +1,55 @@
package com.lframework.xingyun.basedata.bo.product.category;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.ProductCategory;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ProductCategoryTreeBo extends BaseBo<ProductCategory> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 父级ID
*/
@ApiModelProperty("父级ID")
private String parentId;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
public ProductCategoryTreeBo() {
}
public ProductCategoryTreeBo(ProductCategory dto) {
super(dto);
}
}

View File

@ -0,0 +1,306 @@
package com.lframework.xingyun.basedata.bo.product.info;
import com.lframework.starter.common.constants.StringPool;
import com.lframework.starter.common.utils.CollectionUtil;
import com.lframework.starter.web.annotations.convert.EnumConvert;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.starter.web.common.utils.ApplicationUtil;
import com.lframework.xingyun.basedata.dto.product.ProductPropertyRelationDto;
import com.lframework.xingyun.basedata.entity.Product;
import com.lframework.xingyun.basedata.entity.ProductBrand;
import com.lframework.xingyun.basedata.entity.ProductBundle;
import com.lframework.xingyun.basedata.entity.ProductCategory;
import com.lframework.xingyun.basedata.entity.ProductPurchase;
import com.lframework.xingyun.basedata.entity.ProductRetail;
import com.lframework.xingyun.basedata.entity.ProductSale;
import com.lframework.xingyun.basedata.enums.ColumnType;
import com.lframework.xingyun.basedata.enums.ProductType;
import com.lframework.xingyun.basedata.service.product.ProductBrandService;
import com.lframework.xingyun.basedata.service.product.ProductBundleService;
import com.lframework.xingyun.basedata.service.product.ProductCategoryService;
import com.lframework.xingyun.basedata.service.product.ProductPropertyRelationService;
import com.lframework.xingyun.basedata.service.product.ProductPurchaseService;
import com.lframework.xingyun.basedata.service.product.ProductRetailService;
import com.lframework.xingyun.basedata.service.product.ProductSaleService;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import lombok.Data;
@Data
public class GetProductBo extends BaseBo<Product> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 简称
*/
@ApiModelProperty("简称")
private String shortName;
/**
* SKU
*/
@ApiModelProperty("SKU")
private String skuCode;
/**
* 外部编号
*/
@ApiModelProperty("外部编号")
private String externalCode;
/**
* 类目ID
*/
@ApiModelProperty("类目ID")
private String categoryId;
/**
* 类目名称
*/
@ApiModelProperty("类目名称")
private String categoryName;
/**
* 品牌ID
*/
@ApiModelProperty("品牌ID")
private String brandId;
/**
* 品牌名称
*/
@ApiModelProperty("品牌名称")
private String brandName;
/**
* 重量kg
*/
@ApiModelProperty("重量kg")
private BigDecimal weight;
/**
* 体积cm3
*/
@ApiModelProperty("体积cm3")
private BigDecimal volume;
/**
* 进项税率%
*/
@ApiModelProperty("进项税率(%")
private BigDecimal taxRate;
/**
* 销项税率%
*/
@ApiModelProperty("销项税率(%")
private BigDecimal saleTaxRate;
/**
* 规格
*/
@ApiModelProperty("规格")
private String spec;
/**
* 单位
*/
@ApiModelProperty("单位")
private String unit;
/**
* 商品类型
*/
@ApiModelProperty("商品类型")
@EnumConvert
private Integer productType;
/**
* 单品
*/
@ApiModelProperty("单品")
private List<ProductBundleBo> productBundles;
/**
* 采购价
*/
@ApiModelProperty("采购价")
private BigDecimal purchasePrice;
/**
* 销售价
*/
@ApiModelProperty("销售价")
private BigDecimal salePrice;
/**
* 零售价
*/
@ApiModelProperty("零售价")
private BigDecimal retailPrice;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 属性
*/
@ApiModelProperty("属性")
private List<PropertyBo> properties;
public GetProductBo() {
}
public GetProductBo(Product dto) {
super(dto);
}
@Override
public BaseBo<Product> convert(Product dto) {
return super.convert(dto, GetProductBo::getProperties);
}
@Override
protected void afterInit(Product dto) {
ProductCategoryService productCategoryService = ApplicationUtil.getBean(
ProductCategoryService.class);
ProductCategory productCategory = productCategoryService.findById(dto.getCategoryId());
this.categoryName = productCategory.getName();
ProductBrandService productBrandService = ApplicationUtil.getBean(ProductBrandService.class);
ProductBrand productBrand = productBrandService.findById(dto.getBrandId());
this.brandName = productBrand.getName();
if (dto.getProductType() == ProductType.BUNDLE) {
ProductBundleService productBundleService = ApplicationUtil.getBean(
ProductBundleService.class);
List<ProductBundle> bundles = productBundleService.getByMainProductId(dto.getId());
this.productBundles = bundles.stream().map(ProductBundleBo::new).collect(Collectors.toList());
}
ProductPurchaseService productPurchaseService = ApplicationUtil.getBean(
ProductPurchaseService.class);
ProductPurchase productPurchase = productPurchaseService.getById(dto.getId());
this.purchasePrice = productPurchase.getPrice();
ProductSaleService productSaleService = ApplicationUtil.getBean(ProductSaleService.class);
ProductSale productSale = productSaleService.getById(dto.getId());
this.salePrice = productSale.getPrice();
ProductRetailService productRetailService = ApplicationUtil.getBean(
ProductRetailService.class);
ProductRetail productRetail = productRetailService.getById(dto.getId());
this.retailPrice = productRetail.getPrice();
ProductPropertyRelationService productPropertyRelationService = ApplicationUtil.getBean(
ProductPropertyRelationService.class);
List<ProductPropertyRelationDto> propertyRelationDtos = productPropertyRelationService.getByProductId(
dto.getId());
if (!CollectionUtil.isEmpty(propertyRelationDtos)) {
this.properties = new ArrayList<>();
for (ProductPropertyRelationDto property : propertyRelationDtos) {
if (property.getPropertyColumnType() == ColumnType.MULTIPLE) {
PropertyBo propertyBo = this.properties.stream()
.filter(t -> t.getId().equals(property.getPropertyId())).findFirst().orElse(null);
if (propertyBo == null) {
this.properties.add(new PropertyBo(property));
} else {
propertyBo.setText(propertyBo.getText().concat(StringPool.STR_SPLIT)
.concat(property.getPropertyItemId()));
propertyBo.setTextStr(propertyBo.getTextStr().concat(StringPool.STR_SPLIT_CN)
.concat(property.getPropertyText()));
}
} else {
this.properties.add(new PropertyBo(property));
}
}
}
}
@Data
public static class PropertyBo extends BaseBo<ProductPropertyRelationDto> {
/**
* 属性ID
*/
@ApiModelProperty("属性ID")
private String id;
/**
* 属性名
*/
@ApiModelProperty("属性名")
private String name;
/**
* 字段类型
*/
@ApiModelProperty("字段类型")
private Integer columnType;
/**
* 属性值
*/
@ApiModelProperty("属性值")
private String text;
/**
* 属性文本
*/
@ApiModelProperty("属性文本")
private String textStr;
public PropertyBo() {
}
public PropertyBo(ProductPropertyRelationDto dto) {
super(dto);
}
@Override
public BaseBo<ProductPropertyRelationDto> convert(ProductPropertyRelationDto dto) {
return super.convert(dto, PropertyBo::getColumnType);
}
@Override
protected void afterInit(ProductPropertyRelationDto dto) {
this.id = dto.getPropertyId();
this.name = dto.getPropertyName();
this.text = dto.getPropertyColumnType() == ColumnType.CUSTOM ? dto.getPropertyText()
: dto.getPropertyItemId();
this.textStr = dto.getPropertyText();
this.columnType = dto.getPropertyColumnType().getCode();
}
}
}

View File

@ -0,0 +1,48 @@
package com.lframework.xingyun.basedata.bo.product.info;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.ProductBundle;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import lombok.Data;
@Data
public class ProductBundleBo extends BaseBo<ProductBundle> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 单品ID
*/
@ApiModelProperty("单品ID")
private String productId;
/**
* 包含数量
*/
@ApiModelProperty("包含数量")
private Integer bundleNum;
/**
* 销售价
*/
@ApiModelProperty("销售价")
private BigDecimal salePrice;
/**
* 零售价
*/
@ApiModelProperty("零售价")
private BigDecimal retailPrice;
public ProductBundleBo() {
}
public ProductBundleBo(ProductBundle dto) {
super(dto);
}
}

View File

@ -0,0 +1,116 @@
package com.lframework.xingyun.basedata.bo.product.info;
import com.lframework.starter.web.annotations.convert.EnumConvert;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.starter.web.common.utils.ApplicationUtil;
import com.lframework.xingyun.basedata.entity.Product;
import com.lframework.xingyun.basedata.entity.ProductBrand;
import com.lframework.xingyun.basedata.entity.ProductCategory;
import com.lframework.xingyun.basedata.service.product.ProductBrandService;
import com.lframework.xingyun.basedata.service.product.ProductCategoryService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ProductSelectorBo extends BaseBo<Product> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* SKU
*/
@ApiModelProperty("SKU")
private String skuCode;
/**
* 外部编号
*/
@ApiModelProperty("外部编号")
private String externalCode;
/**
* 类目ID
*/
@ApiModelProperty("类目ID")
private String categoryId;
/**
* 类目名称
*/
@ApiModelProperty("类目名称")
private String categoryName;
/**
* 品牌ID
*/
@ApiModelProperty("品牌ID")
private String brandId;
/**
* 品牌名称
*/
@ApiModelProperty("品牌名称")
private String brandName;
/**
* 规格
*/
@ApiModelProperty("规格")
private String spec;
/**
* 单位
*/
@ApiModelProperty("单位")
private String unit;
/**
* 商品类型
*/
@ApiModelProperty("商品类型")
@EnumConvert
private Integer productType;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
public ProductSelectorBo() {
}
public ProductSelectorBo(Product dto) {
super(dto);
}
@Override
protected void afterInit(Product dto) {
ProductCategoryService productCategoryService = ApplicationUtil.getBean(
ProductCategoryService.class);
ProductCategory productCategory = productCategoryService.findById(dto.getCategoryId());
this.categoryName = productCategory.getName();
ProductBrandService productBrandService = ApplicationUtil.getBean(ProductBrandService.class);
ProductBrand brand = productBrandService.findById(dto.getBrandId());
this.brandName = brand.getName();
}
}

View File

@ -0,0 +1,109 @@
package com.lframework.xingyun.basedata.bo.product.info;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.lframework.starter.common.constants.StringPool;
import com.lframework.starter.web.annotations.convert.EnumConvert;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.starter.web.common.utils.ApplicationUtil;
import com.lframework.xingyun.basedata.entity.Product;
import com.lframework.xingyun.basedata.entity.ProductBrand;
import com.lframework.xingyun.basedata.entity.ProductCategory;
import com.lframework.xingyun.basedata.service.product.ProductBrandService;
import com.lframework.xingyun.basedata.service.product.ProductCategoryService;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class QueryProductBo extends BaseBo<Product> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 名称
*/
@ApiModelProperty("简称")
private String shortName;
/**
* SKU
*/
@ApiModelProperty("SKU")
private String skuCode;
/**
* 类目名称
*/
@ApiModelProperty("类目名称")
private String categoryName;
/**
* 品牌名称
*/
@ApiModelProperty("品牌名称")
private String brandName;
/**
* 商品类型
*/
@ApiModelProperty("商品类型")
@EnumConvert
private Integer productType;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
@JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
private LocalDateTime createTime;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@JsonFormat(pattern = StringPool.DATE_TIME_PATTERN)
private LocalDateTime updateTime;
public QueryProductBo() {
}
public QueryProductBo(Product dto) {
super(dto);
}
@Override
protected void afterInit(Product dto) {
ProductCategoryService productCategoryService = ApplicationUtil.getBean(
ProductCategoryService.class);
ProductCategory productCategory = productCategoryService.findById(dto.getCategoryId());
this.categoryName = productCategory.getName();
ProductBrandService productBrandService = ApplicationUtil.getBean(ProductBrandService.class);
ProductBrand brand = productBrandService.findById(dto.getBrandId());
this.brandName = brand.getName();
}
}

View File

@ -0,0 +1,105 @@
package com.lframework.xingyun.basedata.bo.product.property;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.starter.web.common.utils.ApplicationUtil;
import com.lframework.xingyun.basedata.entity.ProductCategoryProperty;
import com.lframework.xingyun.basedata.entity.ProductProperty;
import com.lframework.xingyun.basedata.enums.PropertyType;
import com.lframework.xingyun.basedata.service.product.ProductCategoryPropertyService;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import java.util.stream.Collectors;
import lombok.Data;
@Data
public class GetProductPropertyBo extends BaseBo<ProductProperty> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 是否必填
*/
@ApiModelProperty("是否必填")
private Boolean isRequired;
/**
* 录入类型
*/
@ApiModelProperty("录入类型")
private Integer columnType;
/**
* 数据类型
*/
@ApiModelProperty("数据类型")
private Integer columnDataType;
/**
* 属性类别
*/
@ApiModelProperty("属性类别")
private Integer propertyType;
/**
* 类目
*/
@ApiModelProperty("类目")
private List<String> categories;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
public GetProductPropertyBo() {
}
public GetProductPropertyBo(ProductProperty dto) {
super(dto);
}
@Override
protected void afterInit(ProductProperty dto) {
this.columnType = dto.getColumnType().getCode();
this.propertyType = dto.getPropertyType().getCode();
if (dto.getColumnDataType() != null) {
this.columnDataType = dto.getColumnDataType().getCode();
}
if (dto.getPropertyType() == PropertyType.APPOINT) {
ProductCategoryPropertyService productCategoryPropertyService = ApplicationUtil.getBean(
ProductCategoryPropertyService.class);
List<ProductCategoryProperty> categoryPropertyList = productCategoryPropertyService.getByPropertyId(
dto.getId());
this.categories = categoryPropertyList.stream().map(ProductCategoryProperty::getCategoryId)
.collect(Collectors.toList());
}
}
}

View File

@ -0,0 +1,120 @@
package com.lframework.xingyun.basedata.bo.product.property;
import com.lframework.starter.common.utils.CollectionUtil;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.dto.product.property.ProductPropertyModelorDto;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import java.util.stream.Collectors;
import lombok.Data;
@Data
public class ProductPropertyModelorBo extends BaseBo<ProductPropertyModelorDto> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 是否必填
*/
@ApiModelProperty("是否必填")
private Boolean isRequired;
/**
* 可选项当columnType != CUSTOM时 不为空
*/
@ApiModelProperty("可选项当columnType != CUSTOM时 不为空")
private List<ProductPropertyItemModelorBo> items;
/**
* 显示值 当columnType != CUSTOM时此值为items项ID 当columnType == CUSTOM时此值为录入值
*/
@ApiModelProperty("显示值 当columnType != CUSTOM时此值为items项ID 当columnType == CUSTOM时此值为录入值")
private String text;
/**
* 录入类型
*/
@ApiModelProperty("录入类型")
private Integer columnType;
/**
* 数据类型
*/
@ApiModelProperty("数据类型")
private Integer columnDataType;
/**
* 属性类别
*/
@ApiModelProperty("属性类别")
private Integer propertyType;
public ProductPropertyModelorBo() {
}
public ProductPropertyModelorBo(ProductPropertyModelorDto dto) {
super(dto);
}
@Override
public BaseBo<ProductPropertyModelorDto> convert(ProductPropertyModelorDto dto) {
return super.convert(dto, ProductPropertyModelorBo::getItems, ProductPropertyModelorBo::getColumnType,
ProductPropertyModelorBo::getColumnDataType, ProductPropertyModelorBo::getPropertyType);
}
@Override
protected void afterInit(ProductPropertyModelorDto dto) {
if (!CollectionUtil.isEmpty(dto.getItems())) {
this.items = dto.getItems().stream().map(ProductPropertyItemModelorBo::new).collect(Collectors.toList());
}
this.columnType = dto.getColumnType().getCode();
if (dto.getColumnDataType() != null) {
this.columnDataType = dto.getColumnDataType().getCode();
}
this.propertyType = dto.getPropertyType().getCode();
}
@Data
public static class ProductPropertyItemModelorBo
extends BaseBo<ProductPropertyModelorDto.ProductPropertyItemModelorDto> {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
public ProductPropertyItemModelorBo() {
}
public ProductPropertyItemModelorBo(ProductPropertyModelorDto.ProductPropertyItemModelorDto dto) {
super(dto);
}
}
}

View File

@ -0,0 +1,74 @@
package com.lframework.xingyun.basedata.bo.product.property;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.ProductProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class QueryProductPropertyBo extends BaseBo<ProductProperty> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 是否必填
*/
@ApiModelProperty("是否必填")
private Boolean isRequired;
/**
* 录入类型
*/
@ApiModelProperty("录入类型")
private Integer columnType;
/**
* 属性类别
*/
@ApiModelProperty("属性类别")
private Integer propertyType;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
public QueryProductPropertyBo() {
}
public QueryProductPropertyBo(ProductProperty dto) {
super(dto);
}
@Override
protected void afterInit(ProductProperty dto) {
this.columnType = dto.getColumnType().getCode();
this.propertyType = dto.getPropertyType().getCode();
}
}

View File

@ -0,0 +1,49 @@
package com.lframework.xingyun.basedata.bo.product.property.item;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.ProductPropertyItem;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class GetProductPropertyItemBo extends BaseBo<ProductPropertyItem> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
public GetProductPropertyItemBo() {
}
public GetProductPropertyItemBo(ProductPropertyItem dto) {
super(dto);
}
}

View File

@ -0,0 +1,49 @@
package com.lframework.xingyun.basedata.bo.product.property.item;
import com.lframework.starter.web.bo.BaseBo;
import com.lframework.xingyun.basedata.entity.ProductPropertyItem;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class QueryProductPropertyItemBo extends BaseBo<ProductPropertyItem> {
/**
* ID
*/
@ApiModelProperty("ID")
private String id;
/**
* 编号
*/
@ApiModelProperty("编号")
private String code;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 状态
*/
@ApiModelProperty("状态")
private Boolean available;
/**
* 备注
*/
@ApiModelProperty("备注")
private String description;
public QueryProductPropertyItemBo() {
}
public QueryProductPropertyItemBo(ProductPropertyItem dto) {
super(dto);
}
}

Some files were not shown because too many files have changed in this diff Show More