更新推送监听
This commit is contained in:
parent
d1a1a2bc57
commit
55127dc69b
@ -86,28 +86,21 @@ func (c *ConnServiceImpl) ListenerPush() {
|
||||
methodStr := msg.Data.TypeUrl
|
||||
methodName := common.SubStr(methodStr, 20, len(methodStr))
|
||||
p := &model.PushModel{
|
||||
// MainType: msg.MainType,
|
||||
// SubType: msg.SubType,
|
||||
MethodName: methodName,
|
||||
DataTime: time.Now().Format(time.RFC3339),
|
||||
// Rsp: msg.Data,
|
||||
Msg: msg,
|
||||
Msg: msg,
|
||||
}
|
||||
logrus.WithFields(
|
||||
logrus.Fields{"MainType": msg.MainType, "SubType": msg.SubType},
|
||||
).Debug(methodName)
|
||||
|
||||
renderRespPanel := func(p *model.PushModel) {
|
||||
// data, err := anypb.New(p.Msg)
|
||||
// if err != nil {
|
||||
// logrus.Error(err)
|
||||
// return
|
||||
// }
|
||||
c.obs.Notify(observer.EVENT_CASE_RSP, p.Msg)
|
||||
c.obs.Notify(observer.EVENT_REQ_RSP, p.Msg)
|
||||
}
|
||||
|
||||
if strings.HasSuffix(methodName, "Push") {
|
||||
c.obs.Notify(observer.EVENT_APP_PUSH, p)
|
||||
c.obs.Notify(observer.EVENT_APP_MONI, p)
|
||||
c.obs.Notify(observer.EVENT_USER_CHANGE, p)
|
||||
if methodName == "NotifyErrorNotifyPush" {
|
||||
renderRespPanel(p)
|
||||
}
|
||||
|
@ -5,9 +5,10 @@ const (
|
||||
//用户详情
|
||||
EVENT_USERINFO Event = "userinfo"
|
||||
//协议推送
|
||||
EVENT_APP_PUSH Event = "push"
|
||||
EVENT_APP_MONI Event = "push"
|
||||
EVENT_USER_CHANGE = "chanage"
|
||||
//测试用例响应事件
|
||||
EVENT_CASE_RSP Event = "response"
|
||||
EVENT_REQ_RSP Event = "response"
|
||||
// 清空 ui数据事件
|
||||
EVENT_UI_CLEAN = "uiclean"
|
||||
)
|
||||
|
@ -15,8 +15,8 @@ var (
|
||||
)
|
||||
|
||||
type PttService interface {
|
||||
Login(sid, account string) (code pb.ErrorCode, rsp *pb.UserLoginResp)
|
||||
CreateRole(nickName string) (code pb.ErrorCode, rsp *pb.UserCreateResp)
|
||||
Login(sid, account string) (code pb.ErrorCode)
|
||||
CreateRole(nickName string) (code pb.ErrorCode)
|
||||
GetUser() *UserInfo
|
||||
SetUser(dbUser *pb.DBUser, dbUserExpand *pb.DBUserExpand)
|
||||
SendToClient(mainType, subType string, rsp proto.Message) error
|
||||
@ -61,7 +61,7 @@ func (p *PttServiceImpl) SendToClient(mainType, subType string, rsp proto.Messag
|
||||
}
|
||||
|
||||
// Login
|
||||
func (p *PttServiceImpl) Login(sid, account string) (code pb.ErrorCode, rsp *pb.UserLoginResp) {
|
||||
func (p *PttServiceImpl) Login(sid, account string) (code pb.ErrorCode) {
|
||||
head := &pb.UserMessage{MainType: string(comm.ModuleUser), SubType: user.UserSubTypeLogin}
|
||||
head.Sec = common.BuildSecStr(sid, account)
|
||||
if err := p.connService.SendMsg(head, &pb.UserLoginReq{
|
||||
@ -72,29 +72,11 @@ func (p *PttServiceImpl) Login(sid, account string) (code pb.ErrorCode, rsp *pb.
|
||||
logrus.WithField("err", err).Error("Login")
|
||||
return
|
||||
}
|
||||
|
||||
//respone
|
||||
for {
|
||||
if cd, msg := p.connService.ReceiveMsg(); cd != pb.ErrorCode_Success {
|
||||
code = cd
|
||||
break
|
||||
} else {
|
||||
//suc
|
||||
rsp = &pb.UserLoginResp{}
|
||||
if msg.MainType == string(comm.ModuleUser) && msg.SubType == user.UserSubTypeLogin {
|
||||
if !comm.ProtoUnmarshal(msg, rsp) {
|
||||
code = pb.ErrorCode_PbError
|
||||
return
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// create role
|
||||
func (p *PttServiceImpl) CreateRole(nickName string) (code pb.ErrorCode, rsp *pb.UserCreateResp) {
|
||||
func (p *PttServiceImpl) CreateRole(nickName string) (code pb.ErrorCode) {
|
||||
head := &pb.UserMessage{MainType: string(comm.ModuleUser), SubType: user.UserSubTypeCreate}
|
||||
head.Sec = common.BuildSecStr(p.user.DbUser.Sid, p.user.DbUser.Binduid)
|
||||
if err := p.connService.SendMsg(head, &pb.UserCreateReq{
|
||||
@ -104,26 +86,5 @@ func (p *PttServiceImpl) CreateRole(nickName string) (code pb.ErrorCode, rsp *pb
|
||||
logrus.WithField("err", err).Error("CreateRole")
|
||||
return
|
||||
}
|
||||
|
||||
//response
|
||||
// for {
|
||||
// if cd, msg := p.connService.ReceiveMsg(); cd != pb.ErrorCode_Success {
|
||||
// code = cd
|
||||
// break
|
||||
// } else {
|
||||
// rsp = &pb.UserCreateResp{}
|
||||
// if msg.MainType == string(comm.ModuleUser) && msg.SubType == user.UserSubTypeCreate {
|
||||
// if !comm.ProtoUnmarshal(msg, rsp) {
|
||||
// code = pb.ErrorCode_PbError
|
||||
// return
|
||||
// }
|
||||
// logrus.
|
||||
// WithFields(logrus.Fields{"nickname": nickName}).
|
||||
// WithFields(logrus.Fields{"rsp": rsp.IsSucc}).
|
||||
// Debug("response create role")
|
||||
// break
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
return
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import (
|
||||
"go_dreamfactory/cmd/v2/lib/common"
|
||||
"go_dreamfactory/cmd/v2/model"
|
||||
"go_dreamfactory/cmd/v2/service/observer"
|
||||
"time"
|
||||
|
||||
"fyne.io/fyne/v2"
|
||||
"fyne.io/fyne/v2/container"
|
||||
@ -71,8 +72,9 @@ func (a appMonitor) OnClose() bool {
|
||||
|
||||
// monitor list data
|
||||
func (this *appMonitor) Run() {
|
||||
this.obs.AddListener(observer.EVENT_APP_PUSH, observer.Listener{
|
||||
this.obs.AddListener(observer.EVENT_APP_MONI, observer.Listener{
|
||||
OnNotify: func(d interface{}, args ...interface{}) {
|
||||
time.Sleep(time.Millisecond * 20)
|
||||
data := d.(*model.PushModel)
|
||||
this.monitorData.DataList = append(this.monitorData.DataList, data)
|
||||
this.reloadMonitorData()
|
||||
|
@ -44,9 +44,9 @@ func (a *appTester) LazyInit(obs observer.Observer) error {
|
||||
content.Objects = []fyne.CanvasObject{}
|
||||
|
||||
if view, ok := viewRegister[viewKey]; ok {
|
||||
view.Init(obs, globalWin.w)
|
||||
view.Init(obs, globalWin.w)
|
||||
resLog := widget.NewMultiLineEntry()
|
||||
obs.AddListener(observer.EVENT_CASE_RSP, observer.Listener{
|
||||
obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
|
||||
OnNotify: func(data interface{}, args ...interface{}) {
|
||||
if data == nil {
|
||||
return
|
||||
|
@ -20,3 +20,7 @@ func (this *BaseformView) Init(obs observer.Observer, w fyne.Window) {
|
||||
this.form = widget.NewForm()
|
||||
this.form.SubmitText = common.BUTTON_OK
|
||||
}
|
||||
|
||||
func (this *BaseformView) Load() {
|
||||
this.form.OnSubmit()
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ func (this *FriendAgreeView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
||||
|
||||
// listener applyListdata
|
||||
func (this *FriendAgreeView) dataListener() {
|
||||
this.obs.AddListener(observer.EVENT_CASE_RSP, observer.Listener{
|
||||
this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
|
||||
OnNotify: func(d interface{}, args ...interface{}) {
|
||||
data := d.(*pb.UserMessage)
|
||||
if !(data.MainType == string(comm.ModuleFriend) &&
|
||||
|
@ -46,7 +46,7 @@ func (this *FriendBlacklistView) CreateView(t *model.TestCase) fyne.CanvasObject
|
||||
}
|
||||
|
||||
func (this *FriendBlacklistView) dataListener() {
|
||||
this.obs.AddListener(observer.EVENT_CASE_RSP, observer.Listener{
|
||||
this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
|
||||
OnNotify: func(d interface{}, args ...interface{}) {
|
||||
data := d.(*pb.UserMessage)
|
||||
if !(data.MainType == string(comm.ModuleFriend) &&
|
||||
|
@ -18,6 +18,7 @@ import (
|
||||
//好友列表
|
||||
type FriendListView struct {
|
||||
FriendListBaseView //继承支持好友列表的基类
|
||||
friendList func()
|
||||
}
|
||||
|
||||
func (this *FriendListView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
||||
@ -28,7 +29,7 @@ func (this *FriendListView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
||||
this.createList()
|
||||
|
||||
// new friendlist btn
|
||||
friendList := func() {
|
||||
this.friendList = func() {
|
||||
if err := service.GetPttService().SendToClient(
|
||||
string(comm.ModuleFriend),
|
||||
friend.FriendSubTypeList,
|
||||
@ -37,7 +38,7 @@ func (this *FriendListView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
||||
}
|
||||
this.friendData = model.NewFriendModelList()
|
||||
}
|
||||
friendListBtn := widget.NewButton("好友列表", friendList)
|
||||
friendListBtn := widget.NewButton("好友列表", this.friendList)
|
||||
|
||||
//点赞
|
||||
zanBtn := widget.NewButtonWithIcon("点赞", theme.ConfirmIcon(), func() {
|
||||
@ -64,8 +65,12 @@ func (this *FriendListView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
||||
return split
|
||||
}
|
||||
|
||||
func (this *FriendListView) Load() {
|
||||
this.friendList()
|
||||
}
|
||||
|
||||
func (this *FriendListView) dataListener() {
|
||||
this.obs.AddListener(observer.EVENT_CASE_RSP, observer.Listener{
|
||||
this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
|
||||
OnNotify: func(d interface{}, args ...interface{}) {
|
||||
data := d.(*pb.UserMessage)
|
||||
if !(data.MainType == string(comm.ModuleFriend) &&
|
||||
|
@ -54,7 +54,7 @@ func (this *FriendZanView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
||||
this.createList()
|
||||
|
||||
// layout
|
||||
split := container.NewHSplit(this.dataList, container.NewVBox( zanListBtn, receiveBtn))
|
||||
split := container.NewHSplit(this.dataList, container.NewVBox(zanListBtn, receiveBtn))
|
||||
split.Offset = 1
|
||||
|
||||
this.dataListener()
|
||||
@ -62,7 +62,7 @@ func (this *FriendZanView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
||||
}
|
||||
|
||||
func (this *FriendZanView) dataListener() {
|
||||
this.obs.AddListener(observer.EVENT_CASE_RSP, observer.Listener{
|
||||
this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
|
||||
OnNotify: func(d interface{}, args ...interface{}) {
|
||||
data := d.(*pb.UserMessage)
|
||||
if !(data.MainType == string(comm.ModuleFriend) &&
|
||||
@ -75,6 +75,7 @@ func (this *FriendZanView) dataListener() {
|
||||
logrus.Error("unmarshal err")
|
||||
}
|
||||
|
||||
this.friendData = model.NewFriendModelList()
|
||||
for _, v := range rsp.List {
|
||||
fm := &model.FriendModel{
|
||||
Uid: v.UserId,
|
||||
|
@ -5,8 +5,9 @@ import (
|
||||
"go_dreamfactory/cmd/v2/lib/common"
|
||||
"go_dreamfactory/cmd/v2/service"
|
||||
"go_dreamfactory/cmd/v2/service/observer"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/modules/user"
|
||||
"go_dreamfactory/pb"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"fyne.io/fyne/v2"
|
||||
@ -73,7 +74,6 @@ func NewMainWindow(ui *UIImpl) MainWindow {
|
||||
conf.SetDismissText("取消")
|
||||
conf.SetConfirmText("退出")
|
||||
conf.Show()
|
||||
os.Exit(0)
|
||||
},
|
||||
})
|
||||
return mw
|
||||
@ -210,31 +210,52 @@ func (ui *MainWindowImpl) createLoginWin(sid, sname string) {
|
||||
} else {
|
||||
if account.Text != "" {
|
||||
logrus.WithField("account", account.Text).Debug("submit login")
|
||||
if code, rsp := ui.pttService.Login(sid, account.Text); code != pb.ErrorCode_Success {
|
||||
ui.createWindowContainer()
|
||||
appName, err := ui.at.openDefaultApp()
|
||||
if err != nil {
|
||||
logrus.WithField("appName", appName).Error(err)
|
||||
}
|
||||
// 必须在创建窗口之后调用
|
||||
ui.connService.ListenerPush()
|
||||
if code := ui.pttService.Login(sid, account.Text); code != pb.ErrorCode_Success {
|
||||
err := fmt.Errorf("login err: %v[%d]", code, int32(code))
|
||||
dialog.ShowError(err, ui.w)
|
||||
|
||||
} else {
|
||||
ui.w.SetTitle(fmt.Sprintf("%s[%s]", sname, sid))
|
||||
ui.connService.ListenerPush()
|
||||
//show mainwindow
|
||||
// logrus.Debug(rsp)
|
||||
ui.pttService.SetUser(rsp.Data, rsp.Ex)
|
||||
// isCreateRole
|
||||
if rsp.Data.Created {
|
||||
// ui.renderUserContainer()
|
||||
ui.createWindowContainer()
|
||||
ui.sb.setMessage(common.LABEL_WELCOME + rsp.Data.Binduid)
|
||||
appName, err := ui.at.openDefaultApp()
|
||||
if err != nil {
|
||||
logrus.WithField("appName", appName).Error(err)
|
||||
}
|
||||
ui.obs.Notify(observer.EVENT_USERINFO, ui.pttService.GetUser())
|
||||
} else {
|
||||
ui.createRoleWindowPopUp()
|
||||
}
|
||||
//
|
||||
ui.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
|
||||
OnNotify: func(data interface{}, args ...interface{}) {
|
||||
if data == nil {
|
||||
return
|
||||
}
|
||||
msg := data.(*pb.UserMessage)
|
||||
if msg.MainType == string(comm.ModuleUser) &&
|
||||
msg.SubType == user.UserSubTypeLogin {
|
||||
rsp := &pb.UserLoginResp{}
|
||||
if !comm.ProtoUnmarshal(msg, rsp) {
|
||||
logrus.Error("unmarshal err")
|
||||
return
|
||||
}
|
||||
|
||||
ui.w.SetTitle(fmt.Sprintf("%s[%s]", sname, sid))
|
||||
|
||||
//show mainwindow
|
||||
// logrus.Debug(rsp)
|
||||
ui.pttService.SetUser(rsp.Data, rsp.Ex)
|
||||
// isCreateRole
|
||||
if rsp.Data.Created {
|
||||
// ui.renderUserContainer()
|
||||
|
||||
ui.sb.setMessage(common.LABEL_WELCOME + rsp.Data.Binduid)
|
||||
|
||||
ui.obs.Notify(observer.EVENT_USERINFO, ui.pttService.GetUser())
|
||||
} else {
|
||||
ui.createRoleWindowPopUp()
|
||||
}
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -273,7 +294,7 @@ func (ui *MainWindowImpl) createRoleWindowPopUp() {
|
||||
} else {
|
||||
if nickname.Text != "" {
|
||||
logrus.WithField("nickname", nickname.Text).Debug("submit crete role")
|
||||
if code, _ := ui.pttService.CreateRole(nickname.Text); code != pb.ErrorCode_Success {
|
||||
if code := ui.pttService.CreateRole(nickname.Text); code != pb.ErrorCode_Success {
|
||||
err := fmt.Errorf("login err: %v[%d]", code, int32(code))
|
||||
dialog.ShowError(err, ui.w)
|
||||
} else {
|
||||
|
@ -20,6 +20,7 @@ import (
|
||||
type MyCaseView interface {
|
||||
Init(obs observer.Observer, w fyne.Window)
|
||||
CreateView(t *model.TestCase) fyne.CanvasObject
|
||||
Load()
|
||||
}
|
||||
|
||||
// 1 注册接口测试的表单试图
|
||||
|
@ -87,7 +87,7 @@ func (this *toyUserInfo) dataListener() {
|
||||
},
|
||||
})
|
||||
|
||||
this.obs.AddListener(observer.EVENT_CASE_RSP, observer.Listener{
|
||||
this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
|
||||
OnNotify: func(d interface{}, args ...interface{}) {
|
||||
data := d.(*pb.UserMessage)
|
||||
//change name
|
||||
@ -103,7 +103,7 @@ func (this *toyUserInfo) dataListener() {
|
||||
},
|
||||
})
|
||||
|
||||
this.obs.AddListener(observer.EVENT_APP_PUSH, observer.Listener{
|
||||
this.obs.AddListener(observer.EVENT_USER_CHANGE, observer.Listener{
|
||||
OnNotify: func(d interface{}, args ...interface{}) {
|
||||
data := d.(*model.PushModel)
|
||||
// listener gold
|
||||
@ -120,6 +120,9 @@ func (this *toyUserInfo) dataListener() {
|
||||
data.Msg.SubType == "" {
|
||||
//TODO change exp
|
||||
}
|
||||
//
|
||||
logrus.WithField("key", "a").Debug(data.Msg.SubType)
|
||||
|
||||
},
|
||||
})
|
||||
}
|
||||
|
@ -23,33 +23,36 @@ func (this *apiComp) Zan(session comm.IUserSession, req *pb.FriendZanReq) (code
|
||||
}
|
||||
|
||||
var (
|
||||
self *pb.DBFriend
|
||||
err error
|
||||
target *pb.DBFriend
|
||||
err error
|
||||
selfId string
|
||||
)
|
||||
|
||||
self = this.moduleFriend.modelFriend.GetFriend(session.GetUserId())
|
||||
if self == nil {
|
||||
selfId = session.GetUserId()
|
||||
|
||||
target = this.moduleFriend.modelFriend.GetFriend(req.FriendId)
|
||||
if target == nil {
|
||||
code = pb.ErrorCode_FriendSelfNoData
|
||||
return
|
||||
}
|
||||
|
||||
// 不能给自己点赞
|
||||
if req.FriendId == self.Uid {
|
||||
if req.FriendId == selfId {
|
||||
code = pb.ErrorCode_FriendZanSelf
|
||||
return
|
||||
}
|
||||
|
||||
// 好友是否被点赞
|
||||
if _, ok := utils.Find(self.ZanIds, req.FriendId); ok {
|
||||
// 是否已给好友点赞
|
||||
if _, ok := utils.Find(target.ZanIds, selfId); ok {
|
||||
code = pb.ErrorCode_FriendZaned
|
||||
return
|
||||
}
|
||||
|
||||
//设置被点赞玩家
|
||||
self.ZanIds = append(self.ZanIds, req.FriendId)
|
||||
target.ZanIds = append(target.ZanIds, selfId)
|
||||
|
||||
if err = this.moduleFriend.modelFriend.Change(req.FriendId, map[string]interface{}{
|
||||
"ZanIds": self.ZanIds,
|
||||
if err = this.moduleFriend.modelFriend.Change(target.GetUid(), map[string]interface{}{
|
||||
"zanIds": target.ZanIds,
|
||||
}); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
|
Loading…
Reference in New Issue
Block a user