KPI绩效考核系统
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.

213 lines
6.4 KiB

package jurisdictionpc
import (
"key_performance_indicators/models/modelssystempermission"
"key_performance_indicators/overall"
"key_performance_indicators/overall/publicmethod"
"time"
"github.com/gin-gonic/gin"
)
//应用系统
// 添加应用系统
func (a *ApiMethod) AddSystem(c *gin.Context) {
var receivedValue addsystemapp
err := c.ShouldBindJSON(&receivedValue)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if receivedValue.Name == "" {
publicmethod.Result(1, receivedValue, c, "请输入系统名称!")
return
}
if receivedValue.Coder == "" {
publicmethod.Result(1, receivedValue, c, "请输入系统识别符!")
return
}
if receivedValue.Sort == 0 {
receivedValue.Sort = 50
}
var systemCont modelssystempermission.Appsystem
err = overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.Appsystem{}).Where("`title` = ? OR `coder` = ?", receivedValue.Name, receivedValue.Coder).First(&systemCont).Error
if err == nil {
publicmethod.Result(1, err, c, "该系统已经存在!请不要重复添加!")
return
}
systemCont.Id = publicmethod.GetUUid(2)
systemCont.Title = receivedValue.Name
systemCont.Coder = receivedValue.Coder
systemCont.Sort = receivedValue.Sort
systemCont.State = 1
systemCont.Time = time.Now().Unix()
systemCont.ApiUrl = receivedValue.ApiUrl
err = overall.CONSTANT_DB_System_Permission.Create(&systemCont).Error
if err != nil {
publicmethod.Result(104, err, c)
return
}
publicmethod.Result(0, err, c)
}
// 系统列表
func (a *ApiMethod) SystemList(c *gin.Context) {
var receivedValue systemList
c.ShouldBindJSON(&receivedValue)
if receivedValue.Page == 0 {
receivedValue.Page = 1
}
if receivedValue.PageSize == 0 {
receivedValue.PageSize = 20
}
var systemAry []modelssystempermission.Appsystem
gormDb := overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.Appsystem{})
if receivedValue.Name != "" {
gormDb = gormDb.Where("`title` LIKE ?", "%"+receivedValue.Name+"%")
}
if receivedValue.Coder != "" {
gormDb = gormDb.Where("`coder` LIKE ?", "%"+receivedValue.Coder+"%")
}
if receivedValue.State != 0 {
gormDb = gormDb.Where("`state` = ?", receivedValue.State)
} else {
gormDb = gormDb.Where("`state` BETWEEN ? AND ?", 1, 2)
}
gormDb = publicmethod.PageTurningSettings(gormDb, receivedValue.Page, receivedValue.PageSize)
err := gormDb.Order("`sort` ASC").Order("`id` desc").Find(&systemAry).Error
var total int64
totalErr := gormDb.Count(&total).Error
if totalErr != nil {
total = 0
}
if err != nil || len(systemAry) < 1 {
publicmethod.Result(107, err, c)
return
}
publicmethod.ResultList(0, receivedValue.Page, receivedValue.PageSize, total, int64(len(systemAry)), systemAry, c)
}
// 获取单一系统详情
func (a *ApiMethod) GetSystemCont(c *gin.Context) {
var receivedValue publicmethod.PublicId
err := c.ShouldBindJSON(&receivedValue)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if receivedValue.Id == "" {
publicmethod.Result(1, err, c, "未知系统参数!")
return
}
var systemCont modelssystempermission.Appsystem
err = systemCont.GetCont(map[string]interface{}{"`id`": receivedValue.Id})
if err != nil {
publicmethod.Result(107, err, c)
return
}
publicmethod.Result(0, err, c)
}
// 编辑应用系统信息
func (a *ApiMethod) EditSystem(c *gin.Context) {
var receivedValue editSystemCont
err := c.ShouldBindJSON(&receivedValue)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if receivedValue.Id == "" {
publicmethod.Result(1, err, c, "未知系统参数!")
return
}
where := publicmethod.MapOut[string]()
where["`id`"] = receivedValue.Id
var oldSystemCont modelssystempermission.Appsystem
err = oldSystemCont.GetCont(where)
if err != nil {
publicmethod.Result(107, err, c)
return
}
saveData := publicmethod.MapOut[string]()
if receivedValue.Name != "" && receivedValue.Name != oldSystemCont.Title {
var systemCont modelssystempermission.Appsystem
err = overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.Appsystem{}).Where("`title` = ? ", receivedValue.Name).First(&systemCont).Error
if err == nil {
publicmethod.Result(1, err, c, "该系统已经存在!请不要重复添加!")
return
}
saveData["`title`"] = receivedValue.Name
}
if receivedValue.Coder == "" && receivedValue.Coder != oldSystemCont.Coder {
var systemCont modelssystempermission.Appsystem
err = overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.Appsystem{}).Where("`coder` = ?", receivedValue.Coder).First(&systemCont).Error
if err == nil {
publicmethod.Result(1, err, c, "该系统已经存在!请不要重复添加!")
return
}
saveData["`coder`"] = receivedValue.Coder
}
if receivedValue.Sort != 0 && receivedValue.Sort != oldSystemCont.Sort {
saveData["`sort`"] = receivedValue.Sort
}
if len(saveData) > 0 {
saveData["`time`"] = time.Now().Unix()
err = oldSystemCont.EiteCont(where, saveData)
}
if receivedValue.ApiUrl != "" && receivedValue.ApiUrl != oldSystemCont.ApiUrl {
saveData["`api_url`"] = receivedValue.ApiUrl
}
if err != nil {
publicmethod.Result(106, err, c)
return
}
publicmethod.Result(0, err, c)
}
// 更改状态或删除
func (a *ApiMethod) EditStateOfDel(c *gin.Context) {
var receivedValue publicmethod.PublicState
err := c.ShouldBindJSON(&receivedValue)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if receivedValue.IsTrue == 0 {
receivedValue.IsTrue = 2
}
if receivedValue.State == 0 {
receivedValue.State = 1
}
if receivedValue.Id == "" {
publicmethod.Result(1, err, c, "未知系统参数!")
return
}
where := map[string]interface{}{"`id`": receivedValue.Id}
var oldSystemCont modelssystempermission.Appsystem
err = oldSystemCont.GetCont(where)
if err != nil {
publicmethod.Result(107, err, c)
return
}
if receivedValue.State != 3 {
saveData := publicmethod.MapOut[string]()
saveData["`state`"] = receivedValue.State
saveData["`time`"] = time.Now().Unix()
err = oldSystemCont.EiteCont(where, saveData)
} else {
if receivedValue.IsTrue != 1 {
saveData := publicmethod.MapOut[string]()
saveData["`state`"] = receivedValue.State
saveData["`time`"] = time.Now().Unix()
err = oldSystemCont.EiteCont(where, saveData)
} else {
err = overall.CONSTANT_DB_System_Permission.Where(where).Delete(&oldSystemCont).Error
}
}
if err != nil {
publicmethod.Result(106, err, c)
return
}
publicmethod.Result(0, err, c)
}