派遣
This commit is contained in:
parent
ee061fa6e0
commit
dd8c9523a7
@ -18,10 +18,12 @@ import (
|
|||||||
"github.com/spf13/cast"
|
"github.com/spf13/cast"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// 练功房派遣
|
||||||
type DispatchView struct {
|
type DispatchView struct {
|
||||||
BaseformView
|
BaseformView
|
||||||
itemList *common.ItemList
|
itemList *common.ItemList
|
||||||
flag bool
|
flag bool
|
||||||
|
noticeLabl *widget.Label //公告信息
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *DispatchView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
func (d *DispatchView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
||||||
@ -38,7 +40,7 @@ func (d *DispatchView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//玩家公告
|
//玩家公告
|
||||||
|
d.noticeLabl = new(widget.Label)
|
||||||
noticeBtn := widget.NewButton("玩家公告", func() {
|
noticeBtn := widget.NewButton("玩家公告", func() {
|
||||||
d.itemList.Reset()
|
d.itemList.Reset()
|
||||||
if err := service.GetPttService().SendToClient(
|
if err := service.GetPttService().SendToClient(
|
||||||
@ -144,9 +146,10 @@ func (d *DispatchView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
|||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
btns := container.NewHBox(noticeBtn, refreshBtn, receiveBtn,
|
top := container.NewHBox(noticeBtn, refreshBtn, receiveBtn,
|
||||||
autoReceiveBtn, paiqianBtn, weekReceiveBtn)
|
autoReceiveBtn, paiqianBtn, weekReceiveBtn)
|
||||||
c := container.NewBorder(btns, nil, nil, nil, d.itemList.ItemList)
|
bottom := container.NewHBox(d.noticeLabl)
|
||||||
|
c := container.NewBorder(top, bottom, nil, nil, d.itemList.ItemList)
|
||||||
d.noticeList()
|
d.noticeList()
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
@ -169,6 +172,15 @@ func (a *DispatchView) noticeList() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a.noticeLabl.SetText(fmt.Sprintf("公告等级:%v 免费次数:%v 刷新次数:%v 任务数:%v 周任务数:%v 周奖励领取:%v",
|
||||||
|
rsp.Dispatch.Lv,
|
||||||
|
rsp.Dispatch.FreeCount,
|
||||||
|
rsp.Dispatch.RefreshCount,
|
||||||
|
rsp.Dispatch.TaskCount,
|
||||||
|
rsp.Dispatch.WeekCount,
|
||||||
|
rsp.Dispatch.WeekReceived,
|
||||||
|
))
|
||||||
|
a.noticeLabl.Refresh()
|
||||||
for _, v := range rsp.Dispatch.Tasks {
|
for _, v := range rsp.Dispatch.Tasks {
|
||||||
t1 := time.Unix(v.Duration, 0)
|
t1 := time.Unix(v.Duration, 0)
|
||||||
lt1 := t1.Format("15:04:05")
|
lt1 := t1.Format("15:04:05")
|
||||||
|
@ -176,7 +176,7 @@ func (this *modelDispatch) taskRandom(uid string, dispatch *pb.DBDispatch) (task
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
tasks = dispatch.Nb.Tasks
|
tasks = dispatch.Nb.Tasks
|
||||||
for i, v := range tasks{
|
for i, v := range tasks {
|
||||||
//只随机未接取的任务
|
//只随机未接取的任务
|
||||||
if v.Status == 0 {
|
if v.Status == 0 {
|
||||||
//删除
|
//删除
|
||||||
@ -209,41 +209,46 @@ func (this *modelDispatch) taskRandom(uid string, dispatch *pb.DBDispatch) (task
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 替换指定的任务
|
func (this *modelDispatch) addRandomTask(uid string, dispatch *pb.DBDispatch) *pb.DispatchTask {
|
||||||
func (this *modelDispatch) replaceTask(uid string, taskId int32, dispatch *pb.DBDispatch) (tasks []*pb.DispatchTask) {
|
|
||||||
randomTaskIds := this.getTasksWeight(uid, dispatch.Nb.Lv)
|
randomTaskIds := this.getTasksWeight(uid, dispatch.Nb.Lv)
|
||||||
|
//追加一条随机任务
|
||||||
|
ids := utils.RandomNumbers(1, len(randomTaskIds), 1)
|
||||||
|
if len(ids) <= 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
taskId := ids[0]
|
||||||
|
taskConf, err := this.module.configure.getDispatchTaskConf(int32(taskId))
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
for i, v := range dispatch.Nb.Tasks {
|
//公告持续截至时间
|
||||||
|
duration := configure.Now().Unix() + int64(taskConf.Taskcd)
|
||||||
|
// 任务截至时间
|
||||||
|
leftTime := configure.Now().Unix() + int64(taskConf.Tasktime)
|
||||||
|
|
||||||
|
return &pb.DispatchTask{
|
||||||
|
TaskId: int32(taskId),
|
||||||
|
Duration: duration,
|
||||||
|
LeftTime: leftTime,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 替换指定的已完成任务
|
||||||
|
func (this *modelDispatch) replaceTask(uid string, taskId int32, dispatch *pb.DBDispatch) (tasks []*pb.DispatchTask) {
|
||||||
|
tasks = dispatch.Nb.Tasks
|
||||||
|
for i, v := range tasks {
|
||||||
//替换状态是完成的任务
|
//替换状态是完成的任务
|
||||||
if v.Status == 2 {
|
if v.Status == 2 {
|
||||||
if taskId != v.TaskId {
|
if taskId != v.TaskId {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
//删除
|
//删除
|
||||||
dispatch.Nb.Tasks = append(dispatch.Nb.Tasks[:i], dispatch.Nb.Tasks[i+1:]...)
|
tasks = append(tasks[:i], tasks[i+1:]...)
|
||||||
i--
|
i--
|
||||||
|
|
||||||
//追加一条随机任务
|
tasks = append(tasks, this.addRandomTask(uid, dispatch))
|
||||||
ids := utils.RandomNumbers(1, len(randomTaskIds), 1)
|
|
||||||
if len(ids) <= 0 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
taskId := ids[0]
|
|
||||||
taskConf, err := this.module.configure.getDispatchTaskConf(v.TaskId)
|
|
||||||
if err != nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
//公告持续截至时间
|
|
||||||
duration := configure.Now().Unix() + int64(taskConf.Taskcd)
|
|
||||||
// 任务截至时间
|
|
||||||
leftTime := configure.Now().Unix() + int64(taskConf.Tasktime)
|
|
||||||
|
|
||||||
tasks = append(tasks, &pb.DispatchTask{
|
|
||||||
TaskId: int32(taskId),
|
|
||||||
Duration: duration,
|
|
||||||
LeftTime: leftTime,
|
|
||||||
})
|
|
||||||
} else {
|
} else {
|
||||||
tasks = append(tasks, v)
|
tasks = append(tasks, v)
|
||||||
}
|
}
|
||||||
@ -357,7 +362,7 @@ func (this *modelDispatch) dispatch(uid string, taskId int32, heroIds []string,
|
|||||||
for _, v := range disp.Nb.Tasks {
|
for _, v := range disp.Nb.Tasks {
|
||||||
if v.TaskId == taskId && v.Status == 0 {
|
if v.TaskId == taskId && v.Status == 0 {
|
||||||
v.HeroIds = heroIds
|
v.HeroIds = heroIds
|
||||||
if v.Duration >= configure.Now().Unix() {
|
if v.Duration <= configure.Now().Unix() {
|
||||||
return comm.NewCustomError(pb.ErrorCode_DispatchTaskExpired)
|
return comm.NewCustomError(pb.ErrorCode_DispatchTaskExpired)
|
||||||
} else {
|
} else {
|
||||||
if v.LeftTime >= configure.Now().Unix() {
|
if v.LeftTime >= configure.Now().Unix() {
|
||||||
@ -376,15 +381,6 @@ func (this *modelDispatch) dispatch(uid string, taskId int32, heroIds []string,
|
|||||||
//周任务数累加
|
//周任务数累加
|
||||||
disp.Nb.WeekCount++
|
disp.Nb.WeekCount++
|
||||||
|
|
||||||
//升级
|
|
||||||
conf, err := this.module.configure.getDispatchLvConf(disp.Nb.Lv)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if disp.Nb.WeekCount >= conf.Upgrade {
|
|
||||||
disp.Nb.Lv++
|
|
||||||
}
|
|
||||||
|
|
||||||
update := map[string]interface{}{
|
update := map[string]interface{}{
|
||||||
"nb": disp.Nb,
|
"nb": disp.Nb,
|
||||||
"ticket": disp.Ticket - 1,
|
"ticket": disp.Ticket - 1,
|
||||||
@ -426,19 +422,32 @@ func (this *modelDispatch) updateTasks(uid string, noticeboard *pb.Noticeboard,
|
|||||||
|
|
||||||
// 更新公告栏任务
|
// 更新公告栏任务
|
||||||
func (this *modelDispatch) updateNotice(uid string, dispatch *pb.DBDispatch) error {
|
func (this *modelDispatch) updateNotice(uid string, dispatch *pb.DBDispatch) error {
|
||||||
for _, v := range dispatch.Nb.Tasks {
|
for i, v := range dispatch.Nb.Tasks {
|
||||||
if v.Status == 0 {
|
if v.Status == 0 {
|
||||||
//判断到期时间
|
//判断到期时间
|
||||||
if v.Duration >= configure.Now().Unix() {
|
if v.Duration <= configure.Now().Unix() {
|
||||||
//替换任务
|
//替换到期任务
|
||||||
this.replaceTask(uid, v.TaskId, dispatch)
|
// dispatch.Nb.Tasks = this.replaceTask(uid, v.TaskId, dispatch)
|
||||||
|
dispatch.Nb.Tasks = append(dispatch.Nb.Tasks[:i], dispatch.Nb.Tasks[i+1:]...)
|
||||||
|
i--
|
||||||
|
//补一条
|
||||||
|
dispatch.Nb.Tasks = append(dispatch.Nb.Tasks, this.addRandomTask(uid, dispatch))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if v.Status == 1 {
|
if v.Status == 1 {
|
||||||
if v.LeftTime >= configure.Now().Unix() {
|
if v.LeftTime <= configure.Now().Unix() {
|
||||||
//更改次任务状态为
|
//更改次任务状态为
|
||||||
v.Status = 2 //任务结束
|
v.Status = 2 //任务结束
|
||||||
|
v.LeftTime = 0
|
||||||
|
//升级
|
||||||
|
conf, err := this.module.configure.getDispatchLvConf(dispatch.Nb.Lv)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if dispatch.Nb.WeekCount >= conf.Upgrade {
|
||||||
|
dispatch.Nb.Lv++
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user