package goods import ( "errors" "spaceofcheng/services/models/model" "spaceofcheng/services/service" "spaceofcheng/services/utils" ) // GetGoodsType 获取商品类型 func (s *GoodsServ) GetGoodsType(caseids string, page int, pageSize int) (map[string]interface{}, error) { if pageSize == 0 { pageSize = service.PAGENUM } if page == 0 { page = 1 } types, err := s.dao.GetGoodsType(caseids, page, pageSize) if err != nil { utils.LogError("获取商品类型失败: " + err.Error()) return nil, errors.New("获取商品类型失败") } total, err := s.dao.GetGoodsTypeCount(caseids) if err != nil { utils.LogError("获取商品类型失败: " + err.Error()) return nil, errors.New("获取商品类型失败") } return map[string]interface{}{ "list": types, "pagesize": pageSize, "pagenum": total, "page": page, }, nil } // GetGoodsTypeByCase 获取商品类型 func (s *GoodsServ) GetGoodsTypeByCase(caseid string) ([]model.TdGoodsType, error) { if caseid == "" { return nil, errors.New("请选选择对应案场!") } types, err := s.dao.GetGoodsTypeByCase(caseid) if err != nil { utils.LogError("获取商品类型失败: " + err.Error()) return nil, errors.New("获取商品类型失败") } return types, nil } // GetGoodsTypeByID 根据商品类型ID获取商品类型 func (s *GoodsServ) GetGoodsTypeByID(typeid string) (*model.TdGoodsType, error) { goodsType, err := s.dao.GetGoodsTypeByID(typeid) if err != nil { utils.LogError("获取商品类型失败: " + err.Error()) return nil, errors.New("获取商品类型失败") } return goodsType, nil } // SaveGoodsType 保存商品类型 func (s *GoodsServ) SaveGoodsType(goodsType model.TdGoodsType) (*model.TdGoodsType, error) { if goodsType.TypeName == "" { return nil, errors.New("类型名称不能为空!") } if goodsType.CaseId == "" { return nil, errors.New("案场不能为空!") } var err error if goodsType.TypeId == "" { _, err = s.dao.AddGoodsType(&goodsType) } else { err = s.dao.UpdateGoodsType(&goodsType) } if err != nil { utils.LogError("保存商品类型失败: " + err.Error()) return nil, errors.New("保存商品类型失败") } return &goodsType, nil } // DelGoodsType 删除商品类型 func (s *GoodsServ) DelGoodsType(typeid string) error { goods, err := s.dao.GetGoodsByType(typeid) if err != nil { utils.LogError("删除商品类型失败: " + err.Error()) return errors.New("删除商品类型失败") } if len(goods) > 0 { return errors.New("已关联商品。不允许删除") } err = s.dao.DelGoodsType(typeid) if err != nil { utils.LogError("删除商品类型失败: " + err.Error()) return errors.New("删除商品类型失败") } return err }