supplier_invoice.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package db
  2. import (
  3. "context"
  4. "github.com/sirupsen/logrus"
  5. "youngee_b_api/model/gorm_model"
  6. )
  7. // CreateSupplierInvoice 创建服务商发票
  8. func CreateSupplierInvoice(ctx context.Context, req *gorm_model.YounggeeSupplierInvoice) error {
  9. db := GetWriteDB(ctx)
  10. err := db.Create(&req).Error
  11. if err != nil {
  12. return err
  13. }
  14. return nil
  15. }
  16. // UpdateSupplierInvoice 更新服务商发票
  17. func UpdateSupplierInvoice(ctx context.Context, req *gorm_model.YounggeeSupplierInvoice) error {
  18. db := GetWriteDB(ctx)
  19. whereCondition := gorm_model.YounggeeSupplierInvoice{InvoiceId: req.InvoiceId}
  20. err := db.Model(&gorm_model.YounggeeSupplierInvoice{}).Where(whereCondition).Updates(req).Error
  21. if err != nil {
  22. return err
  23. }
  24. return nil
  25. }
  26. // GetIncomeIdsByInvoiceId 根据invoice_id取得income_ids
  27. func GetIncomeIdsByInvoiceId(ctx context.Context, invoiceId int) (string, error) {
  28. db := GetWriteDB(ctx)
  29. var invoiceInfo *gorm_model.YounggeeSupplierInvoice
  30. err := db.Model(gorm_model.YounggeeSupplierInvoice{}).Where("invoice_id = ?", invoiceId).Find(&invoiceInfo).Error
  31. if err != nil {
  32. logrus.WithContext(ctx).Errorf("[GetSProjectDetail] error query mysql, err:%+v", err)
  33. return "", err
  34. }
  35. return invoiceInfo.IncomeIds, nil
  36. }
  37. // GetInvoiceListBySupplierId 根据invoice_status和supplier_id获取发票信息列表
  38. func GetInvoiceListBySupplierId(ctx context.Context, supplierId int, invoiceStatus int, withdrawStatus int, pageSize int32, pageNum int32) ([]*gorm_model.YounggeeSupplierInvoice, int64, error) {
  39. db := GetWriteDB(ctx)
  40. // 1. 根据服务商id过滤
  41. db = db.Debug().Model(gorm_model.YounggeeSupplierInvoice{}).Where("supplier_id = ? and invoice_status = ? and withdraw_status = ?", supplierId, invoiceStatus, withdrawStatus)
  42. // 2. 确定查询总数和返回当前页数据
  43. var total int64
  44. var invoiceList []*gorm_model.YounggeeSupplierInvoice
  45. if err := db.Count(&total).Error; err != nil {
  46. logrus.WithContext(ctx).Errorf("[GetFullProjectList] error query mysql total, err:%+v", err)
  47. return nil, 0, err
  48. }
  49. limit := pageSize
  50. offset := pageSize * pageNum // assert pageNum start with 0
  51. err := db.Order("invoice_id desc").Limit(int(limit)).Offset(int(offset)).Find(&invoiceList).Error
  52. if err != nil {
  53. logrus.WithContext(ctx).Errorf("[GetFullProjectList] error query mysql total, err:%+v", err)
  54. return nil, 0, err
  55. }
  56. return invoiceList, total, nil
  57. }