mirror of
https://github.com/tiger1103/gfast.git
synced 2026-09-21 18:20:47 +00:00
接口修改
This commit is contained in:
+242
-67
@@ -4,8 +4,13 @@ import (
|
||||
"fmt"
|
||||
"gfast/app/model/admin/auth_rule"
|
||||
"gfast/app/model/admin/role"
|
||||
"gfast/app/model/admin/sys_dept"
|
||||
"gfast/app/model/admin/user"
|
||||
"gfast/app/model/admin/user_post"
|
||||
"gfast/app/service/admin/auth_service"
|
||||
"gfast/app/service/admin/dept_service"
|
||||
"gfast/app/service/admin/dict_service"
|
||||
"gfast/app/service/admin/post_service"
|
||||
"gfast/app/service/admin/user_service"
|
||||
"gfast/app/service/cache_service"
|
||||
"gfast/app/service/casbin_adapter_service"
|
||||
@@ -23,16 +28,46 @@ type Auth struct{}
|
||||
|
||||
//菜单列表
|
||||
func (c *Auth) MenuList(r *ghttp.Request) {
|
||||
//获取菜单信息
|
||||
listEntities, err := auth_service.GetMenuList()
|
||||
var req *auth_rule.ReqSearch
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
var listEntities []*auth_rule.Entity
|
||||
var err error
|
||||
if req != nil {
|
||||
listEntities, err = auth_service.GetMenuListSearch(req)
|
||||
} else {
|
||||
//获取菜单信息
|
||||
listEntities, err = auth_service.GetMenuList()
|
||||
}
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "获取数据失败")
|
||||
}
|
||||
list := gconv.SliceMap(listEntities)
|
||||
list = utils.PushSonToParent(list)
|
||||
if req != nil {
|
||||
for k := range list {
|
||||
list[k]["children"] = nil
|
||||
}
|
||||
} else {
|
||||
list = utils.PushSonToParent(list, 0, "pid", "id", "children", "", nil, true)
|
||||
}
|
||||
//菜单显示状态
|
||||
visibleOptions, err := dict_service.GetDictWithDataByType("sys_show_hide", "", "")
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
//菜单正常or停用状态
|
||||
statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
|
||||
response.SusJson(true, r, "成功", g.Map{
|
||||
"list": list,
|
||||
"list": list,
|
||||
"visibleOptions": visibleOptions,
|
||||
"statusOptions": statusOptions,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -61,6 +96,10 @@ func (c *Auth) AddMenu(r *ghttp.Request) {
|
||||
if !auth_service.CheckMenuNameUnique(menu.Name, 0) {
|
||||
response.FailJson(true, r, "菜单规则名称已经存在")
|
||||
}
|
||||
//判断路由是否已经存在
|
||||
if !auth_service.CheckMenuPathUnique(menu.Path, 0) {
|
||||
response.FailJson(true, r, "路由地址已经存在")
|
||||
}
|
||||
//保存到数据库
|
||||
err, _ := auth_service.AddMenu(menu)
|
||||
if err != nil {
|
||||
@@ -76,14 +115,12 @@ func (c *Auth) AddMenu(r *ghttp.Request) {
|
||||
if err != nil {
|
||||
response.FailJson(true, r, "获取数据失败")
|
||||
}
|
||||
list := gconv.SliceMap(listEntities)
|
||||
list = utils.ParentSonSort(list)
|
||||
response.SusJson(true, r, "成功", g.Map{"parentList": list})
|
||||
response.SusJson(true, r, "成功", g.Map{"parentList": listEntities})
|
||||
}
|
||||
|
||||
//修改菜单
|
||||
func (c *Auth) EditMenu(r *ghttp.Request) {
|
||||
id := r.GetInt("id")
|
||||
id := r.GetInt("menuId")
|
||||
if r.Method == "POST" {
|
||||
menu := new(auth_rule.MenuReq)
|
||||
if err := r.Parse(menu); err != nil {
|
||||
@@ -93,6 +130,10 @@ func (c *Auth) EditMenu(r *ghttp.Request) {
|
||||
if !auth_service.CheckMenuNameUnique(menu.Name, id) {
|
||||
response.FailJson(true, r, "菜单规则名称已经存在")
|
||||
}
|
||||
//判断路由是否已经存在
|
||||
if !auth_service.CheckMenuPathUnique(menu.Path, id) {
|
||||
response.FailJson(true, r, "路由地址已经存在")
|
||||
}
|
||||
//保存到数据库
|
||||
err, _ := auth_service.EditMenu(menu, id)
|
||||
if err != nil {
|
||||
@@ -139,16 +180,27 @@ func (c *Auth) DeleteMenu(r *ghttp.Request) {
|
||||
|
||||
//角色列表
|
||||
func (c *Auth) RoleList(r *ghttp.Request) {
|
||||
var req *role.SelectPageReq
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
//获取角色列表
|
||||
listEntities, err := auth_service.GetRoleList()
|
||||
total, page, list, err := auth_service.GetRoleListSearch(req)
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "获取数据失败")
|
||||
}
|
||||
list := gconv.SliceMap(listEntities)
|
||||
list = utils.PushSonToParent(list, 0, "parent_id", "id", "children", "", nil, false)
|
||||
//菜单正常or停用状态
|
||||
statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "成功", g.Map{
|
||||
"list": list,
|
||||
"currentPage": page,
|
||||
"total": total,
|
||||
"list": list,
|
||||
"searchTypes": statusOptions,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -158,6 +210,7 @@ func (c *Auth) AddRole(r *ghttp.Request) {
|
||||
if r.Method == "POST" {
|
||||
//获取表单提交的数据
|
||||
res := r.GetFormMap()
|
||||
|
||||
tx, err := g.DB("default").Begin() //开启事务
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
@@ -171,43 +224,43 @@ func (c *Auth) AddRole(r *ghttp.Request) {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
//添加角色权限
|
||||
err = auth_service.AddRoleRule(res["rule"], insertId)
|
||||
err = auth_service.AddRoleRule(res["menuIds"], insertId)
|
||||
if err != nil {
|
||||
tx.Rollback() //回滚
|
||||
g.Log().Error(err.Error())
|
||||
response.FailJson(true, r, "添加用户组失败")
|
||||
response.FailJson(true, r, "添加角色失败")
|
||||
}
|
||||
tx.Commit()
|
||||
//清除TAG缓存
|
||||
cache_service.New().RemoveByTag(cache_service.AdminAuthTag)
|
||||
response.SusJson(true, r, "添加用户组成功")
|
||||
response.SusJson(true, r, "添加角色成功")
|
||||
}
|
||||
//获取父级组
|
||||
pListEntities, err := auth_service.GetRoleList()
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "获取父级数据失败")
|
||||
}
|
||||
pList := gconv.SliceMap(pListEntities)
|
||||
pList = utils.ParentSonSort(pList, 0, 0, "parent_id", "id", "flg", "name")
|
||||
|
||||
//获取菜单信息
|
||||
mListEntities, err := auth_service.GetMenuList()
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "获取菜单数据失败")
|
||||
}
|
||||
mList := gconv.SliceMap(mListEntities)
|
||||
var mList g.ListStrAny
|
||||
for _, entity := range mListEntities {
|
||||
m := g.Map{
|
||||
"id": entity.Id,
|
||||
"pid": entity.Pid,
|
||||
"label": entity.Title,
|
||||
}
|
||||
mList = append(mList, m)
|
||||
}
|
||||
mList = utils.PushSonToParent(mList)
|
||||
res := g.Map{
|
||||
"parentList": pList,
|
||||
"menuList": mList,
|
||||
"menuList": mList,
|
||||
}
|
||||
response.SusJson(true, r, "成功", res)
|
||||
}
|
||||
|
||||
//修改角色
|
||||
func (c *Auth) EditRole(r *ghttp.Request) {
|
||||
id := r.GetRequestInt64("id")
|
||||
id := r.GetRequestInt64("roleId")
|
||||
if r.Method == "POST" {
|
||||
//获取表单提交的数据
|
||||
res := r.GetFormMap()
|
||||
@@ -223,7 +276,7 @@ func (c *Auth) EditRole(r *ghttp.Request) {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
//添加角色权限
|
||||
err = auth_service.EditRoleRule(res["rule"], id)
|
||||
err = auth_service.EditRoleRule(res["menuIds"], id)
|
||||
if err != nil {
|
||||
tx.Rollback() //回滚
|
||||
g.Log().Error(err.Error())
|
||||
@@ -239,14 +292,7 @@ func (c *Auth) EditRole(r *ghttp.Request) {
|
||||
if err != nil {
|
||||
response.FailJson(true, r, "获取角色数据失败")
|
||||
}
|
||||
//获取父级组
|
||||
pListEntities, err := auth_service.GetRoleList()
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "获取父级数据失败")
|
||||
}
|
||||
pList := gconv.SliceMap(pListEntities)
|
||||
pList = utils.ParentSonSort(pList, 0, 0, "parent_id", "id", "flg", "name")
|
||||
|
||||
//获取菜单信息
|
||||
mListEntities, err := auth_service.GetMenuList()
|
||||
if err != nil {
|
||||
@@ -264,10 +310,19 @@ func (c *Auth) EditRole(r *ghttp.Request) {
|
||||
for k, v := range gp {
|
||||
gpSlice[k] = gconv.Int(gstr.SubStr(v[1], 2))
|
||||
}
|
||||
mList := gconv.SliceMap(mListEntities)
|
||||
|
||||
var mList g.ListStrAny
|
||||
for _, entity := range mListEntities {
|
||||
m := g.Map{
|
||||
"id": entity.Id,
|
||||
"pid": entity.Pid,
|
||||
"label": entity.Title,
|
||||
}
|
||||
mList = append(mList, m)
|
||||
}
|
||||
|
||||
mList = utils.PushSonToParent(mList)
|
||||
res := g.Map{
|
||||
"parentList": pList,
|
||||
"menuList": mList,
|
||||
"role": role,
|
||||
"checkedRules": gpSlice,
|
||||
@@ -293,17 +348,27 @@ func (c *Auth) DeleteRole(r *ghttp.Request) {
|
||||
//添加管理员
|
||||
func (c *Auth) AddUser(r *ghttp.Request) {
|
||||
if r.Method == "POST" {
|
||||
requestData := r.GetFormMap()
|
||||
InsertId, err := auth_service.AddUser(requestData)
|
||||
var req *user.AddUserReq
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
|
||||
InsertId, err := auth_service.AddUser(req)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
//设置用户所属角色信息
|
||||
err = auth_service.AddUserRole(requestData["role_id"], InsertId)
|
||||
err = auth_service.AddUserRole(req.PostIds, InsertId)
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "设置用户权限失败")
|
||||
}
|
||||
//设置用户岗位
|
||||
err = auth_service.AddUserPost(req.PostIds, InsertId)
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "设置用户岗位信息失败")
|
||||
}
|
||||
response.SusJson(true, r, "添加管理员成功")
|
||||
}
|
||||
//获取角色信息
|
||||
@@ -312,31 +377,44 @@ func (c *Auth) AddUser(r *ghttp.Request) {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "获取角色数据失败")
|
||||
}
|
||||
roleList := gconv.SliceMap(roleListEntities)
|
||||
roleList = utils.ParentSonSort(roleList, 0, 0, "parent_id", "id", "flg", "name")
|
||||
//获取岗位信息
|
||||
posts, err := post_service.GetUsedPost()
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
res := g.Map{
|
||||
"roleList": roleList,
|
||||
"roleList": roleListEntities,
|
||||
"posts": posts,
|
||||
}
|
||||
response.SusJson(true, r, "成功", res)
|
||||
}
|
||||
|
||||
//修改管理员
|
||||
func (c *Auth) EditUser(r *ghttp.Request) {
|
||||
id := r.GetRequestInt("id")
|
||||
if r.Method == "POST" {
|
||||
requestData := r.GetFormMap()
|
||||
err := auth_service.EditUser(requestData)
|
||||
var req *user.EditUserReq
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
err := auth_service.EditUser(req)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
//设置用户所属角色信息
|
||||
err = auth_service.EditUserRole(requestData["role_id"], id)
|
||||
err = auth_service.EditUserRole(req.RoleIds, req.UserId)
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "设置用户权限失败")
|
||||
}
|
||||
//设置用户岗位数据
|
||||
err = auth_service.AddUserPost(req.PostIds, gconv.Int64(req.UserId))
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "设置用户岗位信息失败")
|
||||
}
|
||||
response.SusJson(true, r, "修改管理员成功")
|
||||
}
|
||||
id := r.GetRequestInt("id")
|
||||
//用户用户信息
|
||||
userEntity, err := user.Model.Where("id=?", id).One()
|
||||
if err != nil {
|
||||
@@ -349,34 +427,46 @@ func (c *Auth) EditUser(r *ghttp.Request) {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "获取角色数据失败")
|
||||
}
|
||||
roleList := gconv.SliceMap(roleListEntities)
|
||||
roleList = utils.ParentSonSort(roleList, 0, 0, "parent_id", "id", "flg", "name")
|
||||
|
||||
//获取已选择的角色信息
|
||||
checkedRoleIds, err := user_service.GetAdminRoleIds(id)
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "获取用户角色数据失败")
|
||||
}
|
||||
if checkedRoleIds == nil {
|
||||
checkedRoleIds = g.SliceInt{}
|
||||
}
|
||||
//获取岗位信息
|
||||
posts, err := post_service.GetUsedPost()
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
checkedPosts, err := user_service.GetAdminPosts(id)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
if checkedPosts == nil {
|
||||
checkedPosts = []int64{}
|
||||
}
|
||||
res := g.Map{
|
||||
"roleList": roleList,
|
||||
"roleList": roleListEntities,
|
||||
"userInfo": userEntity,
|
||||
"checkedRoleIds": checkedRoleIds,
|
||||
"posts": posts,
|
||||
"checkedPosts": checkedPosts,
|
||||
}
|
||||
response.SusJson(true, r, "成功", res)
|
||||
}
|
||||
|
||||
//用户列表
|
||||
func (c *Auth) UserList(r *ghttp.Request) {
|
||||
keyWords := r.GetString("keywords")
|
||||
page := r.GetInt("page")
|
||||
if page == 0 {
|
||||
page = 1
|
||||
var req *user.SearchReq
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
var where = map[string]interface{}{}
|
||||
if keyWords != "" {
|
||||
where["keyWords"] = keyWords
|
||||
}
|
||||
total, userList, err := user_service.GetAdminList(where, page)
|
||||
total, page, userList, err := user_service.GetAdminList(req)
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "获取用户列表数据失败")
|
||||
@@ -388,25 +478,49 @@ func (c *Auth) UserList(r *ghttp.Request) {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "获取用户角色数据失败")
|
||||
}
|
||||
//获取所有部门信息
|
||||
depts, err := dept_service.GetList(&sys_dept.SearchParams{})
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "获取部门数据失败")
|
||||
}
|
||||
for k, u := range userList {
|
||||
var dept *sys_dept.Dept
|
||||
users[k] = gconv.Map(u)
|
||||
for _, d := range depts {
|
||||
if u.DeptId == d.DeptID {
|
||||
dept = d
|
||||
}
|
||||
}
|
||||
users[k]["dept"] = dept
|
||||
roles, err := user_service.GetAdminRole(u.Id, allRoles)
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "获取用户角色数据失败")
|
||||
}
|
||||
roleInfo := make(map[int]string, len(roles))
|
||||
roleInfo := make([]g.Map, 0, len(roles))
|
||||
for _, r := range roles {
|
||||
roleInfo[r.Id] = r.Name
|
||||
roleInfo = append(roleInfo, g.Map{"roleId": r.Id, "name": r.Name})
|
||||
}
|
||||
users[k]["user_status"] = gconv.String(u.UserStatus)
|
||||
users[k]["roleInfo"] = roleInfo
|
||||
}
|
||||
//获取用户对应角色
|
||||
|
||||
//用户状态
|
||||
statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
//用户性别
|
||||
userGender, err := dict_service.GetDictWithDataByType("sys_user_sex", "", "")
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
res := g.Map{
|
||||
"total": total,
|
||||
"currentPage": page,
|
||||
"userList": users,
|
||||
"total": total,
|
||||
"currentPage": page,
|
||||
"userList": users,
|
||||
"statusOptions": statusOptions,
|
||||
"userGender": userGender,
|
||||
}
|
||||
response.SusJson(true, r, "成功", res)
|
||||
}
|
||||
@@ -430,5 +544,66 @@ func (c *Auth) DeleteAdmin(r *ghttp.Request) {
|
||||
enforcer.RemoveFilteredGroupingPolicy(0, fmt.Sprintf("u_%d", v))
|
||||
}
|
||||
}
|
||||
//删除用户对应的岗位
|
||||
_, err = user_post.Delete(user_post.Columns.UserId+" in (?)", ids)
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
}
|
||||
response.SusJson(true, r, "删除成功")
|
||||
}
|
||||
|
||||
//设置角色状态
|
||||
func (c *Auth) StatusSetRole(r *ghttp.Request) {
|
||||
var req *role.StatusSetReq
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
err := auth_service.StatusSetRole(req)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "状态设置成功")
|
||||
}
|
||||
|
||||
//角色数据权限分配
|
||||
func (c *Auth) RoleDataScope(r *ghttp.Request) {
|
||||
var req *role.DataScopeReq
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
err := auth_service.RoleDataScope(req)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "数据权限设置成功", req)
|
||||
}
|
||||
|
||||
//修改用户状态
|
||||
func (c *Auth) ChangeUserStatus(r *ghttp.Request) {
|
||||
var req *user.StatusReq
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
if err := user_service.ChangeUserStatus(req); err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
} else {
|
||||
response.SusJson(true, r, "用户状态设置成功")
|
||||
}
|
||||
}
|
||||
|
||||
//重置用户密码
|
||||
func (c *Auth) ResetUserPwd(r *ghttp.Request) {
|
||||
var req *user.ResetPwdReq
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
if err := user_service.ResetUserPwd(req); err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
} else {
|
||||
response.SusJson(true, r, "用户密码重置成功")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,171 +0,0 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"gfast/app/model/admin/cms_category"
|
||||
"gfast/app/service/admin/cms_service"
|
||||
"gfast/app/service/admin/dict_service"
|
||||
"gfast/app/service/cache_service"
|
||||
"gfast/library/response"
|
||||
"gfast/library/utils"
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/net/ghttp"
|
||||
"github.com/gogf/gf/util/gconv"
|
||||
"github.com/gogf/gf/util/gvalid"
|
||||
)
|
||||
|
||||
//cms栏目管理
|
||||
type CmsMenu struct{}
|
||||
|
||||
func (c *CmsMenu) List(r *ghttp.Request) {
|
||||
var req *cms_category.ReqSearchList
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
var menus []*cms_category.Entity
|
||||
var err error
|
||||
var list g.List
|
||||
if req != nil && req.Name != "" {
|
||||
//按栏目名搜索
|
||||
menus, err = cms_service.GetMenuListSearch(req)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
list = gconv.Maps(menus)
|
||||
} else {
|
||||
//获取所有栏目
|
||||
menus, err = cms_service.GetMenuList()
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
list = gconv.Maps(menus)
|
||||
list = utils.PushSonToParent(list, 0, "parent_id")
|
||||
}
|
||||
res := g.Map{
|
||||
"list": list,
|
||||
}
|
||||
response.SusJson(true, r, "ok", res)
|
||||
}
|
||||
|
||||
//添加栏目分类
|
||||
func (c *CmsMenu) Add(r *ghttp.Request) {
|
||||
if r.Method == "POST" {
|
||||
var req *cms_category.ReqAdd
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
_, err := cms_service.AddSave(req)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
cache_service.New().RemoveByTag(cache_service.AdminCmsTag)
|
||||
response.SusJson(true, r, "栏目添加成功")
|
||||
}
|
||||
//获取上级分类(频道)
|
||||
menus, err := cms_service.GetMenuListChannel()
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
menuTop := []*cms_category.Entity{
|
||||
{
|
||||
Id: 0,
|
||||
ParentId: -1,
|
||||
Status: 1,
|
||||
Name: "最顶级",
|
||||
CateType: 1,
|
||||
},
|
||||
}
|
||||
menus = append(menuTop, menus...)
|
||||
list := gconv.Maps(menus)
|
||||
list = utils.PushSonToParent(list, -1, "parent_id")
|
||||
typeChecker, err := dict_service.GetDictWithDataByType("cms_category_type", "", "")
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
res := g.Map{
|
||||
"menus": list,
|
||||
"typeChecker": typeChecker,
|
||||
}
|
||||
response.SusJson(true, r, "添加栏目", res)
|
||||
}
|
||||
|
||||
//修改栏目
|
||||
func (c *CmsMenu) Edit(r *ghttp.Request) {
|
||||
if r.Method == "POST" {
|
||||
var req *cms_category.ReqEdit
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
_, err := cms_service.EditSave(req)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
cache_service.New().RemoveByTag(cache_service.AdminCmsTag)
|
||||
response.SusJson(true, r, "栏目修改成功")
|
||||
}
|
||||
//获取栏目数据
|
||||
id := r.GetInt("id")
|
||||
menuInfo, err := cms_service.GetMenuInfoById(id)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
if menuInfo == nil {
|
||||
response.FailJson(true, r, "参数错误")
|
||||
}
|
||||
//获取上级分类(频道)
|
||||
menus, err := cms_service.GetMenuListChannel()
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
menuTop := []*cms_category.Entity{
|
||||
{
|
||||
Id: 0,
|
||||
ParentId: -1,
|
||||
Status: 1,
|
||||
Name: "最顶级",
|
||||
CateType: 1,
|
||||
},
|
||||
}
|
||||
menus = append(menuTop, menus...)
|
||||
list := gconv.Maps(menus)
|
||||
list = utils.PushSonToParent(list, -1, "parent_id")
|
||||
typeChecker, err := dict_service.GetDictWithDataByType("cms_category_type", gconv.String(menuInfo.CateType), "")
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
|
||||
res := g.Map{
|
||||
"menuInfo": menuInfo,
|
||||
"menus": list,
|
||||
"typeChecker": typeChecker,
|
||||
}
|
||||
response.SusJson(true, r, "修改栏目", res)
|
||||
}
|
||||
|
||||
//栏目排序
|
||||
func (c *CmsMenu) Sort(r *ghttp.Request) {
|
||||
sorts := r.Get("sorts")
|
||||
s := gconv.Map(sorts)
|
||||
if s == nil {
|
||||
response.FailJson(true, r, "排序失败")
|
||||
}
|
||||
for k, v := range s {
|
||||
cms_category.Model.Where("id=?", k).Data("list_order", v).Update()
|
||||
}
|
||||
cache_service.New().RemoveByTag(cache_service.AdminCmsTag)
|
||||
response.SusJson(true, r, "排序成功")
|
||||
}
|
||||
|
||||
func (c *CmsMenu) Delete(r *ghttp.Request) {
|
||||
ids := r.GetInts("ids")
|
||||
if len(ids) == 0 {
|
||||
response.FailJson(true, r, "删除失败")
|
||||
}
|
||||
err := cms_service.DeleteMenuByIds(ids)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, "删除失败")
|
||||
}
|
||||
response.SusJson(true, r, "删除信息成功", ids)
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"gfast/library/response"
|
||||
"github.com/gogf/gf/net/ghttp"
|
||||
)
|
||||
|
||||
type CmsModel struct{}
|
||||
|
||||
func (c *CmsModel) List(r *ghttp.Request) {
|
||||
response.FailJson(true, r, "功能开发中...")
|
||||
}
|
||||
|
||||
//添加模型
|
||||
func (c *CmsModel) Add(r *ghttp.Request) {
|
||||
response.FailJson(true, r, "功能开发中...")
|
||||
}
|
||||
@@ -1,122 +0,0 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"gfast/app/model/admin/cms_news"
|
||||
"gfast/app/service/admin/cms_service"
|
||||
"gfast/app/service/admin/user_service"
|
||||
"gfast/library/response"
|
||||
"gfast/library/utils"
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/net/ghttp"
|
||||
"github.com/gogf/gf/util/gvalid"
|
||||
)
|
||||
|
||||
type CmsNews struct{}
|
||||
|
||||
//信息列表
|
||||
func (c *CmsNews) List(r *ghttp.Request) {
|
||||
var req *cms_news.ReqListSearchParams
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
total, page, list, err := cms_service.NewsListByPage(req)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
//获取可选栏目
|
||||
menus, err := cms_service.GetPublishableMenuList(req.CateId...)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
menus = utils.PushSonToParent(menus, 0, "parent_id")
|
||||
result := g.Map{
|
||||
"currentPage": page,
|
||||
"total": total,
|
||||
"list": list,
|
||||
"menus": menus,
|
||||
}
|
||||
response.SusJson(true, r, "信息列表", result)
|
||||
}
|
||||
|
||||
//添加信息
|
||||
func (c *CmsNews) Add(r *ghttp.Request) {
|
||||
if r.Method == "POST" {
|
||||
var req *cms_news.ReqAddParams
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
cateIds := r.GetInts("cateIds")
|
||||
userId := user_service.GetLoginID(r)
|
||||
_, err := cms_service.AddNews(req, cateIds, userId)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "添加信息成功")
|
||||
}
|
||||
//获取可选栏目
|
||||
menus, err := cms_service.GetPublishableMenuList()
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
menus = utils.PushSonToParent(menus, 0, "parent_id")
|
||||
res := g.Map{
|
||||
"menus": menus,
|
||||
}
|
||||
response.SusJson(true, r, "添加信息", res)
|
||||
}
|
||||
|
||||
//修改信息
|
||||
func (c *CmsNews) Edit(r *ghttp.Request) {
|
||||
if r.Method == "POST" {
|
||||
var req *cms_news.ReqEditParams
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
cateIds := r.GetInts("cateIds")
|
||||
err := cms_service.EditNews(req, cateIds)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "修改信息成功")
|
||||
}
|
||||
id := r.GetInt("id")
|
||||
if id == 0 {
|
||||
response.FailJson(true, r, "参数错误")
|
||||
}
|
||||
//获取文章信息
|
||||
news, err := cms_service.GetNewsById(id)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
checkedCategoryId, err := cms_service.GetCheckedCategoryIdByNewsId(news.Id)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
//获取可选栏目
|
||||
menus, err := cms_service.GetPublishableMenuList(checkedCategoryId...)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
menus = utils.PushSonToParent(menus, 0, "parent_id")
|
||||
res := g.Map{
|
||||
"menus": menus,
|
||||
"news": news,
|
||||
}
|
||||
response.SusJson(true, r, "添加信息", res)
|
||||
}
|
||||
|
||||
//删除信息
|
||||
func (c *CmsNews) Delete(r *ghttp.Request) {
|
||||
ids := r.GetInts("ids")
|
||||
if len(ids) == 0 {
|
||||
response.FailJson(true, r, "删除失败")
|
||||
}
|
||||
err := cms_service.DeleteCmsByIds(ids)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, "删除失败")
|
||||
}
|
||||
response.SusJson(true, r, "删除信息成功")
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"gfast/app/model/admin/sys_dict_type"
|
||||
"gfast/app/service/admin/dict_service"
|
||||
"gfast/app/service/admin/user_service"
|
||||
"gfast/app/service/cache_service"
|
||||
"gfast/library/response"
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/net/ghttp"
|
||||
@@ -25,11 +26,16 @@ func (c *Dict) List(r *ghttp.Request) {
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
//菜单正常or停用状态
|
||||
statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
result := g.Map{
|
||||
"currentPage": page,
|
||||
"total": total,
|
||||
"list": list,
|
||||
"searchStatus": map[string]string{"": "所有", "0": "停用", "1": "正常"},
|
||||
"searchStatus": statusOptions,
|
||||
}
|
||||
response.SusJson(true, r, "字典列表", result)
|
||||
}
|
||||
@@ -51,6 +57,8 @@ func (c *Dict) Add(r *ghttp.Request) {
|
||||
g.Log().Error(err.Error())
|
||||
response.FailJson(true, r, "字典类型添加失败")
|
||||
}
|
||||
//清除tag缓存
|
||||
cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
|
||||
response.SusJson(true, r, "添加字典成功")
|
||||
}
|
||||
}
|
||||
@@ -71,14 +79,16 @@ func (c *Dict) Edit(r *ghttp.Request) {
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
//清除tag缓存
|
||||
cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
|
||||
response.SusJson(true, r, "修改成功")
|
||||
}
|
||||
id := r.GetInt("id")
|
||||
id := r.GetInt("dictId")
|
||||
entity, err := dict_service.GetDictById(id)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, "字典类型添加失败")
|
||||
response.FailJson(true, r, "字典数据获取失败")
|
||||
}
|
||||
response.SusJson(true, r, "ok", g.Map{"dict": entity})
|
||||
response.SusJson(true, r, "ok", entity)
|
||||
}
|
||||
|
||||
//字典数据列表
|
||||
@@ -93,11 +103,18 @@ func (c *Dict) DataList(r *ghttp.Request) {
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
|
||||
//菜单正常or停用状态
|
||||
statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
|
||||
result := g.Map{
|
||||
"currentPage": page,
|
||||
"total": total,
|
||||
"list": list,
|
||||
"searchStatus": map[string]string{"": "所有", "0": "停用", "1": "正常"},
|
||||
"searchStatus": statusOptions,
|
||||
}
|
||||
response.SusJson(true, r, "ok", result)
|
||||
}
|
||||
@@ -115,15 +132,10 @@ func (c *Dict) DataAdd(r *ghttp.Request) {
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
//清除tag缓存
|
||||
cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
|
||||
response.SusJson(true, r, "添加字典数据成功")
|
||||
}
|
||||
dictType := r.GetQueryString("dictType")
|
||||
res := g.Map{
|
||||
"listClassSelector": g.Map{"default": "默认", "primary": "主要", "success": "成功", "info": "信息",
|
||||
"warning": "警告", "danger": "危险"},
|
||||
"dictType": dictType,
|
||||
}
|
||||
response.SusJson(true, r, "ok", res)
|
||||
}
|
||||
|
||||
//修改字典数据
|
||||
@@ -139,21 +151,17 @@ func (c *Dict) DataEdit(r *ghttp.Request) {
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
//清除tag缓存
|
||||
cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
|
||||
response.SusJson(true, r, "修改字典数据成功")
|
||||
|
||||
}
|
||||
dictCode := r.GetInt("dictCode")
|
||||
dictData, err := dict_service.GetDictDataById(dictCode)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
res := g.Map{
|
||||
"listClassSelector": g.Map{"default": "默认", "primary": "主要", "success": "成功", "info": "信息",
|
||||
"warning": "警告", "danger": "危险"},
|
||||
"dictType": dictData.DictType,
|
||||
"dictData": dictData,
|
||||
}
|
||||
response.SusJson(true, r, "ok", res)
|
||||
|
||||
response.SusJson(true, r, "ok", dictData)
|
||||
}
|
||||
|
||||
//删除字典
|
||||
@@ -166,12 +174,14 @@ func (c *Dict) Delete(r *ghttp.Request) {
|
||||
if err != nil {
|
||||
response.FailJson(true, r, "删除失败")
|
||||
}
|
||||
//清除tag缓存
|
||||
cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
|
||||
response.SusJson(true, r, "删除成功")
|
||||
}
|
||||
|
||||
//删除字典数据
|
||||
func (c *Dict) DataDelete(r *ghttp.Request) {
|
||||
dictCodes := r.GetInts("dictCode")
|
||||
dictCodes := r.GetInts("ids")
|
||||
if len(dictCodes) == 0 {
|
||||
response.FailJson(true, r, "删除失败")
|
||||
}
|
||||
@@ -179,5 +189,40 @@ func (c *Dict) DataDelete(r *ghttp.Request) {
|
||||
if err != nil {
|
||||
response.FailJson(true, r, "删除失败")
|
||||
}
|
||||
//清除tag缓存
|
||||
cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
|
||||
response.SusJson(true, r, "删除成功")
|
||||
}
|
||||
|
||||
/**
|
||||
状态
|
||||
*/
|
||||
func (c *Dict) SysNormalDisable(r *ghttp.Request) {
|
||||
//菜单正常or停用状态
|
||||
statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "", statusOptions)
|
||||
|
||||
}
|
||||
|
||||
func (c *Dict) SysCommonStatus(r *ghttp.Request) {
|
||||
//获取相关选项
|
||||
logStatus, err := dict_service.GetDictWithDataByType("sys_oper_log_status", "", "全部")
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
|
||||
response.SusJson(true, r, "ok", logStatus)
|
||||
}
|
||||
|
||||
// 获取字典选择框列表
|
||||
func (c *Dict) OptionSelect(r *ghttp.Request) {
|
||||
//获取所有字典类型列表
|
||||
list, err := dict_service.GetAllDictType()
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "ok", list)
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package admin
|
||||
|
||||
import (
|
||||
"gfast/app/model/admin/sys_config"
|
||||
"gfast/app/service/admin/dict_service"
|
||||
"gfast/app/service/admin/params_service"
|
||||
"gfast/app/service/admin/user_service"
|
||||
"gfast/app/service/cache_service"
|
||||
@@ -24,11 +25,16 @@ func (c *Params) List(r *ghttp.Request) {
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
//系统内置选项
|
||||
sysOptions, err := dict_service.GetDictWithDataByType("sys_yes_no", "", "")
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
result := g.Map{
|
||||
"currentPage": page,
|
||||
"total": total,
|
||||
"list": list,
|
||||
"searchTypes": map[string]string{"": "所有", "0": "否", "1": "是"},
|
||||
"searchTypes": sysOptions,
|
||||
}
|
||||
response.SusJson(true, r, "字典列表", result)
|
||||
}
|
||||
@@ -80,7 +86,7 @@ func (c *Params) Edit(r *ghttp.Request) {
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "ok", g.Map{"params": params})
|
||||
response.SusJson(true, r, "ok", params)
|
||||
}
|
||||
|
||||
//删除参数
|
||||
|
||||
@@ -0,0 +1,168 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"gfast/app/model/admin/sys_dept"
|
||||
"gfast/app/service/admin/dept_service"
|
||||
"gfast/library/response"
|
||||
"gfast/library/utils"
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/net/ghttp"
|
||||
"github.com/gogf/gf/util/gvalid"
|
||||
)
|
||||
|
||||
//菜单用户组用户管理
|
||||
type Dept struct{}
|
||||
|
||||
func (c *Dept) List(r *ghttp.Request) {
|
||||
|
||||
var searchParams *sys_dept.SearchParams
|
||||
|
||||
if err := r.Parse(&searchParams); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
|
||||
if list, err := dept_service.GetList(searchParams); err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
} else {
|
||||
if list != nil {
|
||||
response.SusJson(true, r, "成功", list)
|
||||
} else {
|
||||
response.SusJson(true, r, "成功", g.Slice{})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
新增
|
||||
*/
|
||||
func (c *Dept) AddDept(r *ghttp.Request) {
|
||||
if r.Method == "POST" {
|
||||
var addParams *sys_dept.AddParams
|
||||
|
||||
if err := r.Parse(&addParams); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
//g.Log().Println(AddParams)
|
||||
if _, err := dept_service.AddDept(addParams); err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "添加成功")
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
编辑
|
||||
*/
|
||||
func (c *Dept) EditDept(r *ghttp.Request) {
|
||||
if r.Method == "POST" {
|
||||
var editParams *sys_dept.EditParams
|
||||
if err := r.Parse(&editParams); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
|
||||
if err := dept_service.EditDept(editParams); err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "编辑成功")
|
||||
|
||||
}
|
||||
|
||||
id := r.GetInt64("id")
|
||||
if id == 0 {
|
||||
response.FailJson(true, r, "参数错误")
|
||||
}
|
||||
if dept, err := dept_service.GetDeptById(id); err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
} else {
|
||||
response.SusJson(true, r, "success", dept)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
查询部门排除节点
|
||||
*/
|
||||
func (c *Dept) Exclude(r *ghttp.Request) {
|
||||
id := r.GetInt64("id")
|
||||
if id == 0 {
|
||||
response.FailJson(true, r, "参数错误")
|
||||
}
|
||||
|
||||
if depts, err := dept_service.Exclude(id); err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
} else {
|
||||
response.SusJson(true, r, "success", depts)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
删除
|
||||
*/
|
||||
func (c *Dept) DelDept(r *ghttp.Request) {
|
||||
id := r.GetInt64("id")
|
||||
if id == 0 {
|
||||
response.FailJson(true, r, "删除失败")
|
||||
}
|
||||
err := dept_service.DelDept(id)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, "删除失败")
|
||||
}
|
||||
response.SusJson(true, r, "删除信息成功")
|
||||
}
|
||||
|
||||
func (c *Dept) TreeSelect(r *ghttp.Request) {
|
||||
//获取正常状态部门数据
|
||||
list, err := dept_service.GetList(&sys_dept.SearchParams{Status: "1"})
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
var dList g.ListStrAny
|
||||
for _, entity := range list {
|
||||
m := g.Map{
|
||||
"id": entity.DeptID,
|
||||
"pid": entity.ParentID,
|
||||
"label": entity.DeptName,
|
||||
}
|
||||
dList = append(dList, m)
|
||||
}
|
||||
dList = utils.PushSonToParent(dList, 0, "pid", "id", "children", "", nil, false)
|
||||
res := g.Map{
|
||||
"depts": dList,
|
||||
}
|
||||
response.SusJson(true, r, "ok", res)
|
||||
}
|
||||
|
||||
//获取角色部门
|
||||
func (c *Dept) RoleDeptTreeSelect(r *ghttp.Request) {
|
||||
id := r.GetInt64("roleId")
|
||||
if id == 0 {
|
||||
response.FailJson(true, r, "参数错误")
|
||||
}
|
||||
//获取正常状态部门数据
|
||||
list, err := dept_service.GetList(&sys_dept.SearchParams{Status: "1"})
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
var dList g.ListStrAny
|
||||
for _, entity := range list {
|
||||
m := g.Map{
|
||||
"id": entity.DeptID,
|
||||
"pid": entity.ParentID,
|
||||
"label": entity.DeptName,
|
||||
}
|
||||
dList = append(dList, m)
|
||||
}
|
||||
//获取关联的角色数据权限
|
||||
checkedKeys, err := dept_service.GetRoleDepts(id)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
dList = utils.PushSonToParent(dList)
|
||||
res := g.Map{
|
||||
"depts": dList,
|
||||
"checkedKeys": checkedKeys,
|
||||
}
|
||||
response.SusJson(true, r, "ok", res)
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"gfast/app/model/admin/gen_table"
|
||||
"gfast/app/service/admin/gen_service"
|
||||
"gfast/app/service/admin/user_service"
|
||||
"gfast/library/response"
|
||||
"github.com/gogf/gf/encoding/gjson"
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/net/ghttp"
|
||||
"github.com/gogf/gf/text/gstr"
|
||||
"github.com/gogf/gf/util/gconv"
|
||||
"github.com/gogf/gf/util/gvalid"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Gen struct{}
|
||||
|
||||
//查询数据库列表
|
||||
func (c *Gen) DataList(r *ghttp.Request) {
|
||||
var req *gen_table.SelectPageReq
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
|
||||
total, list, err := gen_service.SelectDbTableList(req)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "ok", g.Map{
|
||||
"total": total,
|
||||
"list": list,
|
||||
})
|
||||
}
|
||||
|
||||
//表列表
|
||||
func (c *Gen) TableList(r *ghttp.Request) {
|
||||
var req *gen_table.SelectPageReq
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
total, list, err := gen_service.SelectListByPage(req)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "ok", g.Map{
|
||||
"total": total,
|
||||
"list": list,
|
||||
})
|
||||
}
|
||||
|
||||
//导入表结构操作
|
||||
func (c *Gen) ImportTableSave(r *ghttp.Request) {
|
||||
tables := r.GetString("tables")
|
||||
if tables == "" {
|
||||
response.FailJson(true, r, "请选择要导入的表格")
|
||||
}
|
||||
user := user_service.GetLoginAdminInfo(r)
|
||||
operName := user.UserName
|
||||
tableArr := strings.Split(tables, ",")
|
||||
tableList, err := gen_service.SelectDbTableListByNames(tableArr)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
if tableList == nil {
|
||||
response.FailJson(true, r, "表信息不存在")
|
||||
}
|
||||
err = gen_service.ImportGenTable(tableList, operName)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "导入数据表成功")
|
||||
}
|
||||
|
||||
//根据表格ID获取表格字段列表数据
|
||||
func (c *Gen) ColumnList(r *ghttp.Request) {
|
||||
tableId := r.GetInt64("tableId")
|
||||
if tableId == 0 {
|
||||
response.FailJson(true, r, "参数错误")
|
||||
}
|
||||
list, err := gen_service.SelectGenTableColumnListByTableId(tableId)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
var tableInfo *gen_table.Entity
|
||||
var tableMap g.Map
|
||||
tableInfo, err = gen_service.GetTableInfoByTableId(tableId)
|
||||
tableMap = gconv.Map(tableInfo)
|
||||
//如果是树表则设置树表配置
|
||||
if tableInfo != nil && tableInfo.TplCategory == "tree" {
|
||||
options := gjson.New(tableInfo.Options)
|
||||
tableMap["tree_code"] = options.Get("tree_code")
|
||||
tableMap["tree_parent_code"] = options.Get("tree_parent_code")
|
||||
tableMap["tree_name"] = options.Get("tree_name")
|
||||
}
|
||||
|
||||
res := g.Map{
|
||||
"rows": list,
|
||||
"info": tableMap,
|
||||
}
|
||||
response.SusJson(true, r, "ok", res)
|
||||
}
|
||||
|
||||
//编辑表格信息
|
||||
func (c *Gen) EditSave(r *ghttp.Request) {
|
||||
var req *gen_table.EditReq
|
||||
//获取参数
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
userInfo := user_service.GetLoginAdminInfo(r)
|
||||
req.UserName = userInfo.UserName
|
||||
err := gen_service.SaveEdit(req)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "设置成功")
|
||||
}
|
||||
|
||||
//删除表格数据
|
||||
func (c *Gen) Delete(r *ghttp.Request) {
|
||||
ids := r.GetInts("ids")
|
||||
if len(ids) == 0 {
|
||||
response.FailJson(true, r, "参数错误")
|
||||
}
|
||||
err := gen_service.Delete(ids)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "删除成功")
|
||||
}
|
||||
|
||||
//代码生成预览
|
||||
func (c *Gen) Preview(r *ghttp.Request) {
|
||||
tableId := r.GetInt64("tableId")
|
||||
if tableId == 0 {
|
||||
response.FailJson(true, r, "参数错误")
|
||||
}
|
||||
entity, err := gen_service.SelectRecordById(tableId)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
if entity == nil {
|
||||
response.FailJson(true, r, "表格数据不存在")
|
||||
}
|
||||
gen_service.SetPkColumn(entity, entity.Columns)
|
||||
|
||||
controllerKey := "vm/go/" + entity.BusinessName + "_controller.go.vm"
|
||||
controllerValue := ""
|
||||
serviceKey := "vm/go/" + entity.BusinessName + "_service.go.vm"
|
||||
serviceValue := ""
|
||||
extendKey := "vm/go/" + entity.BusinessName + "_extend.go.vm"
|
||||
extendValue := ""
|
||||
apiJsKey := "vm/html/" + entity.BusinessName + "_api.js.vm"
|
||||
apiJsValue := ""
|
||||
vueKey := "vm/html/" + entity.BusinessName + "_vue.js.vm"
|
||||
vueValue := ""
|
||||
|
||||
g.View().BindFuncMap(g.Map{
|
||||
"UcFirst": func(str string) string {
|
||||
return gstr.UcFirst(str)
|
||||
},
|
||||
})
|
||||
if tmpController, err := r.Response.ParseTpl("vm/go/controller.template", g.Map{"table": entity}); err == nil {
|
||||
controllerValue = tmpController
|
||||
}
|
||||
if tmpService, err := r.Response.ParseTpl("vm/go/service.template", g.Map{"table": entity}); err == nil {
|
||||
serviceValue = tmpService
|
||||
}
|
||||
if tmpExtend, err := r.Response.ParseTpl("vm/go/extend.template", g.Map{"table": entity}); err == nil {
|
||||
extendValue = tmpExtend
|
||||
}
|
||||
if tmpExtend, err := r.Response.ParseTpl("vm/html/js.template", g.Map{"table": entity}); err == nil {
|
||||
apiJsValue = tmpExtend
|
||||
}
|
||||
if tmpExtend, err := r.Response.ParseTpl("vm/html/vue.template", g.Map{"table": entity}); err == nil {
|
||||
vueValue = tmpExtend
|
||||
}
|
||||
|
||||
response.SusJson(true, r, "ok", g.Map{
|
||||
extendKey: extendValue,
|
||||
serviceKey: serviceValue,
|
||||
controllerKey: controllerValue,
|
||||
apiJsKey: apiJsValue,
|
||||
vueKey: vueValue,
|
||||
})
|
||||
}
|
||||
@@ -8,22 +8,65 @@ import (
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/net/ghttp"
|
||||
"github.com/gogf/gf/util/gconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Index struct{}
|
||||
|
||||
//后台首页接口数据
|
||||
func (c *Index) Index(r *ghttp.Request) {
|
||||
//获取登录用户信息
|
||||
func (c *Index) GetInfo(r *ghttp.Request) {
|
||||
//获取用户信息
|
||||
userEntity := user_service.GetLoginAdminInfo(r)
|
||||
userEntity, err := user_service.GetCurrentUser(r)
|
||||
if err != nil {
|
||||
g.Log().Error(err)
|
||||
response.FailJson(true, r, "获取当前登录用户信息失败")
|
||||
}
|
||||
userInfo := gconv.Map(userEntity)
|
||||
//菜单列表
|
||||
var menuList g.List
|
||||
isSuperAdmin := false
|
||||
rolesList := make([]string, 0, 10)
|
||||
if userInfo != nil {
|
||||
userId := userEntity.Id
|
||||
delete(userInfo, "user_password")
|
||||
userInfo["roles"] = make([]string, 0)
|
||||
|
||||
//获取用户角色信息
|
||||
allRoles, err := auth_service.GetRoleList()
|
||||
if err == nil {
|
||||
roles, err := user_service.GetAdminRole(userId, allRoles)
|
||||
if err == nil {
|
||||
name := make([]string, len(roles))
|
||||
roleIds := make([]int, len(roles))
|
||||
for k, v := range roles {
|
||||
name[k] = v.Name
|
||||
roleIds[k] = v.Id
|
||||
}
|
||||
userInfo["roles"] = roles
|
||||
rolesList = name
|
||||
} else {
|
||||
g.Log().Error(err)
|
||||
}
|
||||
} else {
|
||||
g.Log().Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
result := g.Map{
|
||||
"user": userInfo,
|
||||
"roles": rolesList,
|
||||
"permissions": nil,
|
||||
}
|
||||
|
||||
response.SusJson(true, r, "ok", result)
|
||||
}
|
||||
|
||||
//获取后台菜单
|
||||
func (c *Index) GetRouters(r *ghttp.Request) {
|
||||
//获取用户信息
|
||||
userEntity := user_service.GetLoginAdminInfo(r)
|
||||
//菜单列表
|
||||
var menuList g.List
|
||||
isSuperAdmin := false
|
||||
if userEntity != nil {
|
||||
userId := userEntity.Id
|
||||
|
||||
//获取无需验证权限的用户id
|
||||
for _, v := range service.NotCheckAuthAdminIds {
|
||||
if v == userId {
|
||||
@@ -43,7 +86,6 @@ func (c *Index) Index(r *ghttp.Request) {
|
||||
name[k] = v.Name
|
||||
roleIds[k] = v.Id
|
||||
}
|
||||
userInfo["roles"] = strings.Join(name, ",")
|
||||
//获取菜单信息
|
||||
if isSuperAdmin {
|
||||
//超管获取所有菜单
|
||||
@@ -56,17 +98,13 @@ func (c *Index) Index(r *ghttp.Request) {
|
||||
}
|
||||
} else {
|
||||
g.Log().Error(err)
|
||||
userInfo["roles"] = ""
|
||||
}
|
||||
} else {
|
||||
g.Log().Error(err)
|
||||
userInfo["roles"] = ""
|
||||
}
|
||||
}
|
||||
|
||||
result := g.Map{
|
||||
"userInfo": userInfo,
|
||||
"menuList": menuList,
|
||||
if menuList == nil {
|
||||
menuList = g.List{}
|
||||
}
|
||||
response.SusJson(true, r, "ok", result)
|
||||
response.SusJson(true, r, "ok", menuList)
|
||||
}
|
||||
|
||||
@@ -122,9 +122,19 @@ func (c *MonitorJob) Edit(r *ghttp.Request) {
|
||||
response.SusJson(true, r, "添加任务", res)
|
||||
}
|
||||
|
||||
//详情
|
||||
func (c *MonitorJob) Details(r *ghttp.Request) {
|
||||
id := r.GetInt64("id")
|
||||
job, err := monitor_service.GetJobInfoById(id)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "success", job)
|
||||
}
|
||||
|
||||
//删除计划任务
|
||||
func (c *MonitorJob) Delete(r *ghttp.Request) {
|
||||
ids := r.GetInts("ids")
|
||||
ids := r.GetInts("id")
|
||||
err := monitor_service.DeleteJobByIds(ids)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"gfast/app/model/admin/sys_post"
|
||||
"gfast/app/service/admin/post_service"
|
||||
"gfast/library/response"
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/net/ghttp"
|
||||
"github.com/gogf/gf/util/gvalid"
|
||||
)
|
||||
|
||||
type Post struct{}
|
||||
|
||||
func (c *Post) List(r *ghttp.Request) {
|
||||
var req *sys_post.SearchParams
|
||||
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
|
||||
total, page, list, err := post_service.List(req)
|
||||
|
||||
if err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
|
||||
result := g.Map{
|
||||
"total": total,
|
||||
"list": list,
|
||||
"page": page,
|
||||
}
|
||||
|
||||
response.SusJson(true, r, "成功", result)
|
||||
}
|
||||
|
||||
func (c *Post) Add(r *ghttp.Request) {
|
||||
if r.Method == "POST" {
|
||||
|
||||
var addParams *sys_post.AddParams
|
||||
|
||||
if err := r.Parse(&addParams); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
|
||||
if _, err := post_service.Add(addParams); err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
|
||||
response.SusJson(true, r, "添加成功")
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Post) Edit(r *ghttp.Request) {
|
||||
if r.Method == "POST" {
|
||||
var editParams *sys_post.EditParams
|
||||
|
||||
if err := r.Parse(&editParams); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
|
||||
if _, err := post_service.Edit(editParams); err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
|
||||
response.SusJson(true, r, "修改成功")
|
||||
}
|
||||
|
||||
id := r.GetInt64("id")
|
||||
if id == 0 {
|
||||
response.FailJson(true, r, "id必须")
|
||||
}
|
||||
|
||||
if post, err := post_service.GetOneById(id); err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
} else {
|
||||
response.SusJson(true, r, "success", post)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (c *Post) Delete(r *ghttp.Request) {
|
||||
ids := r.GetInts("ids")
|
||||
if len(ids) == 0 {
|
||||
response.FailJson(true, r, "删除失败")
|
||||
}
|
||||
err := post_service.Delete(ids)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, "删除失败")
|
||||
}
|
||||
response.SusJson(true, r, "删除信息成功")
|
||||
}
|
||||
@@ -5,10 +5,31 @@ import (
|
||||
"gfast/library/response"
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/net/ghttp"
|
||||
"github.com/gogf/gf/text/gstr"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
type Upload struct{}
|
||||
|
||||
//CkEditor编辑器上传附件
|
||||
func (c *Upload) CkEditorUp(r *ghttp.Request) {
|
||||
upFile := r.GetUploadFile("upload")
|
||||
fType := gstr.ToLower(r.GetString("type"))
|
||||
var info *upload_service.FileInfo
|
||||
var err error
|
||||
if fType == "images" {
|
||||
info, err = upload_service.UpImg(upFile)
|
||||
} else if fType == "files" {
|
||||
info, err = upload_service.UpFile(upFile)
|
||||
}
|
||||
if err != nil {
|
||||
r.Response.WriteJson(g.Map{"error": g.Map{"message": "上传失败," + err.Error(), "number": 105}})
|
||||
} else {
|
||||
parseInfo, _ := url.Parse(r.GetUrl())
|
||||
r.Response.WriteJson(g.Map{"fileName": info.FileName, "uploaded": 1, "url": parseInfo.Scheme + "://" + parseInfo.Host + "/" + info.FileUrl})
|
||||
}
|
||||
}
|
||||
|
||||
//单图片上传
|
||||
func (c *Upload) UpImg(r *ghttp.Request) {
|
||||
upFile := r.GetUploadFile("file")
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"gfast/app/model/admin/user"
|
||||
"gfast/app/service/admin/upload_service"
|
||||
"gfast/app/service/admin/user_service"
|
||||
"gfast/library/response"
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/net/ghttp"
|
||||
"github.com/gogf/gf/util/gvalid"
|
||||
)
|
||||
|
||||
type User struct{}
|
||||
|
||||
//头像上传上传
|
||||
func (c *User) Avatar(r *ghttp.Request) {
|
||||
upFile := r.GetUploadFile("avatarfile")
|
||||
info, err := upload_service.UpImg(upFile)
|
||||
if err != nil {
|
||||
response.FailJson(true, r, "上传失败,"+err.Error())
|
||||
}
|
||||
res := g.Map{
|
||||
"fileInfo": info,
|
||||
}
|
||||
id := user_service.GetLoginID(r)
|
||||
if _, err := user.Model.Where("id", id).Data(g.Map{
|
||||
"avatar": info.FileUrl,
|
||||
}).Update(); err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "上传成功", res)
|
||||
}
|
||||
|
||||
/**
|
||||
获取当前登录用户详情
|
||||
*/
|
||||
func (c *User) Profile(r *ghttp.Request) {
|
||||
//获取用户信息
|
||||
userInfo, err := user_service.GetCurrentUserInfo(r)
|
||||
|
||||
if err != nil {
|
||||
g.Log().Println(err.Error())
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
|
||||
delete(userInfo, "user_password")
|
||||
response.SusJson(true, r, "ok", userInfo)
|
||||
}
|
||||
|
||||
/**
|
||||
修改用户信息
|
||||
*/
|
||||
func (c *User) Edit(r *ghttp.Request) {
|
||||
|
||||
if r.Method == "POST" {
|
||||
|
||||
var req *user_service.EditParams
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
|
||||
if _, err := user_service.Edit(req); err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
}
|
||||
response.SusJson(true, r, "修改成功")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
修改密码
|
||||
*/
|
||||
func (c *User) UpdatePwd(r *ghttp.Request) {
|
||||
if r.Method == "POST" {
|
||||
var req *user_service.UpdatePwdReq
|
||||
if err := r.Parse(&req); err != nil {
|
||||
response.FailJson(true, r, err.(*gvalid.Error).FirstString())
|
||||
}
|
||||
if err := user_service.UpdatePwd(r, req); err != nil {
|
||||
response.FailJson(true, r, err.Error())
|
||||
} else {
|
||||
response.SusJson(true, r, "修改成功")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user