12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package db
- import (
- "context"
- "github.com/sirupsen/logrus"
- "youngee_b_api/model/gorm_model"
- )
- // CreateSupplierInvoice 创建服务商发票
- func CreateSupplierInvoice(ctx context.Context, req *gorm_model.YounggeeSupplierInvoice) error {
- db := GetWriteDB(ctx)
- err := db.Create(&req).Error
- if err != nil {
- return err
- }
- return nil
- }
- // UpdateSupplierInvoice 更新服务商发票
- func UpdateSupplierInvoice(ctx context.Context, req *gorm_model.YounggeeSupplierInvoice) error {
- db := GetWriteDB(ctx)
- whereCondition := gorm_model.YounggeeSupplierInvoice{InvoiceId: req.InvoiceId}
- err := db.Model(&gorm_model.YounggeeSupplierInvoice{}).Where(whereCondition).Updates(req).Error
- if err != nil {
- return err
- }
- return nil
- }
- // GetIncomeIdsByInvoiceId 根据invoice_id取得income_ids
- func GetIncomeIdsByInvoiceId(ctx context.Context, invoiceId int) (string, error) {
- db := GetWriteDB(ctx)
- var invoiceInfo *gorm_model.YounggeeSupplierInvoice
- err := db.Model(gorm_model.YounggeeSupplierInvoice{}).Where("invoice_id = ?", invoiceId).Find(&invoiceInfo).Error
- if err != nil {
- logrus.WithContext(ctx).Errorf("[GetSProjectDetail] error query mysql, err:%+v", err)
- return "", err
- }
- return invoiceInfo.IncomeIds, nil
- }
- // GetInvoiceListBySupplierId 根据invoice_status和supplier_id获取发票信息列表
- func GetInvoiceListBySupplierId(ctx context.Context, supplierId int, invoiceStatus int, withdrawStatus int, pageSize int32, pageNum int32) ([]*gorm_model.YounggeeSupplierInvoice, int64, error) {
- db := GetWriteDB(ctx)
- // 1. 基础查询:服务商ID和发票状态
- db = db.Debug().Model(gorm_model.YounggeeSupplierInvoice{}).Where("supplier_id = ? and invoice_status = ?", supplierId, invoiceStatus)
- // 2. 如果withdrawStatus不为0,则添加该条件
- if withdrawStatus != 0 {
- db = db.Where("withdraw_status = ?", withdrawStatus)
- }
- // 3. 查询总数
- var total int64
- if err := db.Count(&total).Error; err != nil {
- logrus.WithContext(ctx).Errorf("[GetInvoiceListBySupplierId] error query mysql total, err:%+v", err)
- return nil, 0, err
- }
- // 4. 分页查询数据
- var invoiceList []*gorm_model.YounggeeSupplierInvoice
- limit := pageSize
- offset := pageSize * pageNum // 假设pageNum从0开始
- err := db.Order("invoice_id desc").Limit(int(limit)).Offset(int(offset)).Find(&invoiceList).Error
- if err != nil {
- logrus.WithContext(ctx).Errorf("[GetInvoiceListBySupplierId] error query mysql data, err:%+v", err)
- return nil, 0, err
- }
- return invoiceList, total, nil
- }
- // GetInvoiceCountBySupplierId 根据条件统计发票数量(不返回具体数据,不分页)
- func GetInvoiceCountBySupplierId(ctx context.Context, supplierId int, invoiceStatus int, withdrawStatus int) (int64, error) {
- db := GetWriteDB(ctx)
- // 1. 基础查询:服务商ID和发票状态
- db = db.Model(gorm_model.YounggeeSupplierInvoice{}).Where("supplier_id = ? AND invoice_status = ?", supplierId, invoiceStatus)
- // 2. 如果withdrawStatus不为0,则添加该条件
- if withdrawStatus != 0 {
- db = db.Where("withdraw_status = ?", withdrawStatus)
- }
- // 3. 只查询总数(不查询具体数据)
- var count int64
- if err := db.Count(&count).Error; err != nil {
- logrus.WithContext(ctx).Errorf("[GetInvoiceCountBySupplierId] error query count, err:%+v", err)
- return 0, err
- }
- return count, nil
- }
|