Files
gfast/app/model/admin/sys_config/sys_config.go
T
2020-03-16 23:51:16 +08:00

189 lines
4.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package sys_config
import (
"gfast/library/service"
"gfast/library/utils"
"github.com/gogf/gf/errors/gerror"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/os/gtime"
"github.com/gogf/gf/util/gconv"
)
// Fill with you ideas below.
//新增页面请求参数
type AddReq struct {
ConfigName string `p:"configName" v:"required#参数名称不能为空"`
ConfigKey string `p:"configKey" v:"required#参数键名不能为空"`
ConfigValue string `p:"configValue" v:"required#参数键值不能为空"`
ConfigType int `p:"configType" v:"required|in:0,1#系统内置不能为空|系统内置类型只能为0或1"`
Remark string `p:"remark"`
}
//修改页面请求参数
type EditReq struct {
ConfigId int64 `p:"configId" v:"required|min:1#主键ID不能为空|主键ID参数错误"`
AddReq
}
//分页请求参数
type SelectPageReq struct {
ConfigName string `p:"configName"` //参数名称
ConfigKey string `p:"configKey"` //参数键名
ConfigType string `p:"configType"` //状态
BeginTime string `p:"beginTime"` //开始时间
EndTime string `p:"endTime"` //结束时间
PageNum int `p:"page"` //当前页码
PageSize int `p:"pageSize"` //每页数
}
//保存参数
func AddSave(req *AddReq, userId int) (id int64, err error) {
var entity Entity
entity.ConfigName = req.ConfigName
entity.ConfigKey = req.ConfigKey
entity.ConfigType = req.ConfigType
entity.ConfigValue = req.ConfigValue
entity.Remark = req.Remark
entity.CreateTime = gconv.Uint64(gtime.Timestamp())
entity.CreateBy = gconv.Uint(userId)
result, err := entity.Insert()
if err != nil {
g.Log().Error(err)
err = gerror.New("保存失败")
}
id, err = result.LastInsertId()
if err != nil {
g.Log().Error()
err = gerror.New("获取插入的主键ID失败")
}
return
}
//修改保存
func EditSave(req *EditReq, userId int) (int64, error) {
entity, err := GetParamsById(gconv.Int(req.ConfigId))
if err != nil {
return 0, err
}
entity.ConfigName = req.ConfigName
entity.ConfigKey = req.ConfigKey
entity.ConfigType = req.ConfigType
entity.ConfigValue = req.ConfigValue
entity.Remark = req.Remark
entity.UpdateTime = gconv.Uint64(gtime.Timestamp())
entity.UpdateBy = gconv.Uint(userId)
result, err := entity.Update()
if err != nil {
g.Log().Error(err)
return 0, gerror.New("修改失败")
}
rows, err := result.RowsAffected()
if err != nil {
g.Log().Error(err)
return 0, gerror.New("修改失败")
}
return rows, nil
}
//通过id查询参数数据
func GetParamsById(id int) (entity *Entity, err error) {
entity, err = Model.FindOne("config_id", id)
if err != nil {
g.Log().Error(err)
err = gerror.New("查询参数数据出错")
}
if entity == nil {
err = gerror.New("未查询到参数数据")
}
return
}
//验证参数键名是否存在
func CheckConfigKeyUniqueAll(configKey string) error {
entity, err := Model.FindOne("config_key", configKey)
if err != nil {
g.Log().Error(err)
return gerror.New("校验数据失败")
}
if entity != nil {
return gerror.New("参数键名已经存在")
}
return nil
}
//列表分页搜索查询
func SelectListByPage(req *SelectPageReq) (total, page int, list []*Entity, err error) {
model := Model
if req != nil {
if req.ConfigName != "" {
model = model.Where("config_name like ?", "%"+req.ConfigName+"%")
}
if req.ConfigType != "" {
model.Where("status = ", gconv.Int(req.ConfigType))
}
if req.ConfigKey != "" {
model.Where("config_key like ?", "%"+req.ConfigKey+"%")
}
if req.BeginTime != "" {
model = model.Where("create_time >= ? ", utils.StrToTimestamp(req.BeginTime))
}
if req.EndTime != "" {
model = model.Where("create_time<=?", utils.StrToTimestamp(req.EndTime))
}
}
total, err = model.Count()
if err != nil {
g.Log().Error(err)
err = gerror.New("获取总行数失败")
return
}
if req.PageNum == 0 {
req.PageNum = 1
}
page = req.PageNum
if req.PageSize == 0 {
req.PageSize = service.AdminPageNum
}
list, err = model.Page(page, req.PageSize).Order("config_id asc").All()
if err != nil {
g.Log().Error(err)
err = gerror.New("获取数据失败")
return
}
return
}
//检查键是否已经存在
func CheckConfigKeyUnique(configKey string, configId int64) error {
entity, err := Model.FindOne("config_key=? and config_id!=?", configKey, configId)
if err != nil {
g.Log().Error(err)
return gerror.New("校验数据失败")
}
if entity != nil {
return gerror.New("参数键名已经存在")
}
return nil
}
//删除参数
func DeleteByIds(ids []int) error {
_, err := Model.Delete("config_id in (?)", ids)
if err != nil {
g.Log().Error(err)
return gerror.New("删除失败")
}
return nil
}
//通过key获取配置信息
func GetByKey(key string) (config *Entity, err error) {
config, err = Model.FindOne("config_key", key)
if err != nil {
g.Log().Error(err)
err = gerror.New("获取配置失败")
}
return
}