mirror of
https://github.com/tiger1103/gfast.git
synced 2026-09-21 10:12:59 +00:00
后台插件管理器
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
// ==========================================================================
|
||||
// GFast自动生成控制器相关代码,只生成一次,按需修改,再次生成不会覆盖.
|
||||
// 生成日期:2021-08-31 17:58:43
|
||||
// 生成路径: gfast/app/system/api/plugins_manage.go
|
||||
// 生成人:gfast
|
||||
// ==========================================================================
|
||||
|
||||
package api
|
||||
|
||||
import (
|
||||
"gfast/app/system/dao"
|
||||
"gfast/app/system/service"
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/net/ghttp"
|
||||
"github.com/gogf/gf/text/gstr"
|
||||
"github.com/gogf/gf/util/gvalid"
|
||||
)
|
||||
|
||||
type pluginsManage struct {
|
||||
SystemBase
|
||||
}
|
||||
|
||||
var PluginsManage = new(pluginsManage)
|
||||
|
||||
// List 列表
|
||||
func (c *pluginsManage) List(r *ghttp.Request) {
|
||||
var req *dao.PluginsManageSearchReq
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
c.FailJsonExit(r, err.(gvalid.Error).FirstString())
|
||||
}
|
||||
req.Ctx = r.GetCtx()
|
||||
total, page, list, err := service.PluginsManage.GetList(req)
|
||||
if err != nil {
|
||||
c.FailJsonExit(r, err.Error())
|
||||
}
|
||||
result := g.Map{
|
||||
"currentPage": page,
|
||||
"total": total,
|
||||
"list": list,
|
||||
}
|
||||
c.SusJsonExit(r, result)
|
||||
}
|
||||
|
||||
// Get 获取
|
||||
func (c *pluginsManage) Get(r *ghttp.Request) {
|
||||
id := r.GetInt64("id")
|
||||
info, err := service.PluginsManage.GetInfoById(r.GetCtx(), id)
|
||||
if err != nil {
|
||||
c.FailJsonExit(r, err.Error())
|
||||
}
|
||||
c.SusJsonExit(r, info)
|
||||
}
|
||||
|
||||
// ChangeStatus 修改状态
|
||||
func (c *pluginsManage) ChangeStatus(r *ghttp.Request) {
|
||||
var req *dao.PluginsManageStatusReq
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
c.FailJsonExit(r, err.(gvalid.Error).FirstString())
|
||||
}
|
||||
if err := service.PluginsManage.ChangeStatus(r.GetCtx(), req); err != nil {
|
||||
c.FailJsonExit(r, err.Error())
|
||||
} else {
|
||||
c.SusJsonExit(r, "状态设置成功")
|
||||
}
|
||||
}
|
||||
|
||||
// Install 插件安装
|
||||
func (c *pluginsManage) Install(r *ghttp.Request) {
|
||||
var req *dao.PluginsManageInstallReq
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
c.FailJsonExit(r, err.(gvalid.Error).FirstString())
|
||||
}
|
||||
if req.RToken == "" {
|
||||
c.SusJsonExit(r, g.Map{
|
||||
"code": -401,
|
||||
"msg": "请登录",
|
||||
})
|
||||
}
|
||||
err := service.PluginsManage.Install(r.GetCtx(), req)
|
||||
if err != nil {
|
||||
c.FailJsonExit(r, err.Error())
|
||||
}
|
||||
c.SusJsonExit(r, "安装成功")
|
||||
}
|
||||
|
||||
// Captcha 获取验证码
|
||||
func (c *pluginsManage) Captcha(r *ghttp.Request) {
|
||||
idKeyC, base64stringC, err := service.PluginsManage.GetCaptcha(r.GetCtx())
|
||||
if err != nil {
|
||||
c.FailJsonExit(r, err.Error())
|
||||
}
|
||||
c.SusJsonExit(r, g.Map{
|
||||
"base64stringC": base64stringC,
|
||||
"idKeyC": idKeyC,
|
||||
})
|
||||
}
|
||||
|
||||
// LoginR 登录插件服务
|
||||
func (c *pluginsManage) LoginR(r *ghttp.Request) {
|
||||
var req *dao.PluginRLoginFormReq
|
||||
// 通过Parse方法解析获取参数
|
||||
err := r.Parse(&req)
|
||||
if err != nil {
|
||||
c.FailJsonExit(r, err.(gvalid.Error).FirstString())
|
||||
}
|
||||
var userInfo g.Map
|
||||
userInfo, err = service.PluginsManage.LoginR(r.GetCtx(), req)
|
||||
if err != nil {
|
||||
c.FailJsonExit(r, err.Error())
|
||||
}
|
||||
c.SusJsonExit(r, userInfo)
|
||||
}
|
||||
|
||||
// InstallOffLine 离线安装
|
||||
func (c *pluginsManage) InstallOffLine(r *ghttp.Request) {
|
||||
upFile := r.GetUploadFile("file")
|
||||
f, err := upFile.Open()
|
||||
if err != nil {
|
||||
c.FailJsonExit(r, err.Error())
|
||||
}
|
||||
defer f.Close()
|
||||
d := make([]byte, upFile.Size)
|
||||
_, err = f.Read(d)
|
||||
if err != nil {
|
||||
c.FailJsonExit(r, err.Error())
|
||||
}
|
||||
fileName := upFile.Filename
|
||||
fileName = gstr.SubStr(fileName, gstr.PosR(fileName, "=")+1,
|
||||
gstr.PosR(fileName, ".")-gstr.PosR(fileName, "=")-1)
|
||||
err = service.PluginsManage.PluginIsExists(r.GetCtx(), fileName)
|
||||
if err != nil {
|
||||
c.FailJsonExit(r, err.Error())
|
||||
}
|
||||
err = service.PluginsManage.InstallFile(r.GetCtx(), d, fileName)
|
||||
if err != nil {
|
||||
c.FailJsonExit(r, err.Error())
|
||||
}
|
||||
c.SusJsonExit(r)
|
||||
}
|
||||
Reference in New Issue
Block a user