作者 tangxvhui

更新

@@ -143,31 +143,31 @@ func (order *OrderBase) Compute() error { @@ -143,31 +143,31 @@ func (order *OrderBase) Compute() error {
143 partnerBonusExpense = partnerBonusExpense.Add(decimal.NewFromFloat(order.Goods[i].GoodCompute.PartnerBonusExpense)) 143 partnerBonusExpense = partnerBonusExpense.Add(decimal.NewFromFloat(order.Goods[i].GoodCompute.PartnerBonusExpense))
144 } 144 }
145 //汇总赋值 145 //汇总赋值
146 - order.OrderCompute.PartnerBonusExpense, _ = partnerBonusExpense.Round(2).Float64()  
147 - order.OrderCompute.PartnerBonusHas, _ = partnerBonusHas.Round(2).Float64()  
148 - order.OrderCompute.PartnerBonusNot, _ = partnerBonusNot.Round(2).Float64()  
149 - order.OrderCompute.PlanPartnerBonus, _ = planPartnerBonus.Round(2).Float64()  
150 - order.OrderCompute.PlanOrderAmount, _ = planOrderAmount.Round(2).Float64() 146 + order.OrderCompute.PartnerBonusExpense, _ = partnerBonusExpense.Round(2).BigFloat().Float64()
  147 + order.OrderCompute.PartnerBonusHas, _ = partnerBonusHas.Round(2).BigFloat().Float64()
  148 + order.OrderCompute.PartnerBonusNot, _ = partnerBonusNot.Round(2).BigFloat().Float64()
  149 + order.OrderCompute.PlanPartnerBonus, _ = planPartnerBonus.Round(2).BigFloat().Float64()
  150 + order.OrderCompute.PlanOrderAmount, _ = planOrderAmount.Round(2).BigFloat().Float64()
