YiTao/service/item_service.go
wzj 6acc371b4e
Some checks failed
Deploy on Tag / build-and-deploy (push) Failing after 25s
新增分页参数引擎
2024-11-13 16:30:51 +08:00

81 lines
2.2 KiB
Go

package service
import (
"strconv"
"yitao/ecode"
"yitao/model"
)
type ItemService struct{}
func (s *ItemService) CreateItem(uid uint, itemname string, desc string, types []int, img string, price int) (item *model.ItemModel, e *ecode.Ecode) {
item = new(model.ItemModel)
e = ecode.OK()
item.Itemname = itemname
item.Desc = desc
item.Types = types
item.Img = img
item.Price = price
item.State = model.ItemStateOnSale
item.Uid = uid
model.DB.Create(item)
return
}
func (s *ItemService) DeleteItem(uid uint, item_id uint) *ecode.Ecode {
item := new(model.ItemModel)
model.DB.Where("id=?", item_id).First(item)
if item.Uid != uid {
return ecode.Item(ecode.ITEM_PERMISSION_DENIED)
}
// 将商品状态设置为删除
item.State = model.ItemStateDelete
model.DB.Save(item)
return ecode.OK()
}
func (s *ItemService) GetItem(id uint) (item *model.ItemModel, e *ecode.Ecode) {
item = new(model.ItemModel)
e = ecode.OK()
model.DB.Where("id=?", id).Where("state!=?", model.ItemStateDelete).First(item)
if item.ID == 0 {
return item, ecode.Item(ecode.ITEM_NOT_FOUND)
}
return
}
func (s *ItemService) GetItems(ttype int, page int, page_size int) (items []model.ItemModel, e *ecode.Ecode) {
e = ecode.OK()
model.DB.Where("state!=?", model.ItemStateDelete).Where("types like ?", "%"+strconv.Itoa(ttype)+"%").Offset((page - 1) * page_size).Limit(page_size).Find(&items)
return
}
func (s *ItemService) Search(keyword string, page int, page_size int) (items []model.ItemModel, e *ecode.Ecode) {
e = ecode.OK()
model.DB.Where("state!=?", model.ItemStateDelete).Where("itemname like ?", "%"+keyword+"%").Offset((page - 1) * page_size).Limit(page_size).Find(&items)
return
}
// 类型服务模块
/*********************************************************************************/
func (s *ItemService) GetTypes() (types []model.TypeModel, e *ecode.Ecode) {
e = ecode.OK()
model.DB.Find(&types)
return
}
func (s *ItemService) CreateType(name string) *ecode.Ecode {
t := new(model.TypeModel)
// 判断该名称是否已存在
model.DB.Where("name=?", name).First(t)
if t.ID != 0 {
return ecode.Item(ecode.ITEM_TYPE_EXIST)
}
t.Name = name
model.DB.Create(t)
return ecode.OK()
}