fix
wangpengfei
2023-08-18 e8be946c5850fc8fbb32787e61e167c4fb2c2a6b
fix
3个文件已修改
79 ■■■■ 已修改文件
model/subOrder.go 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/receipt.go 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/subOrder.go 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/subOrder.go
@@ -34,9 +34,12 @@
    return "sub_order"
}
func NewSubOrderSearch() *SubOrderSearch {
func NewSubOrderSearch(db *gorm.DB) *SubOrderSearch {
    if db == nil {
        db = mysqlx.GetDB()
    }
    return &SubOrderSearch{
        Orm: mysqlx.GetDB(),
        Orm: db,
    }
}
service/receipt.go
@@ -51,14 +51,20 @@
                return err
            }
        }
        err = moneyAdder.AmountReceivableAdd(db, sourceId, decimal.Zero.Sub(receipt.Amount).Round(2))
        if err != nil {
            return err
        // todo tmp
        if sourceId != 0 {
            err = moneyAdder.AmountReceivableAdd(db, sourceId, decimal.Zero.Sub(receipt.Amount).Round(2))
            if err != nil {
                return err
            }
            err = moneyAdder.AmountReceivedAdd(db, sourceId, receipt.Amount.Round(2))
            if err != nil {
                return err
            }
        }
        err = moneyAdder.AmountReceivedAdd(db, sourceId, receipt.Amount.Round(2))
        if err != nil {
            return err
        }
        return nil
    })
    if err != nil {
service/subOrder.go
@@ -3,12 +3,13 @@
import (
    "aps_crm/model"
    "aps_crm/pkg/ecode"
    "aps_crm/pkg/mysqlx"
)
type SubOrderService struct{}
func (SubOrderService) AddSubOrder(subOrder *model.SubOrder) int {
    err := model.NewSubOrderSearch().Create(subOrder)
    err := model.NewSubOrderSearch(nil).Create(subOrder)
    if err != nil {
        return ecode.SubOrderExist
    }
@@ -18,14 +19,51 @@
func (SubOrderService) UpdateSubOrder(subOrder *model.SubOrder) int {
    // check subOrder exist
    _, err := model.NewSubOrderSearch().SetId(subOrder.Id).Find()
    tmp, err := model.NewSubOrderSearch(nil).SetId(subOrder.Id).Find()
    if err != nil {
        return ecode.SubOrderNotExist
    }
    err = model.NewSubOrderSearch().SetId(subOrder.Id).Update(subOrder)
    if err != nil {
        return ecode.SubOrderSetErr
    if len(subOrder.Products) == 0 {
        err = model.NewSubOrderSearch(nil).SetId(subOrder.Id).Update(subOrder)
        if err != nil {
            return ecode.SubOrderSetErr
        }
    } else {
        tx := mysqlx.GetDB().Begin()
        err = tx.Model(tmp).Association("Products").Clear()
        if err != nil {
            tx.Rollback()
            return ecode.SubOrderSetErr
        }
        err = model.NewSubOrderSearch(tx).SetId(subOrder.Id).Update(subOrder)
        if err != nil {
            tx.Rollback()
            return ecode.SubOrderSetErr
        }
        for _, product := range subOrder.Products {
            if product.Id == 0 {
                err = model.NewProductSearch(tx).Create(&product)
                if err != nil {
                    tx.Rollback()
                    return ecode.SubOrderSetErr
                }
            } else {
                err = model.NewProductSearch(tx).SetId(product.Id).Update(&product)
                if err != nil {
                    tx.Rollback()
                    return ecode.SubOrderSetErr
                }
            }
            err = tx.Model(&tmp).Association("Products").Append(&product)
            if err != nil {
                tx.Rollback()
                return ecode.SubOrderSetErr
            }
        }
        tx.Commit()
    }
    return ecode.OK
@@ -33,7 +71,7 @@
func (SubOrderService) GetSubOrderList(page, pageSize int, data map[string]interface{}) ([]*model.SubOrder, int64, int) {
    // get contact list
    contacts, total, err := model.NewSubOrderSearch().SetSearchMap(data).SetPage(page, pageSize).SetSearchMap(data).FindAll()
    contacts, total, err := model.NewSubOrderSearch(nil).SetSearchMap(data).SetPage(page, pageSize).SetSearchMap(data).FindAll()
    if err != nil {
        return nil, 0, ecode.SubOrderListErr
    }
@@ -42,7 +80,7 @@
func (SubOrderService) DeleteSubOrder(ids []int) int {
    // delete client
    err := model.NewSubOrderSearch().SetIds(ids).Delete()
    err := model.NewSubOrderSearch(nil).SetIds(ids).Delete()
    if err != nil {
        return ecode.SubOrderDeleteErr
    }