+ GoodsOrder添加EarningPrice表示结算给门店的金额

This commit is contained in:
gazebo
2019-06-19 22:45:14 +08:00
parent 9360f11da9
commit 7a4eb0cce3
4 changed files with 32 additions and 10 deletions

View File

@@ -349,22 +349,39 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao.
func (c *OrderManager) updateOrderOtherInfo(order *model.GoodsOrder, db *dao.DaoDB) (err error) {
globals.SugarLogger.Debugf("updateOrderOtherInfo orderID:%s, VendorStoreID:%s", order.VendorOrderID, order.VendorStoreID)
storeMap := &model.StoreMap{
VendorID: order.VendorID,
VendorStoreID: order.VendorStoreID,
}
storeMap.DeletedAt = utils.DefaultTimeValue
if err = dao.GetEntity(db, storeMap, model.FieldVendorID, model.FieldVendorStoreID, model.FieldDeletedAt); err != nil && err != orm.ErrNoRows {
globals.SugarLogger.Warnf("updateOrderOtherInfo GetEntity orderID:%s, VendorStoreID:%s, error:%v", order.VendorOrderID, order.VendorStoreID, err)
storeDetail, err := dao.GetStoreDetailByVendorStoreID(db, order.VendorStoreID, order.VendorID)
if err != nil {
globals.SugarLogger.Warnf("updateOrderOtherInfo GetStoreDetailByVendorStoreID orderID:%s, VendorStoreID:%s, error:%v", order.VendorOrderID, order.VendorStoreID, err)
return err
}
order.JxStoreID = storeMap.StoreID
order.JxStoreID = storeDetail.Store.ID
if err = c.updateOrderSkuOtherInfo(order, db); err == nil {
jxutils.RefreshOrderSkuRelated(order)
caculateOrderEarningPrice(order, storeDetail.PayPercentage)
}
return err
}
// 计算结算给门店的金额
func caculateOrderEarningPrice(order *model.GoodsOrder, storePayPercentage int) {
order.EarningPrice = 0
for _, v := range order.Skus {
skuEarningPrice := v.EarningPrice
if skuEarningPrice == 0 {
basePrice := v.SalePrice
if v.ShopPrice > 0 && v.ShopPrice < basePrice {
basePrice = v.ShopPrice
}
if storePayPercentage <= 0 {
storePayPercentage = model.DefaultEarningPricePercentage
}
skuEarningPrice = basePrice * int64(storePayPercentage) / 100
}
order.EarningPrice += skuEarningPrice
}
}
func (c *OrderManager) addOrderStatus(orderStatus *model.OrderStatus, db *dao.DaoDB) (isDuplicated bool, order *model.GoodsOrder, err error) {
globals.SugarLogger.Debugf("addOrderStatus refOrderID:%s, orderID:%s", orderStatus.RefVendorOrderID, orderStatus.VendorOrderID)
if db == nil {