Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
ef5d4dcc
提交
ef5d4dcc
authored
4月 27, 2022
作者:
涂茂林
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:新增区域信息的增删改
上级
32d1861f
隐藏空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
571 行增加
和
2 行删除
+571
-2
persistence-units.xml
.jpb/persistence-units.xml
+13
-0
Application.java
app/src/main/java/com/yiring/app/Application.java
+2
-0
RiskGradeEnum.java
.../java/com/yiring/app/constant/district/RiskGradeEnum.java
+78
-0
District.java
...rc/main/java/com/yiring/app/domain/district/District.java
+78
-0
DistrictRepository.java
...va/com/yiring/app/domain/district/DistrictRepository.java
+30
-0
DistrictAddParam.java
.../java/com/yiring/app/param/district/DistrictAddParam.java
+64
-0
DistrictModifyParam.java
...va/com/yiring/app/param/district/DistrictModifyParam.java
+65
-0
DistrictService.java
...java/com/yiring/app/service/district/DistrictService.java
+36
-0
DistrictServiceImpl.java
...yiring/app/service/district/impl/DistrictServiceImpl.java
+79
-0
JpaUtil.java
app/src/main/java/com/yiring/app/util/JpaUtil.java
+37
-0
KeyValueVo.java
app/src/main/java/com/yiring/app/vo/KeyValueVo.java
+34
-0
DistrictController.java
.../java/com/yiring/app/web/district/DistrictController.java
+53
-0
build.gradle
build.gradle
+2
-2
package-lock.json
package-lock.json
+0
-0
没有找到文件。
.jpb/persistence-units.xml
0 → 100644
浏览文件 @
ef5d4dcc
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"PersistenceUnitSettings"
>
<persistence-units>
<persistence-unit
name=
"Default"
>
<packages>
<package
value=
"com.yiring.common.config"
/>
</packages>
</persistence-unit>
</persistence-units>
</component>
</project>
\ No newline at end of file
app/src/main/java/com/yiring/app/Application.java
浏览文件 @
ef5d4dcc
...
@@ -6,6 +6,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
...
@@ -6,6 +6,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import
org.springframework.boot.autoconfigure.domain.EntityScan
;
import
org.springframework.boot.autoconfigure.domain.EntityScan
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters
;
import
org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters
;
import
org.springframework.data.jpa.repository.config.EnableJpaAuditing
;
import
org.springframework.data.jpa.repository.config.EnableJpaRepositories
;
import
org.springframework.data.jpa.repository.config.EnableJpaRepositories
;
@EnableJpaRepositories
(
basePackages
=
Application
.
BASE_PACKAGES
)
@EnableJpaRepositories
(
basePackages
=
Application
.
BASE_PACKAGES
)
...
@@ -14,6 +15,7 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
...
@@ -14,6 +15,7 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
basePackages
=
Application
.
BASE_PACKAGES
basePackages
=
Application
.
BASE_PACKAGES
)
)
@EnableFeignClients
@EnableFeignClients
@EnableJpaAuditing
@SpringBootApplication
(
scanBasePackages
=
Application
.
BASE_PACKAGES
)
@SpringBootApplication
(
scanBasePackages
=
Application
.
BASE_PACKAGES
)
public
class
Application
{
public
class
Application
{
...
...
app/src/main/java/com/yiring/app/constant/district/RiskGradeEnum.java
0 → 100644
浏览文件 @
ef5d4dcc
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
constant
.
district
;
import
com.yiring.app.vo.KeyValueVo
;
import
java.util.ArrayList
;
import
java.util.List
;
import
lombok.Getter
;
/**
* 区域信息风险等级枚举
* @author tml
* @version 1.0
* @date 2022/4/26 10:57
*/
public
enum
RiskGradeEnum
{
/**
* 蓝色(安全)
*/
BLUE
(
1
,
"蓝"
),
/**
* 黄色(预警)
*/
yellow
(
2
,
"黄"
),
/**
* 红色(异常)
*/
RED
(
3
,
"红"
);
public
static
final
int
MIN
=
1
;
public
static
final
int
MAX
=
3
;
private
static
final
List
<
KeyValueVo
>
LIST
;
static
{
LIST
=
new
ArrayList
<>();
for
(
RiskGradeEnum
item
:
values
())
{
LIST
.
add
(
KeyValueVo
.
builder
().
key
(
item
.
key
).
value
(
item
.
value
).
build
());
}
}
@Getter
private
final
Integer
key
;
@Getter
private
final
String
value
;
RiskGradeEnum
(
Integer
key
,
String
value
)
{
this
.
key
=
key
;
this
.
value
=
value
;
}
/**
* 根据key获取value
* @param key 等级key
* @return 等级
*/
public
static
String
getByKey
(
Integer
key
)
{
if
(
key
!=
null
)
{
for
(
RiskGradeEnum
item
:
values
())
{
if
(
item
.
key
.
equals
(
key
))
{
return
item
.
value
;
}
}
}
return
"未知等级"
;
}
/**
* 获取所有等级
* @return 所有等级集合
*/
public
static
List
<
KeyValueVo
>
getAll
()
{
return
LIST
;
}
}
app/src/main/java/com/yiring/app/domain/district/District.java
0 → 100644
浏览文件 @
ef5d4dcc
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
district
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.persistence.*
;
import
lombok.*
;
import
lombok.experimental.FieldNameConstants
;
import
org.hibernate.annotations.Comment
;
import
org.hibernate.annotations.GenericGenerator
;
import
org.hibernate.annotations.Type
;
import
org.hibernate.annotations.Where
;
import
org.hibernate.snowflake.SnowflakeId
;
import
org.locationtech.jts.geom.Geometry
;
import
org.springframework.data.annotation.CreatedDate
;
import
org.springframework.data.annotation.LastModifiedDate
;
import
org.springframework.data.jpa.domain.support.AuditingEntityListener
;
/**
* @author tml
* @version 1.0
* @date 2022/4/26 11:44
*/
@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@Entity
@Where
(
clause
=
"deleted = false"
)
@Table
(
name
=
"BS_District"
)
@Comment
(
"区域信息"
)
@EntityListeners
(
AuditingEntityListener
.
class
)
public
class
District
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
1469002957843445743L
;
@Id
@Comment
(
"主键id"
)
@GeneratedValue
(
generator
=
SnowflakeId
.
GENERATOR
)
@GenericGenerator
(
name
=
SnowflakeId
.
GENERATOR
,
strategy
=
SnowflakeId
.
Strategy
.
LONG
)
private
Long
id
;
@Comment
(
"区域信息名称"
)
private
String
name
;
@Comment
(
"风险等级"
)
private
String
riskGrade
;
@Comment
(
"消抖时间(秒)"
)
private
Integer
debouncingDuration
;
@Comment
(
"超时时间(秒)"
)
private
Integer
timeoutDuration
;
@Comment
(
"区域信息"
)
@Type
(
type
=
"jts_geometry"
)
@Column
(
columnDefinition
=
"geometry"
)
private
Geometry
geometry
;
@Comment
(
"创建时间"
)
@CreatedDate
@Column
(
nullable
=
false
)
private
LocalDateTime
createTime
;
@Comment
(
"最后修改时间"
)
@LastModifiedDate
@Column
(
nullable
=
false
)
private
LocalDateTime
lastUpdateTime
;
@Comment
(
value
=
"是否删除"
)
@Column
(
nullable
=
false
)
Boolean
deleted
;
}
app/src/main/java/com/yiring/app/domain/district/DistrictRepository.java
0 → 100644
浏览文件 @
ef5d4dcc
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
district
;
import
java.io.Serializable
;
import
java.util.List
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
/**
* @author tml
* @version 1.0
* @date 2022/4/26 13:59
*/
@Repository
public
interface
DistrictRepository
extends
JpaRepository
<
District
,
Serializable
>,
JpaSpecificationExecutor
<
District
>
{
/**
* 查询名称是否存在
* @param name 区域名称
* @return true:存在 false:不存在
*/
Boolean
existsByName
(
String
name
);
/**
* 根据名称查询区域信息列表
* @param name 区域名称
* @return 区域列表
*/
List
<
District
>
findAllByName
(
String
name
);
}
app/src/main/java/com/yiring/app/param/district/DistrictAddParam.java
0 → 100644
浏览文件 @
ef5d4dcc
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
district
;
import
com.yiring.app.domain.district.District
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
lombok.*
;
import
org.hibernate.validator.constraints.Length
;
import
org.locationtech.jts.geom.Geometry
;
/**
*
* @author tml
* @version 1.0
* @date 2022/4/26 10:40
*/
@ApiModel
(
"DistrictAddParam(添加区域param)"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
DistrictAddParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
2936786907836076236L
;
@ApiModelProperty
(
value
=
"区域名称"
,
example
=
"工作区域"
,
required
=
true
)
@NotEmpty
(
message
=
"区域名称不能为空"
)
@Length
(
max
=
10
,
message
=
"区域名称不能超过10个字符"
)
private
String
name
;
@ApiModelProperty
(
value
=
"风险等级"
,
example
=
"1"
,
required
=
true
)
@NotEmpty
(
message
=
"风险等级不能为空"
)
@Length
(
min
=
6
,
max
=
7
,
message
=
"请选择正确的颜色"
)
private
String
riskGrade
;
@ApiModelProperty
(
value
=
"消抖时间(秒)"
,
example
=
"10"
,
required
=
true
)
@NotNull
(
message
=
"消抖时间不能为空"
)
private
Integer
debouncingDuration
;
@ApiModelProperty
(
value
=
"超时时间(秒)"
,
example
=
"100"
,
required
=
true
)
@NotNull
(
message
=
"超时时间不能为空"
)
private
Integer
timeoutDuration
;
@ApiModelProperty
(
value
=
"区域信息"
,
example
=
"100"
,
required
=
true
)
@NotNull
(
message
=
"区域信息不能为空"
)
private
Geometry
geometry
;
public
District
transform
()
{
return
District
.
builder
()
.
name
(
name
)
.
deleted
(
false
)
.
riskGrade
(
riskGrade
)
.
debouncingDuration
(
debouncingDuration
)
.
timeoutDuration
(
timeoutDuration
)
.
geometry
(
geometry
)
.
build
();
}
}
app/src/main/java/com/yiring/app/param/district/DistrictModifyParam.java
0 → 100644
浏览文件 @
ef5d4dcc
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
district
;
import
com.yiring.app.domain.district.District
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
javax.validation.constraints.NotNull
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.hibernate.validator.constraints.Length
;
import
org.locationtech.jts.geom.Geometry
;
/**
*
* @author tml
* @version 1.0
* @date 2022/4/26 10:40
*/
@ApiModel
(
"DistrictAddParam(添加区域param)"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
DistrictModifyParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
2936786907836076236L
;
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
,
required
=
true
)
@NotNull
(
message
=
"id不能为空"
)
private
Long
id
;
@ApiModelProperty
(
value
=
"区域名称"
,
example
=
"工作区域"
,
required
=
true
)
@Length
(
max
=
10
,
message
=
"区域名称不能超过10个字符"
)
private
String
name
;
@ApiModelProperty
(
value
=
"风险等级"
,
example
=
"1"
,
required
=
true
)
@Length
(
min
=
6
,
max
=
7
,
message
=
"请选择正确的颜色"
)
private
String
riskGrade
;
@ApiModelProperty
(
value
=
"消抖时间(秒)"
,
example
=
"10"
,
required
=
true
)
private
Integer
debouncingDuration
;
@ApiModelProperty
(
value
=
"超时时间(秒)"
,
example
=
"100"
,
required
=
true
)
private
Integer
timeoutDuration
;
@ApiModelProperty
(
value
=
"区域信息"
,
example
=
"100"
,
required
=
true
)
private
Geometry
geometry
;
public
District
transform
()
{
return
District
.
builder
()
.
id
(
id
)
.
name
(
name
)
.
riskGrade
(
riskGrade
)
.
debouncingDuration
(
debouncingDuration
)
.
timeoutDuration
(
timeoutDuration
)
.
geometry
(
geometry
)
.
build
();
}
}
app/src/main/java/com/yiring/app/service/district/DistrictService.java
0 → 100644
浏览文件 @
ef5d4dcc
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
district
;
import
com.yiring.app.param.district.DistrictAddParam
;
import
com.yiring.app.param.district.DistrictModifyParam
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
/**
* 区域信息service
* @author tml
* @version 1.0
* @date 2022/4/26 13:42
*/
public
interface
DistrictService
{
/**
* 添加一个区域信息
* @param param 区域信息
* @return 是否成功
*/
Result
<
String
>
addDistrict
(
DistrictAddParam
param
);
/**
* 修改一条区域信息
* @param param 区域信息
* @return 是否成功
*/
Result
<
String
>
modifyDistrict
(
DistrictModifyParam
param
);
/**
* 删除一条区域信息
* @param idParam 区域id
* @return 是否成功
*/
Result
<
String
>
removeDistrict
(
IdParam
idParam
);
}
app/src/main/java/com/yiring/app/service/district/impl/DistrictServiceImpl.java
0 → 100644
浏览文件 @
ef5d4dcc
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
district
.
impl
;
import
com.yiring.app.domain.district.District
;
import
com.yiring.app.domain.district.DistrictRepository
;
import
com.yiring.app.param.district.DistrictAddParam
;
import
com.yiring.app.param.district.DistrictModifyParam
;
import
com.yiring.app.service.district.DistrictService
;
import
com.yiring.app.util.JpaUtil
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.param.IdParam
;
import
java.util.List
;
import
java.util.Optional
;
import
javax.annotation.Resource
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* @author tml
* @version 1.0
* @date 2022/4/26 13:53
*/
@Slf4j
@Service
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
class
DistrictServiceImpl
implements
DistrictService
{
@Resource
private
DistrictRepository
districtRepository
;
@Override
public
Result
<
String
>
addDistrict
(
DistrictAddParam
param
)
{
Boolean
exists
=
districtRepository
.
existsByName
(
param
.
getName
());
if
(
exists
)
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"区域名称已存在"
);
}
District
district
=
param
.
transform
();
districtRepository
.
save
(
district
);
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
modifyDistrict
(
DistrictModifyParam
param
)
{
List
<
District
>
list
=
districtRepository
.
findAllByName
(
param
.
getName
());
District
district
=
null
;
//校验名称是否重复
for
(
District
item
:
list
)
{
if
(
item
.
getId
().
equals
(
param
.
getId
()))
{
district
=
item
;
}
else
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"区域名称已存在"
);
}
}
//如果上面查出来的数据没有这条要修改的数据,则根据id查询出来
if
(
district
==
null
)
{
Optional
<
District
>
optional
=
districtRepository
.
findById
(
param
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"修改的区域信息不存在"
);
}
district
=
optional
.
get
();
}
//只修改要修改的值
JpaUtil
.
copyNotNullProperties
(
param
,
district
);
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
removeDistrict
(
IdParam
idParam
)
{
Optional
<
District
>
optional
=
districtRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
EXPECTATION_FAILED
,
"删除的区域信息不存在"
);
}
District
district
=
optional
.
get
();
district
.
setDeleted
(
true
);
return
Result
.
ok
();
}
}
app/src/main/java/com/yiring/app/util/JpaUtil.java
0 → 100644
浏览文件 @
ef5d4dcc
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
util
;
import
java.util.HashSet
;
import
java.util.Set
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanWrapper
;
import
org.springframework.beans.BeanWrapperImpl
;
/**
* 复制非空属性值的工具类
*
* @author tml
* @version 0.1
* @date 2022/4/21 15:08
*/
public
class
JpaUtil
{
public
static
void
copyNotNullProperties
(
Object
source
,
Object
target
)
{
BeanUtils
.
copyProperties
(
source
,
target
,
getNullPropertyNames
(
source
));
}
public
static
String
[]
getNullPropertyNames
(
Object
source
)
{
final
BeanWrapper
src
=
new
BeanWrapperImpl
(
source
);
java
.
beans
.
PropertyDescriptor
[]
pds
=
src
.
getPropertyDescriptors
();
Set
<
String
>
emptyNames
=
new
HashSet
<>();
for
(
java
.
beans
.
PropertyDescriptor
pd
:
pds
)
{
Object
srcValue
=
src
.
getPropertyValue
(
pd
.
getName
());
if
(
srcValue
==
null
)
{
emptyNames
.
add
(
pd
.
getName
());
}
}
String
[]
result
=
new
String
[
emptyNames
.
size
()];
return
emptyNames
.
toArray
(
result
);
}
}
app/src/main/java/com/yiring/app/vo/KeyValueVo.java
0 → 100644
浏览文件 @
ef5d4dcc
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* key-value格式数据Vo
* @author tml
* @version 1.0
* @date 2022/4/26 11:02
*/
@ApiModel
(
"KeyValueVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
KeyValueVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
7565315836652536620L
;
@ApiModelProperty
(
value
=
"key"
,
example
=
"1"
,
required
=
true
)
private
Integer
key
;
@ApiModelProperty
(
value
=
"value"
,
example
=
"值"
,
required
=
true
)
private
String
value
;
}
app/src/main/java/com/yiring/app/web/district/DistrictController.java
0 → 100644
浏览文件 @
ef5d4dcc
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
web
.
district
;
import
com.yiring.app.param.district.DistrictAddParam
;
import
com.yiring.app.param.district.DistrictModifyParam
;
import
com.yiring.app.service.district.DistrictService
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* 区域管理控制器
* @author tml
* @version 1.0
* @date 2022/4/26 10:15
*/
@Slf4j
@Validated
@Api
(
tags
=
"District(区域管理)"
)
@RestController
@RequestMapping
(
"/district/"
)
public
class
DistrictController
{
@Resource
private
DistrictService
districtService
;
@ApiOperation
(
value
=
"新增区域信息"
)
@PostMapping
(
"/addDistrict"
)
public
Result
<
String
>
addDistrict
(
@Valid
@RequestBody
DistrictAddParam
param
)
{
return
districtService
.
addDistrict
(
param
);
}
@ApiOperation
(
value
=
"修改区域信息"
)
@PostMapping
(
"/modifyDistrict"
)
public
Result
<
String
>
modifyDistrict
(
@Valid
@RequestBody
DistrictModifyParam
param
)
{
return
districtService
.
modifyDistrict
(
param
);
}
@ApiOperation
(
value
=
"删除区域信息"
)
@PostMapping
(
"/removeDistrict"
)
public
Result
<
String
>
removeDistrict
(
@Valid
IdParam
idParam
)
{
return
districtService
.
removeDistrict
(
idParam
);
}
}
build.gradle
浏览文件 @
ef5d4dcc
...
@@ -54,8 +54,8 @@ allprojects {
...
@@ -54,8 +54,8 @@ allprojects {
mavenCentral
()
mavenCentral
()
}
}
sourceCompatibility
=
JavaVersion
.
VERSION_1
7
sourceCompatibility
=
JavaVersion
.
VERSION_1
6
targetCompatibility
=
JavaVersion
.
VERSION_1
7
targetCompatibility
=
JavaVersion
.
VERSION_1
6
}
}
subprojects
{
subprojects
{
...
...
package-lock.json
0 → 100644
浏览文件 @
ef5d4dcc
This source diff could not be displayed because it is too large. You can
view the blob
instead.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论