userlevel.go 4.26 KB
Newer Older
brent's avatar
brent committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
package controllers

import (
	"ai_developer_admin/libs/mysql"
	"ai_developer_admin/models"
	"encoding/json"
	"github.com/beego/beego/v2/core/logs"
	"net/http"
	"time"
)

type UserLevelController struct {
	MainController
}

func (server *UserLevelController) Levels() {
	_, err := server.Check()
	if err != nil {
		server.respond(http.StatusUnauthorized, err.Error())
		return
	}
brent's avatar
brent committed
22 23 24 25
	body := server.Ctx.Input.RequestBody
	appRequest := models.AppRequest{}
	err = json.Unmarshal(body, &appRequest) //解析body中数据
	logs.Debug("appRequest", appRequest, string(body))
brent's avatar
brent committed
26 27 28 29
	//if err != nil {
	//	server.respond(models.NoRequestBody, err.Error())
	//	return
	//}
brent's avatar
brent committed
30 31 32 33 34 35 36 37 38 39

	if appRequest.Page == 0 {
		appRequest.Page = 1
	}

	if appRequest.Size == 0 {
		appRequest.Size = 10
	}
	offset := (appRequest.Page - 1) * appRequest.Size

brent's avatar
brent committed
40
	qs := mysql.GetMysqlInstace().Ormer.QueryTable("user_level").Filter("deleted", 0)
brent's avatar
brent committed
41 42
	infoQs := qs.Offset(offset).Limit(appRequest.Size)
	count, err := infoQs.Count()
brent's avatar
brent committed
43 44 45
	logs.Debug("Levels = ", count)
	var levels []*models.UserLevel
	if count > 0 {
brent's avatar
brent committed
46 47 48 49 50 51 52 53 54
		infoQs.All(&levels)
	}
	total, err := qs.Count()
	responseData := struct {
		Total int64       `json:"total"`
		Data  interface{} `json:"data,omitempty"`
	}{
		Total: total,
		Data:  levels,
brent's avatar
brent committed
55
	}
brent's avatar
brent committed
56
	server.respond(http.StatusOK, "", responseData)
brent's avatar
brent committed
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
}

func (server *UserLevelController) AddLevel() {
	_, err := server.Check()
	if err != nil {
		server.respond(http.StatusUnauthorized, err.Error())
		return
	}
	body := server.Ctx.Input.RequestBody
	logs.Debug("AddLevel body", string(body))
	request := models.UserLevel{}
	err = json.Unmarshal(body, &request) //解析body中数据
	logs.Debug("request", request)
	if err != nil {
		server.respond(models.NoRequestBody, err.Error())
		return
	}
	//if request.Level == 0 {
	//	u.respond(models.MissingParameter, "level 不能为空且必须大于0")
	//	return
	//}
	qs := mysql.GetMysqlInstace().Ormer.QueryTable("user_level")
	usernameQs := qs.Filter("level", request.Level)
	count, err := usernameQs.Count()
	logs.Debug("Levels = ", count)
brent's avatar
brent committed
82
	//var levels []*models.UserLevel
brent's avatar
brent committed
83 84 85 86 87 88 89 90 91 92 93
	if count > 0 {
		server.respond(models.BusinessFailed, "该等级已存在")
		return
	}

	timestamp := time.Now()

	request.CreatedTime = timestamp
	request.UpdatedTime = timestamp
	request.Deleted = 0

brent's avatar
brent committed
94 95 96 97 98
	_, err = mysql.GetMysqlInstace().Ormer.Insert(&request)
	if err != nil {
		server.respond(models.BusinessFailed, err.Error())
		return
	}
brent's avatar
brent committed
99

brent's avatar
brent committed
100
	server.respond(http.StatusOK, "")
brent's avatar
brent committed
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
}

func (server *UserLevelController) UpdateLevel() {
	_, err := server.Check()
	if err != nil {
		server.respond(http.StatusUnauthorized, err.Error())
		return
	}
	body := server.Ctx.Input.RequestBody
	logs.Debug("AddLevel body", string(body))
	request := models.UserLevel{}
	err = json.Unmarshal(body, &request) //解析body中数据
	logs.Debug("request", request)
	if err != nil {
		server.respond(models.NoRequestBody, err.Error())
		return
	}

	if request.Id == 0 {
		server.respond(models.MissingParameter, "id 不能为空")
		return
	}

	checkLevel := models.UserLevel{Id: request.Id}
	err = mysql.GetMysqlInstace().Ormer.Read(&checkLevel)
	if err != nil {
		server.respond(models.BusinessFailed, "level 不存在")
		return
	}
	if checkLevel.Level != request.Level {
		server.respond(models.BusinessFailed, "等级字段不能修改")
		return
	}

brent's avatar
brent committed
135 136
	request.CreatedTime = checkLevel.CreatedTime
	request.UpdatedTime = time.Now()
brent's avatar
brent committed
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
	_, err = mysql.GetMysqlInstace().Ormer.Update(&request)
	if err != nil {
		server.respond(models.BusinessFailed, "更新失败")
		return
	}

	server.respond(http.StatusOK, "更新成功")
}

func (server *UserLevelController) DelLevel() {
	_, err := server.Check()
	if err != nil {
		server.respond(http.StatusUnauthorized, err.Error())
		return
	}
	body := server.Ctx.Input.RequestBody
	logs.Debug("AddLevel body", string(body))
	request := models.UserLevel{}
	err = json.Unmarshal(body, &request) //解析body中数据
	logs.Debug("request", request)
	if err != nil {
		server.respond(models.NoRequestBody, err.Error())
		return
	}

	if request.Id == 0 {
		server.respond(models.MissingParameter, "id 不能为空")
		return
	}

	if request.Level == 0 {
		server.respond(models.MissingParameter, "默认等级不能删除")
		return
	}
brent's avatar
brent committed
171
	request.Deleted = 1
brent's avatar
brent committed
172

brent's avatar
brent committed
173
	mysql.GetMysqlInstace().Ormer.Update(&request)
brent's avatar
brent committed
174 175
	server.respond(http.StatusOK, "删除成功")
}