2024-11-09 14:59:27 +08:00
|
|
|
package service
|
|
|
|
|
|
|
|
import (
|
2024-11-09 21:24:02 +08:00
|
|
|
"strconv"
|
2024-11-09 14:59:27 +08:00
|
|
|
"yitao/ecode"
|
|
|
|
"yitao/model"
|
|
|
|
)
|
|
|
|
|
|
|
|
type ItemService struct{}
|
|
|
|
|
2024-11-09 16:36:28 +08:00
|
|
|
func (s *ItemService) CreateItem(uid uint, itemname string, desc string, types []int, img string, price int) (item *model.ItemModel, e *ecode.Ecode) {
|
2024-11-09 14:59:27 +08:00
|
|
|
item = new(model.ItemModel)
|
|
|
|
e = ecode.OK()
|
|
|
|
item.Itemname = itemname
|
|
|
|
item.Desc = desc
|
|
|
|
item.Types = types
|
|
|
|
item.Img = img
|
|
|
|
item.Price = price
|
2024-11-09 16:36:28 +08:00
|
|
|
item.State = model.ItemStateOnSale
|
|
|
|
item.Uid = uid
|
2024-11-09 14:59:27 +08:00
|
|
|
model.DB.Create(item)
|
|
|
|
return
|
|
|
|
}
|
2024-11-09 16:36:28 +08:00
|
|
|
|
|
|
|
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()
|
|
|
|
}
|
2024-11-09 16:51:53 +08:00
|
|
|
|
|
|
|
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
|
|
|
|
}
|
2024-11-09 21:24:02 +08:00
|
|
|
|
|
|
|
func (s *ItemService) GetItems(ttype int) (items []model.ItemModel, e *ecode.Ecode) {
|
|
|
|
e = ecode.OK()
|
|
|
|
model.DB.Where("type_string like ?", "%["+strconv.Itoa(ttype)+"]%").Where("state!=?", model.ItemStateDelete).Find(&items)
|
|
|
|
return
|
|
|
|
}
|
2024-11-09 22:11:24 +08:00
|
|
|
|
2024-11-10 16:19:49 +08:00
|
|
|
func (s *ItemService) Search(keyword string) (items []model.ItemModel, e *ecode.Ecode) {
|
|
|
|
e = ecode.OK()
|
|
|
|
model.DB.Where("itemname like ?", "%"+keyword+"%").Where("state!=?", model.ItemStateDelete).Find(&items)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2024-11-09 22:33:01 +08:00
|
|
|
// 类型服务模块
|
|
|
|
/*********************************************************************************/
|
|
|
|
|
2024-11-09 22:11:24 +08:00
|
|
|
func (s *ItemService) GetTypes() (types []model.TypeModel, e *ecode.Ecode) {
|
|
|
|
e = ecode.OK()
|
|
|
|
model.DB.Find(&types)
|
|
|
|
return
|
|
|
|
}
|
2024-11-09 22:33:01 +08:00
|
|
|
|
|
|
|
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()
|
|
|
|
}
|