接口修改

This commit is contained in:
yxh
2020-07-14 10:50:11 +08:00
parent 5237465bea
commit 954adb834c
168 changed files with 8734 additions and 3940 deletions
+242 -67
View File
@@ -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, "用户密码重置成功")
}
}
-171
View File
@@ -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)
}
-17
View File
@@ -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, "功能开发中...")
}
-122
View File
@@ -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, "删除信息成功")
}
+66 -21
View File
@@ -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)
}
+8 -2
View File
@@ -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)
}
//删除参数
+168
View File
@@ -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)
}
+189
View File
@@ -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,
})
}
+53 -15
View File
@@ -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)
}
+11 -1
View File
@@ -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())
+91
View File
@@ -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, "删除信息成功")
}
+21
View File
@@ -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")
+86
View 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, "修改成功")
}
}
}
+13
View File
@@ -0,0 +1,13 @@
package front
import (
"gfast/library/response"
"github.com/gogf/gf/net/ghttp"
)
type Index struct{}
//前台首页
func (c *Index) Index(r *ghttp.Request) {
response.SusJson(true, r, "登录成功")
}