Ejemplo n.º 1
0
func (this *LoginController) Exit() {
	r := this.Request
	w := this.ResponseWriter
	cookie := u.Cookie{HTTP: this.HTTP}
	cookie.DestroyCooike()
	http.Redirect(w, r, "/", http.StatusSeeOther)
}
Ejemplo n.º 2
0
func (this *UserController) Edit() {
	w := this.ResponseWriter
	r := this.Request
	data := e.TData{}

	common := CommonController{HTTP: this.HTTP}

	t := common.getTpl("User.edit.introduction.tpl", "User.edit.tpl", "User.edit.avatar.tpl", "User.edit.baseinfo.tpl", "User.edit.skills.tpl", "User.edit.skill.tpl", "User.edit.introduction.tpl")

	r.ParseForm()
	userId := r.FormValue("id")
	user := m.User{Id: userId}

	cookie := u.Cookie{HTTP: this.HTTP}
	cookie = cookie.GetCookie()

	flag := true
	if cookie.UserId == nil || userId != cookie.UserId.Value { //无登录cookie
		flag = false
	}
	if flag {
		user = user.GetOneUserById()
		data.CurrentUser = user
		data.Data = user
		data.Flag = flag
		t.Execute(w, &data)
	} else {
		Error{HTTP: this.HTTP}.Get()
	}

}
Ejemplo n.º 3
0
func (this *UserController) Q() {
	w := this.ResponseWriter
	r := this.Request
	r.ParseForm()
	parId := r.FormValue("id")

	common := CommonController{HTTP: this.HTTP}

	t := common.getTpl("UserDetail", "T.user.tpl", "Order.add.tpl")

	showuser := m.User{Id: parId}
	data := e.TData{}
	flag := false
	isCurrentUser := false
	cookie := u.Cookie{HTTP: this.HTTP}
	cookie = cookie.GetCookie()
	// log.Println("获取cookie中的用户名")
	// username := u.GetCookieUserName(w, r)
	// if username != "" { //如果已经登录了
	// 	user = user.GetOneUserByName(username)
	// } else {

	// }

	log.Println(parId)
	if parId == "" {
		log.Println("url有错误")
	}
	showuser = showuser.GetOneUserById()
	loginuser := m.User{}
	userId := cookie.UserId //登录用户

	log.Println(showuser.RealName)
	if showuser.RealName != "" { //查到用户
		if userId != nil { //查到有登录用户
			loginuser.Id = userId.Value
			flag = true
			if showuser.Id == loginuser.Id { //已登录的用户浏览别人的资料
				isCurrentUser = true
			}
		}
		if !isCurrentUser { //别人浏览
			telph := u.SubString(showuser.UserName, 0, len(showuser.UserName)-4) + "****"
			idCard := u.SubString(showuser.IDCard, 0, len(showuser.IDCard)-4) + "****"
			showuser.UserName = telph
			showuser.IDCard = idCard
		}

		data = e.TData{Data: showuser, CurrentUser: loginuser, Flag: flag}

		t.Execute(w, &data)
	}

}
Ejemplo n.º 4
0
func (this *LoginController) Check() {
	data := e.Data{Status: 1, Msg: "已登录"}
	cookie := u.Cookie{HTTP: this.HTTP}
	cookie = cookie.GetCookie()
	if cookie.UserId == nil { //没有登录
		data.Status = 0
		data.Msg = "没有登录"
		data.Data = "/login"
	}
	u.OutputJson(this.ResponseWriter, &data)
}
Ejemplo n.º 5
0
func (this *AvatarController) Post() {
	w := this.ResponseWriter
	r := this.Request
	data := e.Data{Status: 1, Msg: "上传成功"}
	log.Println("头像上传post")
	r.ParseMultipartForm(32 << 20)
	log.Println("表单解析")
	file, handler, err := r.FormFile("realPicFile")

	if err != nil {
		log.Println("上传错误")
		return
	}

	fileext := filepath.Ext(handler.Filename)
	log.Println("文件后缀名字" + fileext)
	if u.Check(fileext) == false {
		data.Status = 0
		data.Msg = "不允许的上传类型"
		u.OutputJson(w, &data)
		return
	}
	cookie := u.Cookie{HTTP: this.HTTP}

	filename := cookie.GetCookie().UserId.Value + ".png"
	log.Println("文件名称" + filename)

	imgfile, _ := os.OpenFile(Upload_Dir+filename, os.O_CREATE|os.O_WRONLY, 0660)
	defer imgfile.Close()
	//把图片变成400X400尺寸的
	m1, err := jpeg.Decode(file)
	if err != nil {
		panic(err)
	}
	bounds := m1.Bounds()
	//如果第二参数为0则保持横纵比
	g := gift.New(
		gift.Resize(400, 400, gift.LanczosResampling),
	)
	dst := image.NewRGBA(g.Bounds(bounds))
	g.Draw(dst, m1)
	err = png.Encode(imgfile, dst)

	if err != nil {
		log.Println("上传失败")
		return
	}
	filedir := Show_Dir + filename
	data.Data = filedir
	log.Println(data)
	u.OutputJson(w, &data)
}
Ejemplo n.º 6
0
func (this *AccountController) Info() {
	w := this.ResponseWriter
	r := this.Request
	r.ParseForm()
	parId := r.FormValue("id")

	common := CommonController{HTTP: this.HTTP}

	t := common.getTpl("account", "Account.info.tpl")

	showuser := m.User{Id: parId}
	data := e.TData{}
	flag := false

	cookie := u.Cookie{HTTP: this.HTTP}
	cookie = cookie.GetCookie()
	// log.Println("获取cookie中的用户名")
	// username := u.GetCookieUserName(w, r)
	// if username != "" { //如果已经登录了
	// 	user = user.GetOneUserByName(username)
	// } else {

	// }

	log.Println(parId)
	if parId == "" {
		log.Println("url有错误")
	}
	showuser = showuser.GetOneUserById()
	loginuser := m.User{}
	log.Println(showuser.ABalance, showuser.FBalance)
	userId := cookie.UserId //登录用户

	log.Println(showuser.RealName)
	if showuser.RealName != "" { //查到用户
		if userId != nil { //查到有登录用户
			loginuser.Id = userId.Value
			flag = true
			if showuser.Id == loginuser.Id { //自己浏览自己
				data = e.TData{Data: showuser, CurrentUser: loginuser, Flag: flag}
				t.Execute(w, &data)
			}
		}

	}
}
Ejemplo n.º 7
0
func (this *CommonController) ShowPage(choose string, views ...string) {
	wr := this.ResponseWriter

	t := u.ParesFiles(views...)

	cookie := u.Cookie{HTTP: this.HTTP}
	cookie = cookie.GetCookie()
	user := m.User{}
	flag := false
	log.Println("登录cookie获取", cookie)
	if cookie.UserId != nil {
		user.Id = cookie.UserId.Value
		flag = true
	}
	var data e.TData = e.TData{CurrentUser: user, Flag: flag, Selected: choose}
	log.Println("data", data)
	t.Execute(wr, &data)
}
Ejemplo n.º 8
0
func (this *OrderController) Add() {
	w := this.ResponseWriter
	r := this.Request
	data := e.Data{Msg: "生成订单成功", Status: 1}
	r.ParseForm()

	money := r.FormValue("money")
	startTime := r.FormValue("startTime")
	endTime := r.FormValue("endTime")
	address := r.FormValue("address")
	ruserId := r.FormValue("ruser")
	remark := r.FormValue("remark")
	skillId := r.FormValue("skill")

	order := m.Order{}
	order.Skill.Id = skillId
	order.Skill = order.Skill.GetSkillById()

	order.RUser = ruserId
	cookie := u.Cookie{HTTP: this.HTTP}
	cookie = cookie.GetCookie()

	if cookie.UserId != nil {
		order.OUser = cookie.UserId.Value
	}

	log.Println(startTime)
	log.Println(endTime)
	order.BeginTime, _ = time.Parse("2006-01-02 15:04", startTime)
	order.EndTime, _ = time.Parse("2006-01-02 15:04", endTime)
	order.OrderTime = time.Now()
	order.Status = "预约"
	order.Remark = remark
	order.Address = address
	order.TotalPrice, _ = strconv.ParseFloat(money, 32)
	ordered, err := order.InsertOrder()
	data.Data = ordered
	if err != nil {
		data.Msg = "订单生成失败"
		data.Status = 0
	}
	u.OutputJson(w, &data)
}
Ejemplo n.º 9
0
func (this *OrderController) Get() {
	w := this.ResponseWriter
	r := this.Request
	skill := r.FormValue("skill")
	// common := CommonController{HTTP: this.HTTP}
	// common.ShowPage("", "Order.add.tpl")
	cookie := u.Cookie{HTTP: this.HTTP}
	cookie = cookie.GetCookie()
	log.Println(cookie.UserId)
	if cookie.UserId == nil { //没有登录,则跳转到登录界面
		http.Redirect(w, r, "/login", http.StatusSeeOther)
	} else {
		t, err := t.ParseFiles("views/Order.add.tpl")
		if err != nil {
			log.Println(err)
		}
		t.ExecuteTemplate(w, "orderAdd", skill)
	}
}
Ejemplo n.º 10
0
func (this *AvatarController) Cut() {
	r := this.Request
	data := e.Data{Status: 1, Msg: "上传成功"}
	r.ParseForm()
	x, err := strconv.Atoi(r.FormValue("x"))
	y, err := strconv.Atoi(r.FormValue("y"))
	x2, err := strconv.Atoi(r.FormValue("x2"))
	y2, err := strconv.Atoi(r.FormValue("y2"))

	fileName := r.FormValue("fileName")
	log.Println(x, y, x2, y2, fileName)
	g := gift.New(
		gift.Crop(image.Rect(x, y, x2, y2)),
		gift.Resize(220, 220, gift.LanczosResampling),
	)
	log.Println("图片名称" + fileName)
	//打开待处理的图片
	file, err := os.Open(fileName)
	if err != nil {
		panic(err)
	}
	defer file.Close()

	m1, err := png.Decode(file)
	if err != nil {
		panic(err)
	}
	bounds := m1.Bounds()

	dst := image.NewRGBA(g.Bounds(bounds))
	g.Draw(dst, m1)
	cookie := u.Cookie{HTTP: this.HTTP}

	filename := cookie.GetCookie().UserId.Value + ".png"

	imgfile, err := os.Create(Avatar_ReDir + filename)
	os.Remove(Upload_Dir + filename)
	defer imgfile.Close()
	err = png.Encode(imgfile, dst)
	u.OutputJson(this.ResponseWriter, &data)
}
Ejemplo n.º 11
0
func dispatchController(w http.ResponseWriter, r *http.Request) {
	web := e.HTTP{Request: r, ResponseWriter: w}

	// defer func() {
	// 	log.Println("defer func is run")
	// 	e := recover()
	// 	if r != nil {
	// 		log.Println("recover : ", e)
	// 	}
	// }()

	pathInfo := strings.Trim(r.URL.Path, "/")
	parts := strings.Split(pathInfo, "/")
	r.ParseForm()
	cookie := u.Cookie{HTTP: web}
	cookie.InitCooike()
	log.Println((parts))

	if parts[0] != "" {
		log.Println("检测到url后面带/")
		var controllerName = ""
		var methodName = ""
		var formKey = ""
		var formValue = ""
		//处理类似URLxxx.com/login/exit/u/[email protected]
		for index, value := range parts {
			switch index {
			case 0:
				//类名字
				controllerName = value
			case 1:
				//方法名字
				methodName = strings.Title(value)
			default:
				if index%2 == 0 {

					formKey = value

				} else {

					formValue = value

				}
				if formKey != "" && formValue != "" {
					log.Println("表单Key" + formKey)
					log.Println("表单Value" + formValue)
					r.Form.Add(formKey, formValue)
					//r.Form.Add("1", "1")
					log.Println(r.Form)
					formKey = ""
					formValue = ""
				}

			}

		}

		log.Println("controllerName:", controllerName)
		log.Println("methodName:", methodName)
		controllerClass, ok := Cotrollers[controllerName]
		if !ok {
			log.Print("没有找到Controller:", controllerName)
			controllerClass = Error{}
		}

		controller := reflect.ValueOf(controllerClass)
		if methodName == "" {
			if r.Method == "GET" {
				methodName = "Get"
			} else if r.Method == "POST" {
				methodName = "Post"
			}
		}
		method := controller.MethodByName(methodName)
		if method.IsValid() {
			// requestValue := reflect.ValueOf(r)
			// responseValue := reflect.ValueOf(w)
			log.Println(controller)

			webValue := reflect.ValueOf(web)
			httpField := controller.Elem().FieldByName("HTTP")

			log.Println("httpField", httpField, httpField.CanSet())
			httpField.Set(webValue)
			// fieldElem := httpField.Elem()
			// log.Println("Field can Set", fieldElem.CanSet())
			// fieldElem.Set(webValue)
			// responseWriter := controller.FieldByName("ResponseWriter")
			// responseWriter.Set(responseWriter)
			//method.Call([]reflect.Value{responseValue, requestValue})
			method.Call(nil)
		} else {
			log.Print("没有找到Method:", methodName)
		}
	} else {
		index := IndexController{HTTP: web}
		index.Index()

	}
}