mirror of
https://github.com/tiger1103/gfast.git
synced 2026-09-21 02:04:07 +00:00
143 lines
3.6 KiB
Go
143 lines
3.6 KiB
Go
// ==========================================================================
|
|
// 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)
|
|
}
|