type.go 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package goods
  2. import (
  3. "errors"
  4. "spaceofcheng/services/models/model"
  5. "spaceofcheng/services/service"
  6. "spaceofcheng/services/utils"
  7. )
  8. // GetGoodsType 获取商品类型
  9. func (s *GoodsServ) GetGoodsType(caseids string, page int, pageSize int) (map[string]interface{}, error) {
  10. if pageSize == 0 {
  11. pageSize = service.PAGENUM
  12. }
  13. if page == 0 {
  14. page = 1
  15. }
  16. types, err := s.dao.GetGoodsType(caseids, page, pageSize)
  17. if err != nil {
  18. utils.LogError("获取商品类型失败: " + err.Error())
  19. return nil, errors.New("获取商品类型失败")
  20. }
  21. total, err := s.dao.GetGoodsTypeCount(caseids)
  22. if err != nil {
  23. utils.LogError("获取商品类型失败: " + err.Error())
  24. return nil, errors.New("获取商品类型失败")
  25. }
  26. return map[string]interface{}{
  27. "list": types,
  28. "pagesize": pageSize,
  29. "pagenum": total,
  30. "page": page,
  31. }, nil
  32. }
  33. // GetGoodsTypeByCase 获取商品类型
  34. func (s *GoodsServ) GetGoodsTypeByCase(caseid string) ([]model.TdGoodsType, error) {
  35. if caseid == "" {
  36. return nil, errors.New("请选选择对应案场!")
  37. }
  38. types, err := s.dao.GetGoodsTypeByCase(caseid)
  39. if err != nil {
  40. utils.LogError("获取商品类型失败: " + err.Error())
  41. return nil, errors.New("获取商品类型失败")
  42. }
  43. return types, nil
  44. }
  45. // GetGoodsTypeByID 根据商品类型ID获取商品类型
  46. func (s *GoodsServ) GetGoodsTypeByID(typeid string) (*model.TdGoodsType, error) {
  47. goodsType, err := s.dao.GetGoodsTypeByID(typeid)
  48. if err != nil {
  49. utils.LogError("获取商品类型失败: " + err.Error())
  50. return nil, errors.New("获取商品类型失败")
  51. }
  52. return goodsType, nil
  53. }
  54. // SaveGoodsType 保存商品类型
  55. func (s *GoodsServ) SaveGoodsType(goodsType model.TdGoodsType) (*model.TdGoodsType, error) {
  56. if goodsType.TypeName == "" {
  57. return nil, errors.New("类型名称不能为空!")
  58. }
  59. if goodsType.CaseId == "" {
  60. return nil, errors.New("案场不能为空!")
  61. }
  62. var err error
  63. if goodsType.TypeId == "" {
  64. _, err = s.dao.AddGoodsType(&goodsType)
  65. } else {
  66. err = s.dao.UpdateGoodsType(&goodsType)
  67. }
  68. if err != nil {
  69. utils.LogError("保存商品类型失败: " + err.Error())
  70. return nil, errors.New("保存商品类型失败")
  71. }
  72. return &goodsType, nil
  73. }
  74. // DelGoodsType 删除商品类型
  75. func (s *GoodsServ) DelGoodsType(typeid string) error {
  76. goods, err := s.dao.GetGoodsByType(typeid)
  77. if err != nil {
  78. utils.LogError("删除商品类型失败: " + err.Error())
  79. return errors.New("删除商品类型失败")
  80. }
  81. if len(goods) > 0 {
  82. return errors.New("已关联商品。不允许删除")
  83. }
  84. err = s.dao.DelGoodsType(typeid)
  85. if err != nil {
  86. utils.LogError("删除商品类型失败: " + err.Error())
  87. return errors.New("删除商品类型失败")
  88. }
  89. return err
  90. }