更新随机任务
This commit is contained in:
parent
0aa9bc9f66
commit
cf19393862
@ -103,7 +103,7 @@ func logLifecycle(a fyne.App) {
|
||||
}
|
||||
|
||||
func setupPtt() (err error) {
|
||||
pttService = service.NewPttService(connService)
|
||||
pttService = service.NewPttService(connService, obs)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -80,7 +80,7 @@ func (c *ConnServiceImpl) HttpConnect(url string) ([]byte, error) {
|
||||
func (c *ConnServiceImpl) ListenerPush() {
|
||||
go func() {
|
||||
for {
|
||||
time.Sleep(time.Millisecond * 200)
|
||||
// time.Sleep(time.Millisecond * 200)
|
||||
msg := &pb.UserMessage{}
|
||||
_, data, err := c.ws.ReadMessage()
|
||||
if err != nil {
|
||||
|
@ -12,4 +12,6 @@ const (
|
||||
EVENT_REQ_RSP Event = "response"
|
||||
// 清空 ui数据事件
|
||||
EVENT_UI_CLEAN Event = "uiclean"
|
||||
// 请求响应计时
|
||||
EVENT_RST = "ctime"
|
||||
)
|
||||
|
@ -2,9 +2,11 @@ package service
|
||||
|
||||
import (
|
||||
"go_dreamfactory/cmd/v2/lib/common"
|
||||
"go_dreamfactory/cmd/v2/service/observer"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/modules/user"
|
||||
"go_dreamfactory/pb"
|
||||
"time"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"google.golang.org/protobuf/proto"
|
||||
@ -25,6 +27,7 @@ type PttService interface {
|
||||
type PttServiceImpl struct {
|
||||
connService ConnService
|
||||
user *UserInfo
|
||||
obs observer.Observer
|
||||
}
|
||||
|
||||
type UserInfo struct {
|
||||
@ -32,9 +35,10 @@ type UserInfo struct {
|
||||
DbUserExpand *pb.DBUserExpand
|
||||
}
|
||||
|
||||
func NewPttService(connService ConnService) PttService {
|
||||
func NewPttService(connService ConnService, obs observer.Observer) PttService {
|
||||
ptt = &PttServiceImpl{
|
||||
connService: connService,
|
||||
obs: obs,
|
||||
}
|
||||
return ptt
|
||||
}
|
||||
@ -54,9 +58,11 @@ func (p *PttServiceImpl) SetUser(dbUser *pb.DBUser, dbUserExpand *pb.DBUserExpan
|
||||
func (p *PttServiceImpl) SendToClient(mainType, subType string, rsp proto.Message) (err error) {
|
||||
msg := &pb.UserMessage{MainType: mainType, SubType: subType}
|
||||
msg.Sec = common.BuildSecStr(p.user.DbUser.Sid, p.user.DbUser.Binduid)
|
||||
now := time.Now()
|
||||
if err = p.connService.SendMsg(msg, rsp); err != nil {
|
||||
logrus.WithField("err", err).Error(err)
|
||||
}
|
||||
p.obs.Notify(observer.EVENT_RST, now)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,7 @@ import (
|
||||
"go_dreamfactory/cmd/v2/model"
|
||||
"go_dreamfactory/cmd/v2/service/observer"
|
||||
"go_dreamfactory/pb"
|
||||
"time"
|
||||
|
||||
"fyne.io/fyne/v2"
|
||||
"fyne.io/fyne/v2/container"
|
||||
@ -44,8 +45,10 @@ func (a *appTester) LazyInit(obs observer.Observer) error {
|
||||
content.Objects = []fyne.CanvasObject{}
|
||||
|
||||
if view, ok := viewRegister[viewKey]; ok {
|
||||
timeLbl := widget.NewLabel("time")
|
||||
view.Init(obs, globalWin.w)
|
||||
resLog := widget.NewMultiLineEntry()
|
||||
|
||||
obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
|
||||
OnNotify: func(data interface{}, args ...interface{}) {
|
||||
if data == nil {
|
||||
@ -60,6 +63,16 @@ func (a *appTester) LazyInit(obs observer.Observer) error {
|
||||
},
|
||||
})
|
||||
|
||||
obs.AddListener(observer.EVENT_RST, observer.Listener{
|
||||
OnNotify: func(data interface{}, args ...interface{}) {
|
||||
tm := data.(time.Time)
|
||||
cost := time.Since(tm)
|
||||
logrus.WithFields(logrus.Fields{"Main": t.MainType, "Sub": t.SubType, "cost": cost}).Debug("耗时")
|
||||
timeLbl.Text = fmt.Sprintf("耗时:%v", cost)
|
||||
timeLbl.Refresh()
|
||||
},
|
||||
})
|
||||
|
||||
resLog.Wrapping = fyne.TextWrapBreak
|
||||
formReq := view.CreateView(t)
|
||||
// required! Refresh updates the widget
|
||||
@ -69,7 +82,8 @@ func (a *appTester) LazyInit(obs observer.Observer) error {
|
||||
clearBtn := widget.NewButtonWithIcon(common.APP_TESTCASE_BTN_CLEARLOG, theme.DeleteIcon(), func() {
|
||||
resLog.SetText("")
|
||||
})
|
||||
resPanel := container.NewBorder(container.NewHBox(clearBtn, layout.NewSpacer()), nil, nil, nil, resLog)
|
||||
|
||||
resPanel := container.NewBorder(container.NewHBox(clearBtn, layout.NewSpacer(), timeLbl), nil, nil, nil, resLog)
|
||||
|
||||
panel := container.NewVSplit(
|
||||
formCard,
|
||||
|
@ -5,7 +5,6 @@ import (
|
||||
"go_dreamfactory/pb"
|
||||
"go_dreamfactory/utils"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
@ -59,15 +58,13 @@ func (this *apiComp) Dotask(session comm.IUserSession, req *pb.RtaskApplyReq) (c
|
||||
// 没有设置选项,表示任务完成
|
||||
if len(conf.ChooseId) == 0 {
|
||||
frtaskArr.RtaskIds = append(frtaskArr.RtaskIds, req.RtaskId)
|
||||
rtask.FrtaskIds[conf.Group] = frtaskArr
|
||||
|
||||
_id := primitive.NewObjectID().Hex()
|
||||
rtask := &pb.DBRtask{
|
||||
Id: _id,
|
||||
Uid: session.GetUserId(),
|
||||
FrtaskIds: rtask.FrtaskIds,
|
||||
update := map[string]interface{}{
|
||||
"frtaskIds": rtask.FrtaskIds,
|
||||
}
|
||||
|
||||
if err := this.moduleRtask.modelRtask.Add(session.GetUserId(), rtask); err != nil {
|
||||
if err := this.moduleRtask.modelRtask.Change(session.GetUserId(), update); err != nil {
|
||||
code = pb.ErrorCode_SystemError
|
||||
}
|
||||
|
||||
|
@ -20,16 +20,14 @@ func (this *apiComp) List(session comm.IUserSession, req *pb.RtasklistReq) (code
|
||||
return
|
||||
}
|
||||
|
||||
var rtaskIds []int32
|
||||
ids := make([]int32, 0)
|
||||
|
||||
if v, ok := rtask.FrtaskIds[req.GroupId]; ok {
|
||||
for _, id := range v.RtaskIds {
|
||||
rtaskIds = append(rtaskIds, id)
|
||||
}
|
||||
ids = v.RtaskIds
|
||||
}
|
||||
|
||||
rsp := &pb.RtasklistResp{
|
||||
RtaskIds: rtaskIds,
|
||||
RtaskIds: ids,
|
||||
}
|
||||
if err := session.SendMsg(string(this.moduleRtask.GetType()), RtaskSubTypeList, rsp); err != nil {
|
||||
code = pb.ErrorCode_SystemError
|
||||
|
@ -75,18 +75,6 @@ func (this *configureComp) getRtaskChoose() (data *cfg.GameRdtaskChoose, err err
|
||||
return
|
||||
}
|
||||
|
||||
// 获取随机任务配置
|
||||
func (this *configureComp) getRtaskList() (data []*cfg.GameRdtaskData, err error) {
|
||||
cfg, err := this.getRtaskCfg()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if cfg != nil {
|
||||
data = cfg.GetDataList()
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 获取选项配置
|
||||
func (this *configureComp) getRtaskChooseCfg(id int32) *cfg.GameRdtaskChooseData {
|
||||
cfg, err := this.getRtaskChoose()
|
||||
@ -127,19 +115,3 @@ func (this *configureComp) getRtaskById(taskId int32) (data *cfg.GameRdtaskData)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 首个任务
|
||||
func (this *configureComp) getFirstTask() *cfg.GameRdtaskData {
|
||||
cfg, err := this.getRtaskCfg()
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
if cfg != nil {
|
||||
for _, v := range cfg.GetDataList() {
|
||||
if v.NextTid == 0 {
|
||||
return v
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import (
|
||||
"go_dreamfactory/utils"
|
||||
|
||||
"github.com/spf13/cast"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
)
|
||||
|
||||
@ -34,6 +35,8 @@ func (this *ModelRtask) GetRtask(uid string) *pb.DBRtask {
|
||||
err := this.Get(uid, rtask)
|
||||
if err != nil {
|
||||
if err == redis.RedisNil || err == mongo.ErrNoDocuments {
|
||||
_id := primitive.NewObjectID().Hex()
|
||||
rtask.Id = _id
|
||||
if err := this.Add(uid, rtask); err != nil {
|
||||
return nil
|
||||
}
|
||||
@ -42,14 +45,6 @@ func (this *ModelRtask) GetRtask(uid string) *pb.DBRtask {
|
||||
return rtask
|
||||
}
|
||||
|
||||
func (this *ModelRtask) setNextTask(uid string, rtaskId int32) error {
|
||||
update := map[string]interface{}{
|
||||
"nextRtaskId": rtaskId,
|
||||
}
|
||||
|
||||
return this.Change(uid, update)
|
||||
}
|
||||
|
||||
// 做任务之前的校验
|
||||
func (this *ModelRtask) checkHandle(uid string, frtaskIds []int32, conf *cfg.GameRdtaskData) (code pb.ErrorCode, ok bool) {
|
||||
//判断前置任务状态
|
||||
|
@ -111,76 +111,4 @@ func (this *ModuleRtask) initRtaskHandle() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// if data, err := this.configure.getRtaskList(); err == nil {
|
||||
// for _, v := range data {
|
||||
// // var handlers []*rtaskCondi
|
||||
// // rtask := &rtask{
|
||||
// // rtaskId: v.Id,
|
||||
// // handlers: handlers,
|
||||
// // }
|
||||
|
||||
// //遍历任务的限定条件
|
||||
// for _, rtaskTypeId := range v.Condition {
|
||||
// // 获取每个限定条件配置
|
||||
// if typeCfg, err2 := this.configure.getRtaskTypeById(rtaskTypeId); err2 == nil {
|
||||
// if typeCfg != nil {
|
||||
// switch comm.TaskType(typeCfg.GetTypeId()) {
|
||||
// case comm.RtaskTypeHeroTarget:
|
||||
// this.register(v.Id, &rtaskCondi{
|
||||
// cfg: typeCfg,
|
||||
// fn: this.modelRtask.HeroTarget,
|
||||
// })
|
||||
// case comm.RtaskTypeHeroLvTarget:
|
||||
// handlers = append(handlers, &rtaskCondi{
|
||||
// cfg: typeCfg,
|
||||
// fn: this.modelRtask.HeroLvTarget,
|
||||
// })
|
||||
// case comm.RtaskTypeHeroStarTarget:
|
||||
// handlers = append(handlers, &rtaskCondi{
|
||||
// cfg: typeCfg,
|
||||
// fn: this.modelRtask.HeroStarTarget,
|
||||
// })
|
||||
// case comm.RtaskTypeEquipNum:
|
||||
// handlers = append(handlers, &rtaskCondi{
|
||||
// cfg: typeCfg,
|
||||
// fn: this.modelRtask.EquipNum,
|
||||
// })
|
||||
// case comm.RtaskTypePoltId:
|
||||
// handlers = append(handlers, &rtaskCondi{
|
||||
// cfg: typeCfg,
|
||||
// fn: this.modelRtask.PoltId,
|
||||
// })
|
||||
// case comm.RtaskTypeTaskDay:
|
||||
// handlers = append(handlers, &rtaskCondi{
|
||||
// cfg: typeCfg,
|
||||
// fn: this.modelRtask.TaskDay,
|
||||
// })
|
||||
|
||||
// default:
|
||||
// log.Warnf("%v rtask type not configure", typeCfg.GetTypeId())
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// this.register(v.Id, rtask)
|
||||
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
// 通知随机任务
|
||||
// func (this *ModuleRtask) SendToRtask(session comm.IUserSession, param *pb.RtaskParam) (code pb.ErrorCode) {
|
||||
// if taskId, err := this.modelRtask.doRtaskHandle(session.GetUserId(), param); err != nil {
|
||||
// code = pb.ErrorCode_TaskHandle
|
||||
// } else {
|
||||
// if err := session.SendMsg(string(comm.ModuleRtask), "", &pb.RtaskFinishPush{
|
||||
// RtaskId: taskId,
|
||||
// }); err != nil {
|
||||
// code = pb.ErrorCode_SystemError
|
||||
// }
|
||||
// }
|
||||
|
||||
// return
|
||||
// }
|
||||
|
Loading…
Reference in New Issue
Block a user