Преглед изворни кода

fix:添加用户启用状态的开始和有效日期

zqbao пре 10 месеци
родитељ
комит
ec2b126c59
2 измењених фајлова са 31 додато и 10 уклоњено
  1. 27 8
      controllers/user.go
  2. 4 2
      models/request/user.go

+ 27 - 8
controllers/user.go

@@ -680,6 +680,28 @@ func (this *UserController) EditEnabled() {
 		return
 	}
 
+	validStartTime, err := time.Parse("2006-01-02", req.ValidStartTime)
+	if err != nil {
+		br.Msg = "日期格式不正确"
+		return
+	}
+	validEndTime, err := time.Parse("2006-01-02", req.ValidEndTime)
+	if err != nil {
+		br.Msg = "日期格式不正确"
+		return
+	}
+	if !validEndTime.After(validStartTime) {
+		br.Msg = "有效期结束日期在开始日期之前,日期格式不正确"
+		return
+	}
+	validStartTime = validStartTime.Local().Add(-time.Hour * 8)
+	validEndTime = validEndTime.Local().Add(-time.Hour*8 + time.Hour*24)
+	curTime := time.Now()
+	if curTime.After(validEndTime) {
+		br.Msg = "有效期已到期,请重新设置"
+		return
+	}
+
 	user, err := models.GetUserById(req.UserId)
 	if err != nil {
 		br.Msg = "获取数据失败"
@@ -687,18 +709,15 @@ func (this *UserController) EditEnabled() {
 		return
 	}
 	// 修改系统用户禁用状态
-	curTime := time.Now()
-	if req.IsEnabled && curTime.Before(user.ValidEndTime) && curTime.After(user.ValidStartTime) {
+	if req.IsEnabled {
 		user.Status = 2
-	}
-	if !req.IsEnabled {
-		user.Status = 0
 	} else {
-		user.Status = 1
-
+		user.Status = 0
 	}
 	user.ModifyTime = curTime
-	err = user.Update([]string{"status", "modify_time"})
+	user.ValidStartTime = validStartTime
+	user.ValidEndTime = validEndTime
+	err = user.Update([]string{"status", "modify_time", "valid_start_time", "valid_end_time"})
 	if err != nil {
 		br.Msg = "修改失败"
 		br.ErrMsg = "修改系统用户数据失败,Err:" + err.Error()

+ 4 - 2
models/request/user.go

@@ -37,6 +37,8 @@ type UserDeleteReq struct {
 }
 
 type UserEditEnabledReq struct {
-	UserId    int  `description:"用户id"`
-	IsEnabled bool `description:"是否启用"`
+	UserId         int    `description:"用户id"`
+	IsEnabled      bool   `description:"是否启用"`
+	ValidStartTime string `description:"有效期开始时间"`
+	ValidEndTime   string `description:"有效期结束时间"`
 }