绩效考核
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

368 lines
12 KiB

package systemuser
import (
"strconv"
"time"
"gin_server_admin/commonus"
"gin_server_admin/global"
"gin_server_admin/model/common/response"
"gin_server_admin/model/systemuser"
"github.com/gin-gonic/gin"
)
// 菜单相关
func (s *SysTemMenuApi) SystemMenuList(c *gin.Context) {
// response.Result(101, global.Gva_Authority_Authentication, "数据获取失败!", c)
var systemMenuList []systemuser.SystemMenu
menuOperErr := global.GVA_DB_Master.Where("`m_steat` IN ?", []int{1, 2}).Order("m_sort asc").Order("m_id desc").Find(&systemMenuList).Error
if menuOperErr != nil {
response.Result(101, menuOperErr, "数据获取失败!", c)
return
}
systemListMenu := GetMenuThree(1, 0, systemMenuList)
sendData := commonus.MapOut()
sendData["list"] = systemListMenu
response.Result(0, sendData, "数据获取成功!", c)
}
// 递归无限树
func GetMenuThree(jurisd int, parentId int64, threeData []systemuser.SystemMenu) []SystemMenuThree {
treeList := []SystemMenuThree{}
for _, v := range threeData {
if v.ParentId == parentId {
child := GetMenuThree(jurisd, v.Id, threeData)
node := SystemMenuThree{
Id: v.Id,
Title: v.Title,
State: v.State,
ParentId: v.ParentId,
ApiUrl: v.ApiUrl,
Time: v.Time,
EiteTime: v.EiteTime,
UserId: v.UserId,
Sort: v.Sort,
}
isTrue, menuOper := MenuOperation(jurisd, v.Id)
if isTrue == true {
node.MenuOperation = menuOper
}
node.Child = child
treeList = append(treeList, node)
}
}
return treeList
}
// 获取菜单操作项目
func MenuOperation(jurisd int, menuId int64) (isTrue bool, operation []systemuser.MenuOperation) {
isTrue = false
if jurisd != 1 {
operErr := global.GVA_DB_Master.Where("`menu_id` = ? AND oper_id IN ?", menuId, global.Gva_Authority_Authentication).Order("oper_id desc").Find(&operation).Error
if operErr == nil {
isTrue = true
}
} else {
operErr := global.GVA_DB_Master.Where("`menu_id` = ?", menuId).Order("oper_id desc").Find(&operation).Error
if operErr == nil {
isTrue = true
}
}
return
}
// 获取左侧菜单栏
func (s *SysTemMenuApi) GetMenu(c *gin.Context) {
var systemMenuList []systemuser.SystemMenu
menuOperErr := global.GVA_DB_Master.Where("`m_steat` IN ? AND m_id IN ?", []int{1, 2}, global.Gva_Authority_Authentication_Subsidiary).Order("m_id desc").Find(&systemMenuList).Error
if menuOperErr != nil {
response.Result(101, menuOperErr, "数据获取失败!", c)
return
}
systemListMenu := GetMenuThree(2, 0, systemMenuList)
sendData := commonus.MapOut()
sendData["list"] = systemListMenu
response.Result(0, sendData, "数据获取成功!", c)
}
// 菜单列表(不带操作)
func (s *SysTemMenuApi) GetMenuList(c *gin.Context) {
var systemMenuList []systemuser.SystemMenu
menuOperErr := global.GVA_DB_Master.Where("`m_steat` IN ? AND `m_parent` = 0", []int{1, 2}).Order("m_sort asc").Order("m_id desc").Find(&systemMenuList).Error
if menuOperErr != nil {
response.Result(101, menuOperErr, "数据获取失败!", c)
return
}
sendData := commonus.MapOut()
sendData["list"] = systemMenuList
// systemListMenu := GetMenuThree(1, 0, systemMenuList)
response.Result(0, sendData, "数据获取成功!", c)
}
// 添加菜单
func (s *SysTemMenuApi) AddMenu(c *gin.Context) {
// isTrue, userCont := commonus.AdminClientIdentity()
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData addMenuData
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(102, err, "参数错误!请重新提交!", c)
return
}
if requestData.Title == "" {
response.Result(103, err, "请输入栏目名称!", c)
return
}
if requestData.MenuUrl == "" {
response.Result(104, err, "请输入栏目URL!", c)
return
}
if requestData.Sort == 0 {
requestData.Sort = 50
}
// _, attriButeErr := strconv.ParseInt(userCont.AttriBute, 10, 64) //转换管理员属性部门
// if attriButeErr != nil {
// response.Result(105, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
// return
// }
// var menuCont systemuser.SystemMenu
// judgeErr := global.GVA_DB_Master.Model(&systemuser.SystemMenu{}).Select("m_id").Where("`m_title` = ?", requestData.Title).First(&menuCont).Error
// if judgeErr == nil {
// response.Result(106, isTrue, "该菜单名称已经存在!请不要重复添加!", c)
// return
// }
// judgeUrlErr := global.GVA_DB_Master.Model(&systemuser.SystemMenu{}).Select("m_id").Where("`m_url` = ?", requestData.MenuUrl).First(&menuCont).Error
// if judgeUrlErr == nil {
// response.Result(107, isTrue, "该菜单URL已经存在!请不要重复添加!", c)
// return
// }
var saveMenu systemuser.SystemMenu
saveMenu.Title = requestData.Title
saveMenu.State = 1
saveMenu.ParentId = int64(requestData.ParentId)
saveMenu.ApiUrl = requestData.MenuUrl
saveMenu.Time = time.Now().Unix()
saveMenu.EiteTime = time.Now().Unix()
userKey, userKeyErr := strconv.ParseInt(userCont.Key, 10, 64)
if userKeyErr == nil {
saveMenu.UserId = userKey
}
saveMenu.Sort = requestData.Sort
addassessInfoErr := global.GVA_DB_Master.Create(&saveMenu).Error
if addassessInfoErr != nil {
response.Result(108, saveMenu, "数据写入失败!", c)
} else {
response.Result(0, saveMenu, "数据写入成功!", c)
}
}
// 修改菜单
func (s *SysTemMenuApi) EiteMenu(c *gin.Context) {
// isTrue, _ := commonus.AdminClientIdentity()
isTrue, _ := commonus.ClientIdentity()
if isTrue != true {
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData eiteMenuData
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(102, err, "参数错误!请重新提交!", c)
return
}
if requestData.Id == 0 {
response.Result(103, err, "请选择您要修改的菜单!", c)
return
}
if requestData.Title == "" {
response.Result(104, err, "请输入栏目名称!", c)
return
}
if requestData.MenuUrl == "" {
response.Result(105, err, "请输入栏目URL!", c)
return
}
if requestData.Sort == 0 {
requestData.Sort = 50
}
var menuCont systemuser.SystemMenu
judgeOldErr := global.GVA_DB_Master.Model(&systemuser.SystemMenu{}).Select("m_id", "m_title", "m_url").Where("`m_id` = ?", requestData.Id).First(&menuCont).Error
if judgeOldErr != nil {
response.Result(106, isTrue, "该菜单不存在!请确认后再修改", c)
return
}
judgeErr := global.GVA_DB_Master.Model(&systemuser.SystemMenu{}).Select("m_id").Where("`m_title` = ? AND `m_title` <> ?", requestData.Title, menuCont.Title).First(&menuCont).Error
if judgeErr == nil {
response.Result(107, isTrue, "该菜单名称已经存在!请不要重复添加!", c)
return
}
var menuConts systemuser.SystemMenu
judgeUrlErr := global.GVA_DB_Master.Model(&systemuser.SystemMenu{}).Select("m_id").Where("`m_url` = ? AND `m_url` <> ?", requestData.MenuUrl, menuCont.ApiUrl).First(&menuConts).Error
if judgeUrlErr == nil {
response.Result(108, isTrue, "该菜单URL已经存在!请不要重复添加!", c)
return
}
saveData := commonus.MapOut()
saveData["m_title"] = requestData.Title
saveData["m_parent"] = int64(requestData.ParentId)
saveData["m_url"] = requestData.MenuUrl
saveData["m_sort"] = requestData.Sort
saveData["m_eite_time"] = time.Now().Unix()
isErr := eiteAssEssInfoCont(int64(requestData.Id), saveData)
if isErr != nil {
response.Result(109, isErr, "修改失败!", c)
return
}
response.Result(0, saveData, "修改成功!", c)
}
// 菜单编辑操作
func eiteAssEssInfoCont(saveId int64, saveData map[string]interface{}) (menuErr error) {
var menuCont systemuser.SystemMenu
menuErr = global.GVA_DB_Master.Model(&menuCont).Where("m_id = ?", saveId).Updates(saveData).Error
return
}
// 菜单删除
func (s *SysTemMenuApi) DelMenu(c *gin.Context) {
// isTrue, _ := commonus.AdminClientIdentity()
isTrue, _ := commonus.ClientIdentity()
if isTrue != true {
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData commonus.DelParameter
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(101, err, "参数错误!请重新提交!", c)
return
}
if requestData.Id == 0 && requestData.OutId == "" {
response.Result(102, err, "参数错误!请重新提交!", c)
return
}
if requestData.OutId != "" {
idInt, inIntErr := strconv.ParseInt(requestData.OutId, 10, 64)
if inIntErr == nil {
requestData.Id = idInt
}
}
if requestData.State == 0 {
requestData.State = 1
}
saveData := commonus.MapOut()
saveData["m_steat"] = requestData.State
saveData["m_eite_time"] = time.Now().Unix()
if requestData.IsDel != 1 {
isErr := eiteAssEssInfoCont(requestData.Id, saveData)
if isErr != nil {
response.Result(109, isErr, "修改失败!", c)
return
}
response.Result(0, saveData, "修改成功!", c)
} else {
if requestData.State == 3 {
var menuConts systemuser.SystemMenu
archiveInfoErr := global.GVA_DB_Master.Where("m_id = ? OR `m_parent` = ?", requestData.Id, requestData.Id).Delete(&menuConts).Error
if archiveInfoErr != nil {
response.Result(104, requestData, "删除失败!", c)
return
}
response.Result(0, requestData, "删除成功!", c)
} else {
isErr := eiteAssEssInfoCont(requestData.Id, saveData)
if isErr != nil {
response.Result(109, isErr, "修改失败!", c)
return
}
response.Result(0, saveData, "修改成功!", c)
}
}
}
// 添加菜单操作
func (s *SysTemMenuApi) AddMenuOperation(c *gin.Context) {
// isTrue, _ := commonus.AdminClientIdentity()
isTrue, _ := commonus.ClientIdentity()
if isTrue != true {
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData addMenuOper
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(101, err, "参数错误!请重新提交!", c)
return
}
if requestData.MenuId == "" {
response.Result(102, err, "参数错误!请重新提交!", c)
return
}
var menuIdInt int64
idInt, inIntErr := strconv.ParseInt(requestData.MenuId, 10, 64)
if inIntErr == nil {
menuIdInt = idInt
} else {
response.Result(102, err, "参数错误!请重新提交!", c)
return
}
if requestData.Title == "" {
response.Result(102, err, "参数错误!请重新提交!", c)
return
}
var menuCont systemuser.MenuOperation
judgeErr := global.GVA_DB_Master.Model(&systemuser.MenuOperation{}).Select("m_id").Where("`menu_id` = ?", menuIdInt).Where("`oper_title` = ?", requestData.Title).First(&menuCont).Error
if judgeErr == nil {
response.Result(106, isTrue, "该菜单的此操作名称已经存在!请不要重复添加!", c)
return
}
var saveMenuOper systemuser.MenuOperation
saveMenuOper.OperTitle = requestData.Title
saveMenuOper.MenuId = menuIdInt
addassessInfoErr := global.GVA_DB_Master.Create(&saveMenuOper).Error
if addassessInfoErr != nil {
response.Result(108, saveMenuOper, "数据写入失败!", c)
} else {
response.Result(0, saveMenuOper, "数据写入成功!", c)
}
}
// 删除菜单操作
func (s *SysTemMenuApi) DelMenuOperation(c *gin.Context) {
// isTrue, _ := commonus.AdminClientIdentity()
isTrue, _ := commonus.ClientIdentity()
if isTrue != true {
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData commonus.DelParameter
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(101, err, "参数错误!请重新提交!", c)
return
}
if requestData.Id == 0 && requestData.OutId == "" {
response.Result(102, err, "参数错误!请重新提交!", c)
return
}
if requestData.OutId != "" {
idInt, inIntErr := strconv.ParseInt(requestData.OutId, 10, 64)
if inIntErr == nil {
requestData.Id = idInt
}
}
var menuContOper systemuser.MenuOperation
archiveInfoErr := global.GVA_DB_Master.Where("oper_id = ?", requestData.Id).Delete(&menuContOper).Error
if archiveInfoErr != nil {
response.Result(104, requestData, "删除失败!", c)
return
}
response.Result(0, requestData, "删除成功!", c)
}