This commit is contained in:
meixiongfeng 2022-11-28 12:07:00 +08:00
commit c641ca65ca
6 changed files with 106 additions and 40 deletions

View File

@ -1,22 +1,35 @@
package formview
import (
"fmt"
"go_dreamfactory/cmd/v2/lib/common"
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/service"
"go_dreamfactory/cmd/v2/service/observer"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"strings"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
)
type ReddotView struct {
reddotList func()
BaseformView
itemList *common.ItemList
flag bool
}
func (this *ReddotView) CreateView(t *model.TestCase) fyne.CanvasObject {
this.itemList = common.NewItemList()
this.itemList.ItemList = this.itemList.CreateList()
reddotTypeEntry := widget.NewEntry()
this.form.AppendItem(widget.NewFormItem("红点类型", reddotTypeEntry))
@ -33,5 +46,51 @@ func (this *ReddotView) CreateView(t *model.TestCase) fyne.CanvasObject {
logrus.Error(err)
}
}
return this.form
this.reddotList = func() {
if err := service.GetPttService().SendToClient(
string(comm.ModuleReddot),
"getall",
&pb.ReddotGetAllReq{}); err != nil {
logrus.Error(err)
}
}
defer this.reddotList()
refreshBtn := widget.NewButtonWithIcon("", theme.ViewRefreshIcon(), func() {
this.itemList.Reset()
this.reddotList()
})
this.dataListener()
buttonBar := container.NewHBox(refreshBtn)
c := container.NewBorder(buttonBar, this.form, nil, nil, this.itemList.ItemList)
return c
}
func (this *ReddotView) dataListener() {
this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
OnNotify: func(d interface{}, args ...interface{}) {
data := d.(*pb.UserMessage)
if !(data.MainType == string(comm.ModuleReddot) &&
data.SubType == "getall") {
return
}
rsp := &pb.ReddotGetAllResp{}
if !comm.ProtoUnmarshal(data, rsp) {
logrus.Error("unmarshal err")
}
for k, v := range rsp.Reddot {
item := common.Item{
Id: cast.ToString(k),
Text: fmt.Sprintf("%v - %v", k, v),
}
this.itemList.AddItem(item)
}
},
})
}

View File

