From ce8798b02722392dcfbf69fcd7d149e063ba65ee Mon Sep 17 00:00:00 2001 From: wh_zcy Date: Tue, 22 Nov 2022 15:48:06 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E9=99=86=E6=97=B6=E5=8F=91=E9=80=81?= =?UTF-8?q?=E6=9C=AA=E7=99=BB=E9=99=86=E5=A4=A9=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/user/api_login.go | 2 ++ utils/time.go | 27 +++++++++++++++++++++++++++ utils/utils_test.go | 4 ++++ 3 files changed, 33 insertions(+) diff --git a/modules/user/api_login.go b/modules/user/api_login.go index 4592a8947..99c8aad1e 100644 --- a/modules/user/api_login.go +++ b/modules/user/api_login.go @@ -114,6 +114,8 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod } if this.module.modelUser.isLoginFirst(lastLoginTime) { + this.module.ModuleHero.NoLoginDay(user.Uid, int32(utils.DiffDays(lastLoginTime, configure.Now().Unix()))) + this.module.modelExpand.updateLoginDay(user.Uid, lastLoginTime) //清空日常 this.module.ModuleTask.ResetTask(user.Uid, comm.TASK_DAILY) diff --git a/utils/time.go b/utils/time.go index f47b3a90e..552c48774 100644 --- a/utils/time.go +++ b/utils/time.go @@ -116,3 +116,30 @@ func GetTodayZeroTime(curTime int64) int64 { return startTime.Unix() } + +// 计算自然天数 +func DiffDays(t1,t2 int64) int{ + if t1 == t2 { + return -1 + } + + if t1> t2 { + t1,t2 = t2,t1 + } + + secOfDay:= 3600*24 + diffDays:=0 + secDiff:= t2 - t1 + if secDiff > int64(secOfDay) { + tmpDays:=int(secDiff / int64(secOfDay)) + t1+=int64(tmpDays) * int64(secOfDay) + diffDays +=tmpDays + } + st:= time.Unix(t1,0) + et:= time.Unix(t2,0) + dateformat:="20060102" + if st.Format(dateformat)!= et.Format(dateformat){ + diffDays+=1 + } + return diffDays +} \ No newline at end of file diff --git a/utils/utils_test.go b/utils/utils_test.go index 0bff6a796..29bd83e45 100644 --- a/utils/utils_test.go +++ b/utils/utils_test.go @@ -87,4 +87,8 @@ func TestDeletex(t *testing.T){ a:=[]int32{1,2,3,4} c:=utils.Deletex(a, 2) fmt.Println(c) +} + +func TestDiffDays(t *testing.T){ + fmt.Println(utils.DiffDays(1614527999, 1614614400)) } \ No newline at end of file