예제 #1
0
파일: user.go 프로젝트: zacklin923/GoCMS
//添加会员
func (c *User) Add(user *models.User) revel.Result {

	if c.Request.Method == "GET" {

		title := "添加会员--GoCMS管理系统"

		//会员组
		user_group := new(models.User_Group)
		group_list := user_group.GetGroupList()

		c.Render(title, group_list)
		return c.RenderTemplate("User/Manage/Add.html")
	} else {

		data := make(map[string]string)

		var username string = c.Params.Get("username")
		if len(username) <= 0 {
			data["status"] = "0"
			data["message"] = "请输入用户名!"
			return c.RenderJson(data)
		} else {
			user.Username = username
		}

		if user.HasName() {
			data["status"] = "0"
			data["message"] = "用户名‘" + username + "’已有!"
			return c.RenderJson(data)
		}

		var email string = c.Params.Get("email")
		if len(email) <= 0 {
			data["status"] = "0"
			data["message"] = "请输入邮箱!"
			return c.RenderJson(data)
		} else {
			user.Email = email
		}

		if user.HasEmail() {
			data["status"] = "0"
			data["message"] = "邮箱‘" + email + "’已有!"
			return c.RenderJson(data)
		}

		var password string = c.Params.Get("password")
		if len(password) <= 0 {
			data["status"] = "0"
			data["message"] = "请输入密码!"
			return c.RenderJson(data)
		}

		var pwdconfirm string = c.Params.Get("pwdconfirm")
		if len(pwdconfirm) <= 0 {
			data["status"] = "0"
			data["message"] = "请输入确认密码!"
			return c.RenderJson(data)
		} else {
			if password != pwdconfirm {
				data["status"] = "0"
				data["message"] = "两次输入密码不一致!"
				return c.RenderJson(data)
			} else {
				user.Password = password
			}
		}

		var nickname string = c.Params.Get("nickname")
		if len(nickname) <= 0 {
			data["status"] = "0"
			data["message"] = "请输入昵称!"
			return c.RenderJson(data)
		} else {
			user.Nickname = nickname
		}

		var mobile string = c.Params.Get("mobile")
		if len(mobile) <= 0 {
			data["status"] = "0"
			data["message"] = "请输入手机号码!"
			return c.RenderJson(data)
		} else {
			user.Mobile = mobile
		}

		var groupid string = c.Params.Get("groupid")
		if len(groupid) <= 0 {
			data["status"] = "0"
			data["message"] = "请选择会员组!"
			return c.RenderJson(data)
		} else {
			Groupid, err := strconv.ParseInt(groupid, 10, 64)
			if err != nil {
				revel.WARN.Println(err)
			}

			user.Groupid = Groupid
		}

		var islock string = c.Params.Get("islock")
		if len(islock) <= 0 {
			data["status"] = "0"
			data["message"] = "请选择是否定锁!"
			return c.RenderJson(data)
		} else {
			Islock, err := strconv.ParseInt(islock, 10, 64)
			if err != nil {
				revel.WARN.Println(err)
			}

			user.Islock = Islock
		}

		var point string = c.Params.Get("point")
		if len(point) <= 0 {
			data["status"] = "0"
			data["message"] = "请输入积分点数!"
			return c.RenderJson(data)
		} else {
			Point, err := strconv.ParseInt(point, 10, 64)
			if err != nil {
				revel.WARN.Println(err)
			}

			user.Point = Point
		}

		var birthday string = c.Params.Get("birthday")
		if len(birthday) <= 0 {
			user.Birthday = "0000-00-00"
		} else {
			user.Birthday = birthday
		}

		var vip string = c.Params.Get("vip")
		if vip == "1" {
			user.Vip = 1

			var overduedate string = c.Params.Get("overduedate")

			if len(overduedate) <= 0 {
				data["status"] = "0"
				data["message"] = "请选择过期时间!"
				return c.RenderJson(data)
			} else {
				user.Overduedate = overduedate
			}

		} else {
			user.Vip = 0
			user.Overduedate = time.Now().Format("2006-01-02 15:04:04")
		}

		if ip := c.Request.Header.Get("X-Forwarded-For"); ip != "" {
			ips := strings.Split(ip, ",")
			if len(ips) > 0 && ips[0] != "" {
				rip := strings.Split(ips[0], ":")
				user.Regip = rip[0]
			}
		} else {
			ip := strings.Split(c.Request.RemoteAddr, ":")
			if len(ip) > 0 {
				if ip[0] != "[" {
					user.Regip = ip[0]
				}
			}
		}

		if user.Save() {
			data["status"] = "1"
			data["message"] = "添加会员成功!"
			return c.RenderJson(data)
		} else {
			data["status"] = "0"
			data["message"] = "添加会员失败!"
			return c.RenderJson(data)
		}
	}
}