发布代码生成、更新20+表单组件,优化数据字典,gf版本更新到2.3.1

This commit is contained in:
孟帅
2023-01-18 16:23:39 +08:00
parent 50207ded90
commit 87c27a17a3
386 changed files with 27926 additions and 44297 deletions

View File

@@ -81,14 +81,14 @@ func (c *cMember) Profile(ctx context.Context, req *member.ProfileReq) (*member.
res.SysDept = sysDept
// 角色列表
sysRoles, err := service.AdminRole().GetMemberList(ctx, memberInfo.Role)
sysRoles, err := service.AdminRole().GetMemberList(ctx, memberInfo.RoleId)
if err != nil {
return nil, err
}
res.SysRoles = sysRoles
// 获取角色名称
roleGroup, err := service.AdminRole().GetName(ctx, memberInfo.Role)
roleGroup, err := service.AdminRole().GetName(ctx, memberInfo.RoleId)
if err != nil {
return nil, err
}
@@ -174,6 +174,8 @@ func (c *cMember) Edit(ctx context.Context, req *member.EditReq) (res *member.Ed
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
in.PostIds = req.PostIds
if err = service.AdminMember().Edit(ctx, in); err != nil {
return nil, err
}
@@ -227,7 +229,7 @@ func (c *cMember) View(ctx context.Context, req *member.ViewReq) (*member.ViewRe
return nil, err
}
res.RoleIds = []int64{memberInfo.Role}
res.RoleIds = []int64{memberInfo.RoleId}
res.DeptName, err = service.AdminDept().GetName(ctx, memberInfo.DeptId)
if err != nil {
return nil, err

View File

@@ -56,7 +56,7 @@ func (c *cMonitor) OnlineList(ctx context.Context, req *monitor.OnlineListReq) (
var (
res monitor.OnlineListRes
clients []*monitor.OnlineModel
i int64
i int
)
if c.wsManager.GetClientsLen() == 0 {
@@ -86,16 +86,16 @@ func (c *cMonitor) OnlineList(ctx context.Context, req *monitor.OnlineListReq) (
})
}
res.PageCount = form.CalPageCount(int64(len(clients)), req.PerPage)
res.PageCount = form.CalPageCount(len(clients), req.PerPage)
res.Page = req.Page
res.PerPage = req.PerPage
sort.Sort(monitor.OnlineModels(clients))
isDemo, _ := g.Cfg().Get(ctx, "hotgo.isDemo", false)
isDemo := g.Cfg().MustGet(ctx, "hotgo.isDemo", false)
_, perPage, offset := form.CalPage(ctx, req.Page, req.PerPage)
for k, v := range clients {
if int64(k) >= offset && i <= perPage {
if k >= offset && i <= perPage {
i++
if isDemo.Bool() {
v.Addr = consts.DemoTips

View File

@@ -45,11 +45,11 @@ func (c *cRole) RoleMemberList(ctx context.Context, req *role.MemberListReq) (*r
// List 获取列表
func (c *cRole) List(ctx context.Context, req *role.ListReq) (*role.ListRes, error) {
list, totalCount, err := service.AdminRole().List(ctx, adminin.RoleListInp{
Page: req.Page,
PerPage: req.PerPage,
})
var in adminin.RoleListInp
if err := gconv.Scan(req, &in); err != nil {
return nil, err
}
list, totalCount, err := service.AdminRole().List(ctx, in)
if err != nil {
return nil, err
}
@@ -57,7 +57,7 @@ func (c *cRole) List(ctx context.Context, req *role.ListReq) (*role.ListRes, err
var res role.ListRes
res.List = list
res.PageCount = form.CalPageCount(totalCount, req.PerPage)
res.PerPage = req.Page
res.Page = req.Page
res.PerPage = req.PerPage
return &res, nil
@@ -115,3 +115,27 @@ func (c *cRole) UpdatePermissions(ctx context.Context, req *role.UpdatePermissio
}
return res, nil
}
// DataScopeSelect 获取数据权限选项
func (c *cRole) DataScopeSelect(ctx context.Context, req *role.DataScopeSelectReq) (res *role.DataScopeSelectRes, err error) {
data := service.AdminRole().DataScopeSelect(ctx)
res = new(role.DataScopeSelectRes)
res.List = data
return res, nil
}
// DataScopeEdit 获取数据权限选项
func (c *cRole) DataScopeEdit(ctx context.Context, req *role.DataScopeEditReq) (res *role.DataScopeEditRes, err error) {
var in adminin.DataScopeEditInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
in.CustomDept = req.CustomDept
err = service.AdminRole().DataScopeEdit(ctx, &in)
if err != nil {
return nil, err
}
return res, nil
}

View File

@@ -0,0 +1,144 @@
// Package admin
// @Link https://github.com/bufanyun/hotgo
// @Copyright Copyright (c) 2022 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
//
package admin
import (
"context"
"github.com/gogf/gf/v2/util/gconv"
"hotgo/api/backend/test"
"hotgo/internal/model/input/adminin"
"hotgo/internal/model/input/form"
"hotgo/internal/service"
"hotgo/utility/validate"
)
var (
Test = cTest{}
)
type cTest struct{}
// List 查看列表
func (c *cTest) List(ctx context.Context, req *test.ListReq) (res *test.ListRes, err error) {
var in adminin.TestListInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = validate.PreFilter(ctx, &in); err != nil {
return nil, err
}
list, totalCount, err := service.AdminTest().List(ctx, in)
if err != nil {
return nil, err
}
res = new(test.ListRes)
res.List = list
res.PageCount = form.CalPageCount(totalCount, req.PerPage)
res.Page = req.Page
res.PerPage = req.PerPage
return res, nil
}
// Export 导出列表
func (c *cTest) Export(ctx context.Context, req *test.ExportReq) (res *test.ExportRes, err error) {
var in adminin.TestListInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = service.AdminTest().Export(ctx, in); err != nil {
return nil, err
}
return res, nil
}
// Edit 更新
func (c *cTest) Edit(ctx context.Context, req *test.EditReq) (res *test.EditRes, err error) {
var in adminin.TestEditInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = validate.PreFilter(ctx, &in); err != nil {
return nil, err
}
if err = service.AdminTest().Edit(ctx, in); err != nil {
return nil, err
}
return res, nil
}
// MaxSort 最大排序
func (c *cTest) MaxSort(ctx context.Context, req *test.MaxSortReq) (res *test.MaxSortRes, err error) {
data, err := service.AdminTest().MaxSort(ctx, adminin.TestMaxSortInp{})
if err != nil {
return nil, err
}
res = new(test.MaxSortRes)
res.TestMaxSortModel = data
return res, nil
}
// View 获取指定信息
func (c *cTest) View(ctx context.Context, req *test.ViewReq) (res *test.ViewRes, err error) {
var in adminin.TestViewInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
data, err := service.AdminTest().View(ctx, in)
if err != nil {
return nil, err
}
res = new(test.ViewRes)
res.TestViewModel = data
return res, nil
}
// Delete 删除
func (c *cTest) Delete(ctx context.Context, req *test.DeleteReq) (res *test.DeleteRes, err error) {
var in adminin.TestDeleteInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = service.AdminTest().Delete(ctx, in); err != nil {
return nil, err
}
return res, nil
}
// Status 更新状态
func (c *cTest) Status(ctx context.Context, req *test.StatusReq) (res *test.StatusRes, err error) {
var in adminin.TestStatusInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = service.AdminTest().Status(ctx, in); err != nil {
return nil, err
}
return res, nil
}
// Switch 更新开关状态
func (c *cTest) Switch(ctx context.Context, req *test.SwitchReq) (res *test.SwitchRes, err error) {
var in adminin.TestSwitchInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = service.AdminTest().Switch(ctx, in); err != nil {
return nil, err
}
return res, nil
}

View File

@@ -33,16 +33,31 @@ func (c *cSite) Ping(ctx context.Context, req *common.SitePingReq) (res *common.
// Config 获取配置
func (c *cSite) Config(ctx context.Context, req *common.SiteConfigReq) (res *common.SiteConfigRes, err error) {
wsAddr, _ := g.Cfg().Get(ctx, "hotgo.wsAddr", "ws://127.0.0.1:8000/ws")
g.Log().Warningf(ctx, "wsAddr:%+v", wsAddr.String())
res = &common.SiteConfigRes{
Version: consts.VersionApp,
WsAddr: wsAddr.String(),
WsAddr: c.getWsAddr(ctx),
}
return
}
func (c *cSite) getWsAddr(ctx context.Context) string {
ws := g.Cfg().MustGet(ctx, "hotgo.wsAddr", "ws://127.0.0.1:8000/socket")
return ws.String()
//// nginx负载均衡部署
//// 如果是IP访问则认为是调试模式走配置中的ws地址否则走实际请求中的域名+协议
//if !validate.IsDNSName(ghttp.RequestFromCtx(ctx).Host) {
// ws := g.Cfg().MustGet(ctx, "hotgo.wsAddr", "ws://127.0.0.1:8000/socket")
// return ws.String()
//}
//
//if !validate.IsHTTPS(ctx) {
// return fmt.Sprintf("ws://%s/socket", url.GetDomain(ctx))
//}
//
//return fmt.Sprintf("wss://%s/socket", url.GetDomain(ctx))
}
// Captcha 登录验证码
func (c *cSite) Captcha(ctx context.Context, req *common.LoginCaptchaReq) (res *common.LoginCaptchaRes, err error) {

View File

@@ -34,3 +34,20 @@ func (c *cUpload) UploadImage(ctx context.Context, req *common.UploadImageReq) (
return
}
// UploadFile 上传附件
func (c *cUpload) UploadFile(ctx context.Context, req *common.UploadFileReq) (res common.UploadFileRes, err error) {
r := g.RequestFromCtx(ctx)
file := r.GetUploadFile("file")
if file == nil {
err = gerror.New("没有找到上传的文件")
return
}
res, err = service.CommonUpload().UploadFile(ctx, file)
if err != nil {
return
}
return
}

View File

@@ -10,6 +10,8 @@ import (
"context"
"github.com/gogf/gf/v2/util/gconv"
"hotgo/api/backend/config"
"hotgo/internal/consts"
"hotgo/internal/model/input/form"
"hotgo/internal/model/input/sysin"
"hotgo/internal/service"
)
@@ -55,3 +57,15 @@ func (c *cConfig) UpdateConfig(ctx context.Context, req *config.UpdateReq) (*con
return &res, nil
}
// TypeSelect 数据类型选项
func (c *cConfig) TypeSelect(ctx context.Context, req *config.TypeSelectReq) (res config.TypeSelectRes, err error) {
for _, v := range consts.ConfigTypes {
res = append(res, form.Select{
Value: v,
Name: v,
Label: v,
})
}
return
}

View File

@@ -0,0 +1,169 @@
// Package sys
// @Link https://github.com/bufanyun/hotgo
// @Copyright Copyright (c) 2023 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
// @AutoGenerate Version 2.1.0
// @AutoGenerate Date 2023-01-18 15:19:42
//
package sys
import (
"context"
"hotgo/api/backend/curddemo"
"hotgo/internal/model/input/form"
"hotgo/internal/model/input/sysin"
"hotgo/internal/service"
"hotgo/utility/validate"
"github.com/gogf/gf/v2/util/gconv"
)
var (
CurdDemo = cCurdDemo{}
)
type cCurdDemo struct{}
// List 查看生成演示列表
func (c *cCurdDemo) List(ctx context.Context, req *curddemo.ListReq) (res *curddemo.ListRes, err error) {
var in sysin.CurdDemoListInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = validate.PreFilter(ctx, &in); err != nil {
return nil, err
}
list, totalCount, err := service.SysCurdDemo().List(ctx, in)
if err != nil {
return nil, err
}
res = new(curddemo.ListRes)
res.List = list
res.PageCount = form.CalPageCount(totalCount, req.PerPage)
res.Page = req.Page
res.PerPage = req.PerPage
return res, nil
}
// Export 导出生成演示列表
func (c *cCurdDemo) Export(ctx context.Context, req *curddemo.ExportReq) (res *curddemo.ExportRes, err error) {
var in sysin.CurdDemoListInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = validate.PreFilter(ctx, &in); err != nil {
return nil, err
}
if err = service.SysCurdDemo().Export(ctx, in); err != nil {
return nil, err
}
return res, nil
}
// Edit 更新生成演示
func (c *cCurdDemo) Edit(ctx context.Context, req *curddemo.EditReq) (res *curddemo.EditRes, err error) {
var in sysin.CurdDemoEditInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = validate.PreFilter(ctx, &in); err != nil {
return nil, err
}
if err = service.SysCurdDemo().Edit(ctx, in); err != nil {
return nil, err
}
return res, nil
}
// MaxSort 获取生成演示最大排序
func (c *cCurdDemo) MaxSort(ctx context.Context, req *curddemo.MaxSortReq) (res *curddemo.MaxSortRes, err error) {
data, err := service.SysCurdDemo().MaxSort(ctx, sysin.CurdDemoMaxSortInp{})
if err != nil {
return nil, err
}
res = new(curddemo.MaxSortRes)
res.CurdDemoMaxSortModel = data
return res, nil
}
// View 获取指定生成演示信息
func (c *cCurdDemo) View(ctx context.Context, req *curddemo.ViewReq) (res *curddemo.ViewRes, err error) {
var in sysin.CurdDemoViewInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = validate.PreFilter(ctx, &in); err != nil {
return nil, err
}
data, err := service.SysCurdDemo().View(ctx, in)
if err != nil {
return nil, err
}
res = new(curddemo.ViewRes)
res.CurdDemoViewModel = data
return res, nil
}
// Delete 删除生成演示
func (c *cCurdDemo) Delete(ctx context.Context, req *curddemo.DeleteReq) (res *curddemo.DeleteRes, err error) {
var in sysin.CurdDemoDeleteInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = validate.PreFilter(ctx, &in); err != nil {
return nil, err
}
if err = service.SysCurdDemo().Delete(ctx, in); err != nil {
return nil, err
}
return res, nil
}
// Status 更新生成演示状态
func (c *cCurdDemo) Status(ctx context.Context, req *curddemo.StatusReq) (res *curddemo.StatusRes, err error) {
var in sysin.CurdDemoStatusInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = validate.PreFilter(ctx, &in); err != nil {
return nil, err
}
if err = service.SysCurdDemo().Status(ctx, in); err != nil {
return nil, err
}
return res, nil
}
// Switch 更新生成演示开关状态
func (c *cCurdDemo) Switch(ctx context.Context, req *curddemo.SwitchReq) (res *curddemo.SwitchRes, err error) {
var in sysin.CurdDemoSwitchInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = validate.PreFilter(ctx, &in); err != nil {
return nil, err
}
if err = service.SysCurdDemo().Switch(ctx, in); err != nil {
return nil, err
}
return res, nil
}

View File

@@ -49,7 +49,6 @@ func (c *cDictData) Edit(ctx context.Context, req *dict.DataEditReq) (res *dict.
// List 查看列表
func (c *cDictData) List(ctx context.Context, req *dict.DataListReq) (*dict.DataListRes, error) {
var (
in sysin.DictDataListInp
res dict.DataListRes
@@ -71,3 +70,37 @@ func (c *cDictData) List(ctx context.Context, req *dict.DataListReq) (*dict.Data
return &res, nil
}
// Select 指定选项
func (c *cDictData) Select(ctx context.Context, req *dict.DataSelectReq) (*dict.DataSelectRes, error) {
var (
in sysin.DataSelectInp
res dict.DataSelectRes
)
if err := gconv.Scan(req, &in); err != nil {
return nil, err
}
list, err := service.SysDictData().Select(ctx, in)
if err != nil {
return nil, err
}
res = dict.DataSelectRes(list)
return &res, nil
}
// Selects 多个选项
func (c *cDictData) Selects(ctx context.Context, req *dict.DataSelectsReq) (*dict.DataSelectsRes, error) {
res := make(dict.DataSelectsRes)
for _, v := range req.Types {
option, err := service.SysDictData().Select(ctx, sysin.DataSelectInp{Type: v})
if err != nil {
return nil, err
}
res[v] = option
}
return &res, nil
}

View File

@@ -0,0 +1,208 @@
// Package sys
// @Link https://github.com/bufanyun/hotgo
// @Copyright Copyright (c) 2022 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
//
package sys
import (
"context"
"github.com/gogf/gf/v2/util/gconv"
"hotgo/api/backend/gencodes"
"hotgo/internal/model/input/form"
"hotgo/internal/model/input/sysin"
"hotgo/internal/service"
)
var (
GenCodes = cGenCodes{}
)
type cGenCodes struct{}
// Delete 删除
func (c *cGenCodes) Delete(ctx context.Context, req *gencodes.DeleteReq) (res *gencodes.DeleteRes, err error) {
var in sysin.GenCodesDeleteInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = service.SysGenCodes().Delete(ctx, in); err != nil {
return nil, err
}
return res, nil
}
// Edit 更新
func (c *cGenCodes) Edit(ctx context.Context, req *gencodes.EditReq) (res *gencodes.EditRes, err error) {
var in sysin.GenCodesEditInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
data, err := service.SysGenCodes().Edit(ctx, in)
if err != nil {
return nil, err
}
res = new(gencodes.EditRes)
res.GenCodesEditModel = data
return res, nil
}
// MaxSort 最大排序
func (c *cGenCodes) MaxSort(ctx context.Context, req *gencodes.MaxSortReq) (*gencodes.MaxSortRes, error) {
data, err := service.SysGenCodes().MaxSort(ctx, sysin.GenCodesMaxSortInp{Id: req.Id})
if err != nil {
return nil, err
}
var res gencodes.MaxSortRes
res.Sort = data.Sort
return &res, nil
}
// View 获取指定信息
func (c *cGenCodes) View(ctx context.Context, req *gencodes.ViewReq) (*gencodes.ViewRes, error) {
data, err := service.SysGenCodes().View(ctx, sysin.GenCodesViewInp{Id: req.Id})
if err != nil {
return nil, err
}
var res gencodes.ViewRes
res.GenCodesViewModel = data
return &res, nil
}
// List 查看列表
func (c *cGenCodes) List(ctx context.Context, req *gencodes.ListReq) (*gencodes.ListRes, error) {
var (
in sysin.GenCodesListInp
res gencodes.ListRes
)
if err := gconv.Scan(req, &in); err != nil {
return nil, err
}
list, totalCount, err := service.SysGenCodes().List(ctx, in)
if err != nil {
return nil, err
}
res.List = list
res.PageCount = form.CalPageCount(totalCount, req.PerPage)
res.Page = req.Page
res.PerPage = req.PerPage
return &res, nil
}
// Status 更新部门状态
func (c *cGenCodes) Status(ctx context.Context, req *gencodes.StatusReq) (res *gencodes.StatusRes, err error) {
var in sysin.GenCodesStatusInp
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = service.SysGenCodes().Status(ctx, in); err != nil {
return nil, err
}
return res, nil
}
// Selects 获取指定信息
func (c *cGenCodes) Selects(ctx context.Context, req *gencodes.SelectsReq) (*gencodes.SelectsRes, error) {
data, err := service.SysGenCodes().Selects(ctx, sysin.GenCodesSelectsInp{})
if err != nil {
return nil, err
}
var res gencodes.SelectsRes
res.GenCodesSelectsModel = data
return &res, nil
}
// TableSelect 数据库表选项
func (c *cGenCodes) TableSelect(ctx context.Context, req *gencodes.TableSelectReq) (*gencodes.TableSelectRes, error) {
data, err := service.SysGenCodes().TableSelect(ctx, sysin.GenCodesTableSelectInp{Name: req.Name})
if err != nil {
return nil, err
}
var res gencodes.TableSelectRes
res = data
return &res, nil
}
// ColumnSelect 表字段选项
func (c *cGenCodes) ColumnSelect(ctx context.Context, req *gencodes.ColumnSelectReq) (*gencodes.ColumnSelectRes, error) {
data, err := service.SysGenCodes().ColumnSelect(ctx, sysin.GenCodesColumnSelectInp{Name: req.Name, Table: req.Table})
if err != nil {
return nil, err
}
var res gencodes.ColumnSelectRes
res = data
return &res, nil
}
// ColumnList 表字段列表
func (c *cGenCodes) ColumnList(ctx context.Context, req *gencodes.ColumnListReq) (*gencodes.ColumnListRes, error) {
var (
in sysin.GenCodesColumnListInp
err error
)
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
data, err := service.SysGenCodes().ColumnList(ctx, in)
if err != nil {
return nil, err
}
var res gencodes.ColumnListRes
res = data
return &res, nil
}
// Preview 生成预览
func (c *cGenCodes) Preview(ctx context.Context, req *gencodes.PreviewReq) (*gencodes.PreviewRes, error) {
var (
in sysin.GenCodesPreviewInp
err error
)
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
data, err := service.SysGenCodes().Preview(ctx, in)
if err != nil {
return nil, err
}
res := new(gencodes.PreviewRes)
res.GenCodesPreviewModel = data
return res, nil
}
// Build 生成预览
func (c *cGenCodes) Build(ctx context.Context, req *gencodes.BuildReq) (*gencodes.BuildRes, error) {
var (
in sysin.GenCodesBuildInp
err error
)
if err = gconv.Scan(req, &in); err != nil {
return nil, err
}
if err = service.SysGenCodes().Build(ctx, in); err != nil {
return nil, err
}
return nil, nil
}

View File

@@ -24,6 +24,7 @@ func (a *cSite) Index(ctx context.Context, req *base.SiteIndexReq) (res *base.Si
service.View().Render(ctx, model.View{Data: g.Map{
"name": "HotGo",
"version": consts.VersionApp,
"debug": g.Cfg().MustGet(ctx, "hotgo.debug", true),
}})
return
}

View File

@@ -78,7 +78,7 @@ func (c *cMonitor) RunInfo(client *websocket.Client, req *websocket.WRequest) {
"goSize": file.DirSize(pwd),
}
isDemo, _ := g.Cfg().Get(client.Context(), "hotgo.isDemo", false)
isDemo := g.Cfg().MustGet(client.Context(), "hotgo.isDemo", false)
if isDemo.Bool() {
data["rootPath"] = consts.DemoTips
data["pwd"] = consts.DemoTips