Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Kwan的解忧杂货铺@新空间代码工作室
SpringBoot-kwan
提交
f7331145
S
SpringBoot-kwan
项目概览
Kwan的解忧杂货铺@新空间代码工作室
/
SpringBoot-kwan
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SpringBoot-kwan
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
f7331145
编写于
8月 17, 2023
作者:
Kwan的解忧杂货铺@新空间代码工作室
🐭
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix:代码整理
上级
6dd660c9
变更
7
显示空白变更内容
内联
并排
Showing
7 changed file
with
156 addition
and
43 deletion
+156
-43
src/main/java/com/kwan/springbootkwan/controller/BookController.java
...va/com/kwan/springbootkwan/controller/BookController.java
+25
-3
src/main/java/com/kwan/springbootkwan/service/impl/UserServiceImpl.java
...com/kwan/springbootkwan/service/impl/UserServiceImpl.java
+1
-2
src/main/java/com/kwan/springbootkwan/utils/DateUtils.java
src/main/java/com/kwan/springbootkwan/utils/DateUtils.java
+0
-1
src/main/java/com/kwan/springbootkwan/utils/GoodsRankUtil.java
...ain/java/com/kwan/springbootkwan/utils/GoodsRankUtil.java
+96
-0
src/main/java/com/kwan/springbootkwan/utils/OpenAIChatGptUtil.java
...java/com/kwan/springbootkwan/utils/OpenAIChatGptUtil.java
+1
-37
src/main/java/com/kwan/springbootkwan/utils/SensitiveWordUtil.java
...java/com/kwan/springbootkwan/utils/SensitiveWordUtil.java
+8
-0
src/main/java/com/kwan/springbootkwan/utils/ThreadPoolUntil.java
...n/java/com/kwan/springbootkwan/utils/ThreadPoolUntil.java
+25
-0
未找到文件。
src/main/java/com/kwan/springbootkwan/controller/BookController.java
浏览文件 @
f7331145
package
com.kwan.springbootkwan.controller
;
package
com.kwan.springbootkwan.controller
;
import
com.kwan.springbootkwan.utils.ThreadPoolUntil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.CrossOrigin
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.context.request.async.DeferredResult
;
/**
/**
* 方法上跨域配置
* 方法上跨域配置
...
@@ -11,10 +17,26 @@ import org.springframework.web.bind.annotation.*;
...
@@ -11,10 +17,26 @@ import org.springframework.web.bind.annotation.*;
* @version : 2.2.0
* @version : 2.2.0
* @date : 2022/12/19 16:10
* @date : 2022/12/19 16:10
*/
*/
@Api
(
description
=
"书籍信息"
,
tags
=
"BookController"
)
@Api
(
tags
=
"BookController"
)
@RestController
@RestController
public
class
BookController
{
public
class
BookController
{
@ApiOperation
(
value
=
"异步添加书籍"
,
notes
=
"异步添加书籍"
)
@CrossOrigin
(
maxAge
=
1800
,
allowedHeaders
=
"*"
)
@PostMapping
(
"addBookAsyn"
)
public
DeferredResult
<
String
>
addBookAsyn
(
String
name
)
{
DeferredResult
<
String
>
deferredResult
=
new
DeferredResult
<>(
10000L
);
// 设置超时处理
deferredResult
.
onTimeout
(()
->
deferredResult
.
setErrorResult
(
"请求超时"
));
// 设置错误处理
deferredResult
.
onError
((
Throwable
t
)
->
deferredResult
.
setErrorResult
(
"系统错误"
));
// 创建任务
Runnable
task
=
()
->
deferredResult
.
setResult
(
"receive:"
+
name
);
ThreadPoolUntil
.
executeTask
(
task
);
return
deferredResult
;
}
@ApiOperation
(
value
=
"添加书籍"
,
notes
=
"添加书籍"
)
@ApiOperation
(
value
=
"添加书籍"
,
notes
=
"添加书籍"
)
@CrossOrigin
(
value
=
"http://localhost:8081"
,
maxAge
=
1800
,
allowedHeaders
=
"*"
)
@CrossOrigin
(
value
=
"http://localhost:8081"
,
maxAge
=
1800
,
allowedHeaders
=
"*"
)
@PostMapping
(
"addBook"
)
@PostMapping
(
"addBook"
)
...
...
src/main/java/com/kwan/springbootkwan/service/impl/UserServiceImpl.java
浏览文件 @
f7331145
...
@@ -7,7 +7,6 @@ import com.kwan.springbootkwan.entity.User;
...
@@ -7,7 +7,6 @@ import com.kwan.springbootkwan.entity.User;
import
com.kwan.springbootkwan.mapper.UserMapper
;
import
com.kwan.springbootkwan.mapper.UserMapper
;
import
com.kwan.springbootkwan.service.IPersonService
;
import
com.kwan.springbootkwan.service.IPersonService
;
import
com.kwan.springbootkwan.service.IUserService
;
import
com.kwan.springbootkwan.service.IUserService
;
import
io.seata.spring.annotation.GlobalTransactional
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -43,7 +42,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
...
@@ -43,7 +42,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
}
}
@DS
(
value
=
"kwan-ds"
)
@DS
(
value
=
"kwan-ds"
)
@GlobalTransactional
//
@GlobalTransactional
@Override
@Override
public
User
saveUser
(
User
user
)
{
public
User
saveUser
(
User
user
)
{
userMapper
.
insert
(
user
);
userMapper
.
insert
(
user
);
...
...
src/main/java/com/kwan/springbootkwan/utils/DateUtils.java
浏览文件 @
f7331145
...
@@ -17,7 +17,6 @@ import java.util.List;
...
@@ -17,7 +17,6 @@ import java.util.List;
* @version : 2.2.0
* @version : 2.2.0
* @date : 2023/7/21 23:29
* @date : 2023/7/21 23:29
*/
*/
@Slf4j
@Slf4j
public
class
DateUtils
{
public
class
DateUtils
{
...
...
src/main/java/com/kwan/springbootkwan/utils/GoodsRank
Service
.java
→
src/main/java/com/kwan/springbootkwan/utils/GoodsRank
Util
.java
浏览文件 @
f7331145
...
@@ -6,13 +6,13 @@ import redis.clients.jedis.Tuple;
...
@@ -6,13 +6,13 @@ import redis.clients.jedis.Tuple;
import
java.util.Set
;
import
java.util.Set
;
/**
/**
*
商品排序
*
redis商品排序工具类
*
*
* @author : qinyingjie
* @author : qinyingjie
* @version : 2.2.0
* @version : 2.2.0
* @date : 2022/12/22 10:01
* @date : 2022/12/22 10:01
*/
*/
public
class
GoodsRank
Service
{
public
class
GoodsRank
Util
{
private
static
Jedis
jedis
;
private
static
Jedis
jedis
;
...
@@ -25,37 +25,39 @@ public class GoodsRankService {
...
@@ -25,37 +25,39 @@ public class GoodsRankService {
*/
*/
private
static
String
KEY
=
"goods"
;
private
static
String
KEY
=
"goods"
;
public
static
void
removeOne
()
{
/**
/**
* zrem——移除某个商品
* zrem——移除某个商品
* 命令格式:***zrem 排行榜名称 商品标识*** 时间复杂度:O(log(N))
* 命令格式:***zrem 排行榜名称 商品标识*** 时间复杂度:O(log(N))
*/
*/
public
static
void
removeOne
()
{
Long
aLong
=
jedis
.
zrem
(
KEY
,
"god-10"
);
Long
aLong
=
jedis
.
zrem
(
KEY
,
"god-10"
);
}
}
public
static
void
addScore
()
{
/**
/**
* zincrby——增减商品分数
* zincrby——增减商品分数
* 命令格式:***zincrby 排行榜名称 分数增量 商品标识*** 时间复杂度:O(log(N))
* 命令格式:***zincrby 排行榜名称 分数增量 商品标识*** 时间复杂度:O(log(N))
* 有的排行榜是在变更时重新设置商品的分数,而还有的排行榜则是以增量方式修改商品分数,增量可正可负。如果执行zincrby时商品尚不在排行榜中,则认为其原始分数为0,相当于执行zdd。
* 有的排行榜是在变更时重新设置商品的分数,而还有的排行榜则是以增量方式修改商品分数,增量可正可负。如果执行zincrby时商品尚不在排行榜中,则认为其原始分数为0,相当于执行zdd。
*/
*/
public
static
void
addScore
()
{
Double
zincrby
=
jedis
.
zincrby
(
KEY
,
1
,
"god-10"
);
Double
zincrby
=
jedis
.
zincrby
(
KEY
,
1
,
"god-10"
);
System
.
out
.
println
(
zincrby
);
System
.
out
.
println
(
zincrby
);
}
}
public
static
void
getNum
()
{
/**
/**
* zrevrank——查看商品的排名
* zrevrank——查看商品的排名
* 命令格式:***zrevrank 排行榜名称 商品标识*** 时间复杂度:O(log(N))
* 命令格式:***zrevrank 排行榜名称 商品标识*** 时间复杂度:O(log(N))
* 与zrevrange类似,zrevrank是以分数由高到低的排序返回商品排名(实际返回的是以0开始的索引),对应的zrank则是以分数由低到高的排序返回排名。
* 与zrevrange类似,zrevrank是以分数由高到低的排序返回商品排名(实际返回的是以0开始的索引),对应的zrank则是以分数由低到高的排序返回排名。
*/
*/
public
static
void
getNum
()
{
Long
aLong
=
jedis
.
zrevrank
(
KEY
,
"god-10"
);
Long
aLong
=
jedis
.
zrevrank
(
KEY
,
"god-10"
);
System
.
out
.
println
(
aLong
);
System
.
out
.
println
(
aLong
);
Long
aLong2
=
jedis
.
zrevrank
(
KEY
,
"god-1000"
);
Long
aLong2
=
jedis
.
zrevrank
(
KEY
,
"god-1000"
);
System
.
out
.
println
(
aLong2
);
System
.
out
.
println
(
aLong2
);
}
}
public
static
void
getRange
()
{
/**
/**
* zrevrange——按名次查看排行榜
* zrevrange——按名次查看排行榜
* 命令格式:***zrevrange 排行榜名称 起始位置 结束位置 [withscores]*** 时间复杂度:O(log(N)+M)
* 命令格式:***zrevrange 排行榜名称 起始位置 结束位置 [withscores]*** 时间复杂度:O(log(N)+M)
...
@@ -63,27 +65,31 @@ public class GoodsRankService {
...
@@ -63,27 +65,31 @@ public class GoodsRankService {
* 起始位置和结束位置都是以0开始的索引,且都包含在内。如果结束位置为-1则查看范围为整个排行榜。
* 起始位置和结束位置都是以0开始的索引,且都包含在内。如果结束位置为-1则查看范围为整个排行榜。
* 带上withscores则会返回商品分数。
* 带上withscores则会返回商品分数。
*/
*/
public
static
void
getRange
()
{
Set
<
String
>
zrevrange
=
jedis
.
zrevrange
(
KEY
,
2
,
5
);
Set
<
String
>
zrevrange
=
jedis
.
zrevrange
(
KEY
,
2
,
5
);
zrevrange
.
forEach
(
System
.
out
::
println
);
zrevrange
.
forEach
(
System
.
out
::
println
);
Set
<
Tuple
>
set
=
jedis
.
zrangeWithScores
(
KEY
,
2
,
5
);
Set
<
Tuple
>
set
=
jedis
.
zrangeWithScores
(
KEY
,
2
,
5
);
set
.
forEach
(
System
.
out
::
println
);
set
.
forEach
(
System
.
out
::
println
);
}
}
public
static
void
getData
()
{
/**
/**
* zscore——查看商品分数
* zscore——查看商品分数
* 命令格式:***zscore 排行榜名称 商品标识*** 时间复杂度:O(1)
* 命令格式:***zscore 排行榜名称 商品标识*** 时间复杂度:O(1)
*/
*/
public
static
void
getData
()
{
Double
zscore
=
jedis
.
zscore
(
KEY
,
"go-20"
);
Double
zscore
=
jedis
.
zscore
(
KEY
,
"go-20"
);
System
.
out
.
println
(
zscore
);
System
.
out
.
println
(
zscore
);
}
}
public
static
void
setData
()
{
for
(
int
i
=
0
;
i
<
100
;
i
++)
{
/**
/**
* zadd——设置商品分数
* zadd——设置商品分数
* 命令格式:***zadd 排行榜名称 分数 商品名字 时间复杂度:O(log(N))
* 命令格式:***zadd 排行榜名称 分数 商品名字 时间复杂度:O(log(N))
*/
*/
public
static
void
setData
()
{
for
(
int
i
=
0
;
i
<
100
;
i
++)
{
jedis
.
zadd
(
KEY
,
i
,
"go-"
+
i
);
jedis
.
zadd
(
KEY
,
i
,
"go-"
+
i
);
}
}
}
}
...
...
src/main/java/com/kwan/springbootkwan/utils/OpenAIChatGptUtil.java
浏览文件 @
f7331145
...
@@ -14,7 +14,7 @@ import java.util.List;
...
@@ -14,7 +14,7 @@ import java.util.List;
import
java.util.Map
;
import
java.util.Map
;
/**
/**
*
人工智能
chatgpt-api
* chatgpt-api
*
*
* @author : qinyingjie
* @author : qinyingjie
* @version : 2.2.0
* @version : 2.2.0
...
@@ -34,7 +34,6 @@ public class OpenAIChatGptUtil {
...
@@ -34,7 +34,6 @@ public class OpenAIChatGptUtil {
*/
*/
final
static
private
String
Authorization
=
"Bearer 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"
;
final
static
private
String
Authorization
=
"Bearer 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"
;
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
String
question
=
"默写静夜思"
;
String
question
=
"默写静夜思"
;
//这里是我根据模型请求封装的模型实体
//这里是我根据模型请求封装的模型实体
...
@@ -61,39 +60,4 @@ public class OpenAIChatGptUtil {
...
@@ -61,39 +60,4 @@ public class OpenAIChatGptUtil {
}
}
System
.
out
.
println
(
"成功"
);
System
.
out
.
println
(
"成功"
);
}
}
// public static CompletionChatResponse chatCompletion(String prompt) {//prompt即要将要发送至gtp的内容
// //这里我把用户发送和机器人返回的20条内容内容存在了redis中,用于关联对话上下文场景,如果不需要,注释掉即可,直接new一个ArrayList
// List<Object> messages = getUserCacheMessages();
// int size = messages.size();
//
// if (size > 19) {
// messages.remove(0);
// }
//
// messages.add(message);
// setUserCacheMessages(messages);//把新的放到redis
// completionChatRequest.setMessages(messages);
// post.body(JSON.toJSONString(completionChatRequest));
// String body = post.execute().body();
// CompletionChatResponse completionChatResponse = JSON.parseObject(body, CompletionChatResponse.class);
// return completionChatResponse;
// }
//
// public static List<Object> getUserCacheMessages(){
// RedisCache redisCache = SpringUtils.getBean(RedisCache.class);
// List<Object> cacheMessages = redisCache.getCacheObject(JwtTokenUtil.getUserId + ":messages");
// if (StringUtils.isEmpty(cacheMessages)){
// cacheMessages= new ArrayList<>();
// }
// return cacheMessages;
// }
//
// public static void setUserCacheMessages(List<Object> messages){
// while(messages.size()>20){
// messages.remove(0);
// }
// RedisCache redisCache = SpringUtils.getBean(RedisCache.class);
// redisCache.setCacheObject(JwtTokenUtil.getUserId + ":messages", messages, 30, TimeUnit.MINUTES);
// }
}
}
src/main/java/com/kwan/springbootkwan/utils/SensitiveWordUtil.java
浏览文件 @
f7331145
...
@@ -6,6 +6,14 @@ import org.springframework.stereotype.Component;
...
@@ -6,6 +6,14 @@ import org.springframework.stereotype.Component;
import
java.util.List
;
import
java.util.List
;
/**
* 敏感词过滤工具类
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/8/17 09:41
*/
@Component
@Component
public
class
SensitiveWordUtil
{
public
class
SensitiveWordUtil
{
...
...
src/main/java/com/kwan/springbootkwan/utils/ThreadPoolUntil.java
0 → 100644
浏览文件 @
f7331145
package
com.kwan.springbootkwan.utils
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
/**
* 线程池工具类
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/8/17 09:38
*/
public
class
ThreadPoolUntil
{
private
static
final
int
THREAD_POOL_SIZE
=
10
;
private
static
ExecutorService
executorService
=
Executors
.
newFixedThreadPool
(
THREAD_POOL_SIZE
);
public
static
void
executeTask
(
Runnable
task
)
{
executorService
.
submit
(
task
);
}
public
static
void
shutdown
()
{
executorService
.
shutdown
();
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录