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 }