- 结算初始版本

This commit is contained in:
renyutian
2019-03-21 16:12:54 +08:00
parent 5c8106a70b
commit 0ee04cdd4d
9 changed files with 642 additions and 13 deletions

View File

@@ -0,0 +1,64 @@
package orderman
import (
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals"
)
const (
PublicWelfareDonation = 1 // 美团公益捐款金额现阶段是每单一分钱
TotalRate = 200 // 总费率千分之200= 第三方平台费+京西品牌费+京西服务费现阶段都是合计200‰
)
// 处理正向订单结账信息
func SaveOrderFinancialInfo(order *model.OrderFinancial) (err error) {
if order.VendorID == model.VendorIDJD { //京东订单单独处理部分
}
if order.VendorID == model.VendorIDEBAI { //饿百订单单独处理部分
order.FreightDiscountMoney = order.TotalDiscountMoney - order.DiscountMoney
}
if order.VendorID == model.VendorIDMTWM { //美团订单单独处理部分
order.DonationMoney = PublicWelfareDonation
}
order.ShopMoneyByCal = order.SalePriceMoney - order.TotalDiscountMoney + order.VendorFreightDiscountMoney - order.DistanceFreightMoney - order.FreightTipsMoney - order.DonationMoney + order.SelfDeliveryDiscountMoney + order.PmSubsidyMoney + order.BoxMoney - order.PmMoney
order.PmMoneyFormJx = (order.ShopMoney+order.PmMoney)*TotalRate/1000 - order.PmMoney // 京西平台费 = 总金额*20%-第三方平台费
if order.PmMoneyFormJx < 0 { // 如果算出京西平台费为负数则置0
order.PmMoneyFormJx = 0
}
order.ShopMoneyFromJx = order.ShopMoney - order.PmMoneyFormJx + order.SubsidyMoneyFromJx - order.FreightMoneyFromJxByShop
err = dao.CreateEntity(dao.GetDB(), order)
return err
}
// 处理售后订单结账信息
func SaveAfsOrderFinancialInfo(afsOrder *model.AfterSalesOrder) (err error) {
db := dao.GetDB()
dao.Begin(db)
defer dao.Rollback(db)
if afsOrder.VendorID == model.VendorIDJD { //京东订单单独处理部分
}
if afsOrder.VendorID == model.VendorIDEBAI { //饿百订单单独处理部分
}
if afsOrder.VendorID == model.VendorIDMTWM { //美团订单单独处理部分
}
globals.SugarLogger.Debug(afsOrder.Skus)
for _, orderSku := range afsOrder.Skus {
orderSku.SkuRefundMoneyByCal = orderSku.SkuUserMoney + orderSku.SkuVendorMoney + afsOrder.FreightUserMoney + afsOrder.AfsFreightMoney + afsOrder.BoxMoney + afsOrder.TongchengFreightMoney + afsOrder.MealBoxMoney
// orderSku.SkuTotalMoney+=orderSku.SkuJxMoney // 退款单京西补贴部分先不作计算
afsOrder.SkuUserMoney += orderSku.SkuUserMoney
afsOrder.PmSubsidyMoney += orderSku.SkuVendorMoney
// order.SkuJxMoney += orderSku.SkuJxMoney // 退款单京西补贴部分先不作计算
if err = dao.CreateEntity(db, orderSku); err != nil {
return err
}
}
afsOrder.RefundMoneyByCal = afsOrder.SkuUserMoney + afsOrder.PmSubsidyMoney + afsOrder.FreightUserMoney + afsOrder.AfsFreightMoney + afsOrder.BoxMoney + afsOrder.TongchengFreightMoney + afsOrder.MealBoxMoney
// order.TotalMoney += order.SkuJxMoney // 退款单京西补贴部分先不作计算
if err = dao.CreateEntity(db, afsOrder); err != nil {
globals.SugarLogger.Warnf("On SaveAfsOrderFinancialInfo err: SaveAfsOrder is err")
return err
}
dao.Commit(db)
return err
}