From 70d9a32a143336f7c218cc7a2e6aa37941ce25b4 Mon Sep 17 00:00:00 2001 From: liwei <2211068034@qq.com> Date: Tue, 18 Jul 2023 16:22:19 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=B4=BE=E9=81=A3?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E6=B6=88=E8=80=97=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/dispatch/api_refresh.go | 57 ++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 25 deletions(-) diff --git a/modules/dispatch/api_refresh.go b/modules/dispatch/api_refresh.go index 76cd6c367..d7561cc34 100644 --- a/modules/dispatch/api_refresh.go +++ b/modules/dispatch/api_refresh.go @@ -9,14 +9,17 @@ import ( ) // 刷新 -func (a *apiComp) RefreshCheck(session comm.IUserSession, req *pb.DispatchRefreshReq) (errdata *pb.ErrorData) { +func (this *apiComp) RefreshCheck(session comm.IUserSession, req *pb.DispatchRefreshReq) (errdata *pb.ErrorData) { return } -func (a *apiComp) Refresh(session comm.IUserSession, req *pb.DispatchRefreshReq) (errdata *pb.ErrorData) { - - d := a.module.modelDispatch.getDBDispatch(session.GetUserId()) - if d == nil { +func (this *apiComp) Refresh(session comm.IUserSession, req *pb.DispatchRefreshReq) (errdata *pb.ErrorData) { + var ( + info *pb.DBDispatch + need []*cfg.Gameatn + ) + info = this.module.modelDispatch.getDBDispatch(session.GetUserId()) + if info == nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DataNotFound, Title: pb.ErrorCode_DataNotFound.ToString(), @@ -24,10 +27,10 @@ func (a *apiComp) Refresh(session comm.IUserSession, req *pb.DispatchRefreshReq) return } - if d.Nb != nil { - if d.Nb.FreeCount > 0 { + if info.Nb != nil { + if info.Nb.FreeCount > 0 { //更新刷新次数 - if err := a.module.modelDispatch.updateFreeCount(session.GetUserId(), d.Nb); err != nil { + if err := this.module.modelDispatch.updateFreeCount(session.GetUserId(), info.Nb); err != nil { var customer = new(comm.CustomError) var code pb.ErrorCode if errors.As(err, &customer) { @@ -47,24 +50,28 @@ func (a *apiComp) Refresh(session comm.IUserSession, req *pb.DispatchRefreshReq) return } } else { - refreshCount := a.module.ModuleTools.GetGlobalConf().DispatchRefreshtimes - if d.Nb.RefreshCount >= refreshCount { + refreshCount := this.module.ModuleTools.GetGlobalConf().DispatchRefreshtimes + if info.Nb.RefreshCount >= refreshCount { errdata = &pb.ErrorData{ - Code: pb.ErrorCode_DispatchRefreshMax, - Title: pb.ErrorCode_DispatchRefreshMax.ToString(), + Code: pb.ErrorCode_DispatchRefreshMax, + Title: pb.ErrorCode_DispatchRefreshMax.ToString(), } return } - //消耗金币 - money := a.module.ModuleTools.GetGlobalConf().DispatchCheckmoney - if errdata = a.module.CheckRes(session, []*cfg.Gameatn{money}); errdata != nil { - return - } + need = make([]*cfg.Gameatn, 0) + money := this.module.ModuleTools.GetGlobalConf().DispatchCheckmoney - if errdata = a.module.ConsumeRes(session, []*cfg.Gameatn{money}, true); errdata != nil { + need = append(need, &cfg.Gameatn{ + A: money.A, + T: money.T, + N: money.N * (info.Nb.RefreshCount + 1), + }) + //消耗金币 + + if errdata = this.module.ConsumeRes(session, need, true); errdata != nil { return } - if err := a.module.modelDispatch.updateRefreshCount(session.GetUserId(), d.Nb); err != nil { + if err := this.module.modelDispatch.updateRefreshCount(session.GetUserId(), info.Nb); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.ToString(), @@ -76,22 +83,22 @@ func (a *apiComp) Refresh(session comm.IUserSession, req *pb.DispatchRefreshReq) } //刷新公告(随机新的任务 包括未领取和正在进行的任务) - tasks, err := a.module.modelDispatch.taskRandom(session.GetUserId(), d) + tasks, err := this.module.modelDispatch.taskRandom(session.GetUserId(), info) if err != nil { return } //更新公告任务 - if err := a.module.modelDispatch.updateTasks(session.GetUserId(), d.Nb, tasks); err != nil { - a.module.Debug("更新公告失败", log.Field{Key: "uid", Value: session.GetUserId()}) + if err := this.module.modelDispatch.updateTasks(session.GetUserId(), info.Nb, tasks); err != nil { + this.module.Debug("更新公告失败", log.Field{Key: "uid", Value: session.GetUserId()}) return } rsp := &pb.DispatchRefreshResp{ - FreeCount: d.Nb.FreeCount, - RefreshCount: d.Nb.RefreshCount, + FreeCount: info.Nb.FreeCount, + RefreshCount: info.Nb.RefreshCount, } - session.SendMsg(string(a.module.GetType()), "refresh", rsp) + session.SendMsg(string(this.module.GetType()), "refresh", rsp) return } From 3eccd42cdf62d453fc6601bc2f4c4dc1279cbad1 Mon Sep 17 00:00:00 2001 From: liwei <2211068034@qq.com> Date: Wed, 19 Jul 2023 19:31:23 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=91=A8=E9=95=BF?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/time.go | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/utils/time.go b/utils/time.go index e06c19155..0534e3538 100644 --- a/utils/time.go +++ b/utils/time.go @@ -18,18 +18,23 @@ func IsToday(d int64) bool { // 判断是否是出于同一周 func IsSameWeek(d int64) bool { - // 将时间戳转换成一个 time.Time 对象 - t1 := time.Unix(d, 0) - t2 := configure.Now() + // 将时间戳转换为 time.Time 类型 + time1 := time.Unix(d, 0) + time2 := configure.Now() - // 获取 t1 所在的周的第一天和 t2 所在的周的第一天 - t1FirstDay := t1.AddDate(0, 0, -int(t1.Weekday())+1) - t2FirstDay := t2.AddDate(0, 0, -int(t2.Weekday())+1) - // 判断两个时间所在的周的第一天是否相同 - return t1FirstDay.Equal(t2FirstDay) + // 获取时间戳所属的年份和周数 + year1, week1 := time1.ISOWeek() + year2, week2 := time2.ISOWeek() + + // 判断是否同一年同一周 + if year1 == year2 && week1 == week2 { + return true + } else { + return false + } } -//判断是否大于1周 +// 判断是否大于1周 func IsAfterWeek(d int64) bool { tt := time.Unix(d, 0) nowt := configure.Now() @@ -138,7 +143,7 @@ func GetTodayZeroTime(curTime int64) int64 { return startTime.Unix() } -// 计算自然天数 +// 计算自然天数 func DiffDays(t1, t2 int64) int { if t1 == t2 { return -1