Files
easygoadmin/app/service/ad_sort.go
yaoyilin 1b36bd8fbe feat: 初始化项目
初始化项目
2022-10-31 22:29:16 +08:00

168 lines
3.8 KiB
Go

/**
* 广告位-服务类
* @author
* @since 2021/11/15
* @File : ad_sort
*/
package service
import (
"easygoadmin/app/dto"
"easygoadmin/app/model"
"easygoadmin/app/vo"
"easygoadmin/utils"
"easygoadmin/utils/common"
"easygoadmin/utils/gconv"
"errors"
"strconv"
"strings"
"time"
)
var AdSort = new(adSortService)
type adSortService struct{}
func (s *adSortService) GetList(req *dto.AdSortPageReq) ([]vo.AdSortInfoVo, int64, error) {
// 创建查询实例
query := utils.XormDb.Where("mark=1")
// 查询条件
if req != nil {
// 广告位名称
if req.Description != "" {
query = query.Where("description like ?", "%"+req.Description+"%")
}
}
// 排序
query = query.OrderBy("sort asc")
// 分页
offset := (req.Page - 1) * req.Limit
query = query.Limit(req.Limit, offset)
// 对象转换
var list []model.AdSort
count, err := query.FindAndCount(&list)
if err != nil {
return nil, 0, err
}
// 数据处理
var result = make([]vo.AdSortInfoVo, 0)
for _, v := range list {
platformName, ok := common.ADSORT_PLATFORM_LIST[v.Platform]
item := vo.AdSortInfoVo{}
item.AdSort = v
if ok {
item.PlatformName = platformName
}
// 站点名称
if v.ItemId > 0 {
info := &model.Item{Id: v.ItemId}
has, err2 := info.Get()
if err2 == nil && has {
item.ItemName = info.Name
}
}
// 栏目名称
if v.CateId > 0 {
cateName := ItemCate.GetCateName(v.CateId, ">>")
item.CateName = cateName
}
// 加入数组
result = append(result, item)
}
return result, count, nil
}
func (s *adSortService) Add(req *dto.AdSortAddReq, userId int) (int64, error) {
if utils.AppDebug() {
return 0, errors.New("演示环境,暂无权限操作")
}
// 实例化对象
var entity model.AdSort
entity.Description = req.Description
entity.ItemId = gconv.Int(req.ItemId)
entity.CateId = gconv.Int(req.CateId)
entity.LocId = gconv.Int(req.LocId)
entity.Platform = gconv.Int(req.Platform)
entity.Sort = gconv.Int(req.Sort)
entity.CreateUser = userId
entity.CreateTime = time.Now().Unix()
entity.Mark = 1
// 插入数据
return entity.Insert()
}
func (s *adSortService) Update(req *dto.AdSortUpdateReq, userId int) (int64, error) {
if utils.AppDebug() {
return 0, errors.New("演示环境,暂无权限操作")
}
// 查询记录
entity := &model.AdSort{Id: gconv.Int(req.Id)}
has, err := entity.Get()
if err != nil || !has {
return 0, err
}
// 设置对象
entity.Description = req.Description
entity.ItemId = gconv.Int(req.ItemId)
entity.CateId = gconv.Int(req.CateId)
entity.LocId = gconv.Int(req.LocId)
entity.Platform = gconv.Int(req.Platform)
entity.Sort = gconv.Int(req.Sort)
entity.UpdateUser = userId
entity.UpdateTime = time.Now().Unix()
// 更新记录
return entity.Update()
}
func (s *adSortService) Delete(ids string) (int64, error) {
if utils.AppDebug() {
return 0, errors.New("演示环境,暂无权限操作")
}
// 记录ID
idsArr := strings.Split(ids, ",")
if len(idsArr) == 1 {
// 单个删除
entity := &model.AdSort{Id: gconv.Int(ids)}
rows, err := entity.Delete()
if err != nil || rows == 0 {
return 0, errors.New("删除失败")
}
return rows, nil
} else {
// 批量删除
count := 0
for _, v := range idsArr {
id, _ := strconv.Atoi(v)
entity := &model.AdSort{Id: id}
rows, err := entity.Delete()
if rows == 0 || err != nil {
continue
}
count++
}
return int64(count), nil
}
}
func (s *adSortService) GetAdSortList() []vo.AdSortInfoVo {
// 查询广告位列表
var list []model.AdSort
utils.XormDb.Where("mark=1").OrderBy("sort asc").Find(&list)
// 数据处理
result := make([]vo.AdSortInfoVo, 0)
for _, v := range list {
item := vo.AdSortInfoVo{}
item.AdSort = v
item.Description = v.Description + " >> " + gconv.String(v.LocId)
result = append(result, item)
}
return result
}