正在显示
4 个修改的文件
包含
101 行增加
和
3 行删除
pkg/application/syncOrder/sync_order.go
0 → 100644
| @@ -125,6 +125,9 @@ func (good *OrderGood) Update(m map[string]interface{}) error { | @@ -125,6 +125,9 @@ func (good *OrderGood) Update(m map[string]interface{}) error { | ||
| 125 | if v, ok := m["Remark"]; ok { | 125 | if v, ok := m["Remark"]; ok { |
| 126 | good.Remark = v.(string) | 126 | good.Remark = v.(string) |
| 127 | } | 127 | } |
| 128 | + if v, ok := m["RemarkReason"]; ok { | ||
| 129 | + good.RemarkReason = v.(OrderGoodRemarkReason) | ||
| 130 | + } | ||
| 128 | err := good.Compute() | 131 | err := good.Compute() |
| 129 | return err | 132 | return err |
| 130 | } | 133 | } |
| @@ -151,6 +154,7 @@ func (waitPay OrderGoodBonusWaitPay) WartPayPartnerBonus(good *OrderGood) error | @@ -151,6 +154,7 @@ func (waitPay OrderGoodBonusWaitPay) WartPayPartnerBonus(good *OrderGood) error | ||
| 151 | good.GoodCompute.PartnerBonusNot = good.GoodCompute.UsePartnerBonus | 154 | good.GoodCompute.PartnerBonusNot = good.GoodCompute.UsePartnerBonus |
| 152 | } | 155 | } |
| 153 | good.CurrentBonusStatus = OrderGoodBonusWaitPay{} | 156 | good.CurrentBonusStatus = OrderGoodBonusWaitPay{} |
| 157 | + good.BonusStatus = OrderGoodWaitPay | ||
| 154 | return nil | 158 | return nil |
| 155 | } | 159 | } |
| 156 | 160 | ||
| @@ -168,6 +172,7 @@ func (waitPay OrderGoodBonusWaitPay) PayPartnerBonus(good *OrderGood) error { | @@ -168,6 +172,7 @@ func (waitPay OrderGoodBonusWaitPay) PayPartnerBonus(good *OrderGood) error { | ||
| 168 | good.GoodCompute.PartnerBonusExpense = 0 | 172 | good.GoodCompute.PartnerBonusExpense = 0 |
| 169 | good.GoodCompute.PartnerBonusNot = 0 | 173 | good.GoodCompute.PartnerBonusNot = 0 |
| 170 | good.CurrentBonusStatus = OrderGoodBonusHasPay{} | 174 | good.CurrentBonusStatus = OrderGoodBonusHasPay{} |
| 175 | + good.BonusStatus = OrderGoodHasPay | ||
| 171 | return nil | 176 | return nil |
| 172 | } | 177 | } |
| 173 | 178 | ||
| @@ -181,6 +186,7 @@ func (hasPay OrderGoodBonusHasPay) PayPartnerBonus(good *OrderGood) error { | @@ -181,6 +186,7 @@ func (hasPay OrderGoodBonusHasPay) PayPartnerBonus(good *OrderGood) error { | ||
| 181 | good.GoodCompute.PartnerBonusExpense = good.GoodCompute.PartnerBonusHas - good.GoodCompute.UsePartnerBonus | 186 | good.GoodCompute.PartnerBonusExpense = good.GoodCompute.PartnerBonusHas - good.GoodCompute.UsePartnerBonus |
| 182 | } | 187 | } |
| 183 | good.CurrentBonusStatus = OrderGoodBonusHasPay{} | 188 | good.CurrentBonusStatus = OrderGoodBonusHasPay{} |
| 189 | + good.BonusStatus = OrderGoodHasPay | ||
| 184 | return nil | 190 | return nil |
| 185 | } | 191 | } |
| 186 | 192 |
pkg/domain/order_with_bestshop.go
0 → 100644
| 1 | +package domain | ||
| 2 | + | ||
| 3 | +import "errors" | ||
| 4 | + | ||
| 5 | +//类型为(orderType=OrderTypeBestShop) 海鲜干货的订单分红 | ||
| 6 | +//因页面上的对于该类型的订单分红处理方式 有别于原有的其他类型(OrderReal),所以单独提取出来 | ||
| 7 | + | ||
| 8 | +// OrderGoodWithBestshopBonusStatus 支付状态 | ||
| 9 | +type OrderGoodWithBestshopBonusStatus interface { | ||
| 10 | + OrderGoodBonusStatus | ||
| 11 | + UpdateOrderGoodNumber(good *OrderGood, number int) error | ||
| 12 | + UpdatePertnerBonusPercent(good *OrderGood, percent float64) error | ||
| 13 | +} | ||
| 14 | + | ||
| 15 | +//OrderGoodWithBestshop 处理订单中商品的分红相关数据 | ||
| 16 | +type OrderGoodWithBestshop struct { | ||
| 17 | + currentBonusStatus OrderGoodWithBestshopBonusStatus | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func (o *OrderGoodWithBestshop) UpdateBonusByGoodNumber(good *OrderGood, number int) error { | ||
| 21 | + o.reset(good) | ||
| 22 | + err := o.currentBonusStatus.UpdateOrderGoodNumber(good, number) | ||
| 23 | + return err | ||
| 24 | +} | ||
| 25 | + | ||
| 26 | +func (o *OrderGoodWithBestshop) UpdateBonusByPertnerBonusPercent(good *OrderGood, percent float64) error { | ||
| 27 | + o.reset(good) | ||
| 28 | + err := o.currentBonusStatus.UpdatePertnerBonusPercent(good, percent) | ||
| 29 | + return err | ||
| 30 | +} | ||
| 31 | + | ||
| 32 | +func (o *OrderGoodWithBestshop) PayPartnerBonus(good *OrderGood) error { | ||
| 33 | + o.currentBonusStatus = OrderGoodBonusBestshopHasPay{} | ||
| 34 | + err := good.CurrentBonusStatus.PayPartnerBonus(good) | ||
| 35 | + return err | ||
| 36 | +} | ||
| 37 | + | ||
| 38 | +func (o *OrderGoodWithBestshop) reset(good *OrderGood) { | ||
| 39 | + switch good.BonusStatus { | ||
| 40 | + case OrderGoodWaitPay: | ||
| 41 | + o.currentBonusStatus = OrderGoodBonusBestshopWaitPay{} | ||
| 42 | + case OrderGoodHasPay: | ||
| 43 | + o.currentBonusStatus = OrderGoodBonusBestshopHasPay{} | ||
| 44 | + } | ||
| 45 | + return | ||
| 46 | +} | ||
| 47 | + | ||
| 48 | +//OrderGoodBonusBestshopWaitPay 货品支付状态:待支付 | ||
| 49 | +type OrderGoodBonusBestshopWaitPay struct { | ||
| 50 | + OrderGoodBonusWaitPay | ||
| 51 | +} | ||
| 52 | + | ||
| 53 | +var _ OrderGoodWithBestshopBonusStatus = (*OrderGoodBonusBestshopWaitPay)(nil) | ||
| 54 | + | ||
| 55 | +func (waitPay OrderGoodBonusBestshopWaitPay) UpdateOrderGoodNumber(good *OrderGood, number int) error { | ||
| 56 | + good.UseGoodNumber = number | ||
| 57 | + return nil | ||
| 58 | +} | ||
| 59 | + | ||
| 60 | +func (waitPay OrderGoodBonusBestshopWaitPay) UpdatePertnerBonusPercent(good *OrderGood, percent float64) error { | ||
| 61 | + good.PartnerBonusPercent = percent | ||
| 62 | + return nil | ||
| 63 | +} | ||
| 64 | + | ||
| 65 | +//OrderGoodBonusBestshopHasPay 货品支付状态:已支付 | ||
| 66 | +type OrderGoodBonusBestshopHasPay struct { | ||
| 67 | + OrderGoodBonusHasPay | ||
| 68 | +} | ||
| 69 | + | ||
| 70 | +var _ OrderGoodWithBestshopBonusStatus = (*OrderGoodBonusBestshopHasPay)(nil) | ||
| 71 | + | ||
| 72 | +func (hasPay OrderGoodBonusBestshopHasPay) UpdateOrderGoodNumber(good *OrderGood, number int) error { | ||
| 73 | + return errors.New("已支付分红的货品订单,不能修改货品数量") | ||
| 74 | +} | ||
| 75 | + | ||
| 76 | +func (hasPay OrderGoodBonusBestshopHasPay) UpdatePertnerBonusPercent(good *OrderGood, percent float64) error { | ||
| 77 | + return errors.New("已支付分红的货品订单,不能修改合伙人分红比例") | ||
| 78 | +} |
| @@ -82,7 +82,10 @@ func (serve *OrderBonusService) UpdateBounsByGoodNumber(orderId int64, adminId i | @@ -82,7 +82,10 @@ func (serve *OrderBonusService) UpdateBounsByGoodNumber(orderId int64, adminId i | ||
| 82 | updateGood = oldOrder.Goods[i] | 82 | updateGood = oldOrder.Goods[i] |
| 83 | formerNumber = updateGood.GetCurrentGoodNumber() | 83 | formerNumber = updateGood.GetCurrentGoodNumber() |
| 84 | formerAmount = updateGood.GetCurrentAmount() | 84 | formerAmount = updateGood.GetCurrentAmount() |
| 85 | - updateGood.UseGoodNumber = goodWithNumber | 85 | + err := new(domain.OrderGoodWithBestshop).UpdateBonusByGoodNumber(&updateGood, goodWithNumber) |
| 86 | + if err != nil { | ||
| 87 | + return lib.ThrowError(lib.BUSINESS_ERROR, err.Error()) | ||
| 88 | + } | ||
| 86 | updateGood.RemarkReason.ModifyGoodNumber = reason | 89 | updateGood.RemarkReason.ModifyGoodNumber = reason |
| 87 | //计算 | 90 | //计算 |
| 88 | if err := updateGood.Compute(); err != nil { | 91 | if err := updateGood.Compute(); err != nil { |
| @@ -180,7 +183,10 @@ func (serve *OrderBonusService) UpdateBounsByPartnerBonusPercent(orderId int64, | @@ -180,7 +183,10 @@ func (serve *OrderBonusService) UpdateBounsByPartnerBonusPercent(orderId int64, | ||
| 180 | updateGood = oldOrder.Goods[i] | 183 | updateGood = oldOrder.Goods[i] |
| 181 | formerPartnerBonusPercent = updateGood.PartnerBonusPercent | 184 | formerPartnerBonusPercent = updateGood.PartnerBonusPercent |
| 182 | formerPartnerBonus = updateGood.GetCurrentPartnerBonus() | 185 | formerPartnerBonus = updateGood.GetCurrentPartnerBonus() |
| 183 | - updateGood.PartnerBonusPercent = partnerPercent | 186 | + err := new(domain.OrderGoodWithBestshop).UpdateBonusByPertnerBonusPercent(&updateGood, partnerPercent) |
| 187 | + if err != nil { | ||
| 188 | + return lib.ThrowError(lib.BUSINESS_ERROR, err.Error()) | ||
| 189 | + } | ||
| 184 | updateGood.RemarkReason.ModifyPartnerBonusPercent = reason | 190 | updateGood.RemarkReason.ModifyPartnerBonusPercent = reason |
| 185 | //计算 | 191 | //计算 |
| 186 | if err := updateGood.Compute(); err != nil { | 192 | if err := updateGood.Compute(); err != nil { |
| @@ -273,7 +279,10 @@ func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, a | @@ -273,7 +279,10 @@ func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, a | ||
| 273 | continue | 279 | continue |
| 274 | } | 280 | } |
| 275 | updateGood = oldOrder.Goods[i] | 281 | updateGood = oldOrder.Goods[i] |
| 276 | - updateGood.CurrentBonusStatus.PayPartnerBonus(&updateGood) | 282 | + err := new(domain.OrderGoodWithBestshop).PayPartnerBonus(&updateGood) |
| 283 | + if err != nil { | ||
| 284 | + return lib.ThrowError(lib.BUSINESS_ERROR, err.Error()) | ||
| 285 | + } | ||
| 277 | //计算 | 286 | //计算 |
| 278 | if err := updateGood.Compute(); err != nil { | 287 | if err := updateGood.Compute(); err != nil { |
| 279 | return errors.New("核算商品数据失败" + err.Error()) | 288 | return errors.New("核算商品数据失败" + err.Error()) |
-
请 注册 或 登录 后发表评论