【更新】更新restful

This commit is contained in:
PandaGoAdmin
2022-08-03 16:00:32 +08:00
parent 2cb23c0ecf
commit 6945277fdb
48 changed files with 1234 additions and 836 deletions

View File

@@ -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) {