151 order.OrderCompute.PlanOrderCount = planOrderCount 151 order.OrderCompute.PlanOrderCount = planOrderCount
152 152
153 if hasUsePartnerBonus { 153 if hasUsePartnerBonus {
154 - order.OrderCompute.UsePartnerBonus, _ = usePartnerBonus.Round(2).Float64() 154 + order.OrderCompute.UsePartnerBonus, _ = usePartnerBonus.Round(2).BigFloat().Float64()
155 } else { 155 } else {
156 order.OrderCompute.UsePartnerBonus = -1 156 order.OrderCompute.UsePartnerBonus = -1
157 } 157 }
158 if hasUseOrderAmount { 158 if hasUseOrderAmount {
159 - order.OrderCompute.UseOrderAmount, _ = useOrderAmount.Round(2).Float64() 159 + order.OrderCompute.UseOrderAmount, _ = useOrderAmount.Round(2).BigFloat().Float64()
160 //计算业务员的抽成 160 //计算业务员的抽成
161 order.OrderCompute.SalesmanBonus, _ = useOrderAmount. 161 order.OrderCompute.SalesmanBonus, _ = useOrderAmount.
162 Mul(decimal.NewFromFloat(order.SalesmanBonusPercent)). 162 Mul(decimal.NewFromFloat(order.SalesmanBonusPercent)).
163 Div(decimal.NewFromInt(100)). 163 Div(decimal.NewFromInt(100)).
164 - Round(2).Float64() 164 + Round(2).BigFloat().Float64()
165 } else { 165 } else {
166 order.OrderCompute.UseOrderAmount = -1 166 order.OrderCompute.UseOrderAmount = -1
167 order.OrderCompute.SalesmanBonus, _ = planOrderAmount. 167 order.OrderCompute.SalesmanBonus, _ = planOrderAmount.
168 Mul(decimal.NewFromFloat(order.SalesmanBonusPercent)). 168 Mul(decimal.NewFromFloat(order.SalesmanBonusPercent)).
169 Div(decimal.NewFromInt(100)). 169 Div(decimal.NewFromInt(100)).
170 - Round(2).Float64() 170 + Round(2).BigFloat().Float64()
171 } 171 }
172 if HasUseOrderCount { 172 if HasUseOrderCount {
173 order.OrderCompute.UseOrderCount = useOrderCount 173 order.OrderCompute.UseOrderCount = useOrderCount
@@ -151,8 +151,8 @@ func (good *OrderGood) Compute() error { @@ -151,8 +151,8 @@ func (good *OrderGood) Compute() error {
151 planamount := price.Mul(decimal.NewFromInt(int64(good.PlanGoodNumber))) //price*planGoodNumber 151 planamount := price.Mul(decimal.NewFromInt(int64(good.PlanGoodNumber))) //price*planGoodNumber
152 //price*useGoodNumber 152 //price*useGoodNumber
153 planPartnerBonus := planamount.Mul(decimal.NewFromFloat(good.PartnerBonusPercent)).Div(decimal.NewFromInt(100)) //price*planGoodNumber*PartnerBonusPercent 153 planPartnerBonus := planamount.Mul(decimal.NewFromFloat(good.PartnerBonusPercent)).Div(decimal.NewFromInt(100)) //price*planGoodNumber*PartnerBonusPercent
154 - good.GoodCompute.PlanAmount, _ = planamount.Round(2).Float64()  
155 - good.GoodCompute.PlanPartnerBonus, _ = planPartnerBonus.Round(2).Float64() 154 + good.GoodCompute.PlanAmount, _ = planamount.Round(2).BigFloat().Float64()
  155 + good.GoodCompute.PlanPartnerBonus, _ = planPartnerBonus.Round(2).BigFloat().Float64()
156 if good.UseGoodNumber < 0 { 156 if good.UseGoodNumber < 0 {
157 //没有出现数量调整 157 //没有出现数量调整
158 good.GoodCompute.UsePartnerBonus = -1 158 good.GoodCompute.UsePartnerBonus = -1
@@ -162,8 +162,8 @@ func (good *OrderGood) Compute() error { @@ -162,8 +162,8 @@ func (good *OrderGood) Compute() error {
162 //计算调整后的合伙人分红 162 //计算调整后的合伙人分红
163 useamount := price.Mul(decimal.NewFromInt(int64(good.UseGoodNumber))) //price*useGoodNumber/price*useGoodNumber 163 useamount := price.Mul(decimal.NewFromInt(int64(good.UseGoodNumber))) //price*useGoodNumber/price*useGoodNumber
164 usePartnerBonus := useamount.Mul(decimal.NewFromFloat(good.PartnerBonusPercent)).Div(decimal.NewFromInt(100)) //price*useGoodNumber*PartnerBonusPercent 164 usePartnerBonus := useamount.Mul(decimal.NewFromFloat(good.PartnerBonusPercent)).Div(decimal.NewFromInt(100)) //price*useGoodNumber*PartnerBonusPercent
165 - good.GoodCompute.UsePartnerBonus, _ = usePartnerBonus.Round(2).Float64()  
166 - good.GoodCompute.UseAmount, _ = useamount.Round(2).Float64() 165 + good.GoodCompute.UsePartnerBonus, _ = usePartnerBonus.Round(2).BigFloat().Float64()
  166 + good.GoodCompute.UseAmount, _ = useamount.Round(2).BigFloat().Float64()
167 } 167 }
168 168
169 return nil 169 return nil
@@ -235,7 +235,7 @@ func (postData postOrderGood) Valid() error { @@ -235,7 +235,7 @@ func (postData postOrderGood) Valid() error {
235 return lib.ThrowError(lib.ARG_ERROR, "合伙人分红比例超额") 235 return lib.ThrowError(lib.ARG_ERROR, "合伙人分红比例超额")
236 } 236 }
237 partnerRatio := fmt.Sprint(postData.PartnerRatio) 237 partnerRatio := fmt.Sprint(postData.PartnerRatio)
238 - regexpStr := `^(100|[1-9]\d|\d)(.\d{1,2})$` 238 + regexpStr := `^(100|[1-9]\d|\d)(.\d{1,2})?$`
239 ok := regexp.MustCompile(regexpStr).MatchString(partnerRatio) 239 ok := regexp.MustCompile(regexpStr).MatchString(partnerRatio)
240 if !ok { 240 if !ok {
241 return lib.ThrowError(lib.ARG_ERROR, "合伙人分红比例精确到小数点2位") 241 return lib.ThrowError(lib.ARG_ERROR, "合伙人分红比例精确到小数点2位")