Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into meixiongfeng
This commit is contained in:
commit
465a126d21
@ -2,8 +2,8 @@
|
|||||||
{
|
{
|
||||||
"key": 10100,
|
"key": 10100,
|
||||||
"lock": 1,
|
"lock": 1,
|
||||||
"ontxe": 0,
|
"ontxe": 99999,
|
||||||
"id_after": 10101,
|
"id_after": 0,
|
||||||
"group": 1,
|
"group": 1,
|
||||||
"des": 2,
|
"des": 2,
|
||||||
"icon": "",
|
"icon": "",
|
||||||
@ -30,7 +30,7 @@
|
|||||||
{
|
{
|
||||||
"key": 10101,
|
"key": 10101,
|
||||||
"lock": 1,
|
"lock": 1,
|
||||||
"ontxe": 10101,
|
"ontxe": 10100,
|
||||||
"id_after": 10102,
|
"id_after": 10102,
|
||||||
"group": 1,
|
"group": 1,
|
||||||
"des": 2,
|
"des": 2,
|
||||||
@ -45,14 +45,14 @@
|
|||||||
1002
|
1002
|
||||||
],
|
],
|
||||||
"completetask": 0,
|
"completetask": 0,
|
||||||
"auto_accept": 1,
|
"auto_accept": 0,
|
||||||
"overtips": 1,
|
"overtips": 1,
|
||||||
"reword": []
|
"reword": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": 10102,
|
"key": 10102,
|
||||||
"lock": 1,
|
"lock": 1,
|
||||||
"ontxe": 0,
|
"ontxe": 10101,
|
||||||
"id_after": 10103,
|
"id_after": 10103,
|
||||||
"group": 1,
|
"group": 1,
|
||||||
"des": 2,
|
"des": 2,
|
||||||
@ -1971,21 +1971,131 @@
|
|||||||
"reword": []
|
"reword": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": 101,
|
"key": 20010,
|
||||||
"lock": 1,
|
"lock": 1,
|
||||||
"ontxe": 0,
|
"ontxe": 0,
|
||||||
|
"id_after": 20020,
|
||||||
|
"group": 2,
|
||||||
|
"des": 2,
|
||||||
|
"icon": "",
|
||||||
|
"npc": [
|
||||||
|
"scenes_boundary_01_recordtask",
|
||||||
|
"新手引导-杰克第一幕1",
|
||||||
|
"150"
|
||||||
|
],
|
||||||
|
"getafter_event": [
|
||||||
|
2,
|
||||||
|
4001
|
||||||
|
],
|
||||||
|
"completetask": 0,
|
||||||
|
"auto_accept": 0,
|
||||||
|
"overtips": 1,
|
||||||
|
"reword": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": 20020,
|
||||||
|
"lock": 1,
|
||||||
|
"ontxe": 20010,
|
||||||
|
"id_after": 20030,
|
||||||
|
"group": 2,
|
||||||
|
"des": 2,
|
||||||
|
"icon": "",
|
||||||
|
"npc": [
|
||||||
|
"scenes_boundary_01_recordtask",
|
||||||
|
"新手引导-杰克第一幕1",
|
||||||
|
"150"
|
||||||
|
],
|
||||||
|
"getafter_event": [
|
||||||
|
2,
|
||||||
|
401
|
||||||
|
],
|
||||||
|
"completetask": 0,
|
||||||
|
"auto_accept": 0,
|
||||||
|
"overtips": 1,
|
||||||
|
"reword": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": 20030,
|
||||||
|
"lock": 1,
|
||||||
|
"ontxe": 20020,
|
||||||
|
"id_after": 20040,
|
||||||
|
"group": 2,
|
||||||
|
"des": 2,
|
||||||
|
"icon": "",
|
||||||
|
"npc": [
|
||||||
|
"scenes_boundary_01_recordtask",
|
||||||
|
"新手引导-杰克第一幕1",
|
||||||
|
"150"
|
||||||
|
],
|
||||||
|
"getafter_event": [
|
||||||
|
2,
|
||||||
|
401
|
||||||
|
],
|
||||||
|
"completetask": 0,
|
||||||
|
"auto_accept": 0,
|
||||||
|
"overtips": 1,
|
||||||
|
"reword": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": 20040,
|
||||||
|
"lock": 1,
|
||||||
|
"ontxe": 20030,
|
||||||
|
"id_after": 20050,
|
||||||
|
"group": 2,
|
||||||
|
"des": 2,
|
||||||
|
"icon": "",
|
||||||
|
"npc": [
|
||||||
|
"scenes_boundary_01_recordtask",
|
||||||
|
"新手引导-杰克第一幕1",
|
||||||
|
"150"
|
||||||
|
],
|
||||||
|
"getafter_event": [
|
||||||
|
2,
|
||||||
|
401
|
||||||
|
],
|
||||||
|
"completetask": 0,
|
||||||
|
"auto_accept": 0,
|
||||||
|
"overtips": 1,
|
||||||
|
"reword": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": 20050,
|
||||||
|
"lock": 1,
|
||||||
|
"ontxe": 20040,
|
||||||
|
"id_after": 20060,
|
||||||
|
"group": 2,
|
||||||
|
"des": 2,
|
||||||
|
"icon": "",
|
||||||
|
"npc": [
|
||||||
|
"scenes_boundary_01_recordtask",
|
||||||
|
"新手引导-杰克第一幕1",
|
||||||
|
"150"
|
||||||
|
],
|
||||||
|
"getafter_event": [
|
||||||
|
2,
|
||||||
|
401
|
||||||
|
],
|
||||||
|
"completetask": 0,
|
||||||
|
"auto_accept": 0,
|
||||||
|
"overtips": 1,
|
||||||
|
"reword": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": 20060,
|
||||||
|
"lock": 1,
|
||||||
|
"ontxe": 20050,
|
||||||
"id_after": 0,
|
"id_after": 0,
|
||||||
"group": 2,
|
"group": 2,
|
||||||
"des": 2,
|
"des": 2,
|
||||||
"icon": "",
|
"icon": "",
|
||||||
"npc": [
|
"npc": [
|
||||||
"scenes_boundary_01_recordtask",
|
"scenes_boundary_01_recordtask",
|
||||||
"杰克A",
|
"新手引导-杰克第一幕1",
|
||||||
"150"
|
"150"
|
||||||
],
|
],
|
||||||
"getafter_event": [
|
"getafter_event": [
|
||||||
2,
|
2,
|
||||||
1002
|
401
|
||||||
],
|
],
|
||||||
"completetask": 0,
|
"completetask": 0,
|
||||||
"auto_accept": 0,
|
"auto_accept": 0,
|
||||||
|
@ -96,6 +96,7 @@ const (
|
|||||||
TOOLBAR_TERM = "同步配置"
|
TOOLBAR_TERM = "同步配置"
|
||||||
TOOLBAR_PB = "protobuf"
|
TOOLBAR_PB = "protobuf"
|
||||||
TOOLBAR_AUTO = "自动化"
|
TOOLBAR_AUTO = "自动化"
|
||||||
|
TOOLBAR_PING = "端口扫描"
|
||||||
|
|
||||||
TOOLBAR_PERF_TIP = "开始"
|
TOOLBAR_PERF_TIP = "开始"
|
||||||
TOOLBAR_PERF_CONF = "配置"
|
TOOLBAR_PERF_CONF = "配置"
|
||||||
|
@ -32,6 +32,7 @@ var (
|
|||||||
&appPbGen{},
|
&appPbGen{},
|
||||||
&appLock{},
|
&appLock{},
|
||||||
&appTerm{},
|
&appTerm{},
|
||||||
|
&appPing{},
|
||||||
}
|
}
|
||||||
|
|
||||||
perfRegister = []appInterface{
|
perfRegister = []appInterface{
|
||||||
|
76
cmd/v2/ui/tool_ping.go
Normal file
76
cmd/v2/ui/tool_ping.go
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
package ui
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go_dreamfactory/cmd/v2/lib/common"
|
||||||
|
"go_dreamfactory/cmd/v2/service"
|
||||||
|
"go_dreamfactory/cmd/v2/service/observer"
|
||||||
|
"net"
|
||||||
|
"strings"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"fyne.io/fyne/v2"
|
||||||
|
"fyne.io/fyne/v2/container"
|
||||||
|
"fyne.io/fyne/v2/theme"
|
||||||
|
"fyne.io/fyne/v2/widget"
|
||||||
|
"github.com/spf13/cast"
|
||||||
|
)
|
||||||
|
|
||||||
|
type appPing struct {
|
||||||
|
appAdapter
|
||||||
|
resultCh chan int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *appPing) LazyInit(ptService service.PttService, obs observer.Observer) error {
|
||||||
|
this.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_PING, theme.DownloadIcon(), nil)
|
||||||
|
|
||||||
|
this.resultCh = make(chan int)
|
||||||
|
|
||||||
|
content := container.NewMax()
|
||||||
|
content.Objects = []fyne.CanvasObject{}
|
||||||
|
|
||||||
|
targetHost := widget.NewEntry()
|
||||||
|
targetHost.PlaceHolder = "目标主机Ip"
|
||||||
|
|
||||||
|
portEntry := widget.NewMultiLineEntry()
|
||||||
|
portEntry.Text = "80,3306,6379"
|
||||||
|
form := widget.NewForm(
|
||||||
|
widget.NewFormItem("端口", portEntry),
|
||||||
|
)
|
||||||
|
|
||||||
|
form.OnSubmit = func() {
|
||||||
|
ports := strings.Split(portEntry.Text, ",")
|
||||||
|
this.ping(targetHost.Text, ports)
|
||||||
|
for p := range this.resultCh {
|
||||||
|
fmt.Println(p, "ok")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
form.Items[1].HintText = "多个端口使用英文,号分隔"
|
||||||
|
content.Objects = append(content.Objects, form)
|
||||||
|
this.tabItem.Content = content
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *appPing) ping(targetHost string, ports []string) {
|
||||||
|
var wg sync.WaitGroup
|
||||||
|
wg.Add(len(ports))
|
||||||
|
for _, port := range ports {
|
||||||
|
go func(p int) {
|
||||||
|
defer wg.Done()
|
||||||
|
_, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", targetHost, p), time.Millisecond*500)
|
||||||
|
if err == nil {
|
||||||
|
this.resultCh <- p
|
||||||
|
}
|
||||||
|
}(cast.ToInt(port))
|
||||||
|
}
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
defer close(this.resultCh)
|
||||||
|
wg.Wait()
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *appPing) GetAppName() string {
|
||||||
|
return common.TOOLBAR_PING
|
||||||
|
}
|
@ -53,6 +53,10 @@ func NewToolWindow(ui *UIImpl, parent fyne.Window) ToolWindow {
|
|||||||
openApp2(mw.at, common.TOOLBAR_TERM)
|
openApp2(mw.at, common.TOOLBAR_TERM)
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
widget.NewToolbarAction(theme.MailSendIcon(), func() {
|
||||||
|
openApp2(mw.at, common.TOOLBAR_PING)
|
||||||
|
}),
|
||||||
|
|
||||||
widget.NewToolbarSpacer(),
|
widget.NewToolbarSpacer(),
|
||||||
widget.NewToolbarAction(theme.HelpIcon(), func() {
|
widget.NewToolbarAction(theme.HelpIcon(), func() {
|
||||||
showAbout()
|
showAbout()
|
||||||
|
@ -259,6 +259,10 @@ const ( //Rpc
|
|||||||
// 公会更新
|
// 公会更新
|
||||||
Rpc_ModuleSociatyUpdate core.Rpc_Key = "Rpc_ModuleSociatyUpdate"
|
Rpc_ModuleSociatyUpdate core.Rpc_Key = "Rpc_ModuleSociatyUpdate"
|
||||||
|
|
||||||
|
//公会任务列表
|
||||||
|
Rpc_ModuleSociatyTask core.Rpc_Key = "Rpc_ModuleSociatyTask"
|
||||||
|
Rpc_ModuleSociatyGetTask core.Rpc_Key = "Rpc_ModuleSociatyGetTask"
|
||||||
|
|
||||||
// RPC 通知来了邮件
|
// RPC 通知来了邮件
|
||||||
Rpc_Mail core.Rpc_Key = "Rpc_Mail"
|
Rpc_Mail core.Rpc_Key = "Rpc_Mail"
|
||||||
)
|
)
|
||||||
@ -541,6 +545,13 @@ const (
|
|||||||
Rtype144 TaskType = 144 //日常任务阵营接取抽卡
|
Rtype144 TaskType = 144 //日常任务阵营接取抽卡
|
||||||
Rtype145 TaskType = 145 //周长任务接取抽卡
|
Rtype145 TaskType = 145 //周长任务接取抽卡
|
||||||
Rtype146 TaskType = 146 //周长任务阵营接取抽卡
|
Rtype146 TaskType = 146 //周长任务阵营接取抽卡
|
||||||
|
Rtype147 TaskType = 147 //
|
||||||
|
Rtype148 TaskType = 148 //
|
||||||
|
Rtype149 TaskType = 149 //
|
||||||
|
Rtype150 TaskType = 150 //
|
||||||
|
Rtype151 TaskType = 151 //
|
||||||
|
Rtype152 TaskType = 152 //
|
||||||
|
Rtype153 TaskType = 153 //
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -286,6 +286,8 @@ type (
|
|||||||
BingoSetExp(session IUserSession, exp int32) error
|
BingoSetExp(session IUserSession, exp int32) error
|
||||||
// 设置工会活跃度
|
// 设置工会活跃度
|
||||||
BingoSetActivity(session IUserSession, activity int32) error
|
BingoSetActivity(session IUserSession, activity int32) error
|
||||||
|
// 任务条件达成通知
|
||||||
|
TaskcondNotify(uid, sociatyId string, condId int32) error
|
||||||
///红点
|
///红点
|
||||||
IReddot
|
IReddot
|
||||||
}
|
}
|
||||||
|
@ -142,5 +142,11 @@ func (this *apiComp) CreateOrder(session comm.IUserSession, req *pb.GourmetCreat
|
|||||||
code = this.module.ModifyGourmetData(session.GetUserId(), mapData)
|
code = this.module.ModifyGourmetData(session.GetUserId(), mapData)
|
||||||
|
|
||||||
session.SendMsg(string(this.module.GetType()), GourmetCreateOrderResp, &pb.GourmetCreateOrderResp{Data: _gourmet})
|
session.SendMsg(string(this.module.GetType()), GourmetCreateOrderResp, &pb.GourmetCreateOrderResp{Data: _gourmet})
|
||||||
|
|
||||||
|
iTotal := 0
|
||||||
|
for _, v := range req.Order {
|
||||||
|
iTotal += int(v.FoodCount)
|
||||||
|
}
|
||||||
|
this.module.ModuleRtask.SendToRtask(session, comm.Rtype150, int32(iTotal))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -594,7 +594,7 @@ func (this *ModelHero) AddCardExp(session comm.IUserSession, hero *pb.DBHero, ex
|
|||||||
if curLv-preLv > 0 { // 升级了 统计任务
|
if curLv-preLv > 0 { // 升级了 统计任务
|
||||||
this.ChangeHeroProperty(session, hero) // 重新计算属性值
|
this.ChangeHeroProperty(session, hero) // 重新计算属性值
|
||||||
// 推送
|
// 推送
|
||||||
|
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype147, utils.ToInt32(hero.HeroID), curLv-preLv)
|
||||||
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype113, utils.ToInt32(hero.HeroID), curLv-preLv)
|
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype113, utils.ToInt32(hero.HeroID), curLv-preLv)
|
||||||
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype4, utils.ToInt32(hero.HeroID), hero.Lv)
|
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype4, utils.ToInt32(hero.HeroID), hero.Lv)
|
||||||
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype23, 1, hero.Star, hero.Lv)
|
this.moduleHero.ModuleRtask.SendToRtask(session, comm.Rtype23, 1, hero.Star, hero.Lv)
|
||||||
|
@ -184,7 +184,9 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
|
|||||||
})
|
})
|
||||||
case comm.Rtype63:
|
case comm.Rtype63:
|
||||||
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
this.registerVerifyHandle(v.Id, &rtaskCondi{
|
||||||
|
find: this.modelRtaskRecord.equalFirstParam,
|
||||||
verify: this.modelRtask.verifyRtype63,
|
verify: this.modelRtask.verifyRtype63,
|
||||||
|
update: this.modelRtaskRecord.addUpdate,
|
||||||
})
|
})
|
||||||
case comm.Rtype16, comm.Rtype17,
|
case comm.Rtype16, comm.Rtype17,
|
||||||
comm.Rtype35, comm.Rtype44,
|
comm.Rtype35, comm.Rtype44,
|
||||||
@ -291,33 +293,60 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T
|
|||||||
if code := this.CheckCondi(uid, conf.Id); code == pb.ErrorCode_Success {
|
if code := this.CheckCondi(uid, conf.Id); code == pb.ErrorCode_Success {
|
||||||
module, err := this.service.GetModule(comm.ModuleWorldtask)
|
module, err := this.service.GetModule(comm.ModuleWorldtask)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
// 世界任务
|
go func() {
|
||||||
if worldtask, ok := module.(comm.IWorldtask); ok {
|
// 世界任务
|
||||||
if err := worldtask.TaskcondNotify(session, conf.Id); err != nil {
|
if worldtask, ok := module.(comm.IWorldtask); ok {
|
||||||
var customErr = new(comm.CustomError)
|
if err := worldtask.TaskcondNotify(session, conf.Id); err != nil {
|
||||||
if errors.As(err, &customErr) {
|
var customErr = new(comm.CustomError)
|
||||||
notifyErr := &pb.NotifyErrorNotifyPush{
|
if errors.As(err, &customErr) {
|
||||||
ReqMainType: string(comm.ModuleWorldtask),
|
notifyErr := &pb.NotifyErrorNotifyPush{
|
||||||
ReqSubType: "finish",
|
ReqMainType: string(comm.ModuleWorldtask),
|
||||||
Message: "",
|
ReqSubType: "finish",
|
||||||
}
|
Message: "",
|
||||||
|
}
|
||||||
|
|
||||||
if customErr.Code == pb.ErrorCode_WorldtaskLvNotEnough {
|
if customErr.Code == pb.ErrorCode_WorldtaskLvNotEnough {
|
||||||
notifyErr.Code = pb.ErrorCode_WorldtaskLvNotEnough
|
notifyErr.Code = pb.ErrorCode_WorldtaskLvNotEnough
|
||||||
session.SendMsg(string(comm.ModuleWorldtask), "finish", notifyErr)
|
session.SendMsg(string(comm.ModuleWorldtask), "finish", notifyErr)
|
||||||
} else if customErr.Code == pb.ErrorCode_UserSessionNobeing {
|
} else if customErr.Code == pb.ErrorCode_UserSessionNobeing {
|
||||||
notifyErr.Code = pb.ErrorCode_UserSessionNobeing
|
notifyErr.Code = pb.ErrorCode_UserSessionNobeing
|
||||||
session.SendMsg(string(comm.ModuleWorldtask), "finish", notifyErr)
|
session.SendMsg(string(comm.ModuleWorldtask), "finish", notifyErr)
|
||||||
} else {
|
} else {
|
||||||
log.Error("任务条件达成通知",
|
log.Error("任务条件达成通知",
|
||||||
log.Field{Key: "uid", Value: uid},
|
log.Field{Key: "uid", Value: uid},
|
||||||
log.Field{Key: "condId", Value: conf.Id},
|
log.Field{Key: "condId", Value: conf.Id},
|
||||||
log.Field{Key: "err", Value: err.Error()},
|
log.Field{Key: "err", Value: err.Error()},
|
||||||
)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}()
|
||||||
|
}
|
||||||
|
userModule, err := this.service.GetModule(comm.ModuleUser)
|
||||||
|
if err == nil {
|
||||||
|
go func() {
|
||||||
|
// 公会
|
||||||
|
if user, ok := userModule.(comm.IUser); ok {
|
||||||
|
ex, err := user.GetUserExpand(session.GetUserId())
|
||||||
|
if err == nil && ex.SociatyId != "" {
|
||||||
|
sociatyModule, err := this.service.GetModule(comm.ModuleSociaty)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if sociaty, ok := sociatyModule.(comm.ISociaty); ok {
|
||||||
|
if err2 := sociaty.TaskcondNotify(uid, ex.SociatyId, conf.Id); err2 != nil {
|
||||||
|
log.Error("公会任务条件达成通知",
|
||||||
|
log.Field{Key: "uid", Value: uid},
|
||||||
|
log.Field{Key: "sociatyId", Value: ex.SociatyId},
|
||||||
|
log.Field{Key: "condId", Value: conf.Id},
|
||||||
|
log.Field{Key: "err", Value: err2.Error()},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -107,6 +107,11 @@ func (this *apiComp) CreateOrder(session comm.IUserSession, req *pb.SmithyCreate
|
|||||||
mapData["clang"] = _smithy.Clang // 正在做的
|
mapData["clang"] = _smithy.Clang // 正在做的
|
||||||
mapData["ctime"] = _smithy.Ctime
|
mapData["ctime"] = _smithy.Ctime
|
||||||
code = this.module.ModifySmithyData(session.GetUserId(), mapData)
|
code = this.module.ModifySmithyData(session.GetUserId(), mapData)
|
||||||
|
iTotal := 0
|
||||||
|
for _, v := range req.Order {
|
||||||
|
iTotal += int(v.Count)
|
||||||
|
}
|
||||||
|
this.module.ModuleRtask.SendToRtask(session, comm.Rtype148, int32(iTotal))
|
||||||
|
|
||||||
session.SendMsg(string(this.module.GetType()), SmithyCreateOrderResp, &pb.SmithyCreateOrderResp{Data: _smithy})
|
session.SendMsg(string(this.module.GetType()), SmithyCreateOrderResp, &pb.SmithyCreateOrderResp{Data: _smithy})
|
||||||
return
|
return
|
||||||
|
@ -30,11 +30,14 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.SociatyReceiveRe
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 判断奖励是否已领
|
sociatyTask := this.module.modelSociatyTask.getUserTask(uid, sociaty.Id)
|
||||||
sociatyTask := this.module.modelSociaty.getUserTaskList(uid, sociaty.Id)
|
|
||||||
for _, v := range sociatyTask.TaskList {
|
for _, v := range sociatyTask.TaskList {
|
||||||
if v.TaskId == req.TaskId {
|
if v.TaskId == req.TaskId {
|
||||||
if v.Status == 1 { //已领取
|
if v.Status != 1 {
|
||||||
|
code = pb.ErrorCode_SociatyTaskValidation
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if v.Received == 1 { //已领取
|
||||||
code = pb.ErrorCode_SociatyRewardReceived
|
code = pb.ErrorCode_SociatyRewardReceived
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -42,18 +45,6 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.SociatyReceiveRe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 验证任务是否完成
|
|
||||||
if err, ok := this.module.modelSociaty.validTask(uid, req.TaskId); err != nil || !ok {
|
|
||||||
code = pb.ErrorCode_SociatyTaskValidation
|
|
||||||
this.module.Error("公会任务未通过",
|
|
||||||
log.Field{Key: "uid", Value: uid},
|
|
||||||
log.Field{Key: "sociatyId", Value: sociaty.Id},
|
|
||||||
log.Field{Key: "taskId", Value: req.TaskId},
|
|
||||||
log.Field{Key: "err", Value: err.Error()},
|
|
||||||
)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 奖励领取
|
// 奖励领取
|
||||||
if err := this.module.modelSociatyTask.receive(req.TaskId, sociaty.Id, uid); err != nil {
|
if err := this.module.modelSociatyTask.receive(req.TaskId, sociaty.Id, uid); err != nil {
|
||||||
code = pb.ErrorCode_SociatyRewardReceive
|
code = pb.ErrorCode_SociatyRewardReceive
|
||||||
|
@ -30,8 +30,9 @@ func (this *apiComp) TaskList(session comm.IUserSession, req *pb.SociatyTaskList
|
|||||||
|
|
||||||
for _, v := range sociatyTask.TaskList {
|
for _, v := range sociatyTask.TaskList {
|
||||||
taskList = append(taskList, &pb.SociatyTask{
|
taskList = append(taskList, &pb.SociatyTask{
|
||||||
TaskId: v.TaskId,
|
TaskId: v.TaskId,
|
||||||
Status: v.Status,
|
Status: v.Status,
|
||||||
|
Received: v.Received,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
rsp.List = taskList
|
rsp.List = taskList
|
||||||
|
@ -770,10 +770,10 @@ func (this *ModelSociaty) sort(list []*pb.DBSociatyRank) []*pb.DBSociatyRank {
|
|||||||
if list[i].Activity == list[j].Activity {
|
if list[i].Activity == list[j].Activity {
|
||||||
return list[i].Ctime > list[j].Ctime
|
return list[i].Ctime > list[j].Ctime
|
||||||
} else {
|
} else {
|
||||||
return list[i].Activity < list[j].Activity
|
return list[i].Activity > list[j].Activity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return list[i].Lv < list[j].Lv
|
return list[i].Lv > list[j].Lv
|
||||||
})
|
})
|
||||||
return list
|
return list
|
||||||
}
|
}
|
||||||
@ -822,7 +822,7 @@ func (this *ModelSociaty) rankDataChanged(event interface{}, next func(event int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 排行榜列表
|
// 排行榜列表(活跃度)
|
||||||
func (this *ModelSociaty) rank() (rank []*pb.DBSociatyRank) {
|
func (this *ModelSociaty) rank() (rank []*pb.DBSociatyRank) {
|
||||||
var list []*pb.DBSociaty
|
var list []*pb.DBSociaty
|
||||||
if err := this.GetList("", &list); err != nil {
|
if err := this.GetList("", &list); err != nil {
|
||||||
|
@ -1,12 +1,16 @@
|
|||||||
package sociaty
|
package sociaty
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"go_dreamfactory/comm"
|
"go_dreamfactory/comm"
|
||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
|
"go_dreamfactory/lego/sys/log"
|
||||||
"go_dreamfactory/modules"
|
"go_dreamfactory/modules"
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
"go_dreamfactory/sys/configure"
|
"go_dreamfactory/sys/configure"
|
||||||
"go_dreamfactory/utils"
|
"go_dreamfactory/utils"
|
||||||
|
|
||||||
|
"go.mongodb.org/mongo-driver/bson"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ModelSociatyTask struct {
|
type ModelSociatyTask struct {
|
||||||
@ -72,14 +76,25 @@ func (this *ModelSociatyTask) receive(taskId int32, sociatyId, uid string) error
|
|||||||
this.GetListObj(sociatyId, uid, sociatyTask)
|
this.GetListObj(sociatyId, uid, sociatyTask)
|
||||||
for _, t := range sociatyTask.TaskList {
|
for _, t := range sociatyTask.TaskList {
|
||||||
if t.TaskId == taskId {
|
if t.TaskId == taskId {
|
||||||
t.Status = 1 //领取
|
t.Received = 1 //领取
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
update := map[string]interface{}{
|
update := map[string]interface{}{
|
||||||
"taskList": sociatyTask.TaskList,
|
"taskList": sociatyTask.TaskList,
|
||||||
}
|
}
|
||||||
return this.ChangeList(sociatyId, uid, update)
|
|
||||||
|
if err := this.Redis.HMSet(fmt.Sprintf("%s:%s-%s", this.TableName,
|
||||||
|
sociatyId, uid), update); err != nil {
|
||||||
|
log.Error("DBModel ChangeList", log.Field{Key: "err", Value: err.Error()})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := this.UpdateModelLogs(this.TableName,
|
||||||
|
uid, bson.M{"sociatyid": sociatyId, "uid": uid}, update); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// 活跃度奖励领取
|
// 活跃度奖励领取
|
||||||
|
@ -6,6 +6,7 @@ package sociaty
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"go_dreamfactory/comm"
|
"go_dreamfactory/comm"
|
||||||
"go_dreamfactory/lego/base"
|
"go_dreamfactory/lego/base"
|
||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
@ -14,6 +15,9 @@ import (
|
|||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
"go_dreamfactory/sys/configure"
|
"go_dreamfactory/sys/configure"
|
||||||
cfg "go_dreamfactory/sys/configure/structs"
|
cfg "go_dreamfactory/sys/configure/structs"
|
||||||
|
"go_dreamfactory/sys/db"
|
||||||
|
|
||||||
|
"go.mongodb.org/mongo-driver/bson"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ comm.ISociaty = (*Sociaty)(nil)
|
var _ comm.ISociaty = (*Sociaty)(nil)
|
||||||
@ -60,6 +64,8 @@ func (this *Sociaty) Start() (err error) {
|
|||||||
err = this.ModuleBase.Start()
|
err = this.ModuleBase.Start()
|
||||||
this.service.RegisterFunctionName(string(comm.Rpc_ModuleSociaty), this.RpcGetSociaty)
|
this.service.RegisterFunctionName(string(comm.Rpc_ModuleSociaty), this.RpcGetSociaty)
|
||||||
this.service.RegisterFunctionName(string(comm.Rpc_ModuleSociatyUpdate), this.RpcUpdateSociaty)
|
this.service.RegisterFunctionName(string(comm.Rpc_ModuleSociatyUpdate), this.RpcUpdateSociaty)
|
||||||
|
this.service.RegisterFunctionName(string(comm.Rpc_ModuleSociatyTask), this.RpcUpdateUserTask)
|
||||||
|
this.service.RegisterFunctionName(string(comm.Rpc_ModuleSociatyGetTask), this.RpcGetUserTask)
|
||||||
this.globalConf = this.configure.GetGlobalConf()
|
this.globalConf = this.configure.GetGlobalConf()
|
||||||
if this.globalConf == nil {
|
if this.globalConf == nil {
|
||||||
err = errors.New("global config not found")
|
err = errors.New("global config not found")
|
||||||
@ -220,3 +226,80 @@ func (this *Sociaty) BingoSetActivity(session comm.IUserSession, activity int32)
|
|||||||
}
|
}
|
||||||
return this.modelSociaty.updateSociaty(sociaty.Id, update)
|
return this.modelSociaty.updateSociaty(sociaty.Id, update)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type TaskParams struct {
|
||||||
|
SociatyId string
|
||||||
|
Uid string
|
||||||
|
Data interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 任务条件达成通知
|
||||||
|
func (this *Sociaty) TaskcondNotify(uid, sociatyId string, condId int32) error {
|
||||||
|
log.Debug("公会任务",
|
||||||
|
log.Field{Key: "uid", Value: uid},
|
||||||
|
log.Field{Key: "sociatyId", Value: sociatyId},
|
||||||
|
log.Field{Key: "condId", Value: condId})
|
||||||
|
|
||||||
|
dt := &pb.DBSociatyTask{}
|
||||||
|
err := this.service.AcrossClusterRpcCall(context.Background(), this.GetCrossTag(),
|
||||||
|
comm.Service_Worker, string(comm.Rpc_ModuleSociatyGetTask),
|
||||||
|
&pb.RPCGeneralReqA2{Param1: sociatyId, Param2: uid}, dt)
|
||||||
|
|
||||||
|
var flag bool
|
||||||
|
for _, v := range dt.TaskList {
|
||||||
|
if v.TaskId == condId {
|
||||||
|
v.Status = 1
|
||||||
|
flag = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !flag {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
update := map[string]interface{}{
|
||||||
|
"taskList": dt.TaskList,
|
||||||
|
"lastUpdateTime": configure.Now().Unix(),
|
||||||
|
}
|
||||||
|
|
||||||
|
err = this.service.AcrossClusterRpcCall(context.Background(), this.GetCrossTag(),
|
||||||
|
comm.Service_Worker, string(comm.Rpc_ModuleSociatyTask),
|
||||||
|
&TaskParams{SociatyId: sociatyId, Uid: uid, Data: update}, &pb.EmptyResp{})
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *Sociaty) RpcUpdateUserTask(ctx context.Context, p *TaskParams, reply *pb.EmptyResp) error {
|
||||||
|
conn, err := db.Local()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
model := db.NewDBModel(comm.TableSociatyTask, 0, conn)
|
||||||
|
|
||||||
|
if err := model.Redis.HMSet(fmt.Sprintf("%s:%s-%s", this.modelSociatyTask.TableName,
|
||||||
|
p.SociatyId, p.Uid), p.Data); err != nil {
|
||||||
|
log.Error("DBModel ChangeList", log.Field{Key: "err", Value: err.Error()})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := model.UpdateModelLogs(this.modelSociatyTask.TableName,
|
||||||
|
p.Uid, bson.M{"sociatyid": p.SociatyId, "uid": p.Uid}, p.Data); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *Sociaty) RpcGetUserTask(ctx context.Context, p *pb.RPCGeneralReqA2, reply *pb.DBSociatyTask) error {
|
||||||
|
dt := this.modelSociatyTask.getUserTask(p.Param2, p.Param1)
|
||||||
|
if dt == nil {
|
||||||
|
return errors.New("not found")
|
||||||
|
}
|
||||||
|
reply.Uid = dt.Uid
|
||||||
|
reply.TaskList = dt.TaskList
|
||||||
|
reply.ActivityList = dt.ActivityList
|
||||||
|
reply.SociatyId = dt.SociatyId
|
||||||
|
reply.LastUpdateTime = dt.LastUpdateTime
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
@ -169,5 +169,7 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.TrollBuyOrSell
|
|||||||
if gold != 0 {
|
if gold != 0 {
|
||||||
this.module.record.AddTrollRecord(session.GetUserId(), gold, trolltrain.TarinPos)
|
this.module.record.AddTrollRecord(session.GetUserId(), gold, trolltrain.TarinPos)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.module.ModuleRtask.SendToRtask(session, comm.Rtype151, 1)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -584,8 +584,9 @@ type SociatyTask struct {
|
|||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
TaskId int32 `protobuf:"varint,1,opt,name=taskId,proto3" json:"taskId" bson:"taskId"` //任务ID
|
TaskId int32 `protobuf:"varint,1,opt,name=taskId,proto3" json:"taskId" bson:"taskId"` //任务ID
|
||||||
Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status" bson:"status"` //领取状态:0未领取 1已领取
|
Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status" bson:"status"` //领取状态:0未完成 1已完成
|
||||||
|
Received int32 `protobuf:"varint,3,opt,name=received,proto3" json:"received" bson:"received"` //领取状态: 0未领取 1已领取
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *SociatyTask) Reset() {
|
func (x *SociatyTask) Reset() {
|
||||||
@ -634,6 +635,13 @@ func (x *SociatyTask) GetStatus() int32 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *SociatyTask) GetReceived() int32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Received
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
// 活跃度
|
// 活跃度
|
||||||
type SociatyActivity struct {
|
type SociatyActivity struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
@ -839,29 +847,31 @@ var file_sociaty_sociaty_db_proto_rawDesc = []byte{
|
|||||||
0x74, 0x79, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74,
|
0x74, 0x79, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74,
|
||||||
0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69,
|
0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69,
|
||||||
0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70,
|
0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70,
|
||||||
0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x3d, 0x0a, 0x0b, 0x53, 0x6f, 0x63, 0x69,
|
0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x0b, 0x53, 0x6f, 0x63, 0x69,
|
||||||
0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49,
|
0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49,
|
||||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12,
|
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12,
|
||||||
0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
|
0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||||
0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x39, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61,
|
0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69,
|
||||||
0x74, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
|
0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69,
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
|
0x76, 0x65, 0x64, 0x22, 0x39, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x63,
|
||||||
0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
|
0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x75, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
|
0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
|
||||||
0x52, 0x61, 0x6e, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x49,
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x83,
|
||||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
|
0x01, 0x0a, 0x0d, 0x44, 0x42, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x61, 0x6e, 0x6b,
|
||||||
0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20,
|
||||||
0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01,
|
0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x49, 0x64, 0x12, 0x12,
|
||||||
0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69,
|
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
|
||||||
0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69,
|
0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02,
|
||||||
0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
|
0x6c, 0x76, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x04,
|
||||||
0x03, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x2a, 0x50, 0x0a, 0x0a, 0x53, 0x6f, 0x63, 0x69,
|
0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x14,
|
||||||
0x61, 0x74, 0x79, 0x4a, 0x6f, 0x62, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x4f, 0x4a, 0x4f, 0x42, 0x10,
|
0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63,
|
||||||
0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x01, 0x12, 0x09, 0x0a,
|
0x74, 0x69, 0x6d, 0x65, 0x2a, 0x50, 0x0a, 0x0a, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4a,
|
||||||
0x05, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x49, 0x43, 0x45,
|
0x6f, 0x62, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x4f, 0x4a, 0x4f, 0x42, 0x10, 0x00, 0x12, 0x0a, 0x0a,
|
||||||
0x50, 0x52, 0x45, 0x53, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x50,
|
0x06, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x44, 0x4d,
|
||||||
0x52, 0x45, 0x53, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x10, 0x04, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
|
0x49, 0x4e, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x49, 0x43, 0x45, 0x50, 0x52, 0x45, 0x53,
|
||||||
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
0x49, 0x44, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x52, 0x45, 0x53, 0x49,
|
||||||
|
0x44, 0x45, 0x4e, 0x54, 0x10, 0x04, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06,
|
||||||
|
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
Loading…
Reference in New Issue
Block a user