fix: 优化负利润分析报表处理逻辑
This commit is contained in:
parent
289ac1de7a
commit
c91e7bc95b
|
|
@ -35,41 +35,31 @@ func NewSessionBiz(conf *config.Config, sessionImpl *impl.SessionImpl, sysImpl *
|
|||
func (s *SessionBiz) SessionInit(ctx context.Context, req *entitys.SessionInitRequest) (result *entitys.SessionInitResponse, err error) {
|
||||
|
||||
// 获取系统配置
|
||||
sysConfig, has, err := s.sysRepo.FindOne(s.sysRepo.WithSysId(req.SysId))
|
||||
sysConfig, err := s.GetSysConfig(req.SysId)
|
||||
if err != nil {
|
||||
return
|
||||
} else if !has {
|
||||
err = errorcode.SysNotFound
|
||||
return
|
||||
}
|
||||
|
||||
result = &entitys.SessionInitResponse{
|
||||
Chat: make([]entitys.ChatHistory, 0),
|
||||
}
|
||||
|
||||
// 获取 当天的session
|
||||
// 获取 当天的最新session
|
||||
t := time.Now().Truncate(24 * time.Hour)
|
||||
session, has, err := s.sessionRepo.FindOne(
|
||||
s.sessionRepo.WithUserId(req.UserId), // 条件:用户ID
|
||||
s.sessionRepo.WithStartTime(t), // 条件:会话开始时间
|
||||
s.sysRepo.WithSysId(sysConfig.SysID), // 条件:系统ID
|
||||
s.sysRepo.WithSysId(sysConfig.SysID),
|
||||
s.sessionRepo.OrderByDesc("create_at"), // 条件:系统ID
|
||||
)
|
||||
if err != nil {
|
||||
return
|
||||
} else if !has {
|
||||
}
|
||||
if !has {
|
||||
// 不存在,创建一个
|
||||
session = model.AiSession{
|
||||
SysID: sysConfig.SysID,
|
||||
SessionID: utils.UUID(),
|
||||
UserID: req.UserId,
|
||||
UserName: req.UserName,
|
||||
DingUserId: req.DingUserId,
|
||||
}
|
||||
err = s.sessionRepo.Create(&session)
|
||||
session, err = s.CreateNew(sysConfig.SysID, req)
|
||||
if err != nil {
|
||||
return
|
||||
return nil, err
|
||||
}
|
||||
|
||||
chat := entitys.ChatHistory{
|
||||
SessionID: session.SessionID,
|
||||
Role: constants.RoleSystem,
|
||||
|
|
@ -122,6 +112,32 @@ func (s *SessionBiz) SessionInit(ctx context.Context, req *entitys.SessionInitRe
|
|||
return
|
||||
}
|
||||
|
||||
func (s *SessionBiz) GetSysConfig(sysId string) (model.AiSy, error) {
|
||||
sysConfig, has, err := s.sysRepo.FindOne(s.sysRepo.WithSysId(sysId))
|
||||
if err != nil {
|
||||
return sysConfig, err
|
||||
} else if !has {
|
||||
err = errorcode.SysNotFound
|
||||
return sysConfig, err
|
||||
}
|
||||
return sysConfig, nil
|
||||
}
|
||||
|
||||
func (s *SessionBiz) CreateNew(sysID int32, req *entitys.SessionInitRequest) (model.AiSession, error) {
|
||||
session := model.AiSession{
|
||||
SysID: sysID,
|
||||
SessionID: utils.UUID(),
|
||||
UserID: req.UserId,
|
||||
UserName: req.UserName,
|
||||
DingUserId: req.DingUserId,
|
||||
}
|
||||
err := s.sessionRepo.Create(&session)
|
||||
if err != nil {
|
||||
return session, err
|
||||
}
|
||||
return session, nil
|
||||
}
|
||||
|
||||
// SessionList 会话列表
|
||||
func (s *SessionBiz) SessionList(ctx context.Context, req *entitys.SessionListRequest) (list []model.AiSession, err error) {
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ func SetupRoutes(app *fiber.App, ChatService *services.ChatService, sessionServi
|
|||
c.Response().SetBody([]byte("1"))
|
||||
return nil
|
||||
})
|
||||
|
||||
r.Post("/session/new", sessionService.NewSession)
|
||||
r.Post("/session/init", sessionService.SessionInit) // 会话初始化,不存在则创建,存在则返回会话ID和默认条数会话历史
|
||||
r.Post("/session/list", sessionService.SessionList)
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,23 @@ func (s *SessionService) SessionInit(c *fiber.Ctx) error {
|
|||
return c.JSON(result)
|
||||
}
|
||||
|
||||
// NewSession 新会话
|
||||
func (s *SessionService) NewSession(c *fiber.Ctx) error {
|
||||
req := &entitys.SessionInitRequest{}
|
||||
if err := c.BodyParser(req); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
sysConfig, err := s.sessionBiz.GetSysConfig(req.SysId)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
session, err := s.sessionBiz.CreateNew(sysConfig.SysID, req)
|
||||
|
||||
return c.JSON(session)
|
||||
}
|
||||
|
||||
// SessionList 获取会话列表
|
||||
func (s *SessionService) SessionList(c *fiber.Ctx) error {
|
||||
req := &entitys.SessionListRequest{}
|
||||
|
|
|
|||
Loading…
Reference in New Issue