mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 19:08:35 +08:00
【更新】更新restful
This commit is contained in:
@@ -3,10 +3,11 @@ package api
|
||||
import (
|
||||
"github.com/XM-GO/PandaKit/token"
|
||||
"github.com/dgrijalva/jwt-go"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/emicklei/go-restful/v3"
|
||||
"github.com/kakuilan/kgo"
|
||||
"github.com/mssola/user_agent"
|
||||
"net/http"
|
||||
"log"
|
||||
|
||||
"pandax/apps/system/api/form"
|
||||
"pandax/apps/system/api/vo"
|
||||
"pandax/apps/system/entity"
|
||||
@@ -16,6 +17,7 @@ import (
|
||||
|
||||
"github.com/XM-GO/PandaKit/biz"
|
||||
"github.com/XM-GO/PandaKit/captcha"
|
||||
filek "github.com/XM-GO/PandaKit/file"
|
||||
"github.com/XM-GO/PandaKit/restfulx"
|
||||
"github.com/XM-GO/PandaKit/utils"
|
||||
"pandax/apps/system/services"
|
||||
@@ -39,9 +41,9 @@ type UserApi struct {
|
||||
// @Produce application/json
|
||||
// @Success 200 {string} string "{"success":true,"data":{},"msg":"登陆成功"}"
|
||||
// @Router /system/user/getCaptcha [get]
|
||||
func (u *UserApi) GenerateCaptcha(c *gin.Context) {
|
||||
func (u *UserApi) GenerateCaptcha(request *restful.Request, response *restful.Response) {
|
||||
id, image := captcha.Generate()
|
||||
c.JSON(http.StatusOK, map[string]any{"base64Captcha": image, "captchaId": id})
|
||||
response.WriteEntity(map[string]any{"base64Captcha": image, "captchaId": id})
|
||||
}
|
||||
|
||||
// @Tags Base
|
||||
@@ -50,7 +52,7 @@ func (u *UserApi) GenerateCaptcha(c *gin.Context) {
|
||||
// @Success 200 {string} string "{"success":true,"data":{},"msg":"登陆成功"}"
|
||||
// @Router /system/user/refreshToken [get]
|
||||
func (u *UserApi) RefreshToken(rc *restfulx.ReqCtx) {
|
||||
tokenStr := rc.GinCtx.Request.Header.Get("X-TOKEN")
|
||||
tokenStr := rc.Request.Request.Header.Get("X-TOKEN")
|
||||
j := token.NewJWT("", []byte(global.Conf.Jwt.Key), jwt.SigningMethodHS256)
|
||||
token, err := j.RefreshToken(tokenStr)
|
||||
biz.ErrIsNil(err, "刷新token失败")
|
||||
@@ -65,7 +67,8 @@ func (u *UserApi) RefreshToken(rc *restfulx.ReqCtx) {
|
||||
// @Router /system/user/login [post]
|
||||
func (u *UserApi) Login(rc *restfulx.ReqCtx) {
|
||||
var l form.Login
|
||||
restfulx.BindJsonAndValid(rc.GinCtx, &l)
|
||||
restfulx.BindQuery(rc, &l)
|
||||
log.Println(l)
|
||||
biz.IsTrue(captcha.Verify(l.CaptchaId, l.Captcha), "验证码认证失败")
|
||||
|
||||
login := u.UserApp.Login(entity.Login{Username: l.Username, Password: l.Password})
|
||||
@@ -93,12 +96,12 @@ func (u *UserApi) Login(rc *restfulx.ReqCtx) {
|
||||
}
|
||||
|
||||
var loginLog logEntity.LogLogin
|
||||
ua := user_agent.New(rc.GinCtx.Request.UserAgent())
|
||||
loginLog.Ipaddr = rc.GinCtx.ClientIP()
|
||||
loginLog.LoginLocation = utils.GetRealAddressByIP(rc.GinCtx.ClientIP())
|
||||
ua := user_agent.New(rc.Request.Request.UserAgent())
|
||||
loginLog.Ipaddr = rc.Request.Request.RemoteAddr
|
||||
loginLog.LoginLocation = utils.GetRealAddressByIP(rc.Request.Request.RemoteAddr)
|
||||
loginLog.LoginTime = time.Now()
|
||||
loginLog.Status = "0"
|
||||
loginLog.Remark = rc.GinCtx.Request.UserAgent()
|
||||
loginLog.Remark = rc.Request.Request.UserAgent()
|
||||
browserName, browserVersion := ua.Browser()
|
||||
loginLog.Browser = browserName + " " + browserVersion
|
||||
loginLog.Os = ua.OS()
|
||||
@@ -116,7 +119,7 @@ func (u *UserApi) Login(rc *restfulx.ReqCtx) {
|
||||
// @Success 200 {string} string "{"success":true,"data":{},"msg":"成功"}"
|
||||
// @Router /system/user/auth [get]
|
||||
func (u *UserApi) Auth(rc *restfulx.ReqCtx) {
|
||||
userName := rc.GinCtx.Query("username")
|
||||
userName := restfulx.QueryParam(rc, "username")
|
||||
biz.NotEmpty(userName, "用户名必传")
|
||||
var user entity.SysUser
|
||||
user.Username = userName
|
||||
@@ -141,11 +144,11 @@ func (u *UserApi) Auth(rc *restfulx.ReqCtx) {
|
||||
// @Router /system/user/logout [post]
|
||||
func (u *UserApi) LogOut(rc *restfulx.ReqCtx) {
|
||||
var loginLog logEntity.LogLogin
|
||||
ua := user_agent.New(rc.GinCtx.Request.UserAgent())
|
||||
loginLog.Ipaddr = rc.GinCtx.ClientIP()
|
||||
ua := user_agent.New(rc.Request.Request.UserAgent())
|
||||
loginLog.Ipaddr = rc.Request.Request.RemoteAddr
|
||||
loginLog.LoginTime = time.Now()
|
||||
loginLog.Status = "0"
|
||||
loginLog.Remark = rc.GinCtx.Request.UserAgent()
|
||||
loginLog.Remark = rc.Request.Request.UserAgent()
|
||||
browserName, browserVersion := ua.Browser()
|
||||
loginLog.Browser = browserName + " " + browserVersion
|
||||
loginLog.Os = ua.OS()
|
||||
@@ -168,15 +171,16 @@ func (u *UserApi) LogOut(rc *restfulx.ReqCtx) {
|
||||
// @Router /system/user/sysUserList [get]
|
||||
// @Security X-TOKEN
|
||||
func (u *UserApi) GetSysUserList(rc *restfulx.ReqCtx) {
|
||||
pageNum := restfulx.QueryInt(rc.GinCtx, "pageNum", 1)
|
||||
pageSize := restfulx.QueryInt(rc.GinCtx, "pageSize", 10)
|
||||
status := rc.GinCtx.Query("status")
|
||||
userName := rc.GinCtx.Query("username")
|
||||
phone := rc.GinCtx.Query("phone")
|
||||
deptId := restfulx.QueryInt(rc.GinCtx, "deptId", 0)
|
||||
pageNum := restfulx.QueryInt(rc, "pageNum", 1)
|
||||
pageSize := restfulx.QueryInt(rc, "pageSize", 10)
|
||||
status := restfulx.QueryParam(rc, "status")
|
||||
username := restfulx.QueryParam(rc, "username")
|
||||
phone := restfulx.QueryParam(rc, "phone")
|
||||
|
||||
deptId := restfulx.QueryInt(rc, "deptId", 0)
|
||||
var user entity.SysUser
|
||||
user.Status = status
|
||||
user.Username = userName
|
||||
user.Username = username
|
||||
user.Phone = phone
|
||||
user.DeptId = int64(deptId)
|
||||
|
||||
@@ -236,8 +240,7 @@ func (u *UserApi) GetSysUserProfile(rc *restfulx.ReqCtx) {
|
||||
// @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
|
||||
// @Router /system/user/profileAvatar [post]
|
||||
func (u *UserApi) InsetSysUserAvatar(rc *restfulx.ReqCtx) {
|
||||
form, err := rc.GinCtx.MultipartForm()
|
||||
biz.ErrIsNil(err, "头像上传失败")
|
||||
form := rc.Request.Request.MultipartForm
|
||||
|
||||
files := form.File["upload[]"]
|
||||
guid, _ := kgo.KStr.UuidV4()
|
||||
@@ -245,7 +248,7 @@ func (u *UserApi) InsetSysUserAvatar(rc *restfulx.ReqCtx) {
|
||||
for _, file := range files {
|
||||
global.Log.Info(file.Filename)
|
||||
// 上传文件至指定目录
|
||||
biz.ErrIsNil(rc.GinCtx.SaveUploadedFile(file, filPath), "保存头像失败")
|
||||
biz.ErrIsNil(filek.SaveUploadedFile(file, filPath), "保存头像失败")
|
||||
}
|
||||
sysuser := entity.SysUser{}
|
||||
sysuser.UserId = rc.LoginAccount.UserId
|
||||
@@ -264,7 +267,7 @@ func (u *UserApi) InsetSysUserAvatar(rc *restfulx.ReqCtx) {
|
||||
// @Router /system/user/updatePwd [post]
|
||||
func (u *UserApi) SysUserUpdatePwd(rc *restfulx.ReqCtx) {
|
||||
var pws entity.SysUserPwd
|
||||
restfulx.BindJsonAndValid(rc.GinCtx, &pws)
|
||||
restfulx.BindQuery(rc, &pws)
|
||||
|
||||
user := entity.SysUser{}
|
||||
user.UserId = rc.LoginAccount.UserId
|
||||
@@ -279,7 +282,7 @@ func (u *UserApi) SysUserUpdatePwd(rc *restfulx.ReqCtx) {
|
||||
// @Router /system/user/sysUser/{userId} [get]
|
||||
// @Security
|
||||
func (u *UserApi) GetSysUser(rc *restfulx.ReqCtx) {
|
||||
userId := restfulx.PathParamInt(rc.GinCtx, "userId")
|
||||
userId := restfulx.PathParamInt(rc, "userId")
|
||||
|
||||
user := entity.SysUser{}
|
||||
user.UserId = int64(userId)
|
||||
@@ -369,7 +372,7 @@ func (u *UserApi) GetUserRolePost(rc *restfulx.ReqCtx) {
|
||||
// @Router /system/user/sysUser [post]
|
||||
func (u *UserApi) InsertSysUser(rc *restfulx.ReqCtx) {
|
||||
var sysUser entity.SysUser
|
||||
restfulx.BindJsonAndValid(rc.GinCtx, &sysUser)
|
||||
restfulx.BindQuery(rc, &sysUser)
|
||||
sysUser.CreateBy = rc.LoginAccount.UserName
|
||||
u.UserApp.Insert(sysUser)
|
||||
}
|
||||
@@ -385,7 +388,7 @@ func (u *UserApi) InsertSysUser(rc *restfulx.ReqCtx) {
|
||||
// @Router /system/user/sysUser [put]
|
||||
func (u *UserApi) UpdateSysUser(rc *restfulx.ReqCtx) {
|
||||
var sysUser entity.SysUser
|
||||
restfulx.BindJsonAndValid(rc.GinCtx, &sysUser)
|
||||
restfulx.BindQuery(rc, &sysUser)
|
||||
sysUser.CreateBy = rc.LoginAccount.UserName
|
||||
u.UserApp.Update(sysUser)
|
||||
}
|
||||
@@ -401,7 +404,7 @@ func (u *UserApi) UpdateSysUser(rc *restfulx.ReqCtx) {
|
||||
// @Router /system/user/sysUser [put]
|
||||
func (u *UserApi) UpdateSysUserStu(rc *restfulx.ReqCtx) {
|
||||
var sysUser entity.SysUser
|
||||
restfulx.BindJsonAndValid(rc.GinCtx, &sysUser)
|
||||
restfulx.BindQuery(rc, &sysUser)
|
||||
sysUser.CreateBy = rc.LoginAccount.UserName
|
||||
u.UserApp.Update(sysUser)
|
||||
}
|
||||
@@ -414,9 +417,8 @@ func (u *UserApi) UpdateSysUserStu(rc *restfulx.ReqCtx) {
|
||||
// @Success 200 {string} string "{"code": 400, "message": "删除失败"}"
|
||||
// @Router /system/user/sysuser/{userId} [delete]
|
||||
func (u *UserApi) DeleteSysUser(rc *restfulx.ReqCtx) {
|
||||
userIds := rc.GinCtx.Param("userId")
|
||||
us := utils.IdsStrToIdsIntGroup(userIds)
|
||||
u.UserApp.Delete(us)
|
||||
userIds := restfulx.PathParam(rc, "userId")
|
||||
u.UserApp.Delete(utils.IdsStrToIdsIntGroup(userIds))
|
||||
}
|
||||
|
||||
// @Summary 导出用户
|
||||
@@ -429,14 +431,14 @@ func (u *UserApi) DeleteSysUser(rc *restfulx.ReqCtx) {
|
||||
// @Success 200 {string} string "{"code": 400, "message": "删除失败"}"
|
||||
// @Router /system/dict/type/export [get]
|
||||
func (u *UserApi) ExportUser(rc *restfulx.ReqCtx) {
|
||||
filename := rc.GinCtx.Query("filename")
|
||||
status := rc.GinCtx.Query("status")
|
||||
userName := rc.GinCtx.Query("username")
|
||||
phone := rc.GinCtx.Query("phone")
|
||||
filename := restfulx.QueryParam(rc, "filename")
|
||||
status := restfulx.QueryParam(rc, "status")
|
||||
username := restfulx.QueryParam(rc, "username")
|
||||
phone := restfulx.QueryParam(rc, "phone")
|
||||
|
||||
var user entity.SysUser
|
||||
user.Status = status
|
||||
user.Username = userName
|
||||
user.Username = username
|
||||
user.Phone = phone
|
||||
|
||||
if !IsTenantAdmin(rc.LoginAccount.TenantId) {
|
||||
|
||||
Reference in New Issue
Block a user