作者 唐旭辉

bug 修复

@@ -120,8 +120,8 @@ func (subscriber *OrderLogSubscriber) HandleEvent(domainEvent coreDomain.DomainE @@ -120,8 +120,8 @@ func (subscriber *OrderLogSubscriber) HandleEvent(domainEvent coreDomain.DomainE
120 } 120 }
121 err = orderLogRepository.Add(&orderLog) 121 err = orderLogRepository.Add(&orderLog)
122 break 122 break
123 - case event.BATCH_PAY_ORDER_GOOD_BONUS_EVENT:  
124 - currentEvent := domainEvent.(event.BatchPayOrderGoodBonus) 123 + case event.PAY_ORDER_GOOD_BONUS_EVENT:
  124 + currentEvent := domainEvent.(event.PayOrderGoodBonus)
125 orderLog := domain.OrderLog{ 125 orderLog := domain.OrderLog{
126 OperatorType: domain.ORDER_LOG_OPERATOR_ADMIN, 126 OperatorType: domain.ORDER_LOG_OPERATOR_ADMIN,
127 OperatorId: currentEvent.Admin.Id, 127 OperatorId: currentEvent.Admin.Id,
@@ -145,6 +145,34 @@ func (subscriber *OrderLogSubscriber) HandleEvent(domainEvent coreDomain.DomainE @@ -145,6 +145,34 @@ func (subscriber *OrderLogSubscriber) HandleEvent(domainEvent coreDomain.DomainE
145 } 145 }
146 err = orderLogRepository.Add(&orderLog) 146 err = orderLogRepository.Add(&orderLog)
147 break 147 break
  148 + case event.BATCH_PAY_ORDER_GOOD_BONUS_EVENT:
  149 + currentEvent := domainEvent.(event.BatchPayOrderGoodBonus)
  150 + for i := range currentEvent {
  151 + orderLog := domain.OrderLog{
  152 + OperatorType: domain.ORDER_LOG_OPERATOR_ADMIN,
  153 + OperatorId: currentEvent[i].Admin.Id,
  154 + Operator: adminUser.Name,
  155 + AlterTime: time.Now(),
  156 + DataFrom: domain.ORDER_LOG_FROM,
  157 + LogAction: "支付",
  158 + OrderId: currentEvent[i].OrderBase.Id,
  159 + Descript: []domain.OrderLogDescript{},
  160 + }
  161 + for ii := range currentEvent[i].Goods {
  162 + m := domain.OrderLogDescript{
  163 + GoodId: currentEvent[i].Goods[ii].Id,
  164 + Title: "支付分红",
  165 + Item: currentEvent[i].Goods[ii].GoodName,
  166 + Action: []string{
  167 + fmt.Sprintf(`支付分红"¥%.2f"`, currentEvent[i].Goods[ii].GetCurrentPartnerBonus()),
  168 + },
  169 + }
  170 + orderLog.Descript = append(orderLog.Descript, m)
  171 + }
  172 + err = orderLogRepository.Add(&orderLog)
  173 + }
  174 +
  175 + break
148 } 176 }
149 return err 177 return err
150 } 178 }
@@ -534,110 +534,6 @@ func (service OrderInfoService) deleteOldOrderGoods(newGoods []domain.OrderGood, @@ -534,110 +534,6 @@ func (service OrderInfoService) deleteOldOrderGoods(newGoods []domain.OrderGood,
534 return 534 return
535 } 535 }
536 536
537 -//Delivery 发货  
538 -// func (service OrderInfoService) Delivery(cmd command.OrderDeliveryCommand) error {  
539 -// var (  
540 -// transactionContext, _ = factory.CreateTransactionContext(nil)  
541 -// err error  
542 -// )  
543 -// if err = transactionContext.StartTransaction(); err != nil {  
544 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
545 -// }  
546 -// defer func() {  
547 -// transactionContext.RollbackTransaction()  
548 -// }()  
549 -// var (  
550 -// orderBaseRepository domain.OrderBaseRepository  
551 -// orderGoodRepository domain.OrderGoodRepository  
552 -// oldOrderData *domain.OrderBase  
553 -// oldOrderGoods []domain.OrderGood  
554 -// orderBaseDao *dao.OrderBaseDao  
555 -// )  
556 -  
557 -// if orderBaseRepository, err = factory.CreateOrderBaseRepository(map[string]interface{}{  
558 -// "transactionContext": transactionContext,  
559 -// }); err != nil {  
560 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
561 -// }  
562 -// if orderGoodRepository, err = factory.CreateOrderGoodRepository(map[string]interface{}{  
563 -// "transactionContext": transactionContext,  
564 -// }); err != nil {  
565 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
566 -// }  
567 -// //获取旧的订单  
568 -// oldOrderData, err = orderBaseRepository.FindOne(domain.OrderBaseFindOneQuery{  
569 -// CompanyId: cmd.CompanyId,  
570 -// OrderId: cmd.OrderId,  
571 -// })  
572 -// if err != nil {  
573 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("未找到指定的订单:%s", err))  
574 -// }  
575 -// if oldOrderData.OrderType != domain.OrderIntention {  
576 -// return lib.ThrowError(lib.BUSINESS_ERROR, "订单类型已发生变更")  
577 -// }  
578 -// if orderBaseDao, err = factory.CreateOrderBaseDao(map[string]interface{}{  
579 -// "transactionContext": transactionContext,  
580 -// }); err != nil {  
581 -// return lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())  
582 -// }  
583 -// //检查delivery_code是否重复  
584 -// if ok, err := orderBaseDao.DeliveryCodeExist(cmd.DeliveryCode, cmd.CompanyId, cmd.OrderId); err != nil {  
585 -// return lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())  
586 -// } else if ok {  
587 -// return lib.ThrowError(lib.BUSINESS_ERROR, "发货号已存在")  
588 -// }  
589 -// //获取旧的订单中的商品  
590 -// oldOrderGoods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{  
591 -// OrderId: cmd.OrderId,  
592 -// CompanyId: cmd.CompanyId,  
593 -// })  
594 -// if err != nil {  
595 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("未找到指定的订单中的商品列表失败:%s", err))  
596 -// }  
597 -// for _, newGood := range cmd.Goods {  
598 -// for i := range oldOrderGoods {  
599 -// if newGood.Id != oldOrderGoods[i].Id {  
600 -// continue  
601 -// }  
602 -// oldOrderGoods[i].GoodName = newGood.GoodName  
603 -// oldOrderGoods[i].PlanGoodNumber = newGood.PlanGoodNumber  
604 -// oldOrderGoods[i].Price = newGood.Price  
605 -// oldOrderGoods[i].PartnerBonusPercent = newGood.PartnerBonusPercent  
606 -// oldOrderGoods[i].Remark = newGood.Remark  
607 -// err = oldOrderGoods[i].Compute()  
608 -// if err != nil {  
609 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中商品的数值失败:%s", err))  
610 -// }  
611 -// err = oldOrderGoods[i].CurrentBonusStatus.WartPayPartnerBonus(&oldOrderGoods[i])  
612 -// if err != nil {  
613 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中商品的分红数值失败:%s", err))  
614 -// }  
615 -// }  
616 -// }  
617 -// oldOrderData.DeliveryCode = cmd.DeliveryCode  
618 -// oldOrderData.DeliveryTime = time.Now()  
619 -// oldOrderData.Goods = oldOrderGoods  
620 -// //变更订单类型  
621 -// oldOrderData.OrderType = domain.OrderReal  
622 -// err = oldOrderData.Compute()  
623 -// if err != nil {  
624 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中合计的数值失败:%s", err))  
625 -// }  
626 -// err = orderBaseRepository.Save(oldOrderData)  
627 -// if err != nil {  
628 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("保存订单数据失败:%s", err))  
629 -// }  
630 -// err = orderGoodRepository.Save(oldOrderGoods)  
631 -// if err != nil {  
632 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("保存订单中的商品数据失败:%s", err))  
633 -// }  
634 -// err = transactionContext.CommitTransaction()  
635 -// if err != nil {  
636 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
637 -// }  
638 -// return nil  
639 -// }  
640 -  
641 //DisableOrEnable 开启关闭订单 537 //DisableOrEnable 开启关闭订单
642 func (service OrderInfoService) DisableOrEnable(cmd command.DisableOrderCommand) error { 538 func (service OrderInfoService) DisableOrEnable(cmd command.DisableOrderCommand) error {
643 var ( 539 var (
@@ -682,102 +578,6 @@ func (service OrderInfoService) DisableOrEnable(cmd command.DisableOrderCommand) @@ -682,102 +578,6 @@ func (service OrderInfoService) DisableOrEnable(cmd command.DisableOrderCommand)
682 return nil 578 return nil
683 } 579 }
684 580
685 -//UpdateGoodBouns 分红时,更新货品的分红相关的数值  
686 -// func (service OrderInfoService) UpdateGoodBouns(cmd command.UpdateGoodBouns) error {  
687 -// var (  
688 -// transactionContext, _ = factory.CreateTransactionContext(nil)  
689 -// err error  
690 -// )  
691 -// if err = transactionContext.StartTransaction(); err != nil {  
692 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
693 -// }  
694 -// defer func() {  
695 -// transactionContext.RollbackTransaction()  
696 -// }()  
697 -// var (  
698 -// orderBaseRepository domain.OrderBaseRepository  
699 -// orderGoodRepository domain.OrderGoodRepository  
700 -// oldOrderData *domain.OrderBase  
701 -// oldOrderGoods []domain.OrderGood  
702 -// )  
703 -// if orderBaseRepository, err = factory.CreateOrderBaseRepository(map[string]interface{}{  
704 -// "transactionContext": transactionContext,  
705 -// }); err != nil {  
706 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
707 -// }  
708 -// if orderGoodRepository, err = factory.CreateOrderGoodRepository(map[string]interface{}{  
709 -// "transactionContext": transactionContext,  
710 -// }); err != nil {  
711 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
712 -// }  
713 -// //获取旧的订单  
714 -// oldOrderData, err = orderBaseRepository.FindOne(domain.OrderBaseFindOneQuery{  
715 -// OrderId: cmd.Id,  
716 -// CompanyId: cmd.CompanyId,  
717 -// })  
718 -// if err != nil {  
719 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("未找到指定的订单:%s", err))  
720 -// }  
721 -// if oldOrderData.OrderType != domain.OrderReal {  
722 -// return lib.ThrowError(lib.BUSINESS_ERROR, fmt.Sprintf("指定的订单的订单类型发生变更"))  
723 -// }  
724 -// //获取旧的订单中的商品  
725 -// oldOrderGoods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{  
726 -// OrderId: cmd.Id,  
727 -// })  
728 -// if err != nil {  
729 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("未找到指定的订单中的商品列表失败:%s", err))  
730 -// }  
731 -// for _, newGood := range cmd.GoodBouns {  
732 -// for i := range oldOrderGoods {  
733 -// if newGood.GoodId != oldOrderGoods[i].Id {  
734 -// continue  
735 -// }  
736 -// oldOrderGoods[i].UseGoodNumber = newGood.UseGoodNumber  
737 -// oldOrderGoods[i].Remark = newGood.Remark  
738 -// oldOrderGoods[i].BonusStatus = newGood.BounsStatus  
739 -// err = oldOrderGoods[i].Compute()  
740 -// if err != nil {  
741 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中商品的数值失败:%s", err))  
742 -// }  
743 -// switch newGood.BounsStatus {  
744 -// case domain.OrderGoodWaitPay:  
745 -// err = oldOrderGoods[i].CurrentBonusStatus.WartPayPartnerBonus(&oldOrderGoods[i])  
746 -// if err != nil {  
747 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中商品的分红数值失败:%s", err))  
748 -// }  
749 -// case domain.OrderGoodHasPay:  
750 -// err = oldOrderGoods[i].CurrentBonusStatus.PayPartnerBonus(&oldOrderGoods[i])  
751 -// if err != nil {  
752 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中商品的分红数值失败:%s", err))  
753 -// }  
754 -// default:  
755 -// return lib.ThrowError(lib.ARG_ERROR, fmt.Sprintf("货品的支付状态错误"))  
756 -// }  
757 -// }  
758 -// }  
759 -// oldOrderData.Goods = oldOrderGoods  
760 -  
761 -// err = oldOrderData.Compute()  
762 -// if err != nil {  
763 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中合计的数值失败:%s", err))  
764 -// }  
765 -// err = orderBaseRepository.Save(oldOrderData)  
766 -// if err != nil {  
767 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("保存订单数据失败:%s", err))  
768 -// }  
769 -// err = orderGoodRepository.Save(oldOrderGoods)  
770 -// if err != nil {  
771 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("保存订单中的商品数据失败:%s", err))  
772 -// }  
773 -// err = transactionContext.CommitTransaction()  
774 -// if err != nil {  
775 -// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
776 -// }  
777 -// return nil  
778 -  
779 -// }  
780 -  
781 //PageListOrderBouns 获取订单的分红列表 581 //PageListOrderBouns 获取订单的分红列表
782 func (service OrderInfoService) PageListOrderBonus(listOrderQuery query.ListOrderBonusQuery) ([]map[string]interface{}, int, error) { 582 func (service OrderInfoService) PageListOrderBonus(listOrderQuery query.ListOrderBonusQuery) ([]map[string]interface{}, int, error) {
783 transactionContext, err := factory.CreateTransactionContext(nil) 583 transactionContext, err := factory.CreateTransactionContext(nil)
@@ -4,37 +4,24 @@ import "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain" @@ -4,37 +4,24 @@ import "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
4 4
5 const ( 5 const (
6 //支付订单中货品的分红 6 //支付订单中货品的分红
7 - //PAY_ORDER_GOOD_BONUS_EVENT string = "PayOrderGoodBonus" 7 + PAY_ORDER_GOOD_BONUS_EVENT string = "PayOrderGoodBonus"
8 BATCH_PAY_ORDER_GOOD_BONUS_EVENT string = "BatchPayOrderGoodBonus" 8 BATCH_PAY_ORDER_GOOD_BONUS_EVENT string = "BatchPayOrderGoodBonus"
9 ) 9 )
10 10
11 -//PayOrderGoodBonus  
12 -//事件:支付订单中货品的分红  
13 -// type PayOrderGoodBonus struct {  
14 -// //订单id  
15 -// OrderId int64  
16 -// //货品名称  
17 -// GoodName string  
18 -// //订单中的货品id  
19 -// GoodId int64  
20 -// //管理员id  
21 -// AdminId int64  
22 -// //分红额度  
23 -// PartnerBonus float64  
24 -// } 11 +type BatchPayOrderGoodBonus []PayOrderGoodBonus
25 12
26 -// func (p PayOrderGoodBonus) EventType() string {  
27 -// return PAY_ORDER_GOOD_BONUS_EVENT  
28 -// } 13 +func (p BatchPayOrderGoodBonus) EventType() string {
  14 + return BATCH_PAY_ORDER_GOOD_BONUS_EVENT
  15 +}
29 16
30 //PayOrderGoodBonus 17 //PayOrderGoodBonus
31 //事件:批量支付一个订单中货品的分红 18 //事件:批量支付一个订单中货品的分红
32 -type BatchPayOrderGoodBonus struct { 19 +type PayOrderGoodBonus struct {
33 OrderBase *domain.OrderBase 20 OrderBase *domain.OrderBase
34 Goods []domain.OrderGood 21 Goods []domain.OrderGood
35 Admin *domain.Users 22 Admin *domain.Users
36 } 23 }
37 24
38 -func (p BatchPayOrderGoodBonus) EventType() string {  
39 - return BATCH_PAY_ORDER_GOOD_BONUS_EVENT 25 +func (p PayOrderGoodBonus) EventType() string {
  26 + return PAY_ORDER_GOOD_BONUS_EVENT
40 } 27 }
@@ -306,7 +306,7 @@ func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, a @@ -306,7 +306,7 @@ func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, a
306 return fmt.Errorf("更新订单数据失败,%s", err) 306 return fmt.Errorf("更新订单数据失败,%s", err)
307 } 307 }
308 // 308 //
309 - payEvent := event.BatchPayOrderGoodBonus{ 309 + payEvent := event.PayOrderGoodBonus{
310 OrderBase: oldOrder, 310 OrderBase: oldOrder,
311 Goods: []domain.OrderGood{ 311 Goods: []domain.OrderGood{
312 updateGood, 312 updateGood,
@@ -393,6 +393,7 @@ func (serve *OrderBonusService) BatchPayPartnerBonus(orderIds []int64, adminId i @@ -393,6 +393,7 @@ func (serve *OrderBonusService) BatchPayPartnerBonus(orderIds []int64, adminId i
393 e := fmt.Sprintf("获取管理员用户(id=%d)数据失败,%s", adminId, err) 393 e := fmt.Sprintf("获取管理员用户(id=%d)数据失败,%s", adminId, err)
394 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) 394 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
395 } 395 }
  396 + var payEvents []event.PayOrderGoodBonus
396 for _, orderId := range orderIds { 397 for _, orderId := range orderIds {
397 var oldOrder *domain.OrderBase 398 var oldOrder *domain.OrderBase
398 oldOrder, err = orderBaseReponsitory.FindOne(domain.OrderBaseFindOneQuery{OrderId: orderId}) 399 oldOrder, err = orderBaseReponsitory.FindOne(domain.OrderBaseFindOneQuery{OrderId: orderId})
@@ -441,14 +442,15 @@ func (serve *OrderBonusService) BatchPayPartnerBonus(orderIds []int64, adminId i @@ -441,14 +442,15 @@ func (serve *OrderBonusService) BatchPayPartnerBonus(orderIds []int64, adminId i
441 } 442 }
442 } 443 }
443 //构建事件 444 //构建事件
444 - payEvent := event.BatchPayOrderGoodBonus{ 445 + payEvent := event.PayOrderGoodBonus{
445 OrderBase: oldOrder, 446 OrderBase: oldOrder,
446 Goods: updateGoods, 447 Goods: updateGoods,
447 Admin: &adminUser, 448 Admin: &adminUser,
448 } 449 }
449 - if err = serve.Publish(payEvent); err != nil {  
450 - return err  
451 - } 450 + payEvents = append(payEvents, payEvent)
  451 + }
  452 + if err = serve.Publish(event.BatchPayOrderGoodBonus(payEvents)); err != nil {
  453 + return err
452 } 454 }
453 return nil 455 return nil
454 } 456 }