product.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package db
  2. import (
  3. "context"
  4. "github.com/caixw/lib.go/conv"
  5. "github.com/sirupsen/logrus"
  6. "gorm.io/gorm"
  7. "strconv"
  8. "youngee_m_api/model/gorm_model"
  9. )
  10. func CreateProduct(ctx context.Context, product gorm_model.YounggeeProduct) (*int64, error) {
  11. db := GetReadDB(ctx)
  12. err := db.Create(&product).Error
  13. if err != nil {
  14. return nil, err
  15. }
  16. return &product.ProductID, nil
  17. }
  18. func GetProductByID(ctx context.Context, productID int64) (*gorm_model.YounggeeProduct, error) {
  19. db := GetReadDB(ctx)
  20. product := &gorm_model.YounggeeProduct{}
  21. err := db.First(&product, productID).Error
  22. if err != nil {
  23. if err == gorm.ErrRecordNotFound {
  24. return nil, nil
  25. } else {
  26. return nil, err
  27. }
  28. }
  29. return product, nil
  30. }
  31. func GetEnterpriseIDByUserID(ctx context.Context, UserId string) string {
  32. db := GetReadDB(ctx)
  33. enterpriseInfo := gorm_model.Enterprise{}
  34. userId := conv.MustInt64(UserId, 0)
  35. err := db.Where("user_id = ?", userId).Find(&enterpriseInfo).Error
  36. if err != nil {
  37. return ""
  38. }
  39. enterpriseID := enterpriseInfo.EnterpriseID
  40. return enterpriseID
  41. }
  42. func GetUserIDByEnterpriseID(ctx context.Context, enterpriseId string) string {
  43. db := GetReadDB(ctx)
  44. enterpriseInfo := gorm_model.Enterprise{}
  45. err := db.Where("enterprise_id = ?", enterpriseId).Find(&enterpriseInfo).Error
  46. if err != nil {
  47. return ""
  48. }
  49. enterpriseID := enterpriseInfo.UserID
  50. return strconv.FormatInt(enterpriseID, 10)
  51. }
  52. func GetProductByEnterpriseID(ctx context.Context, enterpriseID string) ([]gorm_model.YounggeeProduct, error) {
  53. db := GetReadDB(ctx)
  54. var products []gorm_model.YounggeeProduct
  55. err := db.Where("enterprise_id = ?", enterpriseID).Find(&products).Error
  56. if err != nil {
  57. return nil, err
  58. }
  59. return products, nil
  60. }
  61. func GetEnterpriseIDByProductID(ctx context.Context, ProductID int64) string {
  62. db := GetReadDB(ctx)
  63. ProjectInfo := gorm_model.ProjectInfo{}
  64. err := db.Where("product_id = ?", ProductID).Find(&ProjectInfo).Error
  65. if err != nil {
  66. return ""
  67. }
  68. enterpriseID := ProjectInfo.EnterpriseID
  69. return enterpriseID
  70. }
  71. func UpdateProduct(ctx context.Context, product gorm_model.YounggeeProduct) (*int64, error) {
  72. db := GetReadDB(ctx)
  73. err := db.Model(&product).Updates(product).Error
  74. if err != nil {
  75. return nil, err
  76. }
  77. return &product.ProductID, nil
  78. }
  79. func GetProductInfoBySelectionId(ctx context.Context, selectionId string) (*gorm_model.YounggeeProduct, error) {
  80. db := GetReadDB(ctx)
  81. productId := 0
  82. err := db.Model(gorm_model.YounggeeSelectionInfo{}).Select("product_id").Where("selection_id = ?", selectionId).Find(&productId).Error
  83. if err != nil {
  84. logrus.WithContext(ctx).Errorf("[GetProductInfo] error query mysql, err:%+v", err)
  85. return nil, err
  86. }
  87. productInfo := gorm_model.YounggeeProduct{}
  88. err = db.Model(gorm_model.YounggeeProduct{}).Where("product_id = ?", productId).Find(&productInfo).Error
  89. if err != nil {
  90. logrus.WithContext(ctx).Errorf("[GetProductInfo] error query mysql, err:%+v", err)
  91. return nil, err
  92. }
  93. return &productInfo, nil
  94. }
  95. func GetProductPhotoInfoBySelectionId(ctx context.Context, selectionId string) ([]*gorm_model.YounggeeProductPhoto, error) {
  96. db := GetReadDB(ctx)
  97. productId := 0
  98. err := db.Model(gorm_model.YounggeeSelectionInfo{}).Select("product_id").Where("selection_id = ?", selectionId).Find(&productId).Error
  99. if err != nil {
  100. logrus.WithContext(ctx).Errorf("[GetProductInfo] error query mysql, err:%+v", err)
  101. return nil, err
  102. }
  103. var productPhotoInfo []*gorm_model.YounggeeProductPhoto
  104. err = db.Model(gorm_model.YounggeeProductPhoto{}).Where("product_id = ?", productId).Find(&productPhotoInfo).Error
  105. if err != nil {
  106. logrus.WithContext(ctx).Errorf("[GetProductInfo] error query mysql, err:%+v", err)
  107. return nil, err
  108. }
  109. return productPhotoInfo, nil
  110. }
  111. func GetProductType(ctx context.Context, selectionId string) (*int, error) {
  112. db := GetReadDB(ctx)
  113. var productId int
  114. err := db.Model(gorm_model.YounggeeSelectionInfo{}).Select("product_id").Where("selection_id = ?", selectionId).Find(&productId).Error
  115. if err != nil || productId == 0 {
  116. logrus.WithContext(ctx).Errorf("[GetProductType] error query mysql, err:%+v", err)
  117. return nil, err
  118. }
  119. var productType int
  120. err = db.Model(gorm_model.YounggeeProduct{}).Select("product_type").Where("product_id = ?", productId).Find(&productType).Error
  121. if err != nil || productType == 0 {
  122. logrus.WithContext(ctx).Errorf("[GetProductType] error query mysql, err:%+v", err)
  123. return nil, err
  124. }
  125. return &productType, nil
  126. }