123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package aiSearch
- import (
- "aiChat/api/aiSearch/v1"
- "app.yhyue.com/moapp/jybase/encrypt"
- "context"
- "github.com/gogf/gf/v2/errors/gcode"
- "github.com/gogf/gf/v2/errors/gerror"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/util/gconv"
- )
- func (c *ControllerV1) SessionDetail(ctx context.Context, req *v1.SessionDetailReq) (res *v1.SessionDetailRes, err error) {
- sid := gconv.Int(encrypt.SE.Decode4HexByCheck(req.Sid))
- results, err := g.Model("ai_search_chat").Where("session_id = ? and status = 1", sid).OrderDesc("create_time").All()
- if err != nil {
- g.Log().Error(ctx, "会话详情查询异常:%s", err)
- return nil, gerror.NewCode(gcode.CodeInternalError)
- }
- list := make([]*v1.SsDetailList, 0)
- for _, r := range results {
- item := &v1.SsDetailList{}
- r1 := r.Map()
- item.Id = encrypt.SE.Encode2HexByCheck(gconv.String(r1["id"]))
- item.Question = gconv.String(r1["question"])
- item.Like = gconv.Int(r1["like"])
- item.Collect = gconv.Int(r1["collect"])
- item.CreateTime = *gconv.GTime(r1["create_time"])
- blist := make([]*v1.ResBidding, 0)
- for _, v := range gconv.Maps(r1["answer"]) {
- bidding := &v1.ResBidding{}
- _ = gconv.Struct(v, bidding)
- bidding.Id = encrypt.SE.Encode2HexByCheck(bidding.Id)
- blist = append(blist, bidding)
- }
- item.Answer = &v1.ChatRes{
- Status: gconv.Int(r1["answer_status"]),
- Count: gconv.Int(r1["list_count"]),
- List: blist,
- }
- list = append(list, item)
- }
- res = &v1.SessionDetailRes{
- Data: list,
- }
- return res, nil
- }
|