@ -21,7 +21,8 @@ func (this *apiComp) GetAll(session comm.IUserSession, req *pb.ReddotGetAllReq)
if code = this.GetAllCheck(session, req); code != pb.ErrorCode_Success {
return
}
for k, v := range this.module.ModuleTask.Reddot(session, comm.Reddot1, comm.Reddot2, comm.Reddot3, comm.Reddot4) {
for k, v := range this.module.ModuleTask.Reddot(session, comm.Reddot1, comm.Reddot2, comm.Reddot4, comm.Reddot27,
comm.Reddot28) {
reddot[int32(k)] = v
}
for k, v := range this.module.mainline.Reddot(session, comm.Reddot5) {
@ -42,6 +43,10 @@ func (this *apiComp) GetAll(session comm.IUserSession, req *pb.ReddotGetAllReq)
for k, v := range this.module.gourmet.Reddot(session, comm.Reddot20, comm.Reddot21, comm.Reddot22) {
reddot[int32(k)] = v
}
for k, v := range this.module.sociaty.Reddot(session, comm.Reddot3, comm.Reddot29) {
reddot[int32(k)] = v
}
// for k, v := range this.module.mail.Reddot(session, comm.Reddot26) {
// reddot[int32(k)] = v
// }

View File

@ -26,6 +26,7 @@ type Reddot struct {
horoscope comm.IHoroscope
arena comm.IArena
gourmet comm.IGourmet
sociaty comm.ISociaty
// mail comm.Imail
api_comp *apiComp
}
@ -68,6 +69,11 @@ func (this *Reddot) Start() (err error) {
return
}
this.gourmet = module.(comm.IGourmet)
if module, err = this.service.GetModule(comm.ModuleSociaty); err != nil {
return
}
this.sociaty = module.(comm.ISociaty)
// if module, err = this.service.GetModule(comm.ModuleMail); err != nil {
// return
// }

View File

@ -225,6 +225,7 @@ func (this *ModelSociaty) getUserSociaty(uid string) (sociaty *pb.DBSociaty) {
sociaty); err != nil {
this.moduleSociaty.Errorln(err)
}
log.Debug("跨服获取公会信息", log.Fields{"uid": uid, "sociatyId": sociaty.Id})
}
}
@ -680,6 +681,7 @@ func (this *ModelSociaty) sign(uid string, sociaty *pb.DBSociaty) error {
}
// 是否已签到
// 已签到true 未签到false
func (this *ModelSociaty) IsSign(uid string, sociaty *pb.DBSociaty) bool {
if _, ok := utils.Findx(sociaty.SignIds, uid); ok {
return ok

View File

@ -124,30 +124,31 @@ func (this *Sociaty) Reddot(session comm.IUserSession, rid ...comm.ReddotType) (
sociaty := this.modelSociaty.getUserSociaty(session.GetUserId())
if sociaty == nil || sociaty.Id == "" {
log.Warn("公会红点未获得公会信息", log.Fields{"uid": session.GetUserId()})
return
}
var applyReddot bool
if this.modelSociaty.isRight(session.GetUserId(), sociaty,
pb.SociatyJob_PRESIDENT,
pb.SociatyJob_VICEPRESIDENT,
pb.SociatyJob_ADMIN) {
if len(sociaty.ApplyRecord) > 0 {
applyReddot = true
for _, v := range rid {
reddot[v] = false
}
return
}
for _, v := range rid {
switch v {
case comm.Reddot3:
if ok := this.modelSociaty.IsSign(session.GetUserId(), sociaty); !ok {
reddot[comm.Reddot3] = true
} else {
var applyReddot bool
if this.modelSociaty.isRight(session.GetUserId(), sociaty,
pb.SociatyJob_PRESIDENT,
pb.SociatyJob_VICEPRESIDENT,
pb.SociatyJob_ADMIN) {
if len(sociaty.ApplyRecord) > 0 {
applyReddot = true
}
}
for _, v := range rid {
switch v {
case comm.Reddot3:
tf := this.modelSociaty.IsSign(session.GetUserId(), sociaty)
reddot[comm.Reddot3] = !tf
case comm.Reddot29:
reddot[comm.Reddot29] = applyReddot
}
case comm.Reddot29:
reddot[comm.Reddot29] = applyReddot
}
}
return
}

View File

@ -144,28 +144,21 @@ func (this *ModuleTask) Reddot(session comm.IUserSession, rid ...comm.ReddotType
for _, v := range rid {
switch v {
case comm.Reddot1:
if ok, _ := this.modelTask.noReceiveTask(session.GetUserId(), comm.TASK_DAILY); ok {
reddot[comm.Reddot1] = ok
break
}
tf, _ := this.modelTask.noReceiveTask(session.GetUserId(), comm.TASK_DAILY)
reddot[comm.Reddot1] = tf
case comm.Reddot2:
if ok, _ := this.modelTask.noReceiveTask(session.GetUserId(), comm.TASK_WEEKLY); ok {
reddot[comm.Reddot2] = ok
break
}
tf, _ := this.modelTask.noReceiveTask(session.GetUserId(), comm.TASK_WEEKLY)
reddot[comm.Reddot2] = tf
case comm.Reddot4:
if ok, _ := this.modelTask.noReceiveTask(session.GetUserId(), comm.TASK_ACHIEVE); ok {
reddot[comm.Reddot4] = ok
break
}
tf, _ := this.modelTask.noReceiveTask(session.GetUserId(), comm.TASK_ACHIEVE)
reddot[comm.Reddot4] = tf
case comm.Reddot27:
if ok,_:= this.modelTaskActive.noReceiveTaskActive(session.GetUserId(), comm.TASK_DAILY);ok{
reddot[comm.Reddot27] = ok
}
tf, _ := this.modelTaskActive.noReceiveTaskActive(session.GetUserId(), comm.TASK_DAILY)
reddot[comm.Reddot27] = tf
case comm.Reddot28:
if ok,_:= this.modelTaskActive.noReceiveTaskActive(session.GetUserId(), comm.TASK_WEEKLY);ok{
reddot[comm.Reddot28] = ok
}
tf, _ := this.modelTaskActive.noReceiveTaskActive(session.GetUserId(), comm.TASK_WEEKLY)
reddot[comm.Reddot28] = tf
}
}
return