cooperate.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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. if cooperateData.CreateTime != "" {
  38. cooperateData.CreateTime = conv.MustString(c.CreateTime, "")
  39. }
  40. if cooperateData.AgreeTime != "" {
  41. cooperateData.AgreeTime = conv.MustString(c.AgreeTime, "")
  42. }
  43. if cooperateData.RejectTime != "" {
  44. cooperateData.RejectTime = conv.MustString(c.RejectTime, "")
  45. }
  46. // 1.2. 商家信息
  47. enterpriseInfo, enterpriseErr := db.GetEnterpriseByEnterpriseID(ctx, c.EnterpriseId)
  48. if enterpriseErr != nil {
  49. return nil, enterpriseErr
  50. }
  51. if enterpriseInfo != nil {
  52. cooperateData.EnterprisePhone = enterpriseInfo.Phone
  53. cooperateData.EnterpriseAuth = enterpriseInfo.AuthStatus
  54. }
  55. enterpriseListData.EnterpriseListInfo = append(enterpriseListData.EnterpriseListInfo, cooperateData)
  56. }
  57. }
  58. return enterpriseListData, nil
  59. }
  60. // CreateCooperate 创建合作关系
  61. func (*cooperate) CreateCooperate(ctx context.Context, enterpriseId string, supplierId int, subAccountId int) error {
  62. var cooperateInfo *gorm_model.EnterpriseSupplierCooperate
  63. cooperateInfo = &gorm_model.EnterpriseSupplierCooperate{}
  64. cooperateInfo.CooperateStatus = 2
  65. var currentTime time.Time
  66. currentTime = time.Now()
  67. cooperateInfo.AgreeTime = &currentTime
  68. cooperateInfo.CreateTime = &currentTime
  69. cooperateInfo.SupplierId = supplierId
  70. cooperateInfo.EnterpriseId = enterpriseId
  71. if subAccountId != 0 {
  72. cooperateInfo.SOperator = subAccountId
  73. cooperateInfo.SOperatorType = 2
  74. } else {
  75. cooperateInfo.SOperator = supplierId
  76. cooperateInfo.SOperatorType = 1
  77. }
  78. total, findErr := db.FindCooperateInfoBySupplierAndEnterprise(ctx, supplierId, enterpriseId)
  79. if findErr != nil {
  80. return findErr
  81. }
  82. if total == 0 {
  83. err := db.CreateCooperateInfo(ctx, cooperateInfo)
  84. if err != nil {
  85. return err
  86. }
  87. }
  88. return nil
  89. }
  90. // AgreeEnterpriseCooperate 同意商家合作邀约请求
  91. func (*cooperate) AgreeEnterpriseCooperate(ctx context.Context, cooperateId int) error {
  92. err := db.UpdateCooperateInfo(ctx, cooperateId, 2)
  93. if err != nil {
  94. return err
  95. }
  96. return nil
  97. }
  98. // RejectEnterpriseCooperate 拒绝商家合作邀约请求
  99. func (*cooperate) RejectEnterpriseCooperate(ctx context.Context, cooperateId int) error {
  100. err := db.UpdateCooperateInfo(ctx, cooperateId, 3)
  101. if err != nil {
  102. return err
  103. }
  104. return nil
  105. }