修复数据库时间比前端小8小时的问题,优化null值前端不显示

This commit is contained in:
wsczx 2022-10-16 19:55:13 +08:00
parent a533ee0a78
commit 812eb587bb
4 changed files with 15 additions and 12 deletions

View File

@ -64,10 +64,13 @@ func One(fieldName string, value interface{}, data interface{}) error {
// 用户过期时间到达后,更新用户状态,并返回一个状态为过期的用户切片
func CheckUserlimittime() []interface{} {
//初始化xorm时区
xdb.DatabaseTZ = time.Local
xdb.TZLocation = time.Local
var user map[int64]User
var limitUser []interface{}
u := &User{Status: 2}
xdb.Where("limittime < ?", time.Now()).And("status = ?", 1).Update(u)
xdb.Where("limittime <= ?", time.Now()).And("status = ?", 1).Update(u)
xdb.Where("status= ?", 2).Find(u)
for _, v := range user {
limitUser = append(limitUser, v.Username)

View File

@ -29,15 +29,15 @@ type User struct {
Nickname string `json:"nickname" xorm:"varchar(255)"`
Email string `json:"email" xorm:"varchar(255)"`
// Password string `json:"password"`
PinCode string `json:"pin_code" xorm:"varchar(32)"`
LimitTime time.Time `json:"limittime" xorm:"Datetime limittime"`
OtpSecret string `json:"otp_secret" xorm:"varchar(255)"`
DisableOtp bool `json:"disable_otp" xorm:"Bool"` // 禁用otp
Groups []string `json:"groups" xorm:"Text"`
Status int8 `json:"status" xorm:"Int"` // 1正常
SendEmail bool `json:"send_email" xorm:"Bool"`
CreatedAt time.Time `json:"created_at" xorm:"DateTime created"`
UpdatedAt time.Time `json:"updated_at" xorm:"DateTime updated"`
PinCode string `json:"pin_code" xorm:"varchar(32)"`
LimitTime *time.Time `json:"limittime,omitempty" xorm:"Datetime limittime"` //值为null时前端不显示
OtpSecret string `json:"otp_secret" xorm:"varchar(255)"`
DisableOtp bool `json:"disable_otp" xorm:"Bool"` // 禁用otp
Groups []string `json:"groups" xorm:"Text"`
Status int8 `json:"status" xorm:"Int"` // 1正常
SendEmail bool `json:"send_email" xorm:"Bool"`
CreatedAt time.Time `json:"created_at" xorm:"DateTime created"`
UpdatedAt time.Time `json:"updated_at" xorm:"DateTime updated"`
}
type IpMap struct {

View File

@ -1,5 +1,6 @@
// AnyLink 是一个企业级远程办公vpn软件可以支持多人同时在线使用。
//go:build !windows
// +build !windows
package main

View File

@ -116,8 +116,7 @@ func checkSession() {
// 状态为过期的用户踢下线
func CloseUserLimittimeSession() {
y := dbdata.CheckUserlimittime()
s := mapset.NewSetFromSlice(y)
s := mapset.NewSetFromSlice(dbdata.CheckUserlimittime())
for k, v := range sessions {
sessMux.Lock()
v.mux.Lock()