Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
elleai
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ai-tech
E
ellehuis-group
backend
elleai
Commits
30105aa8
Commit
30105aa8
authored
Oct 21, 2024
by
陈立彬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
知识管理接口
parent
c02dd4e7
Changes
29
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
1160 additions
and
47 deletions
+1160
-47
AiPlatformExtensionService.java
...lleai/application/service/AiPlatformExtensionService.java
+4
-10
AppExamineService.java
.../breeze/elleai/application/service/AppExamineService.java
+22
-0
AiPlatformExtensionController.java
...i/controller/extension/AiPlatformExtensionController.java
+0
-29
ExamineMobileController.java
...eeze/elleai/controller/front/ExamineMobileController.java
+7
-0
KbRequestModel.java
.../elleai/domain/sparring/model/request/KbRequestModel.java
+19
-0
KbSaveModel.java
...eze/elleai/domain/sparring/model/request/KbSaveModel.java
+49
-0
KbTagRequestModel.java
...leai/domain/sparring/model/request/KbTagRequestModel.java
+17
-0
KbTagSaveModel.java
.../elleai/domain/sparring/model/request/KbTagSaveModel.java
+36
-0
KbVectorRequestModel.java
...i/domain/sparring/model/request/KbVectorRequestModel.java
+15
-0
KbVectorSaveModel.java
...leai/domain/sparring/model/request/KbVectorSaveModel.java
+29
-0
KbResponseModel.java
...lleai/domain/sparring/model/response/KbResponseModel.java
+47
-0
KbTagResponseModel.java
...ai/domain/sparring/model/response/KbTagResponseModel.java
+34
-0
KbVectorResponseModel.java
...domain/sparring/model/response/KbVectorResponseModel.java
+27
-0
KbService.java
...a/cn/breeze/elleai/domain/sparring/service/KbService.java
+31
-0
KbServiceImpl.java
.../breeze/elleai/domain/sparring/service/KbServiceImpl.java
+112
-0
KbTagService.java
...n/breeze/elleai/domain/sparring/service/KbTagService.java
+35
-0
KbTagServiceImpl.java
...eeze/elleai/domain/sparring/service/KbTagServiceImpl.java
+101
-0
KbVectorService.java
...reeze/elleai/domain/sparring/service/KbVectorService.java
+31
-0
KbVectorServiceImpl.java
...e/elleai/domain/sparring/service/KbVectorServiceImpl.java
+84
-0
KbEntity.java
src/main/java/cn/breeze/elleai/infra/entity/KbEntity.java
+70
-0
KbTagEntity.java
src/main/java/cn/breeze/elleai/infra/entity/KbTagEntity.java
+62
-0
KbVectorEntity.java
...in/java/cn/breeze/elleai/infra/entity/KbVectorEntity.java
+50
-0
KbTableDef.java
.../java/cn/breeze/elleai/infra/entity/table/KbTableDef.java
+85
-0
KbTagTableDef.java
...va/cn/breeze/elleai/infra/entity/table/KbTagTableDef.java
+78
-0
KbVectorTableDef.java
...cn/breeze/elleai/infra/entity/table/KbVectorTableDef.java
+65
-0
KbMapper.java
src/main/java/cn/breeze/elleai/infra/mapper/KbMapper.java
+16
-0
KbTagMapper.java
src/main/java/cn/breeze/elleai/infra/mapper/KbTagMapper.java
+16
-0
KbVectorMapper.java
...in/java/cn/breeze/elleai/infra/mapper/KbVectorMapper.java
+16
-0
SingleJob.java
src/main/java/cn/breeze/elleai/job/SingleJob.java
+2
-8
No files found.
src/main/java/cn/breeze/elleai/application/service/AiPlatformExtensionService.java
View file @
30105aa8
...
...
@@ -7,12 +7,10 @@ import lombok.RequiredArgsConstructor;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.http.*
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
...
...
@@ -37,18 +35,14 @@ public class AiPlatformExtensionService {
* 单题评分+点评
* @param sessionId
* @param userId
* @param question
* @param answer
* @param userAnswer
* @param businessId 单题答题记录ID
*/
public
AiSingleEvaluateResultDto
run4SingleEvaluate
(
String
sessionId
,
String
userId
,
String
question
,
String
answer
,
String
userAnswer
)
{
public
AiSingleEvaluateResultDto
run4SingleEvaluate
(
String
sessionId
,
String
userId
,
Integer
businessId
)
{
Map
<
String
,
String
>
inputs
=
new
HashMap
<>();
inputs
.
put
(
"scene"
,
"single_evaluate"
);
inputs
.
put
(
"question"
,
question
);
inputs
.
put
(
"answer"
,
answer
);
inputs
.
put
(
"user_answer"
,
userAnswer
);
inputs
.
put
(
"business_id"
,
String
.
valueOf
(
businessId
));
JSONObject
param
=
new
JSONObject
();
param
.
put
(
"query"
,
userAnswer
);
param
.
put
(
"query"
,
businessId
);
param
.
put
(
"inputs"
,
inputs
);
param
.
put
(
"response_mode"
,
"blocking"
);
param
.
put
(
"conversation_id"
,
""
);
...
...
src/main/java/cn/breeze/elleai/application/service/AppExamineService.java
View file @
30105aa8
...
...
@@ -1314,6 +1314,28 @@ public class AppExamineService {
return
null
;
}
/**
* 获取单题答题详情
* @param businessId 答题记录ID
* @return
*/
public
ExamineDetailRecordMobileDto
getExamineRecordDetail
(
Integer
businessId
)
{
ExamineDetailRecordMobileDto
result
=
new
ExamineDetailRecordMobileDto
();
// 获取考试记录信息
ExamineRecordDetailResponseModel
recordModel
=
examineService
.
singleExamineQaDetail
(
businessId
);
if
(
Objects
.
nonNull
(
recordModel
))
{
Integer
qaId
=
recordModel
.
getQaId
();
ExamineQaResponseModel
qaDetail
=
examineService
.
examineQaDetail
(
qaId
);
if
(
Objects
.
nonNull
(
qaDetail
))
{
result
.
setQuestion
(
qaDetail
.
getQuestion
());
result
.
setAnswer
(
qaDetail
.
getAnswer
());
}
result
.
setUserAnswer
(
recordModel
.
getAnswer
());
result
.
setQaId
(
qaId
);
}
return
result
;
}
/**
* 退出考试,清除考试记录
* @param userPrincipal
...
...
src/main/java/cn/breeze/elleai/controller/extension/AiPlatformExtensionController.java
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
controller
.
extension
;
import
cn.breeze.elleai.application.dto.ApiResponse
;
import
cn.breeze.elleai.application.dto.response.AppRoleDto
;
import
cn.breeze.elleai.application.service.AiPlatformExtensionService
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
import
java.util.UUID
;
/**
* @author yangyw
*/
...
...
@@ -24,26 +17,4 @@ public class AiPlatformExtensionController {
private
final
AiPlatformExtensionService
extensionService
;
@Operation
(
summary
=
"单题点评"
)
@GetMapping
(
"/single_evaluate"
)
public
ApiResponse
<
String
>
singleEvaluate
()
{
String
userId
=
UUID
.
randomUUID
().
toString
();
String
sessionId
=
UUID
.
randomUUID
().
toString
();
String
question
=
"问题"
;
String
answer
=
"答案"
;
String
userAnswer
=
"用户答案"
;
extensionService
.
run4SingleEvaluate
(
userId
,
sessionId
,
question
,
answer
,
userAnswer
);
return
ApiResponse
.
ok
(
"SUCCESS"
);
}
@Operation
(
summary
=
"单题点评"
)
@GetMapping
(
"/total_evaluate"
)
public
ApiResponse
<
String
>
totalEvaluate
()
{
String
userId
=
UUID
.
randomUUID
().
toString
();
String
sessionId
=
UUID
.
randomUUID
().
toString
();
extensionService
.
run4TotalEvaluate
(
sessionId
,
userId
,
null
);
return
ApiResponse
.
ok
(
"SUCCESS"
);
}
}
src/main/java/cn/breeze/elleai/controller/front/ExamineMobileController.java
View file @
30105aa8
...
...
@@ -72,6 +72,13 @@ public class ExamineMobileController {
return
ApiResponse
.
ok
(
detail
);
}
@Operation
(
summary
=
"获取单题答题详情"
)
@GetMapping
(
"/single_qa/detail"
)
public
ApiResponse
<
ExamineDetailRecordMobileDto
>
singleQaDetail
(
@Schema
(
description
=
"答题记录ID"
)
@RequestParam
(
"business_id"
)
Integer
businessId
)
{
ExamineDetailRecordMobileDto
detail
=
examineService
.
getExamineRecordDetail
(
businessId
);
return
ApiResponse
.
ok
(
detail
);
}
@Operation
(
summary
=
"获取对练记录详情"
)
@GetMapping
(
"/record/detail"
)
public
ApiResponse
<
ExamineRecordMobileDto
>
recordDetail
(
@Schema
(
description
=
"对练流水号"
)
@RequestParam
(
"business_no"
)
String
businessNo
)
{
...
...
src/main/java/cn/breeze/elleai/domain/sparring/model/request/KbRequestModel.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
model
.
request
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
KbRequestModel
implements
Serializable
{
private
Integer
pageNo
;
private
Integer
pageSize
;
private
String
name
;
private
Integer
status
;
private
Integer
tagId
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/request/KbSaveModel.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
model
.
request
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
@Data
public
class
KbSaveModel
implements
Serializable
{
private
Long
id
;
/**
* 知识分类ID
*/
private
Long
tagId
;
/**
* 问题
*/
private
String
question
;
/**
* 答案
*/
private
String
answer
;
/**
* 状态0停用,1启用
*/
private
Integer
status
;
/**
* 删除标识,0有效,1删除
*/
private
Integer
deleted
;
/**
* 创建时间
*/
private
Date
createAt
;
/**
* 更新时间
*/
private
Date
updateAt
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/request/KbTagRequestModel.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
model
.
request
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
KbTagRequestModel
implements
Serializable
{
private
Integer
pageNo
;
private
Integer
pageSize
;
private
String
name
;
private
Integer
status
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/request/KbTagSaveModel.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
model
.
request
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
@Data
public
class
KbTagSaveModel
implements
Serializable
{
private
Long
id
;
/**
* 分类名称
*/
private
String
name
;
private
String
description
;
/**
* 状态0停用,1启用
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createAt
;
/**
* 父级ID(1级为0)
*/
private
Long
parentId
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/request/KbVectorRequestModel.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
model
.
request
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
KbVectorRequestModel
implements
Serializable
{
private
Integer
pageNo
;
private
Integer
pageSize
;
private
Integer
kbId
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/request/KbVectorSaveModel.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
model
.
request
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
@Data
public
class
KbVectorSaveModel
implements
Serializable
{
private
Long
id
;
/**
* 知识ID
*/
private
Long
kbId
;
/**
* 向量知识库数据ID
*/
private
Long
vectorId
;
/**
* 创建时间
*/
private
Date
createAt
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/response/KbResponseModel.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
model
.
response
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
@Data
public
class
KbResponseModel
implements
Serializable
{
private
Long
id
;
/**
* 知识分类ID
*/
private
Long
tagId
;
/**
* 问题
*/
private
String
question
;
/**
* 答案
*/
private
String
answer
;
/**
* 状态0停用,1启用
*/
private
Integer
status
;
/**
* 删除标识,0有效,1删除
*/
private
Integer
deleted
;
/**
* 创建时间
*/
private
Date
createAt
;
/**
* 更新时间
*/
private
Date
updateAt
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/response/KbTagResponseModel.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
model
.
response
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
@Data
public
class
KbTagResponseModel
implements
Serializable
{
private
Long
id
;
/**
* 分类名称
*/
private
String
name
;
private
String
description
;
/**
* 状态0停用,1启用
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createAt
;
/**
* 父级ID(1级为0)
*/
private
Long
parentId
;
}
src/main/java/cn/breeze/elleai/domain/sparring/model/response/KbVectorResponseModel.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
model
.
response
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
@Data
public
class
KbVectorResponseModel
implements
Serializable
{
private
Long
id
;
/**
* 知识ID
*/
private
Long
kbId
;
/**
* 向量知识库数据ID
*/
private
Long
vectorId
;
/**
* 创建时间
*/
private
Date
createAt
;
}
src/main/java/cn/breeze/elleai/domain/sparring/service/KbService.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
service
;
import
cn.breeze.elleai.domain.sparring.model.request.KbRequestModel
;
import
cn.breeze.elleai.domain.sparring.model.request.KbSaveModel
;
import
cn.breeze.elleai.domain.sparring.model.response.KbResponseModel
;
import
cn.breeze.elleai.infra.entity.KbEntity
;
import
com.mybatisflex.core.paginate.Page
;
import
com.mybatisflex.core.service.IService
;
import
java.util.List
;
/**
* 服务层。
*
* @author breeze
* @since 2024-10-21
*/
public
interface
KbService
extends
IService
<
KbEntity
>
{
/***************************************** 知识库QA *****************************************/
Page
<
KbResponseModel
>
kbPaginQuery
(
KbRequestModel
request
);
List
<
KbResponseModel
>
kbList
(
KbRequestModel
request
);
KbResponseModel
kbDetail
(
Integer
id
);
void
updateKbStatus
(
Integer
id
,
Integer
status
);
void
deleteKb
(
Integer
id
);
void
saveKb
(
KbSaveModel
dto
);
}
src/main/java/cn/breeze/elleai/domain/sparring/service/KbServiceImpl.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
service
;
import
cn.breeze.elleai.domain.sparring.model.request.KbRequestModel
;
import
cn.breeze.elleai.domain.sparring.model.request.KbSaveModel
;
import
cn.breeze.elleai.domain.sparring.model.response.KbResponseModel
;
import
cn.breeze.elleai.infra.entity.KbEntity
;
import
cn.breeze.elleai.infra.mapper.KbMapper
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.mybatisflex.core.paginate.Page
;
import
com.mybatisflex.core.query.QueryWrapper
;
import
com.mybatisflex.core.update.UpdateChain
;
import
com.mybatisflex.spring.service.impl.ServiceImpl
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
import
static
cn
.
breeze
.
elleai
.
infra
.
entity
.
table
.
KbTableDef
.
KB_ENTITY
;
/**
* 服务层实现。
*
* @author breeze
* @since 2024-10-21
*/
@Service
@RequiredArgsConstructor
public
class
KbServiceImpl
extends
ServiceImpl
<
KbMapper
,
KbEntity
>
implements
KbService
{
private
final
KbMapper
kbMapper
;
@Override
public
Page
<
KbResponseModel
>
kbPaginQuery
(
KbRequestModel
request
)
{
Integer
pageNo
=
ObjectUtil
.
defaultIfNull
(
request
.
getPageNo
(),
1
);
Integer
pageSize
=
ObjectUtil
.
defaultIfNull
(
request
.
getPageSize
(),
10
);
QueryWrapper
queryWrapper
=
QueryWrapper
.
create
();
queryWrapper
.
where
(
KB_ENTITY
.
DELETED
.
eq
(
0
));
if
(
StrUtil
.
isNotEmpty
(
request
.
getName
()))
{
queryWrapper
.
and
(
KB_ENTITY
.
QUESTION
.
like
(
"%"
+
request
.
getName
()+
"%"
)).
or
(
KB_ENTITY
.
ANSWER
.
like
(
"%"
+
request
.
getName
()+
"%"
));
}
if
(
Objects
.
nonNull
(
request
.
getStatus
()))
{
queryWrapper
.
and
(
KB_ENTITY
.
STATUS
.
eq
(
request
.
getStatus
()));
}
if
(
Objects
.
nonNull
(
request
.
getTagId
()))
{
queryWrapper
.
and
(
KB_ENTITY
.
TAG_ID
.
eq
(
request
.
getTagId
()));
}
queryWrapper
.
orderBy
(
KB_ENTITY
.
CREATE_AT
,
false
);
Page
<
KbResponseModel
>
page
=
kbMapper
.
paginateAs
(
pageNo
,
pageSize
,
queryWrapper
,
KbResponseModel
.
class
);
return
page
;
}
@Override
public
List
<
KbResponseModel
>
kbList
(
KbRequestModel
request
)
{
QueryWrapper
queryWrapper
=
QueryWrapper
.
create
();
queryWrapper
.
where
(
KB_ENTITY
.
DELETED
.
eq
(
0
));
if
(
StrUtil
.
isNotEmpty
(
request
.
getName
()))
{
queryWrapper
.
and
(
KB_ENTITY
.
QUESTION
.
like
(
"%"
+
request
.
getName
()+
"%"
)).
or
(
KB_ENTITY
.
ANSWER
.
like
(
"%"
+
request
.
getName
()+
"%"
));
}
if
(
Objects
.
nonNull
(
request
.
getStatus
()))
{
queryWrapper
.
and
(
KB_ENTITY
.
STATUS
.
eq
(
request
.
getStatus
()));
}
if
(
Objects
.
nonNull
(
request
.
getTagId
()))
{
queryWrapper
.
and
(
KB_ENTITY
.
TAG_ID
.
eq
(
request
.
getTagId
()));
}
queryWrapper
.
orderBy
(
KB_ENTITY
.
CREATE_AT
,
false
);
return
kbMapper
.
selectListByQueryAs
(
queryWrapper
,
KbResponseModel
.
class
);
}
@Override
public
KbResponseModel
kbDetail
(
Integer
id
)
{
QueryWrapper
queryWrapper
=
QueryWrapper
.
create
()
.
where
(
KB_ENTITY
.
ID
.
eq
(
id
).
and
(
KB_ENTITY
.
DELETED
.
eq
(
0
)));
return
kbMapper
.
selectOneByQueryAs
(
queryWrapper
,
KbResponseModel
.
class
);
}
@Override
public
void
updateKbStatus
(
Integer
id
,
Integer
status
)
{
UpdateChain
.
of
(
KbEntity
.
class
)
.
set
(
KB_ENTITY
.
STATUS
,
status
)
.
set
(
KB_ENTITY
.
UPDATE_AT
,
new
Date
())
.
where
(
KB_ENTITY
.
ID
.
eq
(
id
))
.
update
();
}
@Override
public
void
deleteKb
(
Integer
id
)
{
UpdateChain
.
of
(
KbEntity
.
class
)
.
set
(
KB_ENTITY
.
DELETED
,
1
)
.
set
(
KB_ENTITY
.
UPDATE_AT
,
new
Date
())
.
where
(
KB_ENTITY
.
ID
.
eq
(
id
))
.
update
();
}
@Override
public
void
saveKb
(
KbSaveModel
dto
)
{
KbEntity
entity
=
BeanUtil
.
toBean
(
dto
,
KbEntity
.
class
);
entity
.
setUpdateAt
(
new
Date
());
if
(
Objects
.
isNull
(
entity
.
getId
()))
{
entity
.
setStatus
(
0
);
entity
.
setDeleted
(
0
);
}
kbMapper
.
insertOrUpdateSelective
(
entity
);
}
}
src/main/java/cn/breeze/elleai/domain/sparring/service/KbTagService.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
service
;
import
cn.breeze.elleai.domain.sparring.model.request.KbRequestModel
;
import
cn.breeze.elleai.domain.sparring.model.request.KbSaveModel
;
import
cn.breeze.elleai.domain.sparring.model.request.KbTagRequestModel
;
import
cn.breeze.elleai.domain.sparring.model.request.KbTagSaveModel
;
import
cn.breeze.elleai.domain.sparring.model.response.KbResponseModel
;
import
cn.breeze.elleai.domain.sparring.model.response.KbTagResponseModel
;
import
com.mybatisflex.core.paginate.Page
;
import
com.mybatisflex.core.service.IService
;
import
cn.breeze.elleai.infra.entity.KbTagEntity
;
import
java.util.List
;
/**
* 服务层。
*
* @author breeze
* @since 2024-10-21
*/
public
interface
KbTagService
extends
IService
<
KbTagEntity
>
{
/***************************************** 知识库分类 *****************************************/
Page
<
KbTagResponseModel
>
kbTagPaginQuery
(
KbTagRequestModel
request
);
List
<
KbTagResponseModel
>
kbTagList
(
KbTagRequestModel
request
);
KbTagResponseModel
kbTagDetail
(
Integer
id
);
void
updateKbTagStatus
(
Integer
id
,
Integer
status
);
void
deleteKbTag
(
Integer
id
);
void
saveKbTag
(
KbTagSaveModel
dto
);
}
src/main/java/cn/breeze/elleai/domain/sparring/service/KbTagServiceImpl.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
service
;
import
cn.breeze.elleai.domain.sparring.model.request.KbTagRequestModel
;
import
cn.breeze.elleai.domain.sparring.model.request.KbTagSaveModel
;
import
cn.breeze.elleai.domain.sparring.model.response.KbTagResponseModel
;
import
cn.breeze.elleai.infra.entity.KbTagEntity
;
import
cn.breeze.elleai.infra.mapper.KbTagMapper
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.mybatisflex.core.paginate.Page
;
import
com.mybatisflex.core.query.QueryWrapper
;
import
com.mybatisflex.core.update.UpdateChain
;
import
com.mybatisflex.spring.service.impl.ServiceImpl
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Objects
;
import
static
cn
.
breeze
.
elleai
.
infra
.
entity
.
table
.
KbTagTableDef
.
KB_TAG_ENTITY
;
/**
* 服务层实现。
*
* @author breeze
* @since 2024-10-21
*/
@Service
@RequiredArgsConstructor
public
class
KbTagServiceImpl
extends
ServiceImpl
<
KbTagMapper
,
KbTagEntity
>
implements
KbTagService
{
private
final
KbTagMapper
kbTagMapper
;
@Override
public
Page
<
KbTagResponseModel
>
kbTagPaginQuery
(
KbTagRequestModel
request
)
{
Integer
pageNo
=
ObjectUtil
.
defaultIfNull
(
request
.
getPageNo
(),
1
);
Integer
pageSize
=
ObjectUtil
.
defaultIfNull
(
request
.
getPageSize
(),
10
);
QueryWrapper
queryWrapper
=
QueryWrapper
.
create
()
.
where
(
KB_TAG_ENTITY
.
DELETED
.
eq
(
0
));
if
(
StrUtil
.
isNotEmpty
(
request
.
getName
()))
{
queryWrapper
.
and
(
KB_TAG_ENTITY
.
NAME
.
like
(
"%"
+
request
.
getName
()+
"%"
));
}
if
(
Objects
.
nonNull
(
request
.
getStatus
()))
{
queryWrapper
.
and
(
KB_TAG_ENTITY
.
STATUS
.
eq
(
request
.
getStatus
()));
}
queryWrapper
.
orderBy
(
KB_TAG_ENTITY
.
CREATE_AT
,
false
);
Page
<
KbTagResponseModel
>
page
=
kbTagMapper
.
paginateAs
(
pageNo
,
pageSize
,
queryWrapper
,
KbTagResponseModel
.
class
);
return
page
;
}
@Override
public
List
<
KbTagResponseModel
>
kbTagList
(
KbTagRequestModel
request
)
{
QueryWrapper
queryWrapper
=
QueryWrapper
.
create
()
.
where
(
KB_TAG_ENTITY
.
DELETED
.
eq
(
0
));
if
(
StrUtil
.
isNotEmpty
(
request
.
getName
()))
{
queryWrapper
.
and
(
KB_TAG_ENTITY
.
NAME
.
like
(
"%"
+
request
.
getName
()+
"%"
));
}
if
(
Objects
.
nonNull
(
request
.
getStatus
()))
{
queryWrapper
.
and
(
KB_TAG_ENTITY
.
STATUS
.
eq
(
request
.
getStatus
()));
}
queryWrapper
.
orderBy
(
KB_TAG_ENTITY
.
CREATE_AT
,
false
);
return
kbTagMapper
.
selectListByQueryAs
(
queryWrapper
,
KbTagResponseModel
.
class
);
}
@Override
public
KbTagResponseModel
kbTagDetail
(
Integer
id
)
{
QueryWrapper
queryWrapper
=
QueryWrapper
.
create
()
.
where
(
KB_TAG_ENTITY
.
ID
.
eq
(
id
).
and
(
KB_TAG_ENTITY
.
DELETED
.
eq
(
0
)));
return
kbTagMapper
.
selectOneByQueryAs
(
queryWrapper
,
KbTagResponseModel
.
class
);
}
@Override
public
void
updateKbTagStatus
(
Integer
id
,
Integer
status
)
{
UpdateChain
.
of
(
KbTagEntity
.
class
)
.
set
(
KB_TAG_ENTITY
.
STATUS
,
status
)
.
where
(
KB_TAG_ENTITY
.
ID
.
eq
(
id
))
.
update
();
}
@Override
public
void
deleteKbTag
(
Integer
id
)
{
UpdateChain
.
of
(
KbTagEntity
.
class
)
.
set
(
KB_TAG_ENTITY
.
DELETED
,
1
)
.
where
(
KB_TAG_ENTITY
.
ID
.
eq
(
id
))
.
update
();
}
@Override
public
void
saveKbTag
(
KbTagSaveModel
dto
)
{
KbTagEntity
entity
=
BeanUtil
.
toBean
(
dto
,
KbTagEntity
.
class
);
if
(
Objects
.
isNull
(
entity
.
getId
()))
{
entity
.
setStatus
(
0
);
entity
.
setDeleted
(
0
);
}
kbTagMapper
.
insertOrUpdateSelective
(
entity
);
}
}
src/main/java/cn/breeze/elleai/domain/sparring/service/KbVectorService.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
service
;
import
cn.breeze.elleai.domain.sparring.model.request.KbVectorRequestModel
;
import
cn.breeze.elleai.domain.sparring.model.request.KbVectorSaveModel
;
import
cn.breeze.elleai.domain.sparring.model.response.KbVectorResponseModel
;
import
com.mybatisflex.core.paginate.Page
;
import
com.mybatisflex.core.service.IService
;
import
cn.breeze.elleai.infra.entity.KbVectorEntity
;
import
java.util.List
;
/**
* 服务层。
*
* @author breeze
* @since 2024-10-21
*/
public
interface
KbVectorService
extends
IService
<
KbVectorEntity
>
{
/***************************************** 知识库集合 *****************************************/
Page
<
KbVectorResponseModel
>
kbVectorPaginQuery
(
KbVectorRequestModel
request
);
List
<
KbVectorResponseModel
>
kbVectorList
(
KbVectorRequestModel
request
);
KbVectorResponseModel
kbVectorDetail
(
Integer
kbId
);
void
deleteKbVector
(
Integer
kbId
);
void
saveKbVector
(
KbVectorSaveModel
dto
);
}
src/main/java/cn/breeze/elleai/domain/sparring/service/KbVectorServiceImpl.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
domain
.
sparring
.
service
;
import
cn.breeze.elleai.domain.sparring.model.request.KbVectorRequestModel
;
import
cn.breeze.elleai.domain.sparring.model.request.KbVectorSaveModel
;
import
cn.breeze.elleai.domain.sparring.model.response.KbVectorResponseModel
;
import
cn.breeze.elleai.infra.entity.KbVectorEntity
;
import
cn.breeze.elleai.infra.mapper.KbVectorMapper
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.mybatisflex.core.paginate.Page
;
import
com.mybatisflex.core.query.QueryWrapper
;
import
com.mybatisflex.spring.service.impl.ServiceImpl
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
import
static
cn
.
breeze
.
elleai
.
infra
.
entity
.
table
.
KbVectorTableDef
.
KB_VECTOR_ENTITY
;
/**
* 服务层实现。
*
* @author breeze
* @since 2024-10-21
*/
@Service
@RequiredArgsConstructor
public
class
KbVectorServiceImpl
extends
ServiceImpl
<
KbVectorMapper
,
KbVectorEntity
>
implements
KbVectorService
{
private
final
KbVectorMapper
kbVectorMapper
;
@Override
public
Page
<
KbVectorResponseModel
>
kbVectorPaginQuery
(
KbVectorRequestModel
request
)
{
Integer
pageNo
=
ObjectUtil
.
defaultIfNull
(
request
.
getPageNo
(),
1
);
Integer
pageSize
=
ObjectUtil
.
defaultIfNull
(
request
.
getPageSize
(),
10
);
QueryWrapper
queryWrapper
=
QueryWrapper
.
create
();
if
(
Objects
.
nonNull
(
request
.
getKbId
()))
{
queryWrapper
.
and
(
KB_VECTOR_ENTITY
.
KB_ID
.
eq
(
request
.
getKbId
()));
}
queryWrapper
.
orderBy
(
KB_VECTOR_ENTITY
.
CREATE_AT
,
false
);
Page
<
KbVectorResponseModel
>
page
=
kbVectorMapper
.
paginateAs
(
pageNo
,
pageSize
,
queryWrapper
,
KbVectorResponseModel
.
class
);
return
page
;
}
@Override
public
List
<
KbVectorResponseModel
>
kbVectorList
(
KbVectorRequestModel
request
)
{
QueryWrapper
queryWrapper
=
QueryWrapper
.
create
();
if
(
Objects
.
nonNull
(
request
.
getKbId
()))
{
queryWrapper
.
and
(
KB_VECTOR_ENTITY
.
KB_ID
.
eq
(
request
.
getKbId
()));
}
queryWrapper
.
orderBy
(
KB_VECTOR_ENTITY
.
CREATE_AT
,
false
);
return
kbVectorMapper
.
selectListByQueryAs
(
queryWrapper
,
KbVectorResponseModel
.
class
);
}
@Override
public
KbVectorResponseModel
kbVectorDetail
(
Integer
kbId
)
{
QueryWrapper
queryWrapper
=
QueryWrapper
.
create
()
.
where
(
KB_VECTOR_ENTITY
.
KB_ID
.
eq
(
kbId
));
return
kbVectorMapper
.
selectOneByQueryAs
(
queryWrapper
,
KbVectorResponseModel
.
class
);
}
@Override
public
void
deleteKbVector
(
Integer
kbId
)
{
QueryWrapper
queryWrapper
=
QueryWrapper
.
create
()
.
where
(
KB_VECTOR_ENTITY
.
KB_ID
.
eq
(
kbId
));
kbVectorMapper
.
deleteByQuery
(
queryWrapper
);
}
@Override
public
void
saveKbVector
(
KbVectorSaveModel
dto
)
{
KbVectorEntity
entity
=
BeanUtil
.
toBean
(
dto
,
KbVectorEntity
.
class
);
if
(
Objects
.
isNull
(
entity
.
getId
()))
{
entity
.
setCreateAt
(
new
Date
());
}
kbVectorMapper
.
insertOrUpdateSelective
(
entity
);
}
}
src/main/java/cn/breeze/elleai/infra/entity/KbEntity.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
infra
.
entity
;
import
com.mybatisflex.annotation.Id
;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.io.Serial
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* 实体类。
*
* @author breeze
* @since 2024-10-21
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table
(
"cs_kb"
)
public
class
KbEntity
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
@Id
(
keyType
=
KeyType
.
Auto
)
private
Long
id
;
/**
* 知识分类ID
*/
private
Long
tagId
;
/**
* 问题
*/
private
String
question
;
/**
* 答案
*/
private
String
answer
;
/**
* 状态0停用,1启用
*/
private
Integer
status
;
/**
* 删除标识,0有效,1删除
*/
private
Integer
deleted
;
/**
* 创建时间
*/
private
Date
createAt
;
/**
* 更新时间
*/
private
Date
updateAt
;
}
src/main/java/cn/breeze/elleai/infra/entity/KbTagEntity.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
infra
.
entity
;
import
com.mybatisflex.annotation.Id
;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.io.Serial
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* 实体类。
*
* @author breeze
* @since 2024-10-21
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table
(
"cs_kb_tag"
)
public
class
KbTagEntity
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
@Id
(
keyType
=
KeyType
.
Auto
)
private
Long
id
;
/**
* 分类名称
*/
private
String
name
;
private
String
description
;
/**
* 状态0停用,1启用
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createAt
;
/**
* 父级ID(1级为0)
*/
private
Long
parentId
;
/**
* 是否删除
*/
private
Integer
deleted
;
}
src/main/java/cn/breeze/elleai/infra/entity/KbVectorEntity.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
infra
.
entity
;
import
com.mybatisflex.annotation.Id
;
import
com.mybatisflex.annotation.KeyType
;
import
com.mybatisflex.annotation.Table
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.io.Serial
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* 实体类。
*
* @author breeze
* @since 2024-10-21
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table
(
"cs_kb_vector"
)
public
class
KbVectorEntity
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
@Id
(
keyType
=
KeyType
.
Auto
)
private
Long
id
;
/**
* 知识ID
*/
private
Long
kbId
;
/**
* 向量知识库数据ID
*/
private
Long
vectorId
;
/**
* 创建时间
*/
private
Date
createAt
;
}
src/main/java/cn/breeze/elleai/infra/entity/table/KbTableDef.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
infra
.
entity
.
table
;
import
com.mybatisflex.core.query.QueryColumn
;
import
com.mybatisflex.core.table.TableDef
;
import
java.io.Serial
;
/**
* 表定义层。
*
* @author breeze
* @since 2024-10-21
*/
public
class
KbTableDef
extends
TableDef
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
/**
*
*/
public
static
final
KbTableDef
KB_ENTITY
=
new
KbTableDef
();
public
final
QueryColumn
ID
=
new
QueryColumn
(
this
,
"id"
);
/**
* 知识分类ID
*/
public
final
QueryColumn
TAG_ID
=
new
QueryColumn
(
this
,
"tag_id"
);
/**
* 答案
*/
public
final
QueryColumn
ANSWER
=
new
QueryColumn
(
this
,
"answer"
);
/**
* 状态0停用,1启用
*/
public
final
QueryColumn
STATUS
=
new
QueryColumn
(
this
,
"status"
);
/**
* 删除标识,0有效,1删除
*/
public
final
QueryColumn
DELETED
=
new
QueryColumn
(
this
,
"deleted"
);
/**
* 创建时间
*/
public
final
QueryColumn
CREATE_AT
=
new
QueryColumn
(
this
,
"create_at"
);
/**
* 问题
*/
public
final
QueryColumn
QUESTION
=
new
QueryColumn
(
this
,
"question"
);
/**
* 更新时间
*/
public
final
QueryColumn
UPDATE_AT
=
new
QueryColumn
(
this
,
"update_at"
);
/**
* 所有字段。
*/
public
final
QueryColumn
ALL_COLUMNS
=
new
QueryColumn
(
this
,
"*"
);
/**
* 默认字段,不包含逻辑删除或者 large 等字段。
*/
public
final
QueryColumn
[]
DEFAULT_COLUMNS
=
new
QueryColumn
[]{
ID
,
TAG_ID
,
QUESTION
,
ANSWER
,
STATUS
,
DELETED
,
CREATE_AT
,
UPDATE_AT
};
public
KbTableDef
()
{
super
(
""
,
"cs_kb"
);
}
private
KbTableDef
(
String
schema
,
String
name
,
String
alisa
)
{
super
(
schema
,
name
,
alisa
);
}
public
KbTableDef
as
(
String
alias
)
{
String
key
=
getNameWithSchema
()
+
"."
+
alias
;
return
getCache
(
key
,
k
->
new
KbTableDef
(
""
,
"cs_kb"
,
alias
));
}
}
src/main/java/cn/breeze/elleai/infra/entity/table/KbTagTableDef.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
infra
.
entity
.
table
;
import
com.mybatisflex.core.query.QueryColumn
;
import
com.mybatisflex.core.table.TableDef
;
import
java.io.Serial
;
/**
* 表定义层。
*
* @author breeze
* @since 2024-10-21
*/
public
class
KbTagTableDef
extends
TableDef
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
/**
*
*/
public
static
final
KbTagTableDef
KB_TAG_ENTITY
=
new
KbTagTableDef
();
public
final
QueryColumn
ID
=
new
QueryColumn
(
this
,
"id"
);
/**
* 分类名称
*/
public
final
QueryColumn
NAME
=
new
QueryColumn
(
this
,
"name"
);
/**
* 状态0停用,1启用
*/
public
final
QueryColumn
STATUS
=
new
QueryColumn
(
this
,
"status"
);
/**
* 创建时间
*/
public
final
QueryColumn
CREATE_AT
=
new
QueryColumn
(
this
,
"create_at"
);
/**
* 父级ID(1级为0)
*/
public
final
QueryColumn
PARENT_ID
=
new
QueryColumn
(
this
,
"parent_id"
);
/**
* 是否删除
*/
public
final
QueryColumn
DELETED
=
new
QueryColumn
(
this
,
"deleted"
);
public
final
QueryColumn
DESCRIPTION
=
new
QueryColumn
(
this
,
"description"
);
/**
* 所有字段。
*/
public
final
QueryColumn
ALL_COLUMNS
=
new
QueryColumn
(
this
,
"*"
);
/**
* 默认字段,不包含逻辑删除或者 large 等字段。
*/
public
final
QueryColumn
[]
DEFAULT_COLUMNS
=
new
QueryColumn
[]{
ID
,
NAME
,
DESCRIPTION
,
STATUS
,
CREATE_AT
,
PARENT_ID
,
DELETED
};
public
KbTagTableDef
()
{
super
(
""
,
"cs_kb_tag"
);
}
private
KbTagTableDef
(
String
schema
,
String
name
,
String
alisa
)
{
super
(
schema
,
name
,
alisa
);
}
public
KbTagTableDef
as
(
String
alias
)
{
String
key
=
getNameWithSchema
()
+
"."
+
alias
;
return
getCache
(
key
,
k
->
new
KbTagTableDef
(
""
,
"cs_kb_tag"
,
alias
));
}
}
src/main/java/cn/breeze/elleai/infra/entity/table/KbVectorTableDef.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
infra
.
entity
.
table
;
import
com.mybatisflex.core.query.QueryColumn
;
import
com.mybatisflex.core.table.TableDef
;
import
java.io.Serial
;
/**
* 表定义层。
*
* @author breeze
* @since 2024-10-21
*/
public
class
KbVectorTableDef
extends
TableDef
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
/**
*
*/
public
static
final
KbVectorTableDef
KB_VECTOR_ENTITY
=
new
KbVectorTableDef
();
public
final
QueryColumn
ID
=
new
QueryColumn
(
this
,
"id"
);
/**
* 知识ID
*/
public
final
QueryColumn
KB_ID
=
new
QueryColumn
(
this
,
"kb_id"
);
/**
* 创建时间
*/
public
final
QueryColumn
CREATE_AT
=
new
QueryColumn
(
this
,
"create_at"
);
/**
* 向量知识库数据ID
*/
public
final
QueryColumn
VECTOR_ID
=
new
QueryColumn
(
this
,
"vector_id"
);
/**
* 所有字段。
*/
public
final
QueryColumn
ALL_COLUMNS
=
new
QueryColumn
(
this
,
"*"
);
/**
* 默认字段,不包含逻辑删除或者 large 等字段。
*/
public
final
QueryColumn
[]
DEFAULT_COLUMNS
=
new
QueryColumn
[]{
ID
,
KB_ID
,
VECTOR_ID
,
CREATE_AT
};
public
KbVectorTableDef
()
{
super
(
""
,
"cs_kb_vector"
);
}
private
KbVectorTableDef
(
String
schema
,
String
name
,
String
alisa
)
{
super
(
schema
,
name
,
alisa
);
}
public
KbVectorTableDef
as
(
String
alias
)
{
String
key
=
getNameWithSchema
()
+
"."
+
alias
;
return
getCache
(
key
,
k
->
new
KbVectorTableDef
(
""
,
"cs_kb_vector"
,
alias
));
}
}
src/main/java/cn/breeze/elleai/infra/mapper/KbMapper.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
infra
.
mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
com.mybatisflex.core.BaseMapper
;
import
cn.breeze.elleai.infra.entity.KbEntity
;
/**
* 映射层。
*
* @author breeze
* @since 2024-10-21
*/
@Mapper
public
interface
KbMapper
extends
BaseMapper
<
KbEntity
>
{
}
src/main/java/cn/breeze/elleai/infra/mapper/KbTagMapper.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
infra
.
mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
com.mybatisflex.core.BaseMapper
;
import
cn.breeze.elleai.infra.entity.KbTagEntity
;
/**
* 映射层。
*
* @author breeze
* @since 2024-10-21
*/
@Mapper
public
interface
KbTagMapper
extends
BaseMapper
<
KbTagEntity
>
{
}
src/main/java/cn/breeze/elleai/infra/mapper/KbVectorMapper.java
0 → 100644
View file @
30105aa8
package
cn
.
breeze
.
elleai
.
infra
.
mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
com.mybatisflex.core.BaseMapper
;
import
cn.breeze.elleai.infra.entity.KbVectorEntity
;
/**
* 映射层。
*
* @author breeze
* @since 2024-10-21
*/
@Mapper
public
interface
KbVectorMapper
extends
BaseMapper
<
KbVectorEntity
>
{
}
src/main/java/cn/breeze/elleai/job/SingleJob.java
View file @
30105aa8
...
...
@@ -78,17 +78,11 @@ public class SingleJob extends QuartzJobBean {
// 单题点评
if
(
Objects
.
equals
(
type
,
0
))
{
// 获取单题答题信息
ExamineRecordDetailResponseModel
singleQaDetail
=
examineService
.
singleExamineQaDetail
(
businessId
);
Integer
qaId
=
singleQaDetail
.
getQaId
();
ExamineQaResponseModel
qaDetail
=
examineService
.
examineQaDetail
(
qaId
);
AiSingleEvaluateResultDto
evaluateResult
=
extensionService
.
run4SingleEvaluate
(
businessNo
,
job
.
getUserId
(),
qaDetail
.
getQuestion
(),
qaDetail
.
getAnswer
(),
singleQaDetail
.
getAnswer
());
AiSingleEvaluateResultDto
evaluateResult
=
extensionService
.
run4SingleEvaluate
(
businessNo
,
job
.
getUserId
(),
businessId
);
if
(
Objects
.
nonNull
(
evaluateResult
))
{
// 更新答题点评信息
ExamineRecordDetailSaveModel
detailSaveModel
=
new
ExamineRecordDetailSaveModel
();
detailSaveModel
.
setId
(
singleQaDetail
.
getId
()
);
detailSaveModel
.
setId
(
businessId
);
detailSaveModel
.
setScore
(
evaluateResult
.
getScore
());
detailSaveModel
.
setEvaluation
(
evaluateResult
.
getEvaluation
());
examineService
.
saveExamineRecordDetail
(
detailSaveModel
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment