package service import ( "context" "github.com/issue9/conv" "time" "youngee_b_api/db" "youngee_b_api/model/gorm_model" "youngee_b_api/model/http_model" ) var Cooperate *cooperate type cooperate struct { } // GetEnterpriseInfoBySupplierId 通过supplierId和合作状态筛选合作商家信息 func (*cooperate) GetEnterpriseInfoBySupplierId(ctx context.Context, request *http_model.EnterpriseListRequest) (*http_model.EnterpriseListData, error) { var enterpriseListData *http_model.EnterpriseListData enterpriseListData = &http_model.EnterpriseListData{} // 1. 根据服务商ID和合作状态查找信息 enterpriseListInfo, total, enterpriseListInfoErr := db.GetCooperateInfoByIds(ctx, request.SupplierId, request.CooperateStatus, request.PageSize, request.PageNum) if enterpriseListInfoErr != nil { return nil, enterpriseListInfoErr } if enterpriseListInfo != nil { enterpriseListData.Total = total for _, c := range enterpriseListInfo { var cooperateData *http_model.EnterpriseSupplierCooperateData cooperateData = &http_model.EnterpriseSupplierCooperateData{} cooperateData.CooperateId = c.CooperateId cooperateData.CooperateStatus = c.CooperateStatus cooperateData.CooperateNum = c.CooperateNum cooperateData.SupplierId = c.SupplierId cooperateData.UploadTalentNum = c.UploadTalentNum cooperateData.CooperateTalentNum = c.CooperateTalentNum cooperateData.SOperator = c.SOperator cooperateData.SOperatorType = c.SOperatorType cooperateData.BOperator = c.BOperator cooperateData.BOperatorType = c.BOperatorType if cooperateData.CreateTime != "" { cooperateData.CreateTime = conv.MustString(c.CreateTime, "") } if cooperateData.AgreeTime != "" { cooperateData.AgreeTime = conv.MustString(c.AgreeTime, "") } if cooperateData.RejectTime != "" { cooperateData.RejectTime = conv.MustString(c.RejectTime, "") } // 1.2. 商家信息 enterpriseInfo, enterpriseErr := db.GetEnterpriseByEnterpriseID(ctx, c.EnterpriseId) if enterpriseErr != nil { return nil, enterpriseErr } if enterpriseInfo != nil { cooperateData.EnterprisePhone = enterpriseInfo.Phone cooperateData.EnterpriseAuth = enterpriseInfo.AuthStatus } enterpriseListData.EnterpriseListInfo = append(enterpriseListData.EnterpriseListInfo, cooperateData) } } return enterpriseListData, nil } // CreateCooperate 创建合作关系 func (*cooperate) CreateCooperate(ctx context.Context, enterpriseId string, supplierId int, subAccountId int) error { var cooperateInfo *gorm_model.EnterpriseSupplierCooperate cooperateInfo = &gorm_model.EnterpriseSupplierCooperate{} cooperateInfo.CooperateStatus = 2 var currentTime time.Time currentTime = time.Now() cooperateInfo.AgreeTime = ¤tTime cooperateInfo.CreateTime = ¤tTime cooperateInfo.SupplierId = supplierId cooperateInfo.EnterpriseId = enterpriseId if subAccountId != 0 { cooperateInfo.SOperator = subAccountId cooperateInfo.SOperatorType = 2 } else { cooperateInfo.SOperator = supplierId cooperateInfo.SOperatorType = 1 } total, findErr := db.FindCooperateInfoBySupplierAndEnterprise(ctx, supplierId, enterpriseId) if findErr != nil { return findErr } if total == 0 { err := db.CreateCooperateInfo(ctx, cooperateInfo) if err != nil { return err } } return nil } // AgreeEnterpriseCooperate 同意商家合作邀约请求 func (*cooperate) AgreeEnterpriseCooperate(ctx context.Context, cooperateId int) error { err := db.UpdateCooperateInfo(ctx, cooperateId, 2) if err != nil { return err } return nil } // RejectEnterpriseCooperate 拒绝商家合作邀约请求 func (*cooperate) RejectEnterpriseCooperate(ctx context.Context, cooperateId int) error { err := db.UpdateCooperateInfo(ctx, cooperateId, 3) if err != nil { return err } return nil }