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 }