mirror of
https://gitee.com/xiangheng/x_admin.git
synced 2025-10-06 00:27:00 +08:00
大量更改,主要是int,float类型支持null、字符串
This commit is contained in:
214
server/admin/user_protocol/user_protocol_service.go
Normal file
214
server/admin/user_protocol/user_protocol_service.go
Normal file
@@ -0,0 +1,214 @@
|
||||
package user_protocol
|
||||
|
||||
import (
|
||||
"x_admin/core"
|
||||
"x_admin/core/request"
|
||||
"x_admin/core/response"
|
||||
"x_admin/model"
|
||||
"gorm.io/gorm"
|
||||
"x_admin/util"
|
||||
"x_admin/util/excel2"
|
||||
)
|
||||
|
||||
var UserProtocolService=NewUserProtocolService()
|
||||
var cacheUtil = util.CacheUtil{
|
||||
Name: UserProtocolService.Name,
|
||||
}
|
||||
|
||||
// NewUserProtocolService 初始化
|
||||
func NewUserProtocolService() *userProtocolService {
|
||||
return &userProtocolService{
|
||||
db: core.GetDB(),
|
||||
Name: "userProtocol",
|
||||
}
|
||||
}
|
||||
|
||||
//userProtocolService 用户协议服务实现类
|
||||
type userProtocolService struct {
|
||||
db *gorm.DB
|
||||
Name string
|
||||
}
|
||||
|
||||
|
||||
|
||||
// List 用户协议列表
|
||||
func (service userProtocolService) GetModel(listReq UserProtocolListReq) *gorm.DB {
|
||||
// 查询
|
||||
dbModel := service.db.Model(&model.UserProtocol{})
|
||||
if listReq.Title!= nil {
|
||||
dbModel = dbModel.Where("title like ?", "%"+*listReq.Title+"%")
|
||||
}
|
||||
if listReq.Content!= nil {
|
||||
dbModel = dbModel.Where("content = ?", *listReq.Content)
|
||||
}
|
||||
if listReq.Sort!= nil {
|
||||
dbModel = dbModel.Where("sort = ?", *listReq.Sort)
|
||||
}
|
||||
if listReq.CreateTimeStart!= nil {
|
||||
dbModel = dbModel.Where("create_time >= ?", *listReq.CreateTimeStart)
|
||||
}
|
||||
if listReq.CreateTimeEnd!= nil {
|
||||
dbModel = dbModel.Where("create_time <= ?", *listReq.CreateTimeEnd)
|
||||
}
|
||||
if listReq.UpdateTimeStart!= nil {
|
||||
dbModel = dbModel.Where("update_time >= ?", *listReq.UpdateTimeStart)
|
||||
}
|
||||
if listReq.UpdateTimeEnd!= nil {
|
||||
dbModel = dbModel.Where("update_time <= ?", *listReq.UpdateTimeEnd)
|
||||
}
|
||||
dbModel = dbModel.Where("is_delete = ?", 0)
|
||||
return dbModel
|
||||
}
|
||||
// List 用户协议列表
|
||||
func (service userProtocolService) List(page request.PageReq, listReq UserProtocolListReq) (res response.PageResp, e error) {
|
||||
// 分页信息
|
||||
limit := page.PageSize
|
||||
offset := page.PageSize * (page.PageNo - 1)
|
||||
dbModel := service.GetModel(listReq)
|
||||
// 总数
|
||||
var count int64
|
||||
err := dbModel.Count(&count).Error
|
||||
if e = response.CheckErr(err, "失败"); e != nil {
|
||||
return
|
||||
}
|
||||
// 数据
|
||||
var modelList []model.UserProtocol
|
||||
err = dbModel.Limit(limit).Offset(offset).Order("id desc").Find(&modelList).Error
|
||||
if e = response.CheckErr(err, "查询失败"); e != nil {
|
||||
return
|
||||
}
|
||||
result := []UserProtocolResp{}
|
||||
util.ConvertUtil.Copy(&result, modelList)
|
||||
return response.PageResp{
|
||||
PageNo: page.PageNo,
|
||||
PageSize: page.PageSize,
|
||||
Count: count,
|
||||
Lists: result,
|
||||
}, nil
|
||||
}
|
||||
// ListAll 用户协议列表
|
||||
func (service userProtocolService) ListAll(listReq UserProtocolListReq) (res []UserProtocolResp, e error) {
|
||||
dbModel := service.GetModel(listReq)
|
||||
|
||||
var modelList []model.UserProtocol
|
||||
|
||||
err := dbModel.Find(&modelList).Error
|
||||
if e = response.CheckErr(err, "查询全部失败"); e != nil {
|
||||
return
|
||||
}
|
||||
util.ConvertUtil.Copy(&res, modelList)
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// Detail 用户协议详情
|
||||
func (service userProtocolService) Detail(Id int) (res UserProtocolResp, e error) {
|
||||
var obj = model.UserProtocol{}
|
||||
err := cacheUtil.GetCache(Id, &obj)
|
||||
if err != nil {
|
||||
err := service.db.Where("id = ? AND is_delete = ?", Id, 0).Limit(1).First(&obj).Error
|
||||
if e = response.CheckErrDBNotRecord(err, "数据不存在!"); e != nil {
|
||||
return
|
||||
}
|
||||
if e = response.CheckErr(err, "获取详情失败"); e != nil {
|
||||
return
|
||||
}
|
||||
cacheUtil.SetCache(obj.Id, obj)
|
||||
}
|
||||
|
||||
util.ConvertUtil.Copy(&res, obj)
|
||||
return
|
||||
}
|
||||
|
||||
// Add 用户协议新增
|
||||
func (service userProtocolService) Add(addReq UserProtocolAddReq) (createId int,e error) {
|
||||
var obj model.UserProtocol
|
||||
util.ConvertUtil.StructToStruct(addReq,&obj)
|
||||
err := service.db.Create(&obj).Error
|
||||
e = response.CheckMysqlErr(err)
|
||||
if e != nil {
|
||||
return 0,e
|
||||
}
|
||||
cacheUtil.SetCache(obj.Id, obj)
|
||||
createId = obj.Id
|
||||
return
|
||||
}
|
||||
|
||||
// Edit 用户协议编辑
|
||||
func (service userProtocolService) Edit(editReq UserProtocolEditReq) (e error) {
|
||||
var obj model.UserProtocol
|
||||
err := service.db.Where("id = ? AND is_delete = ?", editReq.Id, 0).Limit(1).First(&obj).Error
|
||||
// 校验
|
||||
if e = response.CheckErrDBNotRecord(err, "数据不存在!"); e != nil {
|
||||
return
|
||||
}
|
||||
if e = response.CheckErr(err, "查询失败"); e != nil {
|
||||
return
|
||||
}
|
||||
util.ConvertUtil.Copy(&obj, editReq)
|
||||
|
||||
err = service.db.Model(&obj).Select("*").Updates(obj).Error
|
||||
if e = response.CheckErr(err, "编辑失败"); e != nil {
|
||||
return
|
||||
}
|
||||
cacheUtil.RemoveCache(obj.Id)
|
||||
service.Detail(obj.Id)
|
||||
return
|
||||
}
|
||||
|
||||
// Del 用户协议删除
|
||||
func (service userProtocolService) Del(Id int) (e error) {
|
||||
var obj model.UserProtocol
|
||||
err := service.db.Where("id = ? AND is_delete = ?", Id, 0).Limit(1).First(&obj).Error
|
||||
// 校验
|
||||
if e = response.CheckErrDBNotRecord(err, "数据不存在!"); e != nil {
|
||||
return
|
||||
}
|
||||
if e = response.CheckErr(err, "查询数据失败"); e != nil {
|
||||
return
|
||||
}
|
||||
// 删除
|
||||
obj.IsDelete = 1
|
||||
obj.DeleteTime = util.NullTimeUtil.Now()
|
||||
err = service.db.Save(&obj).Error
|
||||
e = response.CheckErr(err, "删除失败")
|
||||
cacheUtil.RemoveCache(obj.Id)
|
||||
return
|
||||
}
|
||||
|
||||
// 获取Excel的列
|
||||
func (service userProtocolService) GetExcelCol() []excel2.Col {
|
||||
var cols = []excel2.Col{
|
||||
{Name: "标题", Key: "Title", Width: 15},
|
||||
{Name: "协议内容", Key: "Content", Width: 15},
|
||||
{Name: "排序", Key: "Sort", Width: 15},
|
||||
{Name: "创建时间", Key: "CreateTime", Width: 15, Decode: util.NullTimeUtil.DecodeTime },
|
||||
{Name: "更新时间", Key: "UpdateTime", Width: 15, Decode: util.NullTimeUtil.DecodeTime },
|
||||
}
|
||||
// 还可以考虑字典,请求下来加上 Replace 实现替换导出
|
||||
return cols
|
||||
}
|
||||
|
||||
// ExportFile 用户协议导出
|
||||
func (service userProtocolService) ExportFile(listReq UserProtocolListReq) (res []UserProtocolResp, e error) {
|
||||
// 查询
|
||||
dbModel := service.GetModel(listReq)
|
||||
|
||||
// 数据
|
||||
var modelList []model.UserProtocol
|
||||
err := dbModel.Order("id asc").Find(&modelList).Error
|
||||
if e = response.CheckErr(err, "查询失败"); e != nil {
|
||||
return
|
||||
}
|
||||
result := []UserProtocolResp{}
|
||||
util.ConvertUtil.Copy(&result, modelList)
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// 导入
|
||||
func (service userProtocolService) ImportFile(importReq []UserProtocolResp) (e error) {
|
||||
var importData []model.UserProtocol
|
||||
util.ConvertUtil.Copy(&importData, importReq)
|
||||
err := service.db.Create(&importData).Error
|
||||
e = response.CheckErr(err, "添加失败")
|
||||
return e
|
||||
}
|
Reference in New Issue
Block a user