enterprise_supplier_cooperate_dao.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package dao
  2. import (
  3. "youngee_b_api/app/entity"
  4. )
  5. type EnterpriseSupplierCooperateDao struct{}
  6. // 检查给定的服务商是否在该商家库中
  7. func (d EnterpriseSupplierCooperateDao) EnterpriseDatabaseCheck(enterpriseId string, supplierId int64) (bool, error) {
  8. var count int64
  9. err := Db.Debug().Model(&entity.EnterpriseSupplierCooperate{}).Where("enterprise_id = ? AND supplier_id = ? AND cooperate_status != 2", enterpriseId, supplierId).Count(&count).Error
  10. if err != nil {
  11. return false, err
  12. }
  13. return count > 0, nil
  14. }
  15. // 批量插入数据
  16. func (d EnterpriseSupplierCooperateDao) InsertBatch(records []*entity.EnterpriseSupplierCooperate) error {
  17. result := Db.Debug().Model(&entity.EnterpriseSupplierCooperate{}).Omit("agree_time", "reject_time").Create(&records)
  18. return result.Error
  19. }
  20. // 获取指定商家的服务商库
  21. func (d EnterpriseSupplierCooperateDao) GetSuppliersByEnterprise(enterpriseId string, page int, pageSize int) ([]*entity.EnterpriseSupplierCooperate, int64, error) {
  22. var enterpriseSupplierCooperates []*entity.EnterpriseSupplierCooperate
  23. var total int64
  24. offset := (page - 1) * pageSize
  25. query := Db.Debug().Model(&entity.EnterpriseSupplierCooperate{}).Where("enterprise_id = ? AND cooperate_status = 2", enterpriseId)
  26. query.Count(&total)
  27. query = query.Select("supplier_id, cooperate_num, upload_talent_num, cooperate_talent_num, b_operator, b_operator_type, agree_time")
  28. err := query.Order("agree_time desc").Offset(offset).Limit(pageSize).Find(&enterpriseSupplierCooperates).Error
  29. if err != nil {
  30. return nil, 0, err
  31. }
  32. return enterpriseSupplierCooperates, total, nil
  33. }
  34. // 获取邀请待确认的服务商
  35. func (d EnterpriseSupplierCooperateDao) GetSupplierConfirmingList(enterpriseId string, page int, pageSize int) ([]*entity.EnterpriseSupplierCooperate, int64, error) {
  36. var enterpriseSupplierCooperates []*entity.EnterpriseSupplierCooperate
  37. var total int64
  38. offset := (page - 1) * pageSize
  39. query := Db.Debug().Model(&entity.EnterpriseSupplierCooperate{}).Where("enterprise_id = ? AND cooperate_status = 1", enterpriseId)
  40. query.Count(&total)
  41. query = query.Select("supplier_id, b_operator, b_operator_type, cooperate_status, create_time")
  42. err := query.Order("create_time desc").Offset(offset).Limit(pageSize).Find(&enterpriseSupplierCooperates).Error
  43. if err != nil {
  44. return nil, 0, err
  45. }
  46. return enterpriseSupplierCooperates, total, nil
  47. }