@@ -0,0 +1,104 @@
|
||||
package contentlibser
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"91porn-server/common/stderr"
|
||||
"91porn-server/models/commod"
|
||||
"91porn-server/models/v/chatrobotmod"
|
||||
"91porn-server/models/v/contentlibmod"
|
||||
"91porn-server/web/webg"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
type ObjectID = primitive.ObjectID
|
||||
|
||||
const RobotContentSet = "robot_content" // 机器人聊天内容集合
|
||||
|
||||
// 获取内容列表
|
||||
func GetContentList(param contentlibmod.ReqContentList) (code stderr.Code, data interface{}, err error) {
|
||||
var skip = int64((param.PageNumber - 1) * param.PageSize)
|
||||
var limit = int64(param.PageSize)
|
||||
total, cList, err := contentlibmod.GetContentList(param.RobotType, skip, limit)
|
||||
if err != nil {
|
||||
code = stderr.Failure
|
||||
return
|
||||
}
|
||||
if cList == nil {
|
||||
data = commod.ListResp{List: []contentlibmod.RespList{}}
|
||||
} else {
|
||||
list := make([]contentlibmod.RespList, len(cList))
|
||||
for i, v := range cList {
|
||||
list[i] = contentlibmod.RespList(v)
|
||||
}
|
||||
data = commod.ListResp{List: list, Total: total}
|
||||
}
|
||||
code = stderr.Success
|
||||
return
|
||||
}
|
||||
|
||||
// 增加机器人聊天内容
|
||||
func AddChatContent(param contentlibmod.ReqContentAdd) (code stderr.Code, data interface{}, err error) {
|
||||
// 检查类型是否有效
|
||||
switch param.RobotType {
|
||||
case chatrobotmod.Comment:
|
||||
default:
|
||||
code = stderr.RobotTypeInvalid
|
||||
return
|
||||
}
|
||||
// 内容不能为空
|
||||
if param.Content == "" {
|
||||
code = stderr.RobotContentIsNull
|
||||
return
|
||||
}
|
||||
var doc = contentlibmod.ContentLibrary{
|
||||
RobotType: param.RobotType,
|
||||
Content: param.Content,
|
||||
CreatedAt: time.Now(),
|
||||
}
|
||||
// 添加到redis
|
||||
if _, err = webg.Redis.SAdd(RobotContentSet, param.Content); err != nil {
|
||||
code = stderr.Failure
|
||||
return
|
||||
}
|
||||
if err = contentlibmod.Insert(doc); err != nil {
|
||||
code = stderr.Failure
|
||||
return
|
||||
}
|
||||
code = stderr.Success
|
||||
return
|
||||
}
|
||||
|
||||
// 删除内容
|
||||
func DeleteChatContent(param contentlibmod.ReqContentDel) (code stderr.Code, data interface{}, err error) {
|
||||
if param.IDS == nil || len(param.IDS) == 0 {
|
||||
code = stderr.RobotContentDelParamIsNull
|
||||
return
|
||||
}
|
||||
// 获取内容
|
||||
cList, err := contentlibmod.GetContentListByIDS(param.IDS)
|
||||
if err != nil {
|
||||
code = stderr.Failure
|
||||
return
|
||||
}
|
||||
if len(cList) == 0 {
|
||||
code = stderr.Failure
|
||||
return
|
||||
}
|
||||
contents := make([]string, len(cList))
|
||||
for i, v := range cList {
|
||||
contents[i] = v.Content
|
||||
}
|
||||
// 从redis中移除
|
||||
if _, err = webg.Redis.SRem(RobotContentSet, contents); err != nil {
|
||||
code = stderr.Failure
|
||||
return
|
||||
}
|
||||
if err = contentlibmod.DeleteByIDS(param.IDS); err != nil {
|
||||
code = stderr.Failure
|
||||
return
|
||||
}
|
||||
code = stderr.Success
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user