cooperate.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package service
  2. import (
  3. "context"
  4. "github.com/issue9/conv"
  5. "time"
  6. "youngee_b_api/db"
  7. "youngee_b_api/model/gorm_model"
  8. "youngee_b_api/model/http_model"
  9. )
  10. var Cooperate *cooperate
  11. type cooperate struct {
  12. }
  13. // GetEnterpriseInfoBySupplierId 通过supplierId和合作状态筛选合作商家信息
  14. func (*cooperate) GetEnterpriseInfoBySupplierId(ctx context.Context, request *http_model.EnterpriseListRequest) (*http_model.EnterpriseListData, error) {
  15. var enterpriseListData *http_model.EnterpriseListData
  16. enterpriseListData = &http_model.EnterpriseListData{}
  17. // 1. 根据服务商ID和合作状态查找信息
  18. enterpriseListInfo, total, enterpriseListInfoErr := db.GetCooperateInfoByIds(ctx, request.SupplierId, request.CooperateStatus, request.PageSize, request.PageNum)
  19. if enterpriseListInfoErr != nil {
  20. return nil, enterpriseListInfoErr
  21. }
  22. if enterpriseListInfo != nil {
  23. enterpriseListData.Total = total
  24. for _, c := range enterpriseListInfo {
  25. var cooperateData *http_model.EnterpriseSupplierCooperateData
  26. cooperateData = &http_model.EnterpriseSupplierCooperateData{}
  27. cooperateData.CooperateId = c.CooperateId
  28. cooperateData.CooperateStatus = c.CooperateStatus
  29. cooperateData.CooperateNum = c.CooperateNum
  30. cooperateData.SupplierId = c.SupplierId
  31. cooperateData.UploadTalentNum = c.UploadTalentNum
  32. cooperateData.CooperateTalentNum = c.CooperateTalentNum
  33. cooperateData.SOperator = c.SOperator
  34. cooperateData.SOperatorType = c.SOperatorType
  35. cooperateData.BOperator = c.BOperator
  36. cooperateData.BOperatorType = c.BOperatorType
  37. cooperateData.CreateTime = conv.MustString(c.CreateTime)
  38. cooperateData.AgreeTime = conv.MustString(c.AgreeTime)
  39. cooperateData.RejectTime = conv.MustString(c.RejectTime)
  40. // 1.2. 商家信息
  41. enterpriseInfo, enterpriseErr := db.GetEnterpriseByEnterpriseID(ctx, c.EnterpriseId)
  42. if enterpriseErr != nil {
  43. return nil, enterpriseErr
  44. }
  45. if enterpriseInfo != nil {
  46. cooperateData.EnterprisePhone = enterpriseInfo.Phone
  47. cooperateData.EnterpriseAuth = enterpriseInfo.AuthStatus
  48. }
  49. enterpriseListData.EnterpriseListInfo = append(enterpriseListData.EnterpriseListInfo, cooperateData)
  50. }
  51. }
  52. return enterpriseListData, nil
  53. }
  54. // CreateCooperate 创建合作关系
  55. func (*cooperate) CreateCooperate(ctx context.Context, enterpriseId string, supplierId int, subAccountId int) error {
  56. var cooperateInfo *gorm_model.EnterpriseSupplierCooperate
  57. cooperateInfo = &gorm_model.EnterpriseSupplierCooperate{}
  58. cooperateInfo.CooperateStatus = 2
  59. var currentTime time.Time
  60. currentTime = time.Now()
  61. cooperateInfo.AgreeTime = &currentTime
  62. cooperateInfo.CreateTime = &currentTime
  63. cooperateInfo.SupplierId = supplierId
  64. cooperateInfo.EnterpriseId = enterpriseId
  65. if subAccountId != 0 {
  66. cooperateInfo.SOperator = subAccountId
  67. cooperateInfo.SOperatorType = 2
  68. } else {
  69. cooperateInfo.SOperator = supplierId
  70. cooperateInfo.SOperatorType = 1
  71. }
  72. total, findErr := db.FindCooperateInfoBySupplierAndEnterprise(ctx, supplierId, enterpriseId)
  73. if findErr != nil {
  74. return findErr
  75. }
  76. if total == 0 {
  77. err := db.CreateCooperateInfo(ctx, cooperateInfo)
  78. if err != nil {
  79. return err
  80. }
  81. }
  82. return nil
  83. }
  84. // AgreeEnterpriseCooperate 同意商家合作邀约请求
  85. func (*cooperate) AgreeEnterpriseCooperate(ctx context.Context, cooperateId int) error {
  86. err := db.UpdateCooperateInfo(ctx, cooperateId, 2)
  87. if err != nil {
  88. return err
  89. }
  90. return nil
  91. }
  92. // RejectEnterpriseCooperate 拒绝商家合作邀约请求
  93. func (*cooperate) RejectEnterpriseCooperate(ctx context.Context, cooperateId int) error {
  94. err := db.UpdateCooperateInfo(ctx, cooperateId, 3)
  95. if err != nil {
  96. return err
  97. }
  98. return nil
  99. }