ferry/apis/process/tpl.go

187 lines
3.7 KiB
Go
Raw Normal View History

2020-07-15 01:40:56 +08:00
package process
2020-07-15 17:58:15 +08:00
import (
"errors"
"ferry/global/orm"
"ferry/models/process"
"ferry/pkg/pagination"
"ferry/tools"
"ferry/tools/app"
"github.com/gin-gonic/gin"
)
/*
@Author : lanyulei
*/
// 模板列表
func TemplateList(c *gin.Context) {
var (
err error
2020-07-16 01:22:01 +08:00
templateList []*struct {
process.TplInfo
CreateUser string `json:"create_user"`
CreateName string `json:"create_name"`
}
2020-07-15 17:58:15 +08:00
)
SearchParams := map[string]map[string]interface{}{
"like": pagination.RequestParams(c),
}
db := orm.Eloquent.Model(&process.TplInfo{}).Joins("left join sys_user on sys_user.user_id = p_tpl_info.creator").
Select("p_tpl_info.id, p_tpl_info.create_time, p_tpl_info.update_time, p_tpl_info.`name`, p_tpl_info.`creator`, sys_user.username as create_user, sys_user.nick_name as create_name")
result, err := pagination.Paging(&pagination.Param{
C: c,
DB: db,
}, &templateList, SearchParams, "p_tpl_info")
if err != nil {
2020-07-16 01:22:01 +08:00
app.Error(c, -1, err, "")
return
2020-07-15 17:58:15 +08:00
}
app.OK(c, result, "获取模版列表成功")
}
// 创建模版
func CreateTemplate(c *gin.Context) {
var (
err error
templateValue process.TplInfo
templateCount int
)
err = c.ShouldBind(&templateValue)
if err != nil {
2020-07-16 01:22:01 +08:00
app.Error(c, -1, err, "")
return
2020-07-15 17:58:15 +08:00
}
// 确认模版名称是否存在
err = orm.Eloquent.Model(&templateValue).
Where("name = ?", templateValue.Name).
Count(&templateCount).Error
if err != nil {
2020-07-16 01:22:01 +08:00
app.Error(c, -1, err, "")
return
2020-07-15 17:58:15 +08:00
}
if templateCount > 0 {
2020-07-16 01:22:01 +08:00
app.Error(c, -1, errors.New("模版名称已存在"), "")
return
2020-07-15 17:58:15 +08:00
}
templateValue.Creator = tools.GetUserId(c) // 当前登陆用户ID
err = orm.Eloquent.Create(&templateValue).Error
if err != nil {
2020-07-16 01:22:01 +08:00
app.Error(c, -1, err, "")
return
2020-07-15 17:58:15 +08:00
}
app.OK(c, "", "创建模版成功")
}
// 模版详情
func TemplateDetails(c *gin.Context) {
var (
err error
templateDetailsValue process.TplInfo
)
templateId := c.DefaultQuery("template_id", "")
if templateId == "" {
2020-07-16 01:22:01 +08:00
app.Error(c, -1, err, "")
return
2020-07-15 17:58:15 +08:00
}
err = orm.Eloquent.Model(&templateDetailsValue).
Where("id = ?", templateId).
Find(&templateDetailsValue).Error
if err != nil {
2020-07-16 01:22:01 +08:00
app.Error(c, -1, err, "")
return
2020-07-15 17:58:15 +08:00
}
app.OK(c, templateDetailsValue, "")
}
// 更新模版
func UpdateTemplate(c *gin.Context) {
var (
err error
templateValue process.TplInfo
)
err = c.ShouldBind(&templateValue)
if err != nil {
2020-07-16 01:22:01 +08:00
app.Error(c, -1, err, "")
return
2020-07-15 17:58:15 +08:00
}
err = orm.Eloquent.Model(&templateValue).
Where("id = ?", templateValue.Id).
Updates(map[string]interface{}{
"name": templateValue.Name,
"remarks": templateValue.Remarks,
"form_structure": templateValue.FormStructure,
}).Error
if err != nil {
2020-07-16 01:22:01 +08:00
app.Error(c, -1, err, "")
return
2020-07-15 17:58:15 +08:00
}
app.OK(c, templateValue, "")
}
// 删除模版
func DeleteTemplate(c *gin.Context) {
var (
err error
)
templateId := c.DefaultQuery("templateId", "")
if templateId == "" {
2020-07-16 01:22:01 +08:00
app.Error(c, -1, errors.New("参数不正确请确认templateId是否传递"), "")
return
2020-07-15 17:58:15 +08:00
}
err = orm.Eloquent.Delete(process.TplInfo{}, "id = ?", templateId).Error
if err != nil {
2020-07-16 01:22:01 +08:00
app.Error(c, -1, err, "")
return
2020-07-15 17:58:15 +08:00
}
app.OK(c, "", "删除模版成功")
}
// 克隆模版
func CloneTemplate(c *gin.Context) {
var (
err error
id string
info process.TplInfo
)
id = c.Param("id")
err = orm.Eloquent.Find(&info, id).Error
if err != nil {
app.Error(c, -1, err, "查询模版数据失败")
return
}
err = orm.Eloquent.Create(&process.TplInfo{
Name: info.Name + "-copy",
FormStructure: info.FormStructure,
Creator: tools.GetUserId(c),
Remarks: info.Remarks,
}).Error
if err != nil {
app.Error(c, -1, err, "克隆模版失败")
return
}
app.OK(c, nil, "")
}