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) (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 } 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 } // 类型服务模块 /*********************************************************************************/ 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() }