Files
36Wisdom/biz/controller/level_play.go
T

44 lines
1.0 KiB
Go

package controller
import (
"context"
"36wisdom/biz/model/dto"
"36wisdom/biz/service"
"36wisdom/common/auth"
)
type levelPlay struct{}
var LevelPlay = &levelPlay{}
func (c *levelPlay) Choose(ctx context.Context, req *dto.ChooseReq) (*dto.ChooseRes, error) {
node, settle, err := service.LevelPlay.Choose(ctx, auth.GetUid(ctx), req.ChildId, req.LevelId, req.NodeId, req.OptionId)
if err != nil {
return nil, err
}
res := &dto.ChooseRes{}
if node != nil {
vo := nodeVO(node)
res.Next = &vo
}
if settle != nil {
res.Final = &dto.FinalSettle{
ResultType: settle.ResultType,
Stars: settle.Stars,
ScoreDelta: settle.ScoreDelta,
Cleared: settle.Cleared,
Perfect: settle.Perfect,
UnlockNext: settle.UnlockNext,
CollectionUnlocked: settle.CollectionUnlocked,
NewLevel: settle.NewLevel,
BalanceAfter: settle.BalanceAfter,
}
if settle.FinalNode != nil {
vo := nodeVO(settle.FinalNode)
res.Final.FinalNode = &vo
}
}
return res, nil
}