Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
a792a2b3
提交
a792a2b3
authored
4月 15, 2022
作者:
17607474349
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:
1、添加hutool相关依赖 2、封装对zy常用的工具类(发送请求、获取token)
上级
f773da7a
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
365 行增加
和
33 行删除
+365
-33
LocationTagImportExcel.java
...com/yiring/app/excel/location/LocationTagImportExcel.java
+1
-5
ZyLocationTagAddParam.java
...m/yiring/app/param/location/zy/ZyLocationTagAddParam.java
+50
-0
LocationTagService.java
...a/com/yiring/app/service/location/LocationTagService.java
+12
-12
LocationTagServiceImpl.java
...ing/app/service/location/impl/LocationTagServiceImpl.java
+11
-0
LocationTagController.java
...c/main/java/com/yiring/app/web/LocationTagController.java
+1
-1
build.gradle
basic-auth/build.gradle
+7
-2
RedisConfig.java
...uth/src/main/java/com/yiring/auth/config/RedisConfig.java
+60
-0
PostService.java
...c/main/java/com/yiring/auth/service/post/PostService.java
+13
-13
ZyUtil.java
basic-auth/src/main/java/com/yiring/auth/util/ZyUtil.java
+171
-0
BeanUtils.java
.../util/src/main/java/com/yiring/common/util/BeanUtils.java
+39
-0
没有找到文件。
app/src/main/java/com/yiring/app/excel/location/LocationTagImportExcel.java
浏览文件 @
a792a2b3
...
...
@@ -29,12 +29,8 @@ public class LocationTagImportExcel implements Serializable {
@ExcelColumn
(
index
=
1
)
String
type
;
// 所用实体
@ExcelColumn
(
index
=
2
)
String
entityType
;
// 设备编码
@ExcelColumn
(
index
=
3
)
@ExcelColumn
(
index
=
2
)
String
imei
;
public
LocationTag
transform
()
{
...
...
app/src/main/java/com/yiring/app/param/location/zy/ZyLocationTagAddParam.java
0 → 100644
浏览文件 @
a792a2b3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
location
.
zy
;
import
cn.hutool.core.util.StrUtil
;
import
com.yiring.app.domain.location.LocationTag
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* zy定位标签新增入参
* @author LJ-2204
* @date 2022/4/15
*/
@ApiModel
(
"ZyLocationTagAddParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
ZyLocationTagAddParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
8828137320896062620L
;
@ApiModelProperty
(
value
=
"工厂"
,
example
=
"100"
)
String
orgId
;
@ApiModelProperty
(
value
=
"标签类型"
,
example
=
"蓝牙人员定位卡"
,
required
=
true
)
LocationTag
.
Type
types
;
@ApiModelProperty
(
value
=
"编号"
,
example
=
"BTT88888888"
,
required
=
true
)
String
tagId
;
@ApiModelProperty
(
value
=
"实体类型"
,
example
=
"car"
,
required
=
true
)
String
entityType
;
public
static
ZyLocationTagAddParam
transform
(
LocationTag
locationTag
)
{
String
entityType
=
StrUtil
.
equals
(
locationTag
.
getType
().
name
(),
"BTT02"
)
?
"car"
:
"staff"
;
return
ZyLocationTagAddParam
.
builder
()
.
orgId
(
"100"
)
.
tagId
(
locationTag
.
getCode
())
.
types
(
locationTag
.
getType
())
.
entityType
(
entityType
)
.
build
();
}
}
app/src/main/java/com/yiring/app/service/location/LocationTagService.java
浏览文件 @
a792a2b3
...
...
@@ -20,43 +20,43 @@ import org.springframework.web.multipart.MultipartFile;
public
interface
LocationTagService
{
/**
* 新增定位标签
* @param param
* @return
* @param param
入参
* @return
Result<String>
*/
Result
<
String
>
addLocationTag
(
LocationTagAddParam
param
);
/**
* 分页查询
* @param param
* @return
* @param param
入参
* @return
Result<PageVo<LocationTagVo>>
*/
Result
<
PageVo
<
LocationTagVo
>>
findLocationTagPage
(
LocationTagFindParam
param
);
/**
* 销毁定位标签
* @param param
* @return
* @param param
入参
* @return
Result<String>
*/
Result
<
String
>
deleteLocationTag
(
LocationTagDeleteParam
param
);
/**
* 导出定位标签
* @param param
* @param response
* @param param
入参
* @param response
响应信息
*/
void
exportLocationTagInfo
(
LocationTagFindParam
param
,
HttpServletResponse
response
);
/**
* 导入定位标签
* @param file
* @return
* @param file
文件
* @return
Result<String>
*/
Result
<
String
>
importLocationTagInfo
(
MultipartFile
file
);
/**
* 修改定位标签
* @param param
* @return
* @param param
入参
* @return
Result<String>
*/
Result
<
String
>
modifyLocationTag
(
LocationTagModifyParam
param
,
IdParam
idParam
);
}
app/src/main/java/com/yiring/app/service/location/impl/LocationTagServiceImpl.java
浏览文件 @
a792a2b3
...
...
@@ -14,8 +14,10 @@ import com.yiring.app.param.location.LocationTagAddParam;
import
com.yiring.app.param.location.LocationTagDeleteParam
;
import
com.yiring.app.param.location.LocationTagFindParam
;
import
com.yiring.app.param.location.LocationTagModifyParam
;
import
com.yiring.app.param.location.zy.ZyLocationTagAddParam
;
import
com.yiring.app.service.location.LocationTagService
;
import
com.yiring.app.vo.location.LocationTagVo
;
import
com.yiring.auth.util.ZyUtil
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.param.IdParam
;
...
...
@@ -23,6 +25,7 @@ import com.yiring.common.vo.PageVo;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
java.io.Serializable
;
import
java.net.URLEncoder
;
import
java.nio.charset.StandardCharsets
;
import
java.util.ArrayList
;
...
...
@@ -65,6 +68,14 @@ public class LocationTagServiceImpl implements LocationTagService {
if
(
hasLocationTagInfoByCode
(
param
.
getCode
()))
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"编号已存在"
);
LocationTag
locationTag
=
param
.
transform
();
locationTagRepository
.
save
(
locationTag
);
ZyLocationTagAddParam
zyLocationTagAddParam
=
ZyLocationTagAddParam
.
transform
(
locationTag
);
List
<
ZyLocationTagAddParam
>
of
=
ListUtil
.
of
(
zyLocationTagAddParam
);
new
Thread
(()
->
{
Result
<
Serializable
>
result
=
ZyUtil
.
post
(
"/positionApi/api/tag/saveTag"
,
of
,
3000
);
if
(
result
.
getCode
()
!=
200
)
throw
new
RuntimeException
(
result
.
getMessage
());
})
.
start
();
return
Result
.
ok
();
}
...
...
app/src/main/java/com/yiring/app/web/LocationTagController.java
浏览文件 @
a792a2b3
...
...
@@ -28,7 +28,7 @@ import org.springframework.web.multipart.MultipartFile;
@Slf4j
@Validated
@Api
(
tags
=
"
职位信息
"
)
@Api
(
tags
=
"
定位标签
"
)
@RestController
@RequestMapping
(
"/location/tag/"
)
public
class
LocationTagController
{
...
...
basic-auth/build.gradle
浏览文件 @
a792a2b3
...
...
@@ -18,12 +18,17 @@ dependencies {
// hutool-core
implementation
"cn.hutool:hutool-core:${hutoolVersion}"
// hutool-json
implementation
"cn.hutool:hutool-json:${hutoolVersion}"
// hutool-http
implementation
"cn.hutool:hutool-http:${hutoolVersion}"
// fastjson
implementation
"com.alibaba:fastjson:${fastJsonVersion}"
// myexcel
implementation
"com.github.liaochong:myexcel:${myexcelVersion}"
// hutool-http
implementation
"cn.hutool:hutool-http:${hutoolVersion}"
}
basic-auth/src/main/java/com/yiring/auth/config/RedisConfig.java
0 → 100644
浏览文件 @
a792a2b3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
auth
.
config
;
import
java.time.Duration
;
import
org.springframework.cache.annotation.EnableCaching
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.redis.cache.RedisCacheConfiguration
;
import
org.springframework.data.redis.cache.RedisCacheManager
;
import
org.springframework.data.redis.connection.RedisConnectionFactory
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.listener.RedisMessageListenerContainer
;
import
org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer
;
import
org.springframework.data.redis.serializer.RedisSerializationContext
;
import
org.springframework.data.redis.serializer.StringRedisSerializer
;
/**
* Redis Config
* @author LJ-2204
* @date 2022/4/15
*/
@EnableCaching
@Configuration
public
class
RedisConfig
{
@Bean
public
RedisTemplate
<
String
,
Object
>
redisTemplate
(
RedisConnectionFactory
factory
)
{
RedisTemplate
<
String
,
Object
>
redisTemplate
=
new
RedisTemplate
<>();
StringRedisSerializer
stringRedisSerializer
=
new
StringRedisSerializer
();
redisTemplate
.
setKeySerializer
(
stringRedisSerializer
);
redisTemplate
.
setHashKeySerializer
(
stringRedisSerializer
);
redisTemplate
.
setDefaultSerializer
(
new
GenericJackson2JsonRedisSerializer
());
redisTemplate
.
setEnableTransactionSupport
(
true
);
redisTemplate
.
setConnectionFactory
(
factory
);
redisTemplate
.
afterPropertiesSet
();
return
redisTemplate
;
}
@Bean
public
RedisCacheManager
cacheManager
(
RedisConnectionFactory
connectionFactory
)
{
RedisCacheConfiguration
config
=
RedisCacheConfiguration
.
defaultCacheConfig
()
.
entryTtl
(
Duration
.
ofMinutes
(
5
))
.
serializeKeysWith
(
RedisSerializationContext
.
SerializationPair
.
fromSerializer
(
new
StringRedisSerializer
()))
.
serializeValuesWith
(
RedisSerializationContext
.
SerializationPair
.
fromSerializer
(
new
GenericJackson2JsonRedisSerializer
())
)
.
disableCachingNullValues
();
return
RedisCacheManager
.
builder
(
connectionFactory
).
cacheDefaults
(
config
).
transactionAware
().
build
();
}
@Bean
public
RedisMessageListenerContainer
redisMessageListenerContainer
(
RedisConnectionFactory
redisConnectionFactory
)
{
RedisMessageListenerContainer
redisMessageListenerContainer
=
new
RedisMessageListenerContainer
();
redisMessageListenerContainer
.
setConnectionFactory
(
redisConnectionFactory
);
return
redisMessageListenerContainer
;
}
}
basic-auth/src/main/java/com/yiring/auth/service/post/PostService.java
浏览文件 @
a792a2b3
...
...
@@ -17,51 +17,51 @@ import javax.servlet.http.HttpServletResponse;
public
interface
PostService
{
/**
* 新增职位信息
* @param postParam
* @param postParam
入参
* @return Result<String>
*/
Result
<
String
>
addPost
(
PostParam
postParam
);
/**
* 修改职位信息
* @param postParam
* @param idParam
* @param postParam
入参
* @param idParam
id
* @return Result<String>
*/
Result
<
String
>
modifyPost
(
PostParam
postParam
,
IdParam
idParam
);
/**
* 销毁职位信息
* @param idParam
* @return
* @param idParam
id
* @return
Result<String>
*/
Result
<
String
>
deletePost
(
IdParam
idParam
);
/**
* 职位信息分页
* @param param
* @return
* @param param
入参
* @return
Result<PageVo<PostVo>>
*/
Result
<
PageVo
<
PostVo
>>
findPostPage
(
PostFindParam
param
);
/**
* 详细信息查询
* @param idParam
* @return
* @param idParam
id
* @return
Result<PostVo>
*/
Result
<
PostVo
>
findPostById
(
IdParam
idParam
);
/**
* 根据名称判断是否存在职业信息
* @param name
* @return
* @param name
职业名称
* @return
T/F
*/
boolean
hasPostInfo
(
String
name
);
/**
* 导出职位信息
* @param param
* @param response
* @param param
入参
* @param response
响应信息
*/
void
exportPostInfo
(
PostFindParam
param
,
HttpServletResponse
response
);
}
basic-auth/src/main/java/com/yiring/auth/util/ZyUtil.java
0 → 100644
浏览文件 @
a792a2b3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
auth
.
util
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.map.MapUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.http.Header
;
import
cn.hutool.http.HttpRequest
;
import
cn.hutool.http.HttpUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.util.BeanUtils
;
import
java.io.Serializable
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
import
lombok.experimental.UtilityClass
;
import
org.springframework.data.redis.core.RedisTemplate
;
/**
* 真源授权工具
* @author LJ-2204
* @date 2022/4/15
*/
@UtilityClass
public
class
ZyUtil
{
RedisTemplate
<
String
,
Object
>
redisTemplate
;
static
{
redisTemplate
=
BeanUtils
.
getBean
(
"redisTemplate"
);
}
public
final
String
CLIENT_ID
=
"sc21080400"
;
public
final
String
CLIENT_SECRET
=
"12A14FDC"
;
public
final
String
GRANT_TYPE
=
"client_credentials"
;
public
final
String
KEY
=
"zy_token"
;
public
final
String
TOKEN_TYPE
=
"bearer "
;
public
final
String
URL_PREFIX
=
"http://project.yz-online.com:789"
;
/**
* 获取token
* @return token
*/
public
static
String
login
()
{
Object
obj
=
redisTemplate
.
opsForValue
().
get
(
KEY
);
if
(
ObjectUtil
.
isNotEmpty
(
obj
))
{
return
String
.
valueOf
(
obj
);
}
Map
<
String
,
Object
>
map
=
MapUtil
.
createMap
(
HashMap
.
class
);
map
.
put
(
"client_id"
,
CLIENT_ID
);
map
.
put
(
"client_secret"
,
CLIENT_SECRET
);
map
.
put
(
"grant_type"
,
GRANT_TYPE
);
String
json
=
HttpUtil
.
get
(
"http://project.yz-online.com:789/positionApi/oauth/token"
,
map
);
Map
result
=
JSON
.
parseObject
(
json
,
Map
.
class
);
String
access_token
=
result
.
get
(
"access_token"
).
toString
();
redisTemplate
.
opsForValue
().
set
(
KEY
,
access_token
,
1200
,
TimeUnit
.
SECONDS
);
return
access_token
;
}
/**
* 判断token是否有效
* @return T/F
*/
public
static
boolean
getToken
()
{
return
ObjectUtil
.
isNotEmpty
(
redisTemplate
.
opsForValue
().
get
(
KEY
));
}
/**
* get请求
* @param urlString 路径
* @param obj 参数
* @param timeout 请求时长
* @return json
*/
public
static
Result
get
(
String
urlString
,
Object
obj
,
int
timeout
)
{
String
json
=
JSONUtil
.
toJsonStr
(
obj
);
String
token
=
login
();
String
body
=
HttpRequest
.
get
(
URL_PREFIX
+
urlString
)
.
header
(
Header
.
AUTHORIZATION
,
TOKEN_TYPE
+
token
)
.
header
(
Header
.
CONTENT_TYPE
,
"application/json"
)
.
body
(
json
)
.
timeout
(
timeout
)
.
execute
()
.
body
();
return
getResult
(
body
);
}
/**
* post请求
* @param urlString 路径
* @param obj 参数
* @param timeout 请求时长
* @return json
*/
public
static
Result
<
Serializable
>
post
(
String
urlString
,
Object
obj
,
int
timeout
)
{
String
json
=
JSONUtil
.
toJsonStr
(
obj
);
String
token
=
login
();
String
body
=
HttpRequest
.
post
(
URL_PREFIX
+
urlString
)
.
header
(
Header
.
AUTHORIZATION
,
TOKEN_TYPE
+
token
)
.
header
(
Header
.
CONTENT_TYPE
,
"application/json"
)
.
body
(
json
)
.
timeout
(
timeout
)
.
execute
()
.
body
();
return
getResult
(
body
);
}
/**
* put请求
* @param urlString 路径
* @param obj 参数
* @param timeout 请求时长
* @return json
*/
public
static
Result
<
Serializable
>
put
(
String
urlString
,
Object
obj
,
int
timeout
)
{
String
json
=
JSONUtil
.
toJsonStr
(
obj
);
String
token
=
login
();
String
body
=
HttpRequest
.
put
(
URL_PREFIX
+
urlString
)
.
header
(
Header
.
AUTHORIZATION
,
TOKEN_TYPE
+
token
)
.
header
(
Header
.
CONTENT_TYPE
,
"application/json"
)
.
body
(
json
)
.
timeout
(
timeout
)
.
execute
()
.
body
();
return
getResult
(
body
);
}
/**
* delete请求
* @param urlString 路径
* @param obj 参数
* @param timeout 请求时长
* @return json
*/
public
static
Result
<
Serializable
>
delete
(
String
urlString
,
Object
obj
,
int
timeout
)
{
String
json
=
JSONUtil
.
toJsonStr
(
obj
);
String
token
=
login
();
String
body
=
HttpRequest
.
delete
(
URL_PREFIX
+
urlString
)
.
header
(
Header
.
AUTHORIZATION
,
TOKEN_TYPE
+
token
)
.
header
(
Header
.
CONTENT_TYPE
,
"application/json"
)
.
body
(
json
)
.
timeout
(
timeout
)
.
execute
()
.
body
();
return
getResult
(
body
);
}
/**
* 返回类型转换
* @param body json
* @return Result
*/
private
static
Result
<
Serializable
>
getResult
(
String
body
)
{
Map
map
=
JSONUtil
.
toBean
(
body
,
Map
.
class
);
Integer
code
=
Convert
.
toInt
(
map
.
get
(
"code"
));
String
msg
=
Convert
.
toStr
(
map
.
get
(
"msg"
));
return
Result
.
builder
().
code
(
code
).
message
(
msg
).
build
();
}
}
basic-common/util/src/main/java/com/yiring/common/util/BeanUtils.java
0 → 100644
浏览文件 @
a792a2b3
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
common
.
util
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.stereotype.Component
;
@Component
public
class
BeanUtils
implements
ApplicationContextAware
{
/**
* 以静态变量保存ApplicationContext,可在任意代码中取出ApplicaitonContext.
*/
private
static
ApplicationContext
context
;
/**
* 实现ApplicationContextAware接口的context注入函数, 将其存入静态变量.
*/
@Override
public
void
setApplicationContext
(
ApplicationContext
context
)
{
BeanUtils
.
context
=
context
;
}
public
static
ApplicationContext
getApplicationContext
()
{
return
context
;
}
/**
* 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型. 方法返回值的类型由调用者决定
*/
public
static
<
T
>
T
getBean
(
String
name
)
{
return
(
T
)
context
.
getBean
(
name
);
}
/// 获取当前环境
public
String
getActiveProfile
()
{
return
context
.
getEnvironment
().
getActiveProfiles
()[
0
];
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论