作者 Your Name

Merge branch 'test' into master

正在显示 36 个修改的文件 包含 1607 行增加1406 行删除
1 -# 合伙人项目  
  1 +# 合伙人项目
  2 +vendor 文件夹如果不是迫不得已,请不要手动修改其中的文件!
  3 +如果手动修改vendor中的文件,需自行进行版本管理。(慎重考虑!慎重考虑!慎重考虑!)
1 package command 1 package command
2 2
3 -type UpdateBusinessBonusCommand struct {  
4 - Id int64 `json:"id"`  
5 - Bonus float64 `json:"bonus"`  
6 - BonusStatus int8 `json:"bonusStatus"`  
7 - CompanyId int64 `json:"companyId"`  
8 -} 3 +// type UpdateBusinessBonusCommand struct {
  4 +// Id int64 `json:"id"`
  5 +// Bonus float64 `json:"bonus"`
  6 +// BonusStatus int8 `json:"bonusStatus"`
  7 +// CompanyId int64 `json:"companyId"`
  8 +// }
9 9
10 -func (cmd UpdateBusinessBonusCommand) ValidateCommand() error {  
11 - return nil  
12 -} 10 +// func (cmd UpdateBusinessBonusCommand) ValidateCommand() error {
  11 +// return nil
  12 +// }
1 package query 1 package query
2 2
3 -type GetBusinessBonusQuery struct {  
4 - Id int64 `json:"id"`  
5 - CompanyId int64 `json:"companyId"`  
6 -} 3 +// type GetBusinessBonusQuery struct {
  4 +// Id int64 `json:"id"`
  5 +// CompanyId int64 `json:"companyId"`
  6 +// }
1 package query 1 package query
2 2
3 -type ListBusinessBonusQuery struct { 3 +// type ListBusinessBonusQuery struct {
4 4
5 - //用户名称匹配  
6 - PartnerNameMatch string `json:"userNameMatch" `  
7 - // 查询偏离量  
8 - Offset int `json:"offset" `  
9 - // 查询限制  
10 - Limit int `json:"limit"`  
11 - PartnerId int64 `json:"partnerId"`  
12 - CompanyId int64 `json:"companyId"`  
13 -} 5 +// //用户名称匹配
  6 +// PartnerNameMatch string `json:"userNameMatch" `
  7 +// // 查询偏离量
  8 +// Offset int `json:"offset" `
  9 +// // 查询限制
  10 +// Limit int `json:"limit"`
  11 +// PartnerId int64 `json:"partnerId"`
  12 +// CompanyId int64 `json:"companyId"`
  13 +// }
1 package service 1 package service
2 2
3 -type BusinessBonusService struct {  
4 -} 3 +// type BusinessBonusService struct {
  4 +// }
5 5
6 -func NewBusinessBonusService(option map[string]interface{}) *BusinessBonusService {  
7 - newService := new(BusinessBonusService)  
8 - return newService  
9 -} 6 +// func NewBusinessBonusService(option map[string]interface{}) *BusinessBonusService {
  7 +// newService := new(BusinessBonusService)
  8 +// return newService
  9 +// }
10 10
11 // ListBusinessBonus 列表 11 // ListBusinessBonus 列表
12 // func (srv BusinessBonusService) ListBusinessBonus(queryOption query.ListBusinessBonusQuery) (int, interface{}, error) { 12 // func (srv BusinessBonusService) ListBusinessBonus(queryOption query.ListBusinessBonusQuery) (int, interface{}, error) {
@@ -166,3 +166,4 @@ func NewBusinessBonusService(option map[string]interface{}) *BusinessBonusServic @@ -166,3 +166,4 @@ func NewBusinessBonusService(option map[string]interface{}) *BusinessBonusServic
166 166
167 // return returnData, nil 167 // return returnData, nil
168 // } 168 // }
  169 +// }
@@ -111,6 +111,7 @@ func (subscriber *OrderLogSubscriber) HandleEvent(domainEvent coreDomain.DomainE @@ -111,6 +111,7 @@ func (subscriber *OrderLogSubscriber) HandleEvent(domainEvent coreDomain.DomainE
111 GoodId: 0, 111 GoodId: 0,
112 Descript: []domain.OrderLogDescript{ 112 Descript: []domain.OrderLogDescript{
113 domain.OrderLogDescript{ 113 domain.OrderLogDescript{
  114 + GoodId: currentEvent.OrderId,
114 Title: "编辑备注", 115 Title: "编辑备注",
115 Item: currentEvent.NewRemark, 116 Item: currentEvent.NewRemark,
116 Action: []string{}, 117 Action: []string{},
@@ -119,34 +120,59 @@ func (subscriber *OrderLogSubscriber) HandleEvent(domainEvent coreDomain.DomainE @@ -119,34 +120,59 @@ func (subscriber *OrderLogSubscriber) HandleEvent(domainEvent coreDomain.DomainE
119 } 120 }
120 err = orderLogRepository.Add(&orderLog) 121 err = orderLogRepository.Add(&orderLog)
121 break 122 break
122 - // 支付订单中货品的分红  
123 case event.PAY_ORDER_GOOD_BONUS_EVENT: 123 case event.PAY_ORDER_GOOD_BONUS_EVENT:
124 currentEvent := domainEvent.(event.PayOrderGoodBonus) 124 currentEvent := domainEvent.(event.PayOrderGoodBonus)
125 - adminUser, err = userRepository.FindOne(domain.UsersFindOneQuery{Id: currentEvent.AdminId})  
126 - if err != nil {  
127 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
128 - }  
129 orderLog := domain.OrderLog{ 125 orderLog := domain.OrderLog{
130 OperatorType: domain.ORDER_LOG_OPERATOR_ADMIN, 126 OperatorType: domain.ORDER_LOG_OPERATOR_ADMIN,
131 - OperatorId: currentEvent.AdminId, 127 + OperatorId: currentEvent.Admin.Id,
132 Operator: adminUser.Name, 128 Operator: adminUser.Name,
133 AlterTime: time.Now(), 129 AlterTime: time.Now(),
134 DataFrom: domain.ORDER_LOG_FROM, 130 DataFrom: domain.ORDER_LOG_FROM,
135 LogAction: "支付", 131 LogAction: "支付",
136 - OrderId: currentEvent.OrderId,  
137 - GoodId: currentEvent.GoodId,  
138 - Descript: []domain.OrderLogDescript{  
139 - domain.OrderLogDescript{  
140 - Title: "支付分红",  
141 - Item: currentEvent.GoodName,  
142 - Action: []string{  
143 - fmt.Sprintf(`支付分红"¥%.2f"`, currentEvent.PartnerBonus),  
144 - }, 132 + OrderId: currentEvent.OrderBase.Id,
  133 + Descript: []domain.OrderLogDescript{},
  134 + }
  135 + for i := range currentEvent.Goods {
  136 + m := domain.OrderLogDescript{
  137 + GoodId: currentEvent.Goods[i].Id,
  138 + Title: "支付分红",
  139 + Item: currentEvent.Goods[i].GoodName,
  140 + Action: []string{
  141 + fmt.Sprintf(`支付分红"¥%.2f"`, currentEvent.Goods[i].GetCurrentPartnerBonus()),
145 }, 142 },
146 - }, 143 + }
  144 + orderLog.Descript = append(orderLog.Descript, m)
147 } 145 }
148 err = orderLogRepository.Add(&orderLog) 146 err = orderLogRepository.Add(&orderLog)
149 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
150 } 176 }
151 return err 177 return err
152 } 178 }
@@ -156,6 +182,7 @@ func (subscriber *OrderLogSubscriber) SubscribedToEventTypes() []string { @@ -156,6 +182,7 @@ func (subscriber *OrderLogSubscriber) SubscribedToEventTypes() []string {
156 event.UPDATE_BONUS_BY_GOOD_NUMBER_EVENT, 182 event.UPDATE_BONUS_BY_GOOD_NUMBER_EVENT,
157 event.UPDATE_BONUS_BY_PARTENT_BONUS_PERCENT_EVENT, 183 event.UPDATE_BONUS_BY_PARTENT_BONUS_PERCENT_EVENT,
158 event.UPDATE_ORDER_REMARK, 184 event.UPDATE_ORDER_REMARK,
  185 + event.BATCH_PAY_ORDER_GOOD_BONUS_EVENT,
159 event.PAY_ORDER_GOOD_BONUS_EVENT, 186 event.PAY_ORDER_GOOD_BONUS_EVENT,
160 } 187 }
161 } 188 }
@@ -6,14 +6,6 @@ import ( @@ -6,14 +6,6 @@ import (
6 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/transaction" 6 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/transaction"
7 ) 7 )
8 8
9 -func CreateBusinessBonusService(options map[string]interface{}) (service.BusinessBonusService, error) {  
10 - var transactionContext *transaction.TransactionContext  
11 - if value, ok := options["transactionContext"]; ok {  
12 - transactionContext = value.(*transaction.TransactionContext)  
13 - }  
14 - return domainService.NewBusinessBonusService(transactionContext), nil  
15 -}  
16 -  
17 func CreateOrderBonusService(options map[string]interface{}) (service.OrderBonusService, error) { 9 func CreateOrderBonusService(options map[string]interface{}) (service.OrderBonusService, error) {
18 var transactionContext *transaction.TransactionContext 10 var transactionContext *transaction.TransactionContext
19 if value, ok := options["transactionContext"]; ok { 11 if value, ok := options["transactionContext"]; ok {
@@ -15,4 +15,6 @@ type ListOrderBaseQuery struct { @@ -15,4 +15,6 @@ type ListOrderBaseQuery struct {
15 PartnerCategory int `json:"partnerCategory"` 15 PartnerCategory int `json:"partnerCategory"`
16 UpdateTimeBegin string `json:"updateTimeBegin"` 16 UpdateTimeBegin string `json:"updateTimeBegin"`
17 UpdateTimeEnd string `json:"updateTimeEnd"` 17 UpdateTimeEnd string `json:"updateTimeEnd"`
  18 + CreateTimeBegin string `json:"createTimeBegin"`
  19 + CreateTimeEnd string `json:"createTimeEnd"`
18 } 20 }
@@ -8,6 +8,8 @@ type ListOrderBonusQuery struct { @@ -8,6 +8,8 @@ type ListOrderBonusQuery struct {
8 CompanyId int64 `json:"companyId"` 8 CompanyId int64 `json:"companyId"`
9 PartnerCategory int `json:"partnerCategory"` 9 PartnerCategory int `json:"partnerCategory"`
10 //订单类型 10 //订单类型
11 - OrderType int `json:"orderType"`  
12 - PartnerOrCode string `json:"partnerOrCode"` 11 + OrderType int `json:"orderType"`
  12 + PartnerOrCode string `json:"partnerOrCode"`
  13 + CreateTimeBegin string `json:"createTimeBegin"`
  14 + CreateTimeEnd string `json:"createTimeEnd"`
13 } 15 }
@@ -2,8 +2,6 @@ package service @@ -2,8 +2,6 @@ package service
2 2
3 import ( 3 import (
4 "fmt" 4 "fmt"
5 - "strings"  
6 - "time"  
7 5
8 "github.com/astaxie/beego/logs" 6 "github.com/astaxie/beego/logs"
9 7
@@ -57,6 +55,7 @@ func (service OrderInfoService) PageListOrderBase(listOrderQuery query.ListOrder @@ -57,6 +55,7 @@ func (service OrderInfoService) PageListOrderBase(listOrderQuery query.ListOrder
57 listOrderQuery.OrderType, 55 listOrderQuery.OrderType,
58 listOrderQuery.PartnerOrCode, 56 listOrderQuery.PartnerOrCode,
59 [2]string{listOrderQuery.UpdateTimeBegin, listOrderQuery.UpdateTimeEnd}, 57 [2]string{listOrderQuery.UpdateTimeBegin, listOrderQuery.UpdateTimeEnd},
  58 + [2]string{listOrderQuery.CreateTimeBegin, listOrderQuery.CreateTimeEnd},
60 listOrderQuery.PartnerCategory, 59 listOrderQuery.PartnerCategory,
61 listOrderQuery.Limit, listOrderQuery.Offset, 60 listOrderQuery.Limit, listOrderQuery.Offset,
62 ) 61 )
@@ -78,6 +77,8 @@ func (service OrderInfoService) PageListOrderBase(listOrderQuery query.ListOrder @@ -78,6 +77,8 @@ func (service OrderInfoService) PageListOrderBase(listOrderQuery query.ListOrder
78 UserId: orders[i].PartnerId, 77 UserId: orders[i].PartnerId,
79 }) 78 })
80 if err != nil { 79 if err != nil {
  80 + //防崩溃
  81 + partnerData = &domain.PartnerInfo{}
81 logs.Error("获取合伙(id=%d)失败%s", orders[i].PartnerId, err) 82 logs.Error("获取合伙(id=%d)失败%s", orders[i].PartnerId, err)
82 } 83 }
83 listIndex := listOrderQuery.Offset + (1 + i) 84 listIndex := listOrderQuery.Offset + (1 + i)
@@ -86,7 +87,7 @@ func (service OrderInfoService) PageListOrderBase(listOrderQuery query.ListOrder @@ -86,7 +87,7 @@ func (service OrderInfoService) PageListOrderBase(listOrderQuery query.ListOrder
86 "createTime": orders[i].CreateTime.Local().Format("2006-01-02 15:04:05"), 87 "createTime": orders[i].CreateTime.Local().Format("2006-01-02 15:04:05"),
87 "updateTime": orders[i].UpdateTime.Local().Format("2006-01-02 15:04:05"), 88 "updateTime": orders[i].UpdateTime.Local().Format("2006-01-02 15:04:05"),
88 "buyer": orders[i].Buyer.BuyerName, 89 "buyer": orders[i].Buyer.BuyerName,
89 - "id": orders[i].Id, 90 + "id": fmt.Sprint(orders[i].Id),
90 "orderId": orders[i].OrderCode, 91 "orderId": orders[i].OrderCode,
91 "shipmentsId": orders[i].DeliveryCode, 92 "shipmentsId": orders[i].DeliveryCode,
92 "partner": partnerData.Partner.PartnerName, 93 "partner": partnerData.Partner.PartnerName,
@@ -533,110 +534,6 @@ func (service OrderInfoService) deleteOldOrderGoods(newGoods []domain.OrderGood, @@ -533,110 +534,6 @@ func (service OrderInfoService) deleteOldOrderGoods(newGoods []domain.OrderGood,
533 return 534 return
534 } 535 }
535 536
536 -//Delivery 发货  
537 -func (service OrderInfoService) Delivery(cmd command.OrderDeliveryCommand) error {  
538 - var (  
539 - transactionContext, _ = factory.CreateTransactionContext(nil)  
540 - err error  
541 - )  
542 - if err = transactionContext.StartTransaction(); err != nil {  
543 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
544 - }  
545 - defer func() {  
546 - transactionContext.RollbackTransaction()  
547 - }()  
548 - var (  
549 - orderBaseRepository domain.OrderBaseRepository  
550 - orderGoodRepository domain.OrderGoodRepository  
551 - oldOrderData *domain.OrderBase  
552 - oldOrderGoods []domain.OrderGood  
553 - orderBaseDao *dao.OrderBaseDao  
554 - )  
555 -  
556 - if orderBaseRepository, err = factory.CreateOrderBaseRepository(map[string]interface{}{  
557 - "transactionContext": transactionContext,  
558 - }); err != nil {  
559 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
560 - }  
561 - if orderGoodRepository, err = factory.CreateOrderGoodRepository(map[string]interface{}{  
562 - "transactionContext": transactionContext,  
563 - }); err != nil {  
564 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
565 - }  
566 - //获取旧的订单  
567 - oldOrderData, err = orderBaseRepository.FindOne(domain.OrderBaseFindOneQuery{  
568 - CompanyId: cmd.CompanyId,  
569 - OrderId: cmd.OrderId,  
570 - })  
571 - if err != nil {  
572 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("未找到指定的订单:%s", err))  
573 - }  
574 - if oldOrderData.OrderType != domain.OrderIntention {  
575 - return lib.ThrowError(lib.BUSINESS_ERROR, "订单类型已发生变更")  
576 - }  
577 - if orderBaseDao, err = factory.CreateOrderBaseDao(map[string]interface{}{  
578 - "transactionContext": transactionContext,  
579 - }); err != nil {  
580 - return lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())  
581 - }  
582 - //检查delivery_code是否重复  
583 - if ok, err := orderBaseDao.DeliveryCodeExist(cmd.DeliveryCode, cmd.CompanyId, cmd.OrderId); err != nil {  
584 - return lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())  
585 - } else if ok {  
586 - return lib.ThrowError(lib.BUSINESS_ERROR, "发货号已存在")  
587 - }  
588 - //获取旧的订单中的商品  
589 - oldOrderGoods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{  
590 - OrderId: cmd.OrderId,  
591 - CompanyId: cmd.CompanyId,  
592 - })  
593 - if err != nil {  
594 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("未找到指定的订单中的商品列表失败:%s", err))  
595 - }  
596 - for _, newGood := range cmd.Goods {  
597 - for i := range oldOrderGoods {  
598 - if newGood.Id != oldOrderGoods[i].Id {  
599 - continue  
600 - }  
601 - oldOrderGoods[i].GoodName = newGood.GoodName  
602 - oldOrderGoods[i].PlanGoodNumber = newGood.PlanGoodNumber  
603 - oldOrderGoods[i].Price = newGood.Price  
604 - oldOrderGoods[i].PartnerBonusPercent = newGood.PartnerBonusPercent  
605 - oldOrderGoods[i].Remark = newGood.Remark  
606 - err = oldOrderGoods[i].Compute()  
607 - if err != nil {  
608 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中商品的数值失败:%s", err))  
609 - }  
610 - err = oldOrderGoods[i].CurrentBonusStatus.WartPayPartnerBonus(&oldOrderGoods[i])  
611 - if err != nil {  
612 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中商品的分红数值失败:%s", err))  
613 - }  
614 - }  
615 - }  
616 - oldOrderData.DeliveryCode = cmd.DeliveryCode  
617 - oldOrderData.DeliveryTime = time.Now()  
618 - oldOrderData.Goods = oldOrderGoods  
619 - //变更订单类型  
620 - oldOrderData.OrderType = domain.OrderReal  
621 - err = oldOrderData.Compute()  
622 - if err != nil {  
623 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中合计的数值失败:%s", err))  
624 - }  
625 - err = orderBaseRepository.Save(oldOrderData)  
626 - if err != nil {  
627 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("保存订单数据失败:%s", err))  
628 - }  
629 - err = orderGoodRepository.Save(oldOrderGoods)  
630 - if err != nil {  
631 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("保存订单中的商品数据失败:%s", err))  
632 - }  
633 - err = transactionContext.CommitTransaction()  
634 - if err != nil {  
635 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
636 - }  
637 - return nil  
638 -}  
639 -  
640 //DisableOrEnable 开启关闭订单 537 //DisableOrEnable 开启关闭订单
641 func (service OrderInfoService) DisableOrEnable(cmd command.DisableOrderCommand) error { 538 func (service OrderInfoService) DisableOrEnable(cmd command.DisableOrderCommand) error {
642 var ( 539 var (
@@ -681,102 +578,6 @@ func (service OrderInfoService) DisableOrEnable(cmd command.DisableOrderCommand) @@ -681,102 +578,6 @@ func (service OrderInfoService) DisableOrEnable(cmd command.DisableOrderCommand)
681 return nil 578 return nil
682 } 579 }
683 580
684 -//UpdateGoodBouns 分红时,更新货品的分红相关的数值  
685 -func (service OrderInfoService) UpdateGoodBouns(cmd command.UpdateGoodBouns) error {  
686 - var (  
687 - transactionContext, _ = factory.CreateTransactionContext(nil)  
688 - err error  
689 - )  
690 - if err = transactionContext.StartTransaction(); err != nil {  
691 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
692 - }  
693 - defer func() {  
694 - transactionContext.RollbackTransaction()  
695 - }()  
696 - var (  
697 - orderBaseRepository domain.OrderBaseRepository  
698 - orderGoodRepository domain.OrderGoodRepository  
699 - oldOrderData *domain.OrderBase  
700 - oldOrderGoods []domain.OrderGood  
701 - )  
702 - if orderBaseRepository, err = factory.CreateOrderBaseRepository(map[string]interface{}{  
703 - "transactionContext": transactionContext,  
704 - }); err != nil {  
705 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
706 - }  
707 - if orderGoodRepository, err = factory.CreateOrderGoodRepository(map[string]interface{}{  
708 - "transactionContext": transactionContext,  
709 - }); err != nil {  
710 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
711 - }  
712 - //获取旧的订单  
713 - oldOrderData, err = orderBaseRepository.FindOne(domain.OrderBaseFindOneQuery{  
714 - OrderId: cmd.Id,  
715 - CompanyId: cmd.CompanyId,  
716 - })  
717 - if err != nil {  
718 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("未找到指定的订单:%s", err))  
719 - }  
720 - if oldOrderData.OrderType != domain.OrderReal {  
721 - return lib.ThrowError(lib.BUSINESS_ERROR, fmt.Sprintf("指定的订单的订单类型发生变更"))  
722 - }  
723 - //获取旧的订单中的商品  
724 - oldOrderGoods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{  
725 - OrderId: cmd.Id,  
726 - })  
727 - if err != nil {  
728 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("未找到指定的订单中的商品列表失败:%s", err))  
729 - }  
730 - for _, newGood := range cmd.GoodBouns {  
731 - for i := range oldOrderGoods {  
732 - if newGood.GoodId != oldOrderGoods[i].Id {  
733 - continue  
734 - }  
735 - oldOrderGoods[i].UseGoodNumber = newGood.UseGoodNumber  
736 - oldOrderGoods[i].Remark = newGood.Remark  
737 - oldOrderGoods[i].BonusStatus = newGood.BounsStatus  
738 - err = oldOrderGoods[i].Compute()  
739 - if err != nil {  
740 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中商品的数值失败:%s", err))  
741 - }  
742 - switch newGood.BounsStatus {  
743 - case domain.OrderGoodWaitPay:  
744 - err = oldOrderGoods[i].CurrentBonusStatus.WartPayPartnerBonus(&oldOrderGoods[i])  
745 - if err != nil {  
746 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中商品的分红数值失败:%s", err))  
747 - }  
748 - case domain.OrderGoodHasPay:  
749 - err = oldOrderGoods[i].CurrentBonusStatus.PayPartnerBonus(&oldOrderGoods[i])  
750 - if err != nil {  
751 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中商品的分红数值失败:%s", err))  
752 - }  
753 - default:  
754 - return lib.ThrowError(lib.ARG_ERROR, fmt.Sprintf("货品的支付状态错误"))  
755 - }  
756 - }  
757 - }  
758 - oldOrderData.Goods = oldOrderGoods  
759 -  
760 - err = oldOrderData.Compute()  
761 - if err != nil {  
762 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("核算订单中合计的数值失败:%s", err))  
763 - }  
764 - err = orderBaseRepository.Save(oldOrderData)  
765 - if err != nil {  
766 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("保存订单数据失败:%s", err))  
767 - }  
768 - err = orderGoodRepository.Save(oldOrderGoods)  
769 - if err != nil {  
770 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("保存订单中的商品数据失败:%s", err))  
771 - }  
772 - err = transactionContext.CommitTransaction()  
773 - if err != nil {  
774 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
775 - }  
776 - return nil  
777 -  
778 -}  
779 -  
780 //PageListOrderBouns 获取订单的分红列表 581 //PageListOrderBouns 获取订单的分红列表
781 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) {
782 transactionContext, err := factory.CreateTransactionContext(nil) 583 transactionContext, err := factory.CreateTransactionContext(nil)
@@ -806,6 +607,7 @@ func (service OrderInfoService) PageListOrderBonus(listOrderQuery query.ListOrde @@ -806,6 +607,7 @@ func (service OrderInfoService) PageListOrderBonus(listOrderQuery query.ListOrde
806 listOrderQuery.OrderType, 607 listOrderQuery.OrderType,
807 listOrderQuery.PartnerOrCode, 608 listOrderQuery.PartnerOrCode,
808 listOrderQuery.PartnerCategory, 609 listOrderQuery.PartnerCategory,
  610 + [2]string{listOrderQuery.CreateTimeBegin, listOrderQuery.CreateTimeEnd},
809 listOrderQuery.Limit, 611 listOrderQuery.Limit,
810 listOrderQuery.Offset, 612 listOrderQuery.Offset,
811 ) 613 )
@@ -862,15 +664,16 @@ func (service OrderInfoService) PageListOrderBonus(listOrderQuery query.ListOrde @@ -862,15 +664,16 @@ func (service OrderInfoService) PageListOrderBonus(listOrderQuery query.ListOrde
862 ) 664 )
863 goods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{OrderId: orders[i].Id}) 665 goods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{OrderId: orders[i].Id})
864 for ii := range goods { 666 for ii := range goods {
865 - if goods[ii].PartnerBonusPercent > 0 { 667 + if goods[ii].PartnerBonusPercent >= 0 {
866 hasBonusPercent = true 668 hasBonusPercent = true
867 } 669 }
868 } 670 }
869 listIndex := listOrderQuery.Offset + (1 + i) 671 listIndex := listOrderQuery.Offset + (1 + i)
870 listItem := map[string]interface{}{ 672 listItem := map[string]interface{}{
871 "index": listIndex, 673 "index": listIndex,
  674 + "createTime": orders[i].CreateTime.Local().Format("2006-01-02 15:04:05"),
872 "updateTime": orders[i].UpdateTime.Local().Format("2006-01-02 15:04:05"), 675 "updateTime": orders[i].UpdateTime.Local().Format("2006-01-02 15:04:05"),
873 - "id": orders[i].Id, 676 + "id": fmt.Sprint(orders[i].Id),
874 "shipmentsId": orders[i].DeliveryCode, 677 "shipmentsId": orders[i].DeliveryCode,
875 "partner": orders[i].PartnerInfo.PartnerName, 678 "partner": orders[i].PartnerInfo.PartnerName,
876 "dividendsReceivable": fmt.Sprint(orders[i].GetCurrentPartnerBonus()), 679 "dividendsReceivable": fmt.Sprint(orders[i].GetCurrentPartnerBonus()),
@@ -897,284 +700,8 @@ func (service OrderInfoService) PageListOrderBonus(listOrderQuery query.ListOrde @@ -897,284 +700,8 @@ func (service OrderInfoService) PageListOrderBonus(listOrderQuery query.ListOrde
897 return resp, cnt, nil 700 return resp, cnt, nil
898 } 701 }
899 702
900 -//GetOrderBestshopInfo 获取来源于xiangmi订单的详情以及分红数据  
901 -func (service OrderInfoService) GetOrderBestshopInfoWithBonus(orderBaseId int64, companyId int64) (interface{}, error) {  
902 - var (  
903 - transactionContext, _ = factory.CreateTransactionContext(nil)  
904 - err error  
905 - )  
906 - if err = transactionContext.StartTransaction(); err != nil {  
907 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
908 - }  
909 - defer func() {  
910 - transactionContext.RollbackTransaction()  
911 - }()  
912 - var (  
913 - orderBaseRepository domain.OrderBaseRepository  
914 - orderGoodRepository domain.OrderGoodRepository  
915 - orderBestshopRepository domain.OrderBestshopRepository  
916 - orderGoodBestshopRepository domain.OrderGoodBestshopRepository  
917 - orderLogRepository domain.OrderLogRepository  
918 - partnerRepository domain.PartnerInfoRepository  
919 - )  
920 - if orderBaseRepository, err = factory.CreateOrderBaseRepository(map[string]interface{}{  
921 - "transactionContext": transactionContext,  
922 - }); err != nil {  
923 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
924 - }  
925 - if orderGoodRepository, err = factory.CreateOrderGoodRepository(map[string]interface{}{  
926 - "transactionContext": transactionContext,  
927 - }); err != nil {  
928 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
929 - }  
930 - if orderBestshopRepository, err = factory.CreateOrderBestshopRepository(map[string]interface{}{  
931 - "transactionContext": transactionContext,  
932 - }); err != nil {  
933 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
934 - }  
935 - if orderGoodBestshopRepository, err = factory.CreateOrderGoodBestshopRepository(map[string]interface{}{  
936 - "transactionContext": transactionContext,  
937 - }); err != nil {  
938 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
939 - }  
940 - if orderLogRepository, err = factory.CreateOrderLogRepository(map[string]interface{}{  
941 - "transactionContext": transactionContext,  
942 - }); err != nil {  
943 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
944 - }  
945 - if partnerRepository, err = factory.CreatePartnerInfoRepository(map[string]interface{}{  
946 - "transactionContext": transactionContext,  
947 - }); err != nil {  
948 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
949 - }  
950 - var (  
951 - orderData *domain.OrderBase  
952 - orderGoods []domain.OrderGood  
953 - orderBestshopData *domain.OrderBestShop  
954 - orderGoodBestshop []domain.OrderGoodBestShop  
955 - orderLogs []domain.OrderLog  
956 - partnerInfo *domain.PartnerInfo  
957 - )  
958 -  
959 - orderData, err = orderBaseRepository.FindOne(domain.OrderBaseFindOneQuery{  
960 - OrderId: orderBaseId,  
961 - CompanyId: companyId,  
962 - })  
963 - if err != nil {  
964 - e := fmt.Sprintf("获取订单(order_base)数据失败,id=%d,company_id=%d,err=%s", orderBaseId, companyId, err)  
965 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)  
966 - }  
967 - if orderData.OrderType != domain.OrderTypeBestShop {  
968 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, "获取的订单数据失败,OrderType err")  
969 - }  
970 - orderGoods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{OrderId: orderData.Id})  
971 - if err != nil {  
972 - e := fmt.Sprintf("获取订单的商品(order_good)数据失败,order_id=%d,err=%s", orderData.Id, err)  
973 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)  
974 - }  
975 - orderData.Goods = orderGoods  
976 - partnerInfo, err = partnerRepository.FindOne(domain.PartnerFindOneQuery{UserId: orderData.PartnerId})  
977 - if err != nil {  
978 - e := fmt.Sprintf("获取订单中的合伙人(partner)数据失败,id=%d,order_id=%d,err=%s", orderData.PartnerId, orderData.Id, err)  
979 - logs.Error(e)  
980 - }  
981 - orderData.PartnerInfo = partnerInfo.Partner  
982 - orderBestshopData, err = orderBestshopRepository.FindOne(domain.OrderBestshopFindOneQuery{OrderId: orderData.DataFrom.DataId})  
983 - if err != nil {  
984 - e := fmt.Sprintf("获取xiangmi订单(order_bestshop)数据失败,id=%d,err=%s", orderData.DataFrom.DataId, err)  
985 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)  
986 - }  
987 - orderGoodBestshop, err = orderGoodBestshopRepository.Find(domain.OrderGoodBestshopFindQuery{OrderId: orderBestshopData.Id})  
988 - if err != nil {  
989 - e := fmt.Sprintf("获取xiangmi订单货品(order_good_bestshop)数据失败,order_id=%d,err=%s", orderBestshopData.Id, err)  
990 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)  
991 - }  
992 - orderBestshopData.Goods = orderGoodBestshop  
993 - orderLogs, err = orderLogRepository.Find(domain.OrderLogFindQuery{OrderId: orderData.Id})  
994 - if err != nil {  
995 - e := fmt.Sprintf("获取订单的修改记录(order_log)失败,err=%s", err)  
996 - logs.Error(e)  
997 - }  
998 - err = transactionContext.CommitTransaction()  
999 - if err != nil {  
1000 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
1001 - }  
1002 - result := service.buildOrderBestshopInfoData(orderData, orderBestshopData, orderLogs)  
1003 - return result, nil  
1004 -}  
1005 -  
1006 -//BuildOrderBestshopInfoData 构建前端需要的数据结构  
1007 -func (service OrderInfoService) buildOrderBestshopInfoData(orderBase *domain.OrderBase,  
1008 - orderBestshop *domain.OrderBestShop, orderLogs []domain.OrderLog) interface{} {  
1009 - orderGoodBestshopMap := map[int64]*domain.OrderGoodBestShop{}  
1010 - for i := range orderBestshop.Goods {  
1011 - goodid := orderBestshop.Goods[i].Id  
1012 - orderGoodBestshopMap[goodid] = &orderBestshop.Goods[i]  
1013 - }  
1014 - //订单中的商品  
1015 - productDetail := []map[string]interface{}{}  
1016 - var hasPartnerBonusPercent bool  
1017 - for i := range orderBase.Goods {  
1018 - detail := map[string]interface{}{  
1019 - "commodityName": orderBase.Goods[i].GoodName,  
1020 - "productCodes": "",  
1021 - "commodityCode": "",  
1022 - "univalence": orderBase.Goods[i].Price,  
1023 - "orderNum": orderBase.Goods[i].GetCurrentGoodNumber(),  
1024 - "commodityPrice": orderBase.Goods[i].GetCurrentAmount(),  
1025 - "partnerDividends": "",  
1026 - "productId": orderBase.Goods[i].Id,  
1027 - "paymentStatus": orderBase.Goods[i].BonusStatus,  
1028 - "partnerRatio": orderBase.Goods[i].PartnerBonusPercent,  
1029 - }  
1030 - if orderBase.Goods[i].PartnerBonusPercent >= 0 {  
1031 - hasPartnerBonusPercent = true  
1032 - detail["partnerDividends"] = fmt.Sprint(orderBase.Goods[i].GetCurrentPartnerBonus())  
1033 - }  
1034 - goodBestshopId := orderBase.Goods[i].DataFrom.DataId  
1035 - if v, ok := orderGoodBestshopMap[goodBestshopId]; ok {  
1036 - detail["productCodes"] = v.Sn  
1037 - detail["commodityCode"] = v.Bn  
1038 - }  
1039 - productDetail = append(productDetail, detail)  
1040 - }  
1041 - product := map[string]interface{}{  
1042 - "orderNumCount": orderBase.GetCurrentOrderCount(),  
1043 - "partnerDividendsCount": "",  
1044 - "orderAmountAdjustmentCount": orderBase.GetCurrentOrderAmount(),  
1045 - "detail": productDetail,  
1046 - }  
1047 - if hasPartnerBonusPercent {  
1048 - product["partnerDividendsCount"] = fmt.Sprint(orderBase.GetCurrentPartnerBonus())  
1049 - }  
1050 - //订单描述  
1051 - order := map[string]interface{}{  
1052 - "orderId": orderBase.Id,  
1053 - "orderState": orderBestshop.OrderState,  
1054 - "customers": orderBestshop.BuyerName,  
1055 - "address": orderBestshop.BuyerAddress,  
1056 - "remarks": orderBestshop.BuyerRemark,  
1057 - "partner": orderBase.PartnerInfo.PartnerName,  
1058 - "phone": orderBestshop.BuyerPhone,  
1059 - "orderTime": orderBestshop.OrderTime,  
1060 - "shippingStatus": orderBestshop.DeliveryState,  
1061 - "partnerDividends": "",  
1062 - "receivedDividends": "",  
1063 - "notReceivedDividend": "",  
1064 - "dividendSpending": "",  
1065 - "orderNumber": orderBase.OrderCode,  
1066 - }  
1067 - if hasPartnerBonusPercent {  
1068 - order["partnerDividends"] = fmt.Sprint(orderBase.GetCurrentPartnerBonus())  
1069 - order["receivedDividends"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusHas)  
1070 - order["notReceivedDividend"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusNot)  
1071 - order["dividendSpending"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusExpense)  
1072 - }  
1073 - modifyLog := []map[string]interface{}{}  
1074 - for i := range orderLogs {  
1075 - m := map[string]interface{}{  
1076 - "title": orderLogs[i].LogAction,  
1077 - "time": orderLogs[i].AlterTime.Local().Format("2006-01-02 15:04:05"),  
1078 - "userName": orderLogs[i].Operator,  
1079 - "id": orderLogs[i].Id,  
1080 - }  
1081 - detail := []map[string]string{}  
1082 - for ii, vv := range orderLogs[i].Descript {  
1083 - d := map[string]string{  
1084 - "updateTitle": vv.Title,  
1085 - "id": fmt.Sprint(ii),  
1086 - "content": vv.Item,  
1087 - }  
1088 - if len(vv.Action) > 0 {  
1089 - d["content"] = vv.Item + ":" + strings.Join(vv.Action, ";")  
1090 - }  
1091 - detail = append(detail, d)  
1092 - }  
1093 - m["updateList"] = detail  
1094 - modifyLog = append(modifyLog, m)  
1095 - }  
1096 -  
1097 - result := map[string]interface{}{  
1098 - "order": order,  
1099 - "product": product,  
1100 - "modify": modifyLog,  
1101 - "remark": orderBase.Remark.RemarkBonus,  
1102 - }  
1103 - return result  
1104 -}  
1105 -  
1106 -//UpdateBounsWithGoodNumber 分红时,因修改订单中商品的数量发生分红变动  
1107 -func (service OrderInfoService) UpdateBonusByGoodNumber(orderId int64, goodId int64, adminId int64, goodNumber int, reason string) error {  
1108 - var (  
1109 - transactionContext, _ = factory.CreateTransactionContext(nil)  
1110 - err error  
1111 - )  
1112 - if err = transactionContext.StartTransaction(); err != nil {  
1113 - return lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())  
1114 - }  
1115 - defer func() {  
1116 - transactionContext.RollbackTransaction()  
1117 - }()  
1118 - var (  
1119 - orderBonuSrv domainService.OrderBonusService  
1120 - )  
1121 - orderBonuSrv, err = factory.CreateOrderBonusService(map[string]interface{}{  
1122 - "transactionContext": transactionContext,  
1123 - })  
1124 - if err != nil {  
1125 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
1126 - }  
1127 - orderBonuSrv.Subscribe(&subscriber.OrderLogSubscriber{  
1128 - TransactionContext: transactionContext.(*transaction.TransactionContext),  
1129 - })  
1130 - err = orderBonuSrv.UpdateBounsByGoodNumber(orderId, adminId, goodId, goodNumber, reason)  
1131 - if err != nil {  
1132 - return err  
1133 - }  
1134 - err = transactionContext.CommitTransaction()  
1135 - if err != nil {  
1136 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
1137 - }  
1138 - return nil  
1139 -}  
1140 -  
1141 -//UpdateBounsByPartnerBonusPercent 分红时,因修改订单中商品的合伙人分行比例发生分红变动  
1142 -func (service OrderInfoService) UpdateBonusByPartnerBonusPercent(orderId int64, goodId int64, adminId int64, percent float64, reason string) error {  
1143 - var (  
1144 - transactionContext, _ = factory.CreateTransactionContext(nil)  
1145 - err error  
1146 - )  
1147 - if err = transactionContext.StartTransaction(); err != nil {  
1148 - return lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())  
1149 - }  
1150 - defer func() {  
1151 - transactionContext.RollbackTransaction()  
1152 - }()  
1153 - var (  
1154 - orderBonuSrv domainService.OrderBonusService  
1155 - )  
1156 - orderBonuSrv, err = factory.CreateOrderBonusService(map[string]interface{}{  
1157 - "transactionContext": transactionContext,  
1158 - })  
1159 - if err != nil {  
1160 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
1161 - }  
1162 - orderBonuSrv.Subscribe(&subscriber.OrderLogSubscriber{  
1163 - TransactionContext: transactionContext.(*transaction.TransactionContext),  
1164 - })  
1165 - err = orderBonuSrv.UpdateBounsByPartnerBonusPercent(orderId, adminId, goodId, percent, reason)  
1166 - if err != nil {  
1167 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
1168 - }  
1169 - err = transactionContext.CommitTransaction()  
1170 - if err != nil {  
1171 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
1172 - }  
1173 - return nil  
1174 -}  
1175 -  
1176 -//PayPartnerBonusWithOrderBestshop 支付分红,海鲜干货的订单 (orderType=domain.OrderTypeBestShop)  
1177 -func (service OrderInfoService) PayPartnerBonusWithOrderBestshop(orderId int64, goodId int64, adminId int64) error { 703 +//PayPartnerBonusWithOrderBestshop 支付分红
  704 +func (service OrderInfoService) PayPartnerBonus(orderId int64, goodId int64, adminId int64) error {
1178 var ( 705 var (
1179 transactionContext, _ = factory.CreateTransactionContext(nil) 706 transactionContext, _ = factory.CreateTransactionContext(nil)
1180 err error 707 err error
@@ -1208,7 +735,7 @@ func (service OrderInfoService) PayPartnerBonusWithOrderBestshop(orderId int64, @@ -1208,7 +735,7 @@ func (service OrderInfoService) PayPartnerBonusWithOrderBestshop(orderId int64,
1208 return nil 735 return nil
1209 } 736 }
1210 737
1211 -//PayPartnerBonusWithOrderBestshop 支付分红,海鲜干货的订单 (orderType=domain.OrderTypeBestShop) 738 +//UpdateOrderRemarkBonus 订单分红详情,更新备注
1212 func (service OrderInfoService) UpdateOrderRemarkBonus(orderId int64, adminId int64, remark string) error { 739 func (service OrderInfoService) UpdateOrderRemarkBonus(orderId int64, adminId int64, remark string) error {
1213 var ( 740 var (
1214 transactionContext, _ = factory.CreateTransactionContext(nil) 741 transactionContext, _ = factory.CreateTransactionContext(nil)
@@ -1268,6 +795,7 @@ func (service OrderInfoService) ListOrderBonusForExcel(listOrderQuery query.List @@ -1268,6 +795,7 @@ func (service OrderInfoService) ListOrderBonusForExcel(listOrderQuery query.List
1268 listOrderQuery.OrderType, 795 listOrderQuery.OrderType,
1269 listOrderQuery.PartnerOrCode, 796 listOrderQuery.PartnerOrCode,
1270 listOrderQuery.PartnerCategory, 797 listOrderQuery.PartnerCategory,
  798 + [2]string{listOrderQuery.CreateTimeBegin, listOrderQuery.CreateTimeEnd},
1271 ) 799 )
1272 if err != nil { 800 if err != nil {
1273 return nil, nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) 801 return nil, nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
@@ -1287,10 +815,14 @@ func (service OrderInfoService) ListOrderBonusForExcel(listOrderQuery query.List @@ -1287,10 +815,14 @@ func (service OrderInfoService) ListOrderBonusForExcel(listOrderQuery query.List
1287 "partner_name": result[i].PartnerName, 815 "partner_name": result[i].PartnerName,
1288 "bonus_status": "", 816 "bonus_status": "",
1289 "update_time": result[i].UpdateTime, 817 "update_time": result[i].UpdateTime,
1290 - "partner_bonus": fmt.Sprint(result[i].PartnerBonus),  
1291 - "partner_bonus_has": fmt.Sprint(result[i].PartnerBonusHas),  
1292 - "partner_bonus_not": fmt.Sprint(result[i].PartnerBonusNot),  
1293 - "partner_bonus_expense": fmt.Sprint(result[i].PartnerBonusExpense), 818 + "create_time": result[i].CreateTime,
  819 + "partner_bonus": fmt.Sprintf("%10.2f", result[i].PartnerBonus),
  820 + "partner_bonus_has": fmt.Sprintf("%10.2f", result[i].PartnerBonusHas),
  821 + "partner_bonus_not": fmt.Sprintf("%10.2f", result[i].PartnerBonusNot),
  822 + "partner_bonus_expense": fmt.Sprintf("%10.2f", result[i].PartnerBonusExpense),
  823 + }
  824 + if len(result[i].DeliveryCode) == 0 {
  825 + m["delivery_code"] = "-"
1294 } 826 }
1295 if result[i].HasBonusPercent == 0 { 827 if result[i].HasBonusPercent == 0 {
1296 m["partner_bonus"] = "-" 828 m["partner_bonus"] = "-"
@@ -1313,7 +845,7 @@ func (service OrderInfoService) ListOrderBonusForExcel(listOrderQuery query.List @@ -1313,7 +845,7 @@ func (service OrderInfoService) ListOrderBonusForExcel(listOrderQuery query.List
1313 [2]string{"delivery_code", "发货单号"}, 845 [2]string{"delivery_code", "发货单号"},
1314 [2]string{"partner_name", "合伙人"}, 846 [2]string{"partner_name", "合伙人"},
1315 [2]string{"bonus_status", "支付状态"}, 847 [2]string{"bonus_status", "支付状态"},
1316 - [2]string{"update_time", "最后操作时间"}, 848 + [2]string{"create_time", "创建时间"},
1317 [2]string{"partner_bonus", "应收分红"}, 849 [2]string{"partner_bonus", "应收分红"},
1318 [2]string{"partner_bonus_has", "已收分红"}, 850 [2]string{"partner_bonus_has", "已收分红"},
1319 [2]string{"partner_bonus_not", "未收分红"}, 851 [2]string{"partner_bonus_not", "未收分红"},
@@ -1321,3 +853,80 @@ func (service OrderInfoService) ListOrderBonusForExcel(listOrderQuery query.List @@ -1321,3 +853,80 @@ func (service OrderInfoService) ListOrderBonusForExcel(listOrderQuery query.List
1321 } 853 }
1322 return resultMaps, column, nil 854 return resultMaps, column, nil
1323 } 855 }
  856 +
  857 +func (service OrderInfoService) ListOrderForExcel(listOrderQuery query.ListOrderBaseQuery) ([]map[string]string, [][2]string, error) {
  858 + transactionContext, err := factory.CreateTransactionContext(nil)
  859 + if err != nil {
  860 + return nil, nil, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
  861 + }
  862 + if err = transactionContext.StartTransaction(); err != nil {
  863 + return nil, nil, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
  864 + }
  865 + defer func() {
  866 + transactionContext.RollbackTransaction()
  867 + }()
  868 + var (
  869 + orderBaseDao *dao.OrderBaseDao
  870 + )
  871 +
  872 + if orderBaseDao, err = factory.CreateOrderBaseDao(map[string]interface{}{
  873 + "transactionContext": transactionContext,
  874 + }); err != nil {
  875 + return nil, nil, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
  876 + }
  877 + ordersData, err := orderBaseDao.OrderListForExcel(
  878 + listOrderQuery.CompanyId,
  879 + listOrderQuery.PartnerOrCode,
  880 + [2]string{listOrderQuery.UpdateTimeBegin, listOrderQuery.UpdateTimeEnd},
  881 + [2]string{listOrderQuery.CreateTimeBegin, listOrderQuery.CreateTimeEnd},
  882 + listOrderQuery.PartnerCategory,
  883 + )
  884 + if err != nil {
  885 + return nil, nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  886 + }
  887 + err = transactionContext.CommitTransaction()
  888 + if err != nil {
  889 + return nil, nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  890 + }
  891 + var resultMaps []map[string]string
  892 + for i := range ordersData {
  893 + m := map[string]string{
  894 + "num": fmt.Sprint(i + 1),
  895 + "order_code": ordersData[i].OrderCode,
  896 + "delivery_code": ordersData[i].DeliveryCode,
  897 + "partner_name": ordersData[i].PartnerName,
  898 + "update_time": ordersData[i].UpdateTime,
  899 + "create_time": ordersData[i].CreateTime,
  900 + "plan_order_count": fmt.Sprint(ordersData[i].PlanOrderCount),
  901 + "use_order_count": "",
  902 + "region_name": fmt.Sprint(ordersData[i].RegionName),
  903 + "plan_order_amount": fmt.Sprintf("%10.2f", ordersData[i].PlanOrderAmount),
  904 + "use_order_amount": "",
  905 + "partner_category": ordersData[i].PartnerCategory,
  906 + "buyer_name": ordersData[i].BuyerName,
  907 + }
  908 + if ordersData[i].UseOrderCount >= 0 {
  909 + m["use_order_count"] = fmt.Sprint(ordersData[i].UseOrderCount)
  910 + }
  911 + if ordersData[i].UseOrderAmount >= 0 {
  912 + m["use_order_amount"] = fmt.Sprintf("%10.2f", ordersData[i].UseOrderAmount)
  913 + }
  914 + resultMaps = append(resultMaps, m)
  915 + }
  916 + column := [][2]string{
  917 + [2]string{"num", "序号"},
  918 + [2]string{"order_code", "订单号"},
  919 + [2]string{"delivery_code", "发货单号"},
  920 + [2]string{"create_time", "创建时间"},
  921 + [2]string{"update_time", "更新时间"},
  922 + [2]string{"plan_order_count", "订单数量"},
  923 + [2]string{"use_order_count", "数量调整"},
  924 + [2]string{"plan_order_amount", "订单金额"},
  925 + [2]string{"use_order_amount", "金额调整"},
  926 + [2]string{"region_name", "订单区域"},
  927 + [2]string{"partner_category", "合伙人类型"},
  928 + [2]string{"buyer_name", "客户"},
  929 + [2]string{"partner_name", "合伙人"},
  930 + }
  931 + return resultMaps, column, nil
  932 +}
  1 +package service
  2 +
  3 +import (
  4 + "fmt"
  5 + "strings"
  6 +
  7 + "github.com/astaxie/beego/logs"
  8 + "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/event/subscriber"
  9 + "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/factory"
  10 + "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
  11 + domainService "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain/service"
  12 + "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/transaction"
  13 + "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/lib"
  14 +)
  15 +
  16 +//GetOrderInfoWithBonus 获取订单的分红详情
  17 +func (service OrderInfoService) GetOrderInfoWithBonus(orderBaseId int64, companyId int64) (interface{}, error) {
  18 + var err error
  19 + transactionContext, err := factory.CreateTransactionContext(nil)
  20 + if err != nil {
  21 + return nil, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
  22 + }
  23 + if err = transactionContext.StartTransaction(); err != nil {
  24 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  25 + }
  26 + defer func() {
  27 + transactionContext.RollbackTransaction()
  28 + }()
  29 + var (
  30 + orderBaseRepository domain.OrderBaseRepository
  31 + order *domain.OrderBase
  32 + )
  33 + if orderBaseRepository, err = factory.CreateOrderBaseRepository(map[string]interface{}{
  34 + "transactionContext": transactionContext,
  35 + }); err != nil {
  36 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  37 + }
  38 + order, err = orderBaseRepository.FindOne(domain.OrderBaseFindOneQuery{
  39 + OrderId: orderBaseId,
  40 + CompanyId: companyId,
  41 + })
  42 + if err != nil {
  43 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取订单数据失败:%s", err))
  44 + }
  45 + _ = transactionContext.CommitTransaction()
  46 + var (
  47 + returnData interface{}
  48 + )
  49 + switch order.OrderType {
  50 + case domain.OrderReal:
  51 + returnData, err = service.GetOrderBaseDetailWithBonus(orderBaseId, companyId)
  52 + case domain.OrderTypeBestShop:
  53 + returnData, err = service.GetOrderBestshopInfoWithBonus(orderBaseId, companyId)
  54 + }
  55 + return returnData, err
  56 +}
  57 +
  58 +//GetOrderBaseDetailWithBonus 获取实际订单分红详情
  59 +func (service OrderInfoService) GetOrderBaseDetailWithBonus(orderBaseId int64, companyId int64) (interface{}, error) {
  60 + //实际业务
  61 + transactionContext, err := factory.CreateTransactionContext(nil)
  62 + if err != nil {
  63 + return nil, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
  64 + }
  65 + var (
  66 + orderBaseRepository domain.OrderBaseRepository
  67 + partnerInfoRepository domain.PartnerInfoRepository
  68 + orderGoodRepository domain.OrderGoodRepository
  69 + orderLogRepository domain.OrderLogRepository
  70 + order *domain.OrderBase
  71 + )
  72 + if err = transactionContext.StartTransaction(); err != nil {
  73 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  74 + }
  75 + defer func() {
  76 + transactionContext.RollbackTransaction()
  77 + }()
  78 + if orderBaseRepository, err = factory.CreateOrderBaseRepository(map[string]interface{}{
  79 + "transactionContext": transactionContext,
  80 + }); err != nil {
  81 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  82 + }
  83 + if orderLogRepository, err = factory.CreateOrderLogRepository(map[string]interface{}{
  84 + "transactionContext": transactionContext,
  85 + }); err != nil {
  86 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  87 + }
  88 + if partnerInfoRepository, err = factory.CreatePartnerInfoRepository(map[string]interface{}{
  89 + "transactionContext": transactionContext,
  90 + }); err != nil {
  91 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  92 + }
  93 + if orderGoodRepository, err = factory.CreateOrderGoodRepository(map[string]interface{}{
  94 + "transactionContext": transactionContext,
  95 + }); err != nil {
  96 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  97 + }
  98 + order, err = orderBaseRepository.FindOne(domain.OrderBaseFindOneQuery{
  99 + OrderId: orderBaseId,
  100 + CompanyId: companyId,
  101 + })
  102 + if err != nil {
  103 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取订单数据失败:%s", err))
  104 + }
  105 + var (
  106 + partnerData *domain.PartnerInfo
  107 + goods []domain.OrderGood
  108 + orderLogs []domain.OrderLog
  109 + )
  110 +
  111 + partnerData, err = partnerInfoRepository.FindOne(domain.PartnerFindOneQuery{
  112 + UserId: order.PartnerId,
  113 + CompanyId: companyId,
  114 + })
  115 + if err != nil {
  116 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("检索合伙人数据失败:%s", err))
  117 + }
  118 + order.PartnerInfo = partnerData.Partner
  119 + goods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{
  120 + OrderId: order.Id,
  121 + CompanyId: companyId,
  122 + })
  123 + if err != nil {
  124 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, fmt.Sprintf("获取订单中的商品列表失败:%s", err))
  125 + }
  126 + order.Goods = goods
  127 + orderLogs, err = orderLogRepository.Find(domain.OrderLogFindQuery{OrderId: order.Id})
  128 + if err != nil {
  129 + e := fmt.Sprintf("获取订单的修改记录(order_log)失败,err=%s", err)
  130 + logs.Error(e)
  131 + }
  132 + err = transactionContext.CommitTransaction()
  133 + if err != nil {
  134 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  135 + }
  136 + result := service.buildOrderBaseInfoData(order, orderLogs)
  137 + return result, nil
  138 +}
  139 +
  140 +//BuildOrderBestshopInfoData 构建前端需要的数据结构
  141 +func (service OrderInfoService) buildOrderBaseInfoData(orderBase *domain.OrderBase, orderLogs []domain.OrderLog) interface{} {
  142 + //订单中的商品
  143 + productDetail := []map[string]interface{}{}
  144 + var hasPartnerBonusPercent bool
  145 + for i := range orderBase.Goods {
  146 + detail := map[string]interface{}{
  147 + "commodityName": orderBase.Goods[i].GoodName,
  148 + "productCodes": "",
  149 + "commodityCode": "",
  150 + "univalence": orderBase.Goods[i].Price,
  151 + "orderNum": orderBase.Goods[i].GetCurrentGoodNumber(),
  152 + "commodityPrice": orderBase.Goods[i].GetCurrentAmount(),
  153 + "partnerDividends": "",
  154 + "productId": orderBase.Goods[i].Id,
  155 + "paymentStatus": orderBase.Goods[i].BonusStatus,
  156 + "partnerRatio": orderBase.Goods[i].PartnerBonusPercent,
  157 + }
  158 + if orderBase.Goods[i].PartnerBonusPercent >= 0 {
  159 + hasPartnerBonusPercent = true
  160 + detail["partnerDividends"] = fmt.Sprint(orderBase.Goods[i].GetCurrentPartnerBonus())
  161 + }
  162 + productDetail = append(productDetail, detail)
  163 + }
  164 + product := map[string]interface{}{
  165 + "orderNumCount": orderBase.GetCurrentOrderCount(),
  166 + "partnerDividendsCount": "",
  167 + "orderAmountAdjustmentCount": orderBase.GetCurrentOrderAmount(),
  168 + "detail": productDetail,
  169 + }
  170 + if hasPartnerBonusPercent {
  171 + product["partnerDividendsCount"] = fmt.Sprint(orderBase.GetCurrentPartnerBonus())
  172 + }
  173 + //订单描述
  174 + order := map[string]interface{}{
  175 + "orderId": fmt.Sprint(orderBase.Id),
  176 + "orderType": orderBase.OrderType,
  177 + "orderTypeName": domain.GetOrderBaseTypeName(orderBase.OrderType),
  178 + "orderState": "",
  179 + "customers": orderBase.Buyer.BuyerName,
  180 + "address": "",
  181 + "remarks": "",
  182 + "partner": orderBase.PartnerInfo.PartnerName,
  183 + "phone": "",
  184 + "orderTime": "",
  185 + "shippingStatus": "",
  186 + "partnerDividends": "",
  187 + "receivedDividends": "",
  188 + "notReceivedDividend": "",
  189 + "dividendSpending": "",
  190 + "orderNumber": orderBase.OrderCode,
  191 + "shipmentsId": orderBase.DeliveryCode,
  192 + "orderArea": orderBase.RegionInfo.RegionName,
  193 + "partnerCategory": orderBase.PartnerCategory.Name,
  194 + }
  195 + if hasPartnerBonusPercent {
  196 + order["partnerDividends"] = fmt.Sprint(orderBase.GetCurrentPartnerBonus())
  197 + order["receivedDividends"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusHas)
  198 + order["notReceivedDividend"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusNot)
  199 + order["dividendSpending"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusExpense)
  200 + }
  201 + modifyLog := []map[string]interface{}{}
  202 + for i := range orderLogs {
  203 + m := map[string]interface{}{
  204 + "title": orderLogs[i].LogAction,
  205 + "time": orderLogs[i].AlterTime.Local().Format("2006-01-02 15:04:05"),
  206 + "userName": orderLogs[i].Operator,
  207 + "id": orderLogs[i].Id,
  208 + }
  209 + detail := []map[string]string{}
  210 + for ii, vv := range orderLogs[i].Descript {
  211 + d := map[string]string{
  212 + "updateTitle": vv.Title,
  213 + "id": fmt.Sprint(ii),
  214 + "content": vv.Item,
  215 + }
  216 + if len(vv.Action) > 0 {
  217 + d["content"] = vv.Item + ":" + strings.Join(vv.Action, ";")
  218 + }
  219 + detail = append(detail, d)
  220 + }
  221 + m["updateList"] = detail
  222 + modifyLog = append(modifyLog, m)
  223 + }
  224 +
  225 + result := map[string]interface{}{
  226 + "order": order,
  227 + "product": product,
  228 + "modify": modifyLog,
  229 + "remark": orderBase.Remark.RemarkBonus,
  230 + }
  231 + return result
  232 +}
  233 +
  234 +//GetOrderBestshopInfo 获取来源于xiangmi订单的详情以及分红数据
  235 +func (service OrderInfoService) GetOrderBestshopInfoWithBonus(orderBaseId int64, companyId int64) (interface{}, error) {
  236 + var (
  237 + transactionContext, _ = factory.CreateTransactionContext(nil)
  238 + err error
  239 + )
  240 + if err = transactionContext.StartTransaction(); err != nil {
  241 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  242 + }
  243 + defer func() {
  244 + transactionContext.RollbackTransaction()
  245 + }()
  246 + var (
  247 + orderBaseRepository domain.OrderBaseRepository
  248 + orderGoodRepository domain.OrderGoodRepository
  249 + orderBestshopRepository domain.OrderBestshopRepository
  250 + orderGoodBestshopRepository domain.OrderGoodBestshopRepository
  251 + orderLogRepository domain.OrderLogRepository
  252 + partnerRepository domain.PartnerInfoRepository
  253 + )
  254 + if orderBaseRepository, err = factory.CreateOrderBaseRepository(map[string]interface{}{
  255 + "transactionContext": transactionContext,
  256 + }); err != nil {
  257 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  258 + }
  259 + if orderGoodRepository, err = factory.CreateOrderGoodRepository(map[string]interface{}{
  260 + "transactionContext": transactionContext,
  261 + }); err != nil {
  262 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  263 + }
  264 + if orderBestshopRepository, err = factory.CreateOrderBestshopRepository(map[string]interface{}{
  265 + "transactionContext": transactionContext,
  266 + }); err != nil {
  267 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  268 + }
  269 + if orderGoodBestshopRepository, err = factory.CreateOrderGoodBestshopRepository(map[string]interface{}{
  270 + "transactionContext": transactionContext,
  271 + }); err != nil {
  272 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  273 + }
  274 + if orderLogRepository, err = factory.CreateOrderLogRepository(map[string]interface{}{
  275 + "transactionContext": transactionContext,
  276 + }); err != nil {
  277 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  278 + }
  279 + if partnerRepository, err = factory.CreatePartnerInfoRepository(map[string]interface{}{
  280 + "transactionContext": transactionContext,
  281 + }); err != nil {
  282 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  283 + }
  284 + var (
  285 + orderData *domain.OrderBase
  286 + orderGoods []domain.OrderGood
  287 + orderBestshopData *domain.OrderBestShop
  288 + orderGoodBestshop []domain.OrderGoodBestShop
  289 + orderLogs []domain.OrderLog
  290 + partnerInfo *domain.PartnerInfo
  291 + )
  292 +
  293 + orderData, err = orderBaseRepository.FindOne(domain.OrderBaseFindOneQuery{
  294 + OrderId: orderBaseId,
  295 + CompanyId: companyId,
  296 + })
  297 + if err != nil {
  298 + e := fmt.Sprintf("获取订单(order_base)数据失败,id=%d,company_id=%d,err=%s", orderBaseId, companyId, err)
  299 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
  300 + }
  301 + if orderData.OrderType != domain.OrderTypeBestShop {
  302 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, "获取的订单数据失败,OrderType err")
  303 + }
  304 + orderGoods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{OrderId: orderData.Id})
  305 + if err != nil {
  306 + e := fmt.Sprintf("获取订单的商品(order_good)数据失败,order_id=%d,err=%s", orderData.Id, err)
  307 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
  308 + }
  309 + orderData.Goods = orderGoods
  310 + partnerInfo, err = partnerRepository.FindOne(domain.PartnerFindOneQuery{UserId: orderData.PartnerId})
  311 + if err != nil {
  312 + e := fmt.Sprintf("获取订单中的合伙人(partner)数据失败,id=%d,order_id=%d,err=%s", orderData.PartnerId, orderData.Id, err)
  313 + logs.Error(e)
  314 + }
  315 + orderData.PartnerInfo = partnerInfo.Partner
  316 + orderBestshopData, err = orderBestshopRepository.FindOne(domain.OrderBestshopFindOneQuery{OrderId: orderData.DataFrom.DataId})
  317 + if err != nil {
  318 + e := fmt.Sprintf("获取xiangmi订单(order_bestshop)数据失败,id=%d,err=%s", orderData.DataFrom.DataId, err)
  319 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
  320 + }
  321 + orderGoodBestshop, err = orderGoodBestshopRepository.Find(domain.OrderGoodBestshopFindQuery{OrderId: orderBestshopData.Id})
  322 + if err != nil {
  323 + e := fmt.Sprintf("获取xiangmi订单货品(order_good_bestshop)数据失败,order_id=%d,err=%s", orderBestshopData.Id, err)
  324 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
  325 + }
  326 + orderBestshopData.Goods = orderGoodBestshop
  327 + orderLogs, err = orderLogRepository.Find(domain.OrderLogFindQuery{OrderId: orderData.Id})
  328 + if err != nil {
  329 + e := fmt.Sprintf("获取订单的修改记录(order_log)失败,err=%s", err)
  330 + logs.Error(e)
  331 + }
  332 + err = transactionContext.CommitTransaction()
  333 + if err != nil {
  334 + return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  335 + }
  336 + result := service.buildOrderBestshopInfoData(orderData, orderBestshopData, orderLogs)
  337 + return result, nil
  338 +
  339 +}
  340 +
  341 +//BuildOrderBestshopInfoData 构建前端需要的数据结构
  342 +func (service OrderInfoService) buildOrderBestshopInfoData(orderBase *domain.OrderBase,
  343 + orderBestshop *domain.OrderBestShop, orderLogs []domain.OrderLog) interface{} {
  344 + orderGoodBestshopMap := map[int64]*domain.OrderGoodBestShop{}
  345 + for i := range orderBestshop.Goods {
  346 + goodid := orderBestshop.Goods[i].Id
  347 + orderGoodBestshopMap[goodid] = &orderBestshop.Goods[i]
  348 + }
  349 + //订单中的商品
  350 + productDetail := []map[string]interface{}{}
  351 + var hasPartnerBonusPercent bool
  352 + for i := range orderBase.Goods {
  353 + detail := map[string]interface{}{
  354 + "commodityName": orderBase.Goods[i].GoodName,
  355 + "productCodes": "",
  356 + "commodityCode": "",
  357 + "univalence": orderBase.Goods[i].Price,
  358 + "orderNum": orderBase.Goods[i].GetCurrentGoodNumber(),
  359 + "commodityPrice": orderBase.Goods[i].GetCurrentAmount(),
  360 + "partnerDividends": "",
  361 + "productId": orderBase.Goods[i].Id,
  362 + "paymentStatus": orderBase.Goods[i].BonusStatus,
  363 + "partnerRatio": orderBase.Goods[i].PartnerBonusPercent,
  364 + }
  365 + if orderBase.Goods[i].PartnerBonusPercent >= 0 {
  366 + hasPartnerBonusPercent = true
  367 + detail["partnerDividends"] = fmt.Sprint(orderBase.Goods[i].GetCurrentPartnerBonus())
  368 + }
  369 + goodBestshopId := orderBase.Goods[i].DataFrom.DataId
  370 + if v, ok := orderGoodBestshopMap[goodBestshopId]; ok {
  371 + detail["productCodes"] = v.Sn
  372 + detail["commodityCode"] = v.Bn
  373 + }
  374 + productDetail = append(productDetail, detail)
  375 + }
  376 + product := map[string]interface{}{
  377 + "orderNumCount": orderBase.GetCurrentOrderCount(),
  378 + "partnerDividendsCount": "",
  379 + "orderAmountAdjustmentCount": orderBase.GetCurrentOrderAmount(),
  380 + "detail": productDetail,
  381 + }
  382 + if hasPartnerBonusPercent {
  383 + product["partnerDividendsCount"] = fmt.Sprint(orderBase.GetCurrentPartnerBonus())
  384 + }
  385 + //订单描述
  386 + order := map[string]interface{}{
  387 + "orderId": fmt.Sprint(orderBase.Id),
  388 + "orderType": orderBase.OrderType,
  389 + "orderTypeName": domain.GetOrderBaseTypeName(orderBase.OrderType),
  390 + "orderState": orderBestshop.OrderState,
  391 + "customers": orderBase.Buyer.BuyerName,
  392 + "address": orderBestshop.BuyerAddress,
  393 + "remarks": orderBestshop.BuyerRemark,
  394 + "partner": orderBase.PartnerInfo.PartnerName,
  395 + "phone": orderBestshop.BuyerPhone,
  396 + "orderTime": orderBestshop.OrderTime,
  397 + "shippingStatus": orderBestshop.DeliveryState,
  398 + "partnerDividends": "",
  399 + "receivedDividends": "",
  400 + "notReceivedDividend": "",
  401 + "dividendSpending": "",
  402 + "orderNumber": orderBase.OrderCode,
  403 + "orderArea": orderBase.RegionInfo.RegionName,
  404 + "partnerCategory": orderBase.PartnerCategory.Name,
  405 + "shipmentsId": orderBase.DeliveryCode,
  406 + }
  407 + if hasPartnerBonusPercent {
  408 + order["partnerDividends"] = fmt.Sprint(orderBase.GetCurrentPartnerBonus())
  409 + order["receivedDividends"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusHas)
  410 + order["notReceivedDividend"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusNot)
  411 + order["dividendSpending"] = fmt.Sprint(orderBase.OrderCompute.PartnerBonusExpense)
  412 + }
  413 + modifyLog := []map[string]interface{}{}
  414 + for i := range orderLogs {
  415 + m := map[string]interface{}{
  416 + "title": orderLogs[i].LogAction,
  417 + "time": orderLogs[i].AlterTime.Local().Format("2006-01-02 15:04:05"),
  418 + "userName": orderLogs[i].Operator,
  419 + "id": orderLogs[i].Id,
  420 + }
  421 + detail := []map[string]string{}
  422 + for ii, vv := range orderLogs[i].Descript {
  423 + d := map[string]string{
  424 + "updateTitle": vv.Title,
  425 + "id": fmt.Sprint(ii),
  426 + "content": vv.Item,
  427 + }
  428 + if len(vv.Action) > 0 {
  429 + d["content"] = vv.Item + ":" + strings.Join(vv.Action, ";")
  430 + }
  431 + detail = append(detail, d)
  432 + }
  433 + m["updateList"] = detail
  434 + modifyLog = append(modifyLog, m)
  435 + }
  436 +
  437 + result := map[string]interface{}{
  438 + "order": order,
  439 + "product": product,
  440 + "modify": modifyLog,
  441 + "remark": orderBase.Remark.RemarkBonus,
  442 + }
  443 + return result
  444 +}
  445 +
  446 +//UpdateBounsWithGoodNumber 分红时,因修改订单中商品的数量发生分红变动
  447 +func (service OrderInfoService) UpdateBonusByGoodNumber(orderId int64, goodId int64, adminId int64, goodNumber int, reason string) error {
  448 + var (
  449 + transactionContext, _ = factory.CreateTransactionContext(nil)
  450 + err error
  451 + )
  452 + if err = transactionContext.StartTransaction(); err != nil {
  453 + return lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
  454 + }
  455 + defer func() {
  456 + transactionContext.RollbackTransaction()
  457 + }()
  458 + var (
  459 + orderBonuSrv domainService.OrderBonusService
  460 + )
  461 + orderBonuSrv, err = factory.CreateOrderBonusService(map[string]interface{}{
  462 + "transactionContext": transactionContext,
  463 + })
  464 + if err != nil {
  465 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  466 + }
  467 + orderBonuSrv.Subscribe(&subscriber.OrderLogSubscriber{
  468 + TransactionContext: transactionContext.(*transaction.TransactionContext),
  469 + })
  470 + err = orderBonuSrv.UpdateBounsByGoodNumber(orderId, adminId, goodId, goodNumber, reason)
  471 + if err != nil {
  472 + return err
  473 + }
  474 + err = transactionContext.CommitTransaction()
  475 + if err != nil {
  476 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  477 + }
  478 + return nil
  479 +}
  480 +
  481 +//UpdateBounsByPartnerBonusPercent 分红时,因修改订单中商品的合伙人分行比例发生分红变动
  482 +func (service OrderInfoService) UpdateBonusByPartnerBonusPercent(orderId int64, goodId int64, adminId int64, percent float64, reason string) error {
  483 + var (
  484 + transactionContext, _ = factory.CreateTransactionContext(nil)
  485 + err error
  486 + )
  487 + if err = transactionContext.StartTransaction(); err != nil {
  488 + return lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
  489 + }
  490 + defer func() {
  491 + transactionContext.RollbackTransaction()
  492 + }()
  493 + var (
  494 + orderBonuSrv domainService.OrderBonusService
  495 + )
  496 + orderBonuSrv, err = factory.CreateOrderBonusService(map[string]interface{}{
  497 + "transactionContext": transactionContext,
  498 + })
  499 + if err != nil {
  500 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  501 + }
  502 + orderBonuSrv.Subscribe(&subscriber.OrderLogSubscriber{
  503 + TransactionContext: transactionContext.(*transaction.TransactionContext),
  504 + })
  505 + err = orderBonuSrv.UpdateBounsByPartnerBonusPercent(orderId, adminId, goodId, percent, reason)
  506 + if err != nil {
  507 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  508 + }
  509 + err = transactionContext.CommitTransaction()
  510 + if err != nil {
  511 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  512 + }
  513 + return nil
  514 +}
  515 +
  516 +//BatchPayPartnerBonus 批量支付分红
  517 +func (service OrderInfoService) BatchPayPartnerBonus(orderId []int64, adminId int64) error {
  518 + var (
  519 + transactionContext, _ = factory.CreateTransactionContext(nil)
  520 + err error
  521 + )
  522 + if err = transactionContext.StartTransaction(); err != nil {
  523 + return lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
  524 + }
  525 + defer func() {
  526 + transactionContext.RollbackTransaction()
  527 + }()
  528 + var (
  529 + orderBonuSrv domainService.OrderBonusService
  530 + )
  531 + orderBonuSrv, err = factory.CreateOrderBonusService(map[string]interface{}{
  532 + "transactionContext": transactionContext,
  533 + })
  534 + if err != nil {
  535 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  536 + }
  537 + orderBonuSrv.Subscribe(&subscriber.OrderLogSubscriber{
  538 + TransactionContext: transactionContext.(*transaction.TransactionContext),
  539 + })
  540 + err = orderBonuSrv.BatchPayPartnerBonus(orderId, adminId)
  541 + if err != nil {
  542 + return err
  543 + }
  544 + err = transactionContext.CommitTransaction()
  545 + if err != nil {
  546 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  547 + }
  548 + return nil
  549 +}
@@ -8,7 +8,6 @@ import ( @@ -8,7 +8,6 @@ import (
8 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/partnerInfo/command" 8 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/partnerInfo/command"
9 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/partnerInfo/query" 9 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/partnerInfo/query"
10 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain" 10 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
11 - "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain/service"  
12 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/dao" 11 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/dao"
13 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/lib" 12 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/lib"
14 ) 13 )
@@ -23,7 +22,7 @@ func NewPartnerInfoService(options map[string]interface{}) *PartnerInfoService { @@ -23,7 +22,7 @@ func NewPartnerInfoService(options map[string]interface{}) *PartnerInfoService {
23 } 22 }
24 23
25 // CreatePartnerInfo 创建合伙人 24 // CreatePartnerInfo 创建合伙人
26 -func (PartnerInfoService *PartnerInfoService) CreatePartnerInfo(cmd *command.CreatePartnerInfoCommand) (data interface{}, err error) { 25 +func (PartnerInfoService *PartnerInfoService) CreatePartnerInfo(cmd *command.CreatePartnerInfoCommand) (data *domain.PartnerInfo, err error) {
27 var ( 26 var (
28 transactionContext, _ = factory.CreateTransactionContext(nil) 27 transactionContext, _ = factory.CreateTransactionContext(nil)
29 ) 28 )
@@ -92,19 +91,19 @@ func (PartnerInfoService *PartnerInfoService) CreatePartnerInfo(cmd *command.Cre @@ -92,19 +91,19 @@ func (PartnerInfoService *PartnerInfoService) CreatePartnerInfo(cmd *command.Cre
92 if err = partnerInfoRepository.Save(&newPartnerInfo); err != nil { 91 if err = partnerInfoRepository.Save(&newPartnerInfo); err != nil {
93 return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) 92 return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
94 } 93 }
95 - var businessBonusSrv service.BusinessBonusService  
96 - if businessBonusSrv, err = factory.CreateBusinessBonusService(map[string]interface{}{  
97 - "transactionContext": transactionContext,  
98 - }); err != nil {  
99 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
100 - }  
101 - err = businessBonusSrv.EnableOrDisable(newPartnerInfo.Partner.Id)  
102 - if err != nil {  
103 - e := fmt.Sprintf("更新业务分红(partner_id=%d)数据失败:%s", newPartnerInfo.Partner.Id, err)  
104 - return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)  
105 - } 94 + //var businessBonusSrv service.BusinessBonusService
  95 + // if businessBonusSrv, err = factory.CreateBusinessBonusService(map[string]interface{}{
  96 + // "transactionContext": transactionContext,
  97 + // }); err != nil {
  98 + // return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  99 + // }
  100 + // err = businessBonusSrv.EnableOrDisable(newPartnerInfo.Partner.Id)
  101 + // if err != nil {
  102 + // e := fmt.Sprintf("更新业务分红(partner_id=%d)数据失败:%s", newPartnerInfo.Partner.Id, err)
  103 + // return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
  104 + // }
106 err = transactionContext.CommitTransaction() 105 err = transactionContext.CommitTransaction()
107 - return newPartnerInfo, nil 106 + return &newPartnerInfo, nil
108 } 107 }
109 108
110 // GetPartnerInfo 返回合伙人 109 // GetPartnerInfo 返回合伙人
@@ -216,18 +215,18 @@ func (PartnerInfoService *PartnerInfoService) UpdatePartnerInfo(cmd *command.Upd @@ -216,18 +215,18 @@ func (PartnerInfoService *PartnerInfoService) UpdatePartnerInfo(cmd *command.Upd
216 if err = partnerInfoRepository.Save(partnerInfo); err != nil { 215 if err = partnerInfoRepository.Save(partnerInfo); err != nil {
217 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error()) 216 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
218 } 217 }
219 - var businessBonusSrv service.BusinessBonusService  
220 - if businessBonusSrv, err = factory.CreateBusinessBonusService(map[string]interface{}{  
221 - "transactionContext": transactionContext,  
222 - }); err != nil {  
223 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())  
224 - }  
225 - //TODO 修改为本地消息订阅  
226 - err = businessBonusSrv.EnableOrDisable(partnerInfo.Partner.Id)  
227 - if err != nil {  
228 - e := fmt.Sprintf("更新业务分红(partner_id=%d)数据失败:%s", partnerInfo.Partner.Id, err)  
229 - return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)  
230 - } 218 + //到0.6.0 彻底删除
  219 + // var businessBonusSrv service.BusinessBonusService
  220 + // if businessBonusSrv, err = factory.CreateBusinessBonusService(map[string]interface{}{
  221 + // "transactionContext": transactionContext,
  222 + // }); err != nil {
  223 + // return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  224 + // }
  225 + // err = businessBonusSrv.EnableOrDisable(partnerInfo.Partner.Id)
  226 + // if err != nil {
  227 + // e := fmt.Sprintf("更新业务分红(partner_id=%d)数据失败:%s", partnerInfo.Partner.Id, err)
  228 + // return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
  229 + // }
231 transactionContext.CommitTransaction() 230 transactionContext.CommitTransaction()
232 return 231 return
233 } 232 }
@@ -28,6 +28,7 @@ type CreateOrderFromBestshop struct { @@ -28,6 +28,7 @@ type CreateOrderFromBestshop struct {
28 //发货时间 28 //发货时间
29 DeliveryTime string `json:"deliveryTime"` 29 DeliveryTime string `json:"deliveryTime"`
30 PartnerId int64 `json:"partnerId"` 30 PartnerId int64 `json:"partnerId"`
  31 + OrderArea string `json:"orderArea"`
31 Goods []struct { 32 Goods []struct {
32 Id int64 `json:"id"` 33 Id int64 `json:"id"`
33 //货品编号 34 //货品编号
@@ -126,6 +126,7 @@ func (s SyncOrderService) CreateOrderFromBestshop(cmd command.CreateOrderFromBes @@ -126,6 +126,7 @@ func (s SyncOrderService) CreateOrderFromBestshop(cmd command.CreateOrderFromBes
126 DeliveryTime: cmd.DeliveryTime, 126 DeliveryTime: cmd.DeliveryTime,
127 IsCopy: false, 127 IsCopy: false,
128 CompanyId: cmd.CompanyId, 128 CompanyId: cmd.CompanyId,
  129 + OrderArea: cmd.OrderArea,
129 } 130 }
130 err = orderBestshopRepository.Add(&order) 131 err = orderBestshopRepository.Add(&order)
131 if err != nil { 132 if err != nil {
@@ -224,7 +225,7 @@ func (s SyncOrderService) copyOrderBestshopToOrderBase(orderBestshop *domain.Ord @@ -224,7 +225,7 @@ func (s SyncOrderService) copyOrderBestshopToOrderBase(orderBestshop *domain.Ord
224 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) 225 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
225 } 226 }
226 for _, v := range companyData.Applets { 227 for _, v := range companyData.Applets {
227 - if v.Id == BEST_SHOP_UNIONID { 228 + if len(v.Id) > 0 {
228 canCopyOrder = true 229 canCopyOrder = true
229 } 230 }
230 } 231 }
@@ -501,9 +501,9 @@ func (service UsersService) EditUserPermission(cmd command.EditUserPermissionCom @@ -501,9 +501,9 @@ func (service UsersService) EditUserPermission(cmd command.EditUserPermissionCom
501 partners = append(partners, p) 501 partners = append(partners, p)
502 } 502 }
503 for i := range permissionList { 503 for i := range permissionList {
504 - if permissionList[i].Code == domain.PERMINSSION_ADMIN_USER && !usersData.IsSuperAdmin() {  
505 - return lib.ThrowError(lib.BUSINESS_ERROR, "操作异常")  
506 - } 504 + // if permissionList[i].Code == domain.PERMINSSION_ADMIN_USER && !usersData.IsSuperAdmin() {
  505 + // return lib.ThrowError(lib.BUSINESS_ERROR, "操作异常")
  506 + // }
507 p := domain.AdminPermissionBase{ 507 p := domain.AdminPermissionBase{
508 Id: permissionList[i].Id, 508 Id: permissionList[i].Id,
509 Code: permissionList[i].Code, 509 Code: permissionList[i].Code,
1 package event 1 package event
2 2
  3 +import "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
  4 +
3 const ( 5 const (
4 //支付订单中货品的分红 6 //支付订单中货品的分红
5 - PAY_ORDER_GOOD_BONUS_EVENT string = "PayOrderGoodBonus" 7 + PAY_ORDER_GOOD_BONUS_EVENT string = "PayOrderGoodBonus"
  8 + BATCH_PAY_ORDER_GOOD_BONUS_EVENT string = "BatchPayOrderGoodBonus"
6 ) 9 )
7 10
  11 +//BatchPayOrderGoodBonus
  12 +//事件:批量支付一个订单中货品的分红
  13 +type BatchPayOrderGoodBonus []PayOrderGoodBonus
  14 +
  15 +func (p BatchPayOrderGoodBonus) EventType() string {
  16 + return BATCH_PAY_ORDER_GOOD_BONUS_EVENT
  17 +}
  18 +
8 //PayOrderGoodBonus 19 //PayOrderGoodBonus
9 -//事件:支付订单中货品的分红 20 +//事件:支付一个订单中货品的分红
10 type PayOrderGoodBonus struct { 21 type PayOrderGoodBonus struct {
11 - //订单id  
12 - OrderId int64  
13 - //货品名称  
14 - GoodName string  
15 - //订单中的货品id  
16 - GoodId int64  
17 - //管理员id  
18 - AdminId int64  
19 - //  
20 - PartnerBonus float64 22 + OrderBase *domain.OrderBase
  23 + Goods []domain.OrderGood
  24 + Admin *domain.Users
21 } 25 }
22 26
23 func (p PayOrderGoodBonus) EventType() string { 27 func (p PayOrderGoodBonus) EventType() string {
@@ -182,16 +182,14 @@ func (order *OrderBase) AddGoods(goods []OrderGood) { @@ -182,16 +182,14 @@ func (order *OrderBase) AddGoods(goods []OrderGood) {
182 order.Compute() 182 order.Compute()
183 } 183 }
184 184
185 -func (order *OrderBase) DeleteGoods(goodIds []int64) {  
186 - var newGoods []OrderGood 185 +func (order *OrderBase) ModifyGoodNumber(goodid int64, number int64) {
187 for i := range order.Goods { 186 for i := range order.Goods {
188 - for _, goodId := range goodIds {  
189 - order.Goods[i].Id = goodId 187 + if order.Goods[i].Id != goodid {
190 continue 188 continue
191 } 189 }
192 - newGoods = append(newGoods, order.Goods[i]) 190 + // thisGood := order.Goods[i]
  191 +
193 } 192 }
194 - order.Goods = newGoods  
195 order.Compute() 193 order.Compute()
196 } 194 }
197 195
@@ -34,8 +34,9 @@ type OrderBestShop struct { @@ -34,8 +34,9 @@ type OrderBestShop struct {
34 PartnerId int64 `json:"partnerId"` 34 PartnerId int64 `json:"partnerId"`
35 Goods []OrderGoodBestShop `json:"goods"` 35 Goods []OrderGoodBestShop `json:"goods"`
36 //是否将数据同步到 order_base ,order_good 36 //是否将数据同步到 order_base ,order_good
37 - IsCopy bool `json:"isCopy"`  
38 - CompanyId int64 `json:"companyId"` 37 + IsCopy bool `json:"isCopy"`
  38 + CompanyId int64 `json:"companyId"`
  39 + OrderArea string `json:"orderArea"`
39 } 40 }
40 41
41 func (order OrderBestShop) CopyToOrderBase(o *OrderBase) { 42 func (order OrderBestShop) CopyToOrderBase(o *OrderBase) {
@@ -54,6 +55,7 @@ func (order OrderBestShop) CopyToOrderBase(o *OrderBase) { @@ -54,6 +55,7 @@ func (order OrderBestShop) CopyToOrderBase(o *OrderBase) {
54 o.OrderCompute.PlanOrderAmount = order.OrderAmount 55 o.OrderCompute.PlanOrderAmount = order.OrderAmount
55 o.OrderCompute.PlanOrderCount = order.OrderCount 56 o.OrderCompute.PlanOrderCount = order.OrderCount
56 o.DeliveryTime, _ = time.Parse("2006-01-02 15:04:05", order.DeliveryTime) 57 o.DeliveryTime, _ = time.Parse("2006-01-02 15:04:05", order.DeliveryTime)
  58 + o.RegionInfo.RegionName = order.OrderArea
57 return 59 return
58 } 60 }
59 61
@@ -2,6 +2,7 @@ package domain @@ -2,6 +2,7 @@ package domain
2 2
3 import ( 3 import (
4 "errors" 4 "errors"
  5 + "fmt"
5 6
6 "github.com/shopspring/decimal" 7 "github.com/shopspring/decimal"
7 ) 8 )
@@ -12,6 +13,10 @@ type OrderGoodBonusStatus interface { @@ -12,6 +13,10 @@ type OrderGoodBonusStatus interface {
12 WartPayPartnerBonus(orderGood *OrderGood) error 13 WartPayPartnerBonus(orderGood *OrderGood) error
13 //状态变更为已支付 14 //状态变更为已支付
14 PayPartnerBonus(orderGood *OrderGood) error 15 PayPartnerBonus(orderGood *OrderGood) error
  16 + //变更货品数量
  17 + ModifyOrderGoodNumber(good *OrderGood, number int, orderType int) error
  18 + //变更合伙人分红比例
  19 + ModifyPertnerBonusPercent(good *OrderGood, percent float64, orderType int) error
15 } 20 }
16 21
17 //货单的支付状态 22 //货单的支付状态
@@ -43,6 +48,7 @@ type GoodCompute struct { @@ -43,6 +48,7 @@ type GoodCompute struct {
43 //合伙人分红支出 48 //合伙人分红支出
44 PartnerBonusExpense float64 `json:"partnerBonusExpense"` 49 PartnerBonusExpense float64 `json:"partnerBonusExpense"`
45 } 50 }
  51 +
46 type OrderGoodRemarkReason struct { 52 type OrderGoodRemarkReason struct {
47 ModifyGoodNumber string `json:"modifyGoodNumber"` //货品数量变更的理由 53 ModifyGoodNumber string `json:"modifyGoodNumber"` //货品数量变更的理由
48 ModifyPartnerBonusPercent string `json:"modifyPartnerBonusPercent"` //合伙人分红比例变更的理由 54 ModifyPartnerBonusPercent string `json:"modifyPartnerBonusPercent"` //合伙人分红比例变更的理由
@@ -105,6 +111,20 @@ func (good OrderGood) GetCurrentPartnerBonus() float64 { @@ -105,6 +111,20 @@ func (good OrderGood) GetCurrentPartnerBonus() float64 {
105 return good.GoodCompute.PlanPartnerBonus 111 return good.GoodCompute.PlanPartnerBonus
106 } 112 }
107 113
  114 +//GetCurrentAmount 获取当前的商品合伙人分红
  115 +func (good *OrderGood) ModifyOrderGoodNumber(number int, orderType int) error {
  116 + if good.PlanGoodNumber < number {
  117 + return fmt.Errorf("修改数量不能大于初始值:%d", good.PlanGoodNumber)
  118 + }
  119 + err := good.CurrentBonusStatus.ModifyOrderGoodNumber(good, number, orderType)
  120 + return err
  121 +}
  122 +
  123 +func (good *OrderGood) ModifyPertnerBonusPercent(percent float64, orderType int) error {
  124 + err := good.CurrentBonusStatus.ModifyPertnerBonusPercent(good, percent, orderType)
  125 + return err
  126 +}
  127 +
108 //Update 更新商品相关的数据 128 //Update 更新商品相关的数据
109 func (good *OrderGood) Update(m map[string]interface{}) error { 129 func (good *OrderGood) Update(m map[string]interface{}) error {
110 if v, ok := m["GoodName"]; ok { 130 if v, ok := m["GoodName"]; ok {
@@ -194,6 +214,68 @@ func (hasPay OrderGoodBonusHasPay) WartPayPartnerBonus(good *OrderGood) error { @@ -194,6 +214,68 @@ func (hasPay OrderGoodBonusHasPay) WartPayPartnerBonus(good *OrderGood) error {
194 return errors.New("已支付的货单不能将状态回退为待支付") 214 return errors.New("已支付的货单不能将状态回退为待支付")
195 } 215 }
196 216
  217 +func (hasPay OrderGoodBonusHasPay) ModifyOrderGoodNumber(good *OrderGood, number int, orderType int) error {
  218 + //规则描述:
  219 + //实际自建订单(orderType==1),已支付分红状态下“可以”修改货品数量
  220 + //香米小程序订单(orderType==3),已支付分红状态下“不可以”修改货品数量
  221 + switch orderType {
  222 + case OrderReal:
  223 + good.UseGoodNumber = number
  224 + //待支付状态计算
  225 + err := good.Compute()
  226 + if err != nil {
  227 + return errors.New("核算商品数据失败" + err.Error())
  228 + }
  229 + case OrderTypeBestShop:
  230 + return errors.New("小程序订单里已支付分红的货品订单,不能修改货品数量")
  231 + }
  232 + good.CurrentBonusStatus.PayPartnerBonus(good)
  233 + return nil
  234 +}
  235 +
  236 +func (waitPay OrderGoodBonusWaitPay) ModifyOrderGoodNumber(good *OrderGood, number int, orderType int) error {
  237 + //规则描述:
  238 + //实际自建订单(orderType==1),未支付分红状态下“可以”修改货品数量
  239 + //香米小程序订单(orderType==3),未支付分红状态下“可以”修改货品数量
  240 + good.UseGoodNumber = number
  241 + //待支付状态计算
  242 + err := good.Compute()
  243 + if err != nil {
  244 + return errors.New("核算商品数据失败" + err.Error())
  245 + }
  246 + good.CurrentBonusStatus.WartPayPartnerBonus(good)
  247 + return nil
  248 +}
  249 +
  250 +func (waitPay OrderGoodBonusWaitPay) ModifyPertnerBonusPercent(good *OrderGood, percent float64, orderType int) error {
  251 + //规则描述:
  252 + //实际自建订单(orderType==1),未支付分红状态下“不可以”修改合伙人分红比例
  253 + //香米小程序订单(orderType==3),未支付分红状态下“可以”修改合伙人分红比例
  254 + switch orderType {
  255 + case OrderReal:
  256 + return errors.New("自建订单不能修改合伙人分红比例")
  257 + case OrderTypeBestShop:
  258 + good.PartnerBonusPercent = percent
  259 + //待支付状态计算
  260 + err := good.Compute()
  261 + if err != nil {
  262 + return errors.New("核算商品数据失败" + err.Error())
  263 + }
  264 + err = good.CurrentBonusStatus.WartPayPartnerBonus(good)
  265 + if err != nil {
  266 + return errors.New("核算商品数据失败" + err.Error())
  267 + }
  268 + }
  269 + return nil
  270 +}
  271 +
  272 +func (hasPay OrderGoodBonusHasPay) ModifyPertnerBonusPercent(good *OrderGood, percent float64, orderType int) error {
  273 + //规则描述:
  274 + //实际自建订单(orderType==1),已支付分红状态下“不可以”修改合伙人分红比例
  275 + //香米小程序订单(orderType==3),已支付分红状态下“不可以”修改合伙人分红比例
  276 + return errors.New("已支付分红的货品订单,不能修改合伙人分红比例")
  277 +}
  278 +
197 //NewOrderGood 初始值设定 279 //NewOrderGood 初始值设定
198 func NewOrderGood() OrderGood { 280 func NewOrderGood() OrderGood {
199 return OrderGood{ 281 return OrderGood{
@@ -16,6 +16,7 @@ const ( @@ -16,6 +16,7 @@ const (
16 16
17 //OrderLogDescript 描述日志内容 17 //OrderLogDescript 描述日志内容
18 type OrderLogDescript struct { 18 type OrderLogDescript struct {
  19 + GoodId int64 `json:"goodId"`
19 Title string `json:"title"` //标题 20 Title string `json:"title"` //标题
20 Item string `json:"item"` //修改的项目 21 Item string `json:"item"` //修改的项目
21 Action []string `json:"action"` //执行的操作 22 Action []string `json:"action"` //执行的操作
1 -package domain  
2 -  
3 -import (  
4 - "errors"  
5 - "fmt"  
6 -)  
7 -  
8 -//类型为(orderType=OrderTypeBestShop) 海鲜干货的订单分红  
9 -//因页面上的对于该类型的订单分红状态处理方式 有别于原有的其他类型(OrderReal),所以单独提取出来  
10 -  
11 -// OrderGoodWithBestshopBonusStatus 支付状态  
12 -type OrderGoodWithBestshopBonusStatus interface {  
13 - OrderGoodBonusStatus  
14 - UpdateOrderGoodNumber(good *OrderGood, number int) error  
15 - UpdatePertnerBonusPercent(good *OrderGood, percent float64) error  
16 -}  
17 -  
18 -//OrderGoodWithBestshop 处理订单中商品的分红相关数据  
19 -type OrderGoodWithBestshop struct {  
20 - currentBonusStatus OrderGoodWithBestshopBonusStatus  
21 -}  
22 -  
23 -func (o *OrderGoodWithBestshop) UpdateBonusByGoodNumber(good *OrderGood, number int) error {  
24 - o.reset(good)  
25 - if good.PlanGoodNumber < number {  
26 - return fmt.Errorf("修改商品数量的值不能大于初始值%d", good.PlanGoodNumber)  
27 - }  
28 - err := o.currentBonusStatus.UpdateOrderGoodNumber(good, number)  
29 - return err  
30 -}  
31 -  
32 -func (o *OrderGoodWithBestshop) UpdateBonusByPertnerBonusPercent(good *OrderGood, percent float64) error {  
33 - o.reset(good)  
34 - err := o.currentBonusStatus.UpdatePertnerBonusPercent(good, percent)  
35 - return err  
36 -}  
37 -  
38 -func (o *OrderGoodWithBestshop) PayPartnerBonus(good *OrderGood) error {  
39 - o.currentBonusStatus = OrderGoodBonusBestshopHasPay{}  
40 - err := good.Compute()  
41 - if err != nil {  
42 - return errors.New("核算商品数据失败" + err.Error())  
43 - }  
44 - err = good.CurrentBonusStatus.PayPartnerBonus(good)  
45 - return err  
46 -}  
47 -  
48 -func (o *OrderGoodWithBestshop) reset(good *OrderGood) {  
49 - switch good.BonusStatus {  
50 - case OrderGoodWaitPay:  
51 - o.currentBonusStatus = OrderGoodBonusBestshopWaitPay{}  
52 - case OrderGoodHasPay:  
53 - o.currentBonusStatus = OrderGoodBonusBestshopHasPay{}  
54 - }  
55 - return  
56 -}  
57 -  
58 -//OrderGoodBonusBestshopWaitPay 货品支付状态:待支付  
59 -type OrderGoodBonusBestshopWaitPay struct {  
60 - OrderGoodBonusWaitPay  
61 -}  
62 -  
63 -var _ OrderGoodWithBestshopBonusStatus = (*OrderGoodBonusBestshopWaitPay)(nil)  
64 -  
65 -func (waitPay OrderGoodBonusBestshopWaitPay) UpdateOrderGoodNumber(good *OrderGood, number int) error {  
66 - good.UseGoodNumber = number  
67 - //待支付状态计算  
68 - err := good.Compute()  
69 - if err != nil {  
70 - return errors.New("核算商品数据失败" + err.Error())  
71 - }  
72 - err = good.CurrentBonusStatus.WartPayPartnerBonus(good)  
73 - return err  
74 -}  
75 -  
76 -func (waitPay OrderGoodBonusBestshopWaitPay) UpdatePertnerBonusPercent(good *OrderGood, percent float64) error {  
77 - good.PartnerBonusPercent = percent  
78 - //待支付状态计算  
79 - err := good.Compute()  
80 - if err != nil {  
81 - return errors.New("核算商品数据失败" + err.Error())  
82 - }  
83 - err = good.CurrentBonusStatus.WartPayPartnerBonus(good)  
84 - return err  
85 -}  
86 -  
87 -//OrderGoodBonusBestshopHasPay 货品支付状态:已支付  
88 -type OrderGoodBonusBestshopHasPay struct {  
89 - OrderGoodBonusHasPay  
90 -}  
91 -  
92 -var _ OrderGoodWithBestshopBonusStatus = (*OrderGoodBonusBestshopHasPay)(nil)  
93 -  
94 -func (hasPay OrderGoodBonusBestshopHasPay) UpdateOrderGoodNumber(good *OrderGood, number int) error {  
95 - return errors.New("已支付分红的货品订单,不能修改货品数量")  
96 -}  
97 -  
98 -func (hasPay OrderGoodBonusBestshopHasPay) UpdatePertnerBonusPercent(good *OrderGood, percent float64) error {  
99 - return errors.New("已支付分红的货品订单,不能修改合伙人分红比例")  
100 -}  
1 package service 1 package service
2 2
3 -type BusinessBonusService interface {  
4 - EnableOrDisable(userid int64) error  
5 -} 3 +// type BusinessBonusService interface {
  4 +// EnableOrDisable(userid int64) error
  5 +// }
  6 +// EnableOrDisable(userid int64) error
  7 +// }
@@ -10,4 +10,5 @@ type OrderBonusService interface { @@ -10,4 +10,5 @@ type OrderBonusService interface {
10 UpdateBounsByPartnerBonusPercent(orderId int64, adminId int64, goodId int64, partnerPercent float64, reason string) error 10 UpdateBounsByPartnerBonusPercent(orderId int64, adminId int64, goodId int64, partnerPercent float64, reason string) error
11 UpdateOrderRemarkBonus(orderId int64, adminId int64, remark string) error 11 UpdateOrderRemarkBonus(orderId int64, adminId int64, remark string) error
12 PayOrderGoodBonus(orderId int64, goodId int64, adminId int64) error 12 PayOrderGoodBonus(orderId int64, goodId int64, adminId int64) error
  13 + BatchPayPartnerBonus(orderIds []int64, adminId int64) error
13 } 14 }
@@ -2,11 +2,7 @@ package dao @@ -2,11 +2,7 @@ package dao
2 2
3 import ( 3 import (
4 "fmt" 4 "fmt"
5 - "strings"  
6 - "time"  
7 5
8 - "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"  
9 - "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/models"  
10 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/transaction" 6 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/transaction"
11 ) 7 )
12 8
@@ -24,81 +20,81 @@ func NewBusinessBonusDao(transactionContext *transaction.TransactionContext) (*B @@ -24,81 +20,81 @@ func NewBusinessBonusDao(transactionContext *transaction.TransactionContext) (*B
24 } 20 }
25 } 21 }
26 22
27 -type CustomBusinessBonus struct {  
28 - Id int64  
29 - Bonus string  
30 - BonusNot string  
31 - BonusExpense string  
32 - BonusHas string  
33 - BonusStatus int8  
34 - PartnerName string  
35 - UpdateAt time.Time  
36 -} 23 +// type CustomBusinessBonus struct {
  24 +// Id int64
  25 +// Bonus string
  26 +// BonusNot string
  27 +// BonusExpense string
  28 +// BonusHas string
  29 +// BonusStatus int8
  30 +// PartnerName string
  31 +// UpdateAt time.Time
  32 +// }
37 33
38 -func (dao BusinessBonusDao) SearchBusinessBonus(partnerId int64, partnerNameMatch string,  
39 - companyId int64, limit int, offset int) ([]CustomBusinessBonus, error) {  
40 - sql := `SELECT business_bonus.id, business_bonus.bonus,business_bonus.bonus_not  
41 - ,business_bonus.bonus_expense,business_bonus.bonus_status,business_bonus.update_at  
42 - ,partner_info.partner_name,business_bonus.bonus_has  
43 - FROM business_bonus  
44 - JOIN partner_info ON business_bonus.partner_info_id=partner_info.id  
45 - WHERE business_bonus.is_disable=? AND business_bonus.company_id = ? `  
46 - partnerCondition := []string{}  
47 - allParam := []interface{}{domain.BUSINESS_BONUS_ENABLE, companyId}  
48 - if partnerId > 0 {  
49 - partnerCondition = append(partnerCondition, ` business_bonus.partner_info_id=? `)  
50 - allParam = append(allParam, partnerId)  
51 - }  
52 - if len(partnerNameMatch) > 0 {  
53 - allParam = append(allParam, "%"+partnerNameMatch+"%")  
54 - partnerCondition = append(partnerCondition, ` partner_info.partner_name like ? `)  
55 - }  
56 - if len(partnerCondition) > 0 {  
57 - sql += fmt.Sprintf(" AND (%s)", strings.Join(partnerCondition, " OR "))  
58 - }  
59 - sql += `ORDER BY business_bonus.id DESC limit ? OFFSET ? `  
60 - allParam = append(allParam, limit, offset)  
61 - tx := dao.transactionContext.PgTx  
62 - var (  
63 - result []CustomBusinessBonus  
64 - err error  
65 - )  
66 - _, err = tx.Query(&result, sql, allParam...)  
67 - return result, err  
68 -} 34 +// func (dao BusinessBonusDao) SearchBusinessBonus(partnerId int64, partnerNameMatch string,
  35 +// companyId int64, limit int, offset int) ([]CustomBusinessBonus, error) {
  36 +// sql := `SELECT business_bonus.id, business_bonus.bonus,business_bonus.bonus_not
  37 +// ,business_bonus.bonus_expense,business_bonus.bonus_status,business_bonus.update_at
  38 +// ,partner_info.partner_name,business_bonus.bonus_has
  39 +// FROM business_bonus
  40 +// JOIN partner_info ON business_bonus.partner_info_id=partner_info.id
  41 +// WHERE business_bonus.is_disable=? AND business_bonus.company_id = ? `
  42 +// partnerCondition := []string{}
  43 +// allParam := []interface{}{domain.BUSINESS_BONUS_ENABLE, companyId}
  44 +// if partnerId > 0 {
  45 +// partnerCondition = append(partnerCondition, ` business_bonus.partner_info_id=? `)
  46 +// allParam = append(allParam, partnerId)
  47 +// }
  48 +// if len(partnerNameMatch) > 0 {
  49 +// allParam = append(allParam, "%"+partnerNameMatch+"%")
  50 +// partnerCondition = append(partnerCondition, ` partner_info.partner_name like ? `)
  51 +// }
  52 +// if len(partnerCondition) > 0 {
  53 +// sql += fmt.Sprintf(" AND (%s)", strings.Join(partnerCondition, " OR "))
  54 +// }
  55 +// sql += `ORDER BY business_bonus.id DESC limit ? OFFSET ? `
  56 +// allParam = append(allParam, limit, offset)
  57 +// tx := dao.transactionContext.PgTx
  58 +// var (
  59 +// result []CustomBusinessBonus
  60 +// err error
  61 +// )
  62 +// _, err = tx.Query(&result, sql, allParam...)
  63 +// return result, err
  64 +// }
69 65
70 -func (dao BusinessBonusDao) CountBusinessBonus(partnerId int64, partnerNameMatch string,  
71 - companyId int64, limit int, offset int) (int, error) {  
72 - sql := `SELECT count(*)  
73 - FROM business_bonus  
74 - JOIN partner_info ON business_bonus.partner_info_id=partner_info.id  
75 - WHERE business_bonus.is_disable=? AND business_bonus.company_id = ? `  
76 - partnerCondition := []string{}  
77 - allParam := []interface{}{domain.BUSINESS_BONUS_ENABLE, companyId}  
78 - if partnerId > 0 {  
79 - partnerCondition = append(partnerCondition, ` business_bonus.partner_info_id=? `)  
80 - allParam = append(allParam, partnerId)  
81 - }  
82 - if len(partnerNameMatch) > 0 {  
83 - allParam = append(allParam, "%"+partnerNameMatch+"%")  
84 - partnerCondition = append(partnerCondition, ` partner_info.partner_name like ? `)  
85 - }  
86 - if len(partnerCondition) > 0 {  
87 - sql += fmt.Sprintf(" AND (%s)", strings.Join(partnerCondition, " OR "))  
88 - }  
89 - tx := dao.transactionContext.PgTx  
90 - var (  
91 - result int  
92 - err error  
93 - )  
94 - _, err = tx.Query(&result, sql, allParam...)  
95 - return result, err  
96 -} 66 +// func (dao BusinessBonusDao) CountBusinessBonus(partnerId int64, partnerNameMatch string,
  67 +// companyId int64, limit int, offset int) (int, error) {
  68 +// sql := `SELECT count(*)
  69 +// FROM business_bonus
  70 +// JOIN partner_info ON business_bonus.partner_info_id=partner_info.id
  71 +// WHERE business_bonus.is_disable=? AND business_bonus.company_id = ? `
  72 +// partnerCondition := []string{}
  73 +// allParam := []interface{}{domain.BUSINESS_BONUS_ENABLE, companyId}
  74 +// if partnerId > 0 {
  75 +// partnerCondition = append(partnerCondition, ` business_bonus.partner_info_id=? `)
  76 +// allParam = append(allParam, partnerId)
  77 +// }
  78 +// if len(partnerNameMatch) > 0 {
  79 +// allParam = append(allParam, "%"+partnerNameMatch+"%")
  80 +// partnerCondition = append(partnerCondition, ` partner_info.partner_name like ? `)
  81 +// }
  82 +// if len(partnerCondition) > 0 {
  83 +// sql += fmt.Sprintf(" AND (%s)", strings.Join(partnerCondition, " OR "))
  84 +// }
  85 +// tx := dao.transactionContext.PgTx
  86 +// var (
  87 +// result int
  88 +// err error
  89 +// )
  90 +// _, err = tx.Query(&result, sql, allParam...)
  91 +// return result, err
  92 +// }
97 93
98 -func (dao BusinessBonusDao) ExistBusinessBonus(userId int64) (bool, error) {  
99 - tx := dao.transactionContext.PgTx  
100 - ok, err := tx.Model(&models.BusinessBonus{}).  
101 - Where("partner_info_id=?", userId).  
102 - Exists()  
103 - return ok, err  
104 -} 94 +// func (dao BusinessBonusDao) ExistBusinessBonus(userId int64) (bool, error) {
  95 +// tx := dao.transactionContext.PgTx
  96 +// ok, err := tx.Model(&models.BusinessBonus{}).
  97 +// Where("partner_info_id=?", userId).
  98 +// Exists()
  99 +// return ok, err
  100 +// }
@@ -47,11 +47,14 @@ func (dao OrderBaseDao) DeliveryCodeExist(code string, companyId int64, notId .. @@ -47,11 +47,14 @@ func (dao OrderBaseDao) DeliveryCodeExist(code string, companyId int64, notId ..
47 return ok, err 47 return ok, err
48 } 48 }
49 49
50 -//OrderListByCondition 根据条件获取订单分红列表  
51 -//orderType 订单类型  
52 -//partnerOrCode 合伙人姓名或订单号或发货单号 50 +//OrderBonusListByCondition 根据条件获取订单分红列表
  51 +//@param orderType 订单类型
  52 +//@param partnerOrCode 合伙人姓名或订单号或发货单号
  53 +//@param companyId 公司id
  54 +//@param partnerCategory 合伙人类型
  55 +//@param createTime 创建时间
53 func (dao OrderBaseDao) OrderBonusListByCondition(companyId int64, orderType int, partnerOrCode string, 56 func (dao OrderBaseDao) OrderBonusListByCondition(companyId int64, orderType int, partnerOrCode string,
54 - partnerCategory int, limit, offset int) ([]models.OrderBase, int, error) { 57 + partnerCategory int, createTime [2]string, limit, offset int) ([]models.OrderBase, int, error) {
55 tx := dao.transactionContext.GetDB() 58 tx := dao.transactionContext.GetDB()
56 var orders []models.OrderBase 59 var orders []models.OrderBase
57 query := tx.Model(&orders).Where("order_base.company_id=?", companyId) 60 query := tx.Model(&orders).Where("order_base.company_id=?", companyId)
@@ -63,6 +66,15 @@ func (dao OrderBaseDao) OrderBonusListByCondition(companyId int64, orderType int @@ -63,6 +66,15 @@ func (dao OrderBaseDao) OrderBonusListByCondition(companyId int64, orderType int
63 if partnerCategory > 0 { 66 if partnerCategory > 0 {
64 query = query.Where(`order_base.partner_category@>'{"id":?}'`, partnerCategory) 67 query = query.Where(`order_base.partner_category@>'{"id":?}'`, partnerCategory)
65 } 68 }
  69 +
  70 + if len(createTime[0]) > 0 {
  71 + query = query.Where(`order_base.create_time>=?`, createTime[0])
  72 + }
  73 +
  74 + if len(createTime[1]) > 0 {
  75 + query = query.Where(`order_base.create_time<=?`, createTime[1])
  76 + }
  77 +
66 if len(partnerOrCode) > 0 { 78 if len(partnerOrCode) > 0 {
67 query = query.Join("LEFT JOIN partner_info as p ON order_base.partner_id=p.id"). 79 query = query.Join("LEFT JOIN partner_info as p ON order_base.partner_id=p.id").
68 WhereGroup(func(q *orm.Query) (*orm.Query, error) { 80 WhereGroup(func(q *orm.Query) (*orm.Query, error) {
@@ -72,7 +84,7 @@ func (dao OrderBaseDao) OrderBonusListByCondition(companyId int64, orderType int @@ -72,7 +84,7 @@ func (dao OrderBaseDao) OrderBonusListByCondition(companyId int64, orderType int
72 return q, nil 84 return q, nil
73 }) 85 })
74 } 86 }
75 - query = query.Order("order_base.update_time DESC"). 87 + query = query.Order("order_base.create_time DESC").
76 Offset(offset). 88 Offset(offset).
77 Limit(limit) 89 Limit(limit)
78 90
@@ -88,6 +100,7 @@ type CustomOrderBonusForExcel struct { @@ -88,6 +100,7 @@ type CustomOrderBonusForExcel struct {
88 BonusStatus int 100 BonusStatus int
89 DeliveryCode string 101 DeliveryCode string
90 UpdateTime string 102 UpdateTime string
  103 + CreateTime string
91 PartnerBonus float64 104 PartnerBonus float64
92 PartnerBonusHas float64 105 PartnerBonusHas float64
93 PartnerBonusNot float64 106 PartnerBonusNot float64
@@ -101,9 +114,10 @@ type CustomOrderBonusForExcel struct { @@ -101,9 +114,10 @@ type CustomOrderBonusForExcel struct {
101 //@param orderType 订单类型 114 //@param orderType 订单类型
102 //@param partnerOrCode 合伙人姓名或订单号或发货单号 115 //@param partnerOrCode 合伙人姓名或订单号或发货单号
103 //@param partnerCategory 合伙人类型id 116 //@param partnerCategory 合伙人类型id
  117 +//@param createTime 订单的创建时间范围"[开始时间,结束时间]" 时间格式"2006-01-02 15:04:05+07"
104 //@return result 查询结果数据 118 //@return result 查询结果数据
105 func (dao OrderBaseDao) OrderBonusListForExcel(companyId int64, orderType int, partnerOrCode string, 119 func (dao OrderBaseDao) OrderBonusListForExcel(companyId int64, orderType int, partnerOrCode string,
106 - partnerCategory int) (result []CustomOrderBonusForExcel, err error) { 120 + partnerCategory int, createTime [2]string) (result []CustomOrderBonusForExcel, err error) {
107 //导出分红列表所用的sql 121 //导出分红列表所用的sql
108 sqlStr := `SELECT 122 sqlStr := `SELECT
109 t1.ID AS order_id, 123 t1.ID AS order_id,
@@ -112,6 +126,7 @@ func (dao OrderBaseDao) OrderBonusListForExcel(companyId int64, orderType int, p @@ -112,6 +126,7 @@ func (dao OrderBaseDao) OrderBonusListForExcel(companyId int64, orderType int, p
112 t1.delivery_code, 126 t1.delivery_code,
113 t1.bonus_status, 127 t1.bonus_status,
114 to_char(t1.update_time AT TIME ZONE 'CCT' ,'YYYY-MM-DD HH24:MI:SS') AS update_time, 128 to_char(t1.update_time AT TIME ZONE 'CCT' ,'YYYY-MM-DD HH24:MI:SS') AS update_time,
  129 + to_char(t1.create_time AT TIME ZONE 'CCT' ,'YYYY-MM-DD HH24:MI:SS') AS create_time,
115 (CASE 130 (CASE
116 WHEN t1.use_partner_bonus>0 131 WHEN t1.use_partner_bonus>0
117 THEN 132 THEN
@@ -152,7 +167,15 @@ func (dao OrderBaseDao) OrderBonusListForExcel(companyId int64, orderType int, p @@ -152,7 +167,15 @@ func (dao OrderBaseDao) OrderBonusListForExcel(companyId int64, orderType int, p
152 sqlStr += ` AND t1.partner_category @>'{"id":?}'` 167 sqlStr += ` AND t1.partner_category @>'{"id":?}'`
153 param = append(param, partnerCategory) 168 param = append(param, partnerCategory)
154 } 169 }
155 - sqlStr += ` ORDER BY t1.update_time DESC limit 10000 ` 170 + if len(createTime[0]) > 0 {
  171 + param = append(param, createTime[0])
  172 + sqlStr += ` AND t1.create_time>=? `
  173 + }
  174 + if len(createTime[1]) > 0 {
  175 + param = append(param, createTime[1])
  176 + sqlStr += ` AND t1.create_time<=? `
  177 + }
  178 + sqlStr += ` ORDER BY t1.create_time DESC limit 10000 `
156 tx := dao.transactionContext.GetDB() 179 tx := dao.transactionContext.GetDB()
157 _, err = tx.Query(&result, sqlStr, param...) 180 _, err = tx.Query(&result, sqlStr, param...)
158 181
@@ -168,8 +191,9 @@ func (dao OrderBaseDao) OrderBonusListForExcel(companyId int64, orderType int, p @@ -168,8 +191,9 @@ func (dao OrderBaseDao) OrderBonusListForExcel(companyId int64, orderType int, p
168 //@param partnerOrCode 合伙人姓名或订单号或发货单号 191 //@param partnerOrCode 合伙人姓名或订单号或发货单号
169 //@param partnerCategory 合伙人类型id 192 //@param partnerCategory 合伙人类型id
170 //@param updateTime 订单更新时间范围"[开始时间,结束时间]",时间格式"2006-01-02 15:04:05+07" 193 //@param updateTime 订单更新时间范围"[开始时间,结束时间]",时间格式"2006-01-02 15:04:05+07"
  194 +//@param createTime 订单的创建时间范围"[开始时间,结束时间]" 时间格式"2006-01-02 15:04:05+07"
171 func (dao OrderBaseDao) OrderListByCondition(companyId int64, orderType int, partnerOrCode string, 195 func (dao OrderBaseDao) OrderListByCondition(companyId int64, orderType int, partnerOrCode string,
172 - updateTime [2]string, partnerCategory int, limit, offset int) ([]models.OrderBase, int, error) { 196 + updateTime [2]string, createTime [2]string, partnerCategory int, limit, offset int) ([]models.OrderBase, int, error) {
173 tx := dao.transactionContext.GetDB() 197 tx := dao.transactionContext.GetDB()
174 var orders []models.OrderBase 198 var orders []models.OrderBase
175 query := tx.Model(&orders).Where("order_base.company_id=?", companyId) 199 query := tx.Model(&orders).Where("order_base.company_id=?", companyId)
@@ -187,6 +211,13 @@ func (dao OrderBaseDao) OrderListByCondition(companyId int64, orderType int, par @@ -187,6 +211,13 @@ func (dao OrderBaseDao) OrderListByCondition(companyId int64, orderType int, par
187 if len(updateTime[1]) > 0 { 211 if len(updateTime[1]) > 0 {
188 query = query.Where(`order_base.update_time<=?`, updateTime[1]) 212 query = query.Where(`order_base.update_time<=?`, updateTime[1])
189 } 213 }
  214 + if len(createTime[0]) > 0 {
  215 + query = query.Where(`order_base.create_time>=?`, createTime[0])
  216 + }
  217 + if len(createTime[1]) > 0 {
  218 + query = query.Where(`order_base.create_time<=?`, createTime[1])
  219 + }
  220 +
190 if len(partnerOrCode) > 0 { 221 if len(partnerOrCode) > 0 {
191 query = query.Join("LEFT JOIN partner_info as p ON order_base.partner_id=p.id"). 222 query = query.Join("LEFT JOIN partner_info as p ON order_base.partner_id=p.id").
192 WhereGroup(func(q *orm.Query) (*orm.Query, error) { 223 WhereGroup(func(q *orm.Query) (*orm.Query, error) {
@@ -196,7 +227,7 @@ func (dao OrderBaseDao) OrderListByCondition(companyId int64, orderType int, par @@ -196,7 +227,7 @@ func (dao OrderBaseDao) OrderListByCondition(companyId int64, orderType int, par
196 return q, nil 227 return q, nil
197 }) 228 })
198 } 229 }
199 - query = query.Order("order_base.update_time DESC"). 230 + query = query.Order("order_base.create_time DESC").
200 Offset(offset). 231 Offset(offset).
201 Limit(limit) 232 Limit(limit)
202 233
@@ -204,3 +235,80 @@ func (dao OrderBaseDao) OrderListByCondition(companyId int64, orderType int, par @@ -204,3 +235,80 @@ func (dao OrderBaseDao) OrderListByCondition(companyId int64, orderType int, par
204 return orders, cnt, err 235 return orders, cnt, err
205 236
206 } 237 }
  238 +
  239 +//CustomOrderListForExcel 导出实际订单列表所用的结构
  240 +type CustomOrderListForExcel struct {
  241 + OrderCode string //订单编号
  242 + DeliveryCode string //发货编号
  243 + UpdateTime string //更新时间
  244 + CreateTime string //创建时间
  245 + PlanOrderCount int64 //货品总数
  246 + UseOrderCount int64 //货品总数调整
  247 + RegionName string //订单区域
  248 + PlanOrderAmount float64 //订单金额
  249 + UseOrderAmount float64 //订单金额调整
  250 + PartnerCategory string //合伙人类型
  251 + BuyerName string //买家
  252 + PartnerName string //合伙人
  253 +}
  254 +
  255 +//OrderListForExcel 获取实际订单列表用于excel导出
  256 +//@param companyId 公司id
  257 +//@param orderType 订单类型
  258 +//@param partnerOrCode 合伙人姓名或订单号或发货单号
  259 +//@param partnerCategory 合伙人类型id
  260 +//@param updateTime 订单更新时间范围"[开始时间,结束时间]",时间格式"2006-01-02 15:04:05+07"
  261 +//@param createTime 订单的创建时间范围"[开始时间,结束时间]" 时间格式"2006-01-02 15:04:05+07"
  262 +func (dao OrderBaseDao) OrderListForExcel(companyId int64, partnerOrCode string,
  263 + updateTime [2]string, createTime [2]string, partnerCategory int) (
  264 + result []CustomOrderListForExcel, err error) {
  265 + sqlstr := `
  266 + SELECT t1.order_code,t1.delivery_code
  267 + ,to_char(t1.create_time AT TIME ZONE 'CCT' ,'YYYY-MM-DD HH24:MI:SS') AS create_time
  268 + ,to_char(t1.update_time AT TIME ZONE 'CCT' ,'YYYY-MM-DD HH24:MI:SS') AS update_time
  269 + ,t1.plan_order_count,t1.use_order_count,t1.plan_order_amount,t1.use_order_amount
  270 + ,t1.region_info->'regionName' AS region_name,t1.buyer->'buyerName' AS buyer_name
  271 + ,t1.partner_category->'name' AS partner_category
  272 + ,t2.partner_name
  273 + FROM "order_base" AS t1
  274 + LEFT JOIN partner_info as t2 ON t1.partner_id=t2.id
  275 + WHERE 1=1 AND t1.order_type = 1 AND t1.company_id=?
  276 + `
  277 + params := []interface{}{companyId}
  278 + if len(partnerOrCode) > 0 {
  279 + like := "%" + partnerOrCode + "%"
  280 + params = append(params, like, like, like)
  281 + sqlstr += " AND (t1.order_code like ? OR t1.delivery_code like ? OR t2.partner_name like ? ) "
  282 + }
  283 +
  284 + if partnerCategory > 0 {
  285 + params = append(params, partnerCategory)
  286 + sqlstr += ` AND t1.partner_category@>'{"id":?}' `
  287 + }
  288 +
  289 + if len(updateTime[0]) > 0 {
  290 + params = append(params, updateTime[0])
  291 + sqlstr += ` AND t1.update_time>=? `
  292 + }
  293 +
  294 + if len(updateTime[1]) > 0 {
  295 + params = append(params, updateTime[1])
  296 + sqlstr += ` AND t1.update_time<=? `
  297 + }
  298 +
  299 + if len(createTime[0]) > 0 {
  300 + params = append(params, createTime[0])
  301 + sqlstr += ` AND t1.create_time>=? `
  302 + }
  303 + if len(createTime[1]) > 0 {
  304 + params = append(params, createTime[1])
  305 + sqlstr += ` AND t1.create_time<=? `
  306 + }
  307 + sqlstr += ` ORDER BY t1.create_time DESC limit 10000 `
  308 + tx := dao.transactionContext.GetDB()
  309 + _, err = tx.Query(&result, sqlstr, params...)
  310 + if err != nil {
  311 + return result, err
  312 + }
  313 + return result, nil
  314 +}
1 package domainService 1 package domainService
2 2
3 -import (  
4 - "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"  
5 - "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/dao"  
6 - "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/transaction"  
7 - "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/repository"  
8 -) 3 +// type BusinessBonusService struct {
  4 +// transactionContext *transaction.TransactionContext
  5 +// }
9 6
10 -type BusinessBonusService struct {  
11 - transactionContext *transaction.TransactionContext  
12 -} 7 +// func NewBusinessBonusService(tcx *transaction.TransactionContext) *BusinessBonusService {
  8 +// return &BusinessBonusService{
  9 +// transactionContext: tcx,
  10 +// }
  11 +// }
13 12
14 -func NewBusinessBonusService(tcx *transaction.TransactionContext) *BusinessBonusService {  
15 - return &BusinessBonusService{  
16 - transactionContext: tcx,  
17 - }  
18 -} 13 +// func (srv BusinessBonusService) EnableOrDisable(parntnerId int64) error {
  14 +// var (
  15 +// bonusDao, _ = dao.NewBusinessBonusDao(srv.transactionContext)
  16 +// bonusReponsitory, _ = repository.NewBusinessBonusRepository(srv.transactionContext)
  17 +// partnerReponsitory, _ = repository.NewPartnerInfoRepository(srv.transactionContext)
19 18
20 -func (srv BusinessBonusService) EnableOrDisable(parntnerId int64) error {  
21 - var (  
22 - bonusDao, _ = dao.NewBusinessBonusDao(srv.transactionContext)  
23 - bonusReponsitory, _ = repository.NewBusinessBonusRepository(srv.transactionContext)  
24 - partnerReponsitory, _ = repository.NewPartnerInfoRepository(srv.transactionContext) 19 +// err error
  20 +// partnerHasInBonus bool
  21 +// partnerData *domain.PartnerInfo
  22 +// partnerHasBusinessCategory bool
  23 +// )
  24 +// partnerHasInBonus, err = bonusDao.ExistBusinessBonus(parntnerId)
  25 +// if err != nil {
  26 +// return err
  27 +// }
  28 +// partnerData, err = partnerReponsitory.FindOne(domain.PartnerFindOneQuery{UserId: parntnerId})
  29 +// if err != nil {
  30 +// return err
  31 +// }
  32 +// for _, v := range partnerData.PartnerCategoryInfos {
  33 +// if v.Id == 2 {
  34 +// partnerHasBusinessCategory = true
  35 +// break
  36 +// }
  37 +// }
  38 +// if partnerHasInBonus && partnerHasBusinessCategory {
  39 +// //已存在业务分红数据况 && 是业务合伙人类型
  40 +// var bonusData *domain.BusinessBonus
  41 +// bonusData, err = bonusReponsitory.FindOne(domain.BusinessBonusFindOneQuery{
  42 +// PartnerId: parntnerId,
  43 +// })
  44 +// if bonusData.IsDisable == domain.BUSINESS_BONUS_ENABLE {
  45 +// return nil
  46 +// }
  47 +// bonusData.IsDisable = domain.BUSINESS_BONUS_ENABLE
  48 +// err = bonusReponsitory.Edit(bonusData)
  49 +// return err
  50 +// }
  51 +// if partnerHasInBonus && !partnerHasBusinessCategory {
  52 +// //已存在业务分红数据况 && 不是业务合伙人类型
  53 +// var bonusData *domain.BusinessBonus
  54 +// bonusData, err = bonusReponsitory.FindOne(domain.BusinessBonusFindOneQuery{
  55 +// PartnerId: parntnerId,
  56 +// })
  57 +// if bonusData.IsDisable == domain.BUSINESS_BONUS_DISABLE {
  58 +// return nil
  59 +// }
  60 +// bonusData.IsDisable = domain.BUSINESS_BONUS_DISABLE
  61 +// err = bonusReponsitory.Edit(bonusData)
  62 +// return err
  63 +// }
25 64
26 - err error  
27 - partnerHasInBonus bool  
28 - partnerData *domain.PartnerInfo  
29 - partnerHasBusinessCategory bool  
30 - )  
31 - partnerHasInBonus, err = bonusDao.ExistBusinessBonus(parntnerId)  
32 - if err != nil {  
33 - return err  
34 - }  
35 - partnerData, err = partnerReponsitory.FindOne(domain.PartnerFindOneQuery{UserId: parntnerId})  
36 - if err != nil {  
37 - return err  
38 - }  
39 - for _, v := range partnerData.PartnerCategoryInfos {  
40 - if v.Id == 2 {  
41 - partnerHasBusinessCategory = true  
42 - break  
43 - }  
44 - }  
45 - if partnerHasInBonus && partnerHasBusinessCategory {  
46 - //已存在业务分红数据况 && 是业务合伙人类型  
47 - var bonusData *domain.BusinessBonus  
48 - bonusData, err = bonusReponsitory.FindOne(domain.BusinessBonusFindOneQuery{  
49 - PartnerId: parntnerId,  
50 - })  
51 - if bonusData.IsDisable == domain.BUSINESS_BONUS_ENABLE {  
52 - return nil  
53 - }  
54 - bonusData.IsDisable = domain.BUSINESS_BONUS_ENABLE  
55 - err = bonusReponsitory.Edit(bonusData)  
56 - return err  
57 - }  
58 - if partnerHasInBonus && !partnerHasBusinessCategory {  
59 - //已存在业务分红数据况 && 不是业务合伙人类型  
60 - var bonusData *domain.BusinessBonus  
61 - bonusData, err = bonusReponsitory.FindOne(domain.BusinessBonusFindOneQuery{  
62 - PartnerId: parntnerId,  
63 - })  
64 - if bonusData.IsDisable == domain.BUSINESS_BONUS_DISABLE {  
65 - return nil  
66 - }  
67 - bonusData.IsDisable = domain.BUSINESS_BONUS_DISABLE  
68 - err = bonusReponsitory.Edit(bonusData)  
69 - return err  
70 - } 65 +// if !partnerHasInBonus && partnerHasBusinessCategory {
  66 +// //不存在业务分红数据况 && 是业务合伙人类型
  67 +// newBonus := &domain.BusinessBonus{
  68 +// PartnerInfoId: partnerData.Partner.Id,
  69 +// IsDisable: domain.BUSINESS_BONUS_ENABLE,
  70 +// CompanyId: partnerData.CompanyId,
  71 +// Bonus: 0,
  72 +// }
  73 +// err = bonusReponsitory.Add(newBonus)
  74 +// return err
  75 +// }
71 76
72 - if !partnerHasInBonus && partnerHasBusinessCategory {  
73 - //不存在业务分红数据况 && 是业务合伙人类型  
74 - newBonus := &domain.BusinessBonus{  
75 - PartnerInfoId: partnerData.Partner.Id,  
76 - IsDisable: domain.BUSINESS_BONUS_ENABLE,  
77 - CompanyId: partnerData.CompanyId,  
78 - Bonus: 0,  
79 - }  
80 - err = bonusReponsitory.Add(newBonus)  
81 - return err  
82 - }  
83 -  
84 - return nil  
85 -} 77 +// return nil
  78 +// }
  79 +// }
@@ -28,7 +28,6 @@ func NewOrderBonusService(tcx *transaction.TransactionContext) *OrderBonusServic @@ -28,7 +28,6 @@ func NewOrderBonusService(tcx *transaction.TransactionContext) *OrderBonusServic
28 } 28 }
29 29
30 //UpdateBounsWithGoodNumber 分红时,因修改订单中商品的数量发生分红变动 30 //UpdateBounsWithGoodNumber 分红时,因修改订单中商品的数量发生分红变动
31 -//目前只处理 xiangmi的订单 即 order_type = OrderTypeBestShop (3)  
32 func (serve *OrderBonusService) UpdateBounsByGoodNumber(orderId int64, adminId int64, goodId int64, goodWithNumber int, reason string) error { 31 func (serve *OrderBonusService) UpdateBounsByGoodNumber(orderId int64, adminId int64, goodId int64, goodWithNumber int, reason string) error {
33 var ( 32 var (
34 userRepository domain.UsersRepository 33 userRepository domain.UsersRepository
@@ -52,9 +51,6 @@ func (serve *OrderBonusService) UpdateBounsByGoodNumber(orderId int64, adminId i @@ -52,9 +51,6 @@ func (serve *OrderBonusService) UpdateBounsByGoodNumber(orderId int64, adminId i
52 e := fmt.Sprintf("获取订单(id=%d)数据失败,%s", orderId, err) 51 e := fmt.Sprintf("获取订单(id=%d)数据失败,%s", orderId, err)
53 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) 52 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
54 } 53 }
55 - if oldOrder.OrderType != domain.OrderTypeBestShop {  
56 - return lib.ThrowError(lib.BUSINESS_ERROR, "订单类型错误")  
57 - }  
58 oldOrder.Goods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{OrderId: orderId}) 54 oldOrder.Goods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{OrderId: orderId})
59 if err != nil { 55 if err != nil {
60 e := fmt.Sprintf("获取订单(id=%d)中的货品数据失败,%s", orderId, err) 56 e := fmt.Sprintf("获取订单(id=%d)中的货品数据失败,%s", orderId, err)
@@ -82,8 +78,13 @@ func (serve *OrderBonusService) UpdateBounsByGoodNumber(orderId int64, adminId i @@ -82,8 +78,13 @@ func (serve *OrderBonusService) UpdateBounsByGoodNumber(orderId int64, adminId i
82 updateGood = oldOrder.Goods[i] 78 updateGood = oldOrder.Goods[i]
83 formerNumber = updateGood.GetCurrentGoodNumber() 79 formerNumber = updateGood.GetCurrentGoodNumber()
84 formerAmount = updateGood.GetCurrentAmount() 80 formerAmount = updateGood.GetCurrentAmount()
85 - err := new(domain.OrderGoodWithBestshop).  
86 - UpdateBonusByGoodNumber(&updateGood, goodWithNumber) 81 + //TODO
  82 + // err := new(domain.OrderGoodWithBestshop).
  83 + // UpdateBonusByGoodNumber(&updateGood, goodWithNumber)
  84 + // if err != nil {
  85 + // return lib.ThrowError(lib.BUSINESS_ERROR, err.Error())
  86 + // }
  87 + err = updateGood.ModifyOrderGoodNumber(goodWithNumber, oldOrder.OrderType)
87 if err != nil { 88 if err != nil {
88 return lib.ThrowError(lib.BUSINESS_ERROR, err.Error()) 89 return lib.ThrowError(lib.BUSINESS_ERROR, err.Error())
89 } 90 }
@@ -128,7 +129,6 @@ func (serve *OrderBonusService) UpdateBounsByGoodNumber(orderId int64, adminId i @@ -128,7 +129,6 @@ func (serve *OrderBonusService) UpdateBounsByGoodNumber(orderId int64, adminId i
128 } 129 }
129 130
130 //UpdateBounsByPartnerBonusPercent 分红时,因修改订单中商品的合伙人分行比例发生分红变动 131 //UpdateBounsByPartnerBonusPercent 分红时,因修改订单中商品的合伙人分行比例发生分红变动
131 -////目前只处理 xiangmi的订单 即 order_type = OrderTypeBestShop (3)  
132 func (serve *OrderBonusService) UpdateBounsByPartnerBonusPercent(orderId int64, adminId int64, goodId int64, partnerPercent float64, reason string) error { 132 func (serve *OrderBonusService) UpdateBounsByPartnerBonusPercent(orderId int64, adminId int64, goodId int64, partnerPercent float64, reason string) error {
133 var ( 133 var (
134 userRepository domain.UsersRepository 134 userRepository domain.UsersRepository
@@ -152,9 +152,7 @@ func (serve *OrderBonusService) UpdateBounsByPartnerBonusPercent(orderId int64, @@ -152,9 +152,7 @@ func (serve *OrderBonusService) UpdateBounsByPartnerBonusPercent(orderId int64,
152 e := fmt.Sprintf("获取订单(id=%d)数据失败,%s", orderId, err) 152 e := fmt.Sprintf("获取订单(id=%d)数据失败,%s", orderId, err)
153 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) 153 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
154 } 154 }
155 - if oldOrder.OrderType != domain.OrderTypeBestShop {  
156 - return lib.ThrowError(lib.BUSINESS_ERROR, "订单类型错误")  
157 - } 155 +
158 oldOrder.Goods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{OrderId: orderId}) 156 oldOrder.Goods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{OrderId: orderId})
159 if err != nil { 157 if err != nil {
160 e := fmt.Sprintf("获取订单中(id=%d)的货品数据失败,%s", orderId, err) 158 e := fmt.Sprintf("获取订单中(id=%d)的货品数据失败,%s", orderId, err)
@@ -182,8 +180,10 @@ func (serve *OrderBonusService) UpdateBounsByPartnerBonusPercent(orderId int64, @@ -182,8 +180,10 @@ func (serve *OrderBonusService) UpdateBounsByPartnerBonusPercent(orderId int64,
182 updateGood = oldOrder.Goods[i] 180 updateGood = oldOrder.Goods[i]
183 formerPartnerBonusPercent = updateGood.PartnerBonusPercent 181 formerPartnerBonusPercent = updateGood.PartnerBonusPercent
184 formerPartnerBonus = updateGood.GetCurrentPartnerBonus() 182 formerPartnerBonus = updateGood.GetCurrentPartnerBonus()
185 - err := new(domain.OrderGoodWithBestshop).  
186 - UpdateBonusByPertnerBonusPercent(&updateGood, partnerPercent) 183 + // err := new(domain.OrderGoodWithBestshop).
  184 + // UpdateBonusByPertnerBonusPercent(&updateGood, partnerPercent)
  185 +
  186 + err = updateGood.ModifyPertnerBonusPercent(partnerPercent, oldOrder.OrderType)
187 if err != nil { 187 if err != nil {
188 return lib.ThrowError(lib.BUSINESS_ERROR, err.Error()) 188 return lib.ThrowError(lib.BUSINESS_ERROR, err.Error())
189 } 189 }
@@ -230,7 +230,6 @@ func (serve *OrderBonusService) UpdateBounsByPartnerBonusPercent(orderId int64, @@ -230,7 +230,6 @@ func (serve *OrderBonusService) UpdateBounsByPartnerBonusPercent(orderId int64,
230 } 230 }
231 231
232 //PayOrderGoodBonus 支付订单中货品的分红 232 //PayOrderGoodBonus 支付订单中货品的分红
233 -//目前只处理 海鲜干货的订单 即 order_type = OrderTypeBestShop (3)  
234 func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, adminId int64) error { 233 func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, adminId int64) error {
235 var ( 234 var (
236 userRepository domain.UsersRepository 235 userRepository domain.UsersRepository
@@ -254,9 +253,6 @@ func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, a @@ -254,9 +253,6 @@ func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, a
254 e := fmt.Sprintf("获取订单(id=%d)数据失败,%s", orderId, err) 253 e := fmt.Sprintf("获取订单(id=%d)数据失败,%s", orderId, err)
255 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) 254 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
256 } 255 }
257 - if oldOrder.OrderType != domain.OrderTypeBestShop {  
258 - return lib.ThrowError(lib.BUSINESS_ERROR, "订单类型错误")  
259 - }  
260 oldOrder.Goods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{OrderId: orderId}) 256 oldOrder.Goods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{OrderId: orderId})
261 if err != nil { 257 if err != nil {
262 e := fmt.Sprintf("获取订单中(id=%d)的货品数据失败,%s", orderId, err) 258 e := fmt.Sprintf("获取订单中(id=%d)的货品数据失败,%s", orderId, err)
@@ -279,7 +275,13 @@ func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, a @@ -279,7 +275,13 @@ func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, a
279 continue 275 continue
280 } 276 }
281 updateGood = oldOrder.Goods[i] 277 updateGood = oldOrder.Goods[i]
282 - err := new(domain.OrderGoodWithBestshop).PayPartnerBonus(&updateGood) 278 + if updateGood.PartnerBonusPercent < 0 {
  279 + return nil
  280 + }
  281 + if updateGood.BonusStatus == domain.OrderGoodHasPay {
  282 + return nil
  283 + }
  284 + err = updateGood.CurrentBonusStatus.PayPartnerBonus(&updateGood)
283 if err != nil { 285 if err != nil {
284 return lib.ThrowError(lib.BUSINESS_ERROR, err.Error()) 286 return lib.ThrowError(lib.BUSINESS_ERROR, err.Error())
285 } 287 }
@@ -305,11 +307,11 @@ func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, a @@ -305,11 +307,11 @@ func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, a
305 } 307 }
306 // 308 //
307 payEvent := event.PayOrderGoodBonus{ 309 payEvent := event.PayOrderGoodBonus{
308 - OrderId: orderId,  
309 - GoodId: goodId,  
310 - AdminId: adminId,  
311 - GoodName: updateGood.GoodName,  
312 - PartnerBonus: updateGood.GetCurrentPartnerBonus(), 310 + OrderBase: oldOrder,
  311 + Goods: []domain.OrderGood{
  312 + updateGood,
  313 + },
  314 + Admin: &adminUser,
313 } 315 }
314 if err = serve.Publish(payEvent); err != nil { 316 if err = serve.Publish(payEvent); err != nil {
315 return err 317 return err
@@ -318,7 +320,6 @@ func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, a @@ -318,7 +320,6 @@ func (serve *OrderBonusService) PayOrderGoodBonus(orderId int64, goodId int64, a
318 } 320 }
319 321
320 //UpdateOrderRemarkBonus 更新备注 322 //UpdateOrderRemarkBonus 更新备注
321 -//目前只处理 海鲜干货的订单 即 order_type = OrderTypeBestShop (3)  
322 func (serve *OrderBonusService) UpdateOrderRemarkBonus(orderId int64, adminId int64, remark string) error { 323 func (serve *OrderBonusService) UpdateOrderRemarkBonus(orderId int64, adminId int64, remark string) error {
323 var ( 324 var (
324 userRepository domain.UsersRepository 325 userRepository domain.UsersRepository
@@ -338,9 +339,6 @@ func (serve *OrderBonusService) UpdateOrderRemarkBonus(orderId int64, adminId in @@ -338,9 +339,6 @@ func (serve *OrderBonusService) UpdateOrderRemarkBonus(orderId int64, adminId in
338 e := fmt.Sprintf("获取订单(id=%d)数据失败,%s", orderId, err) 339 e := fmt.Sprintf("获取订单(id=%d)数据失败,%s", orderId, err)
339 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e) 340 return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
340 } 341 }
341 - if oldOrder.OrderType != domain.OrderTypeBestShop {  
342 - return lib.ThrowError(lib.BUSINESS_ERROR, "订单类型错误")  
343 - }  
344 adminUser, err = userRepository.FindOne(domain.UsersFindOneQuery{Id: adminId}) 342 adminUser, err = userRepository.FindOne(domain.UsersFindOneQuery{Id: adminId})
345 if err != nil { 343 if err != nil {
346 e := fmt.Sprintf("获取管理员用户(id=%d)数据失败,%s", adminId, err) 344 e := fmt.Sprintf("获取管理员用户(id=%d)数据失败,%s", adminId, err)
@@ -368,6 +366,95 @@ func (serve *OrderBonusService) UpdateOrderRemarkBonus(orderId int64, adminId in @@ -368,6 +366,95 @@ func (serve *OrderBonusService) UpdateOrderRemarkBonus(orderId int64, adminId in
368 return err 366 return err
369 } 367 }
370 } 368 }
  369 + return nil
  370 +}
  371 +
  372 +//BatchPayPartnerBonus 批量支付订单中货品的分红
  373 +func (serve *OrderBonusService) BatchPayPartnerBonus(orderIds []int64, adminId int64) error {
  374 + var (
  375 + userRepository domain.UsersRepository
  376 + orderBaseReponsitory domain.OrderBaseRepository
  377 + orderGoodRepository domain.OrderGoodRepository
  378 +
  379 + adminUser domain.Users
  380 + err error
  381 + )
  382 + if orderGoodRepository, err = repository.NewOrderGoodRepository(serve.transactionContext); err != nil {
  383 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  384 + }
  385 + if orderBaseReponsitory, err = repository.NewOrderBaseRepository(serve.transactionContext); err != nil {
  386 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  387 + }
  388 + if userRepository, err = repository.NewUsersRepository(serve.transactionContext); err != nil {
  389 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  390 + }
  391 + adminUser, err = userRepository.FindOne(domain.UsersFindOneQuery{Id: adminId})
  392 + if err != nil {
  393 + e := fmt.Sprintf("获取管理员用户(id=%d)数据失败,%s", adminId, err)
  394 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
  395 + }
  396 + var (
  397 + payEvents []event.PayOrderGoodBonus
  398 + )
  399 + for _, orderId := range orderIds {
  400 + var oldOrder *domain.OrderBase
  401 + oldOrder, err = orderBaseReponsitory.FindOne(domain.OrderBaseFindOneQuery{OrderId: orderId})
  402 + if err != nil {
  403 + e := fmt.Sprintf("获取订单(id=%d)数据失败,%s", orderId, err)
  404 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
  405 + }
  406 + oldOrder.Goods, _, err = orderGoodRepository.Find(domain.OrderGoodFindQuery{OrderId: orderId})
  407 + if err != nil {
  408 + e := fmt.Sprintf("获取订单中(id=%d)的货品数据失败,%s", orderId, err)
  409 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, e)
  410 + }
371 411
  412 + if ok := adminUser.InCompany(oldOrder.CompanyId); !ok {
  413 + return lib.ThrowError(lib.BUSINESS_ERROR, "用户不能更新非自己公司的订单")
  414 + }
  415 + var updateGoods []domain.OrderGood
  416 + for i := range oldOrder.Goods {
  417 + thisGood := oldOrder.Goods[i]
  418 + if thisGood.BonusStatus == domain.OrderGoodHasPay {
  419 + //已支付
  420 + continue
  421 + }
  422 + if thisGood.PartnerBonusPercent < 0 {
  423 + //未设置合伙人分红比例
  424 + continue
  425 + }
  426 + thisGood.CurrentBonusStatus.PayPartnerBonus(&thisGood)
  427 + oldOrder.Goods[i] = thisGood
  428 + //货品更新
  429 + updateGoods = append(updateGoods, thisGood)
  430 + }
  431 + err = oldOrder.Compute()
  432 + if err != nil {
  433 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, "核算订单数据失败")
  434 + }
  435 + //更新订单货品
  436 + if len(updateGoods) > 0 {
  437 + err = orderBaseReponsitory.Save(oldOrder)
  438 + if err != nil {
  439 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  440 + }
  441 + err = orderGoodRepository.Save(updateGoods)
  442 + if err != nil {
  443 + return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  444 + }
  445 + //构建事件
  446 + payEvent := event.PayOrderGoodBonus{
  447 + OrderBase: oldOrder,
  448 + Goods: updateGoods,
  449 + Admin: &adminUser,
  450 + }
  451 + payEvents = append(payEvents, payEvent)
  452 + }
  453 + }
  454 + if len(payEvents) > 0 {
  455 + if err = serve.Publish(event.BatchPayOrderGoodBonus(payEvents)); err != nil {
  456 + return err
  457 + }
  458 + }
372 return nil 459 return nil
373 } 460 }
@@ -116,7 +116,7 @@ func (repository OrderBaseRepository) Find(queryOption domain.OrderBaseFindQuery @@ -116,7 +116,7 @@ func (repository OrderBaseRepository) Find(queryOption domain.OrderBaseFindQuery
116 err error 116 err error
117 ordersReturn = make([]domain.OrderBase, 0) 117 ordersReturn = make([]domain.OrderBase, 0)
118 ) 118 )
119 - query = query.Order("order_base.id DESC") 119 + query = query.Order("order_base.create_time DESC")
120 count, err := query.SelectAndCount() 120 count, err := query.SelectAndCount()
121 if err != nil { 121 if err != nil {
122 return ordersReturn, 0, err 122 return ordersReturn, 0, err
@@ -106,7 +106,7 @@ func (repository OrderGoodRepository) Find(queryOption domain.OrderGoodFindQuery @@ -106,7 +106,7 @@ func (repository OrderGoodRepository) Find(queryOption domain.OrderGoodFindQuery
106 if queryOption.Limit > 0 { 106 if queryOption.Limit > 0 {
107 query = query.Limit(queryOption.Limit) 107 query = query.Limit(queryOption.Limit)
108 } else { 108 } else {
109 - query = query.Limit(100) 109 + query = query.Limit(1000)
110 } 110 }
111 var ( 111 var (
112 err error 112 err error
1 package controllers 1 package controllers
2 2
3 import ( 3 import (
4 - "encoding/json"  
5 "errors" 4 "errors"
6 "fmt" 5 "fmt"
7 - "time"  
8 6
9 - "github.com/GeeTeam/gt3-golang-sdk/geetest"  
10 "github.com/astaxie/beego/logs" 7 "github.com/astaxie/beego/logs"
11 userCmd "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/users/command" 8 userCmd "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/users/command"
12 userService "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/users/service" 9 userService "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/users/service"
@@ -54,27 +51,26 @@ func (c *AdminLoginController) Login() { @@ -54,27 +51,26 @@ func (c *AdminLoginController) Login() {
54 } 51 }
55 52
56 //CaptchaInit 极验初始化 53 //CaptchaInit 极验初始化
57 -func (c *AdminLoginController) CaptchaInit() {  
58 - const (  
59 - captchaID = "33a2abf9c5df0d6bc3b89fb39280114b"  
60 - privateKey = "13320fd2b10199e9a2440a4fbb4d46f7"  
61 - )  
62 - newGeetest := geetest.NewGeetestLib(captchaID, privateKey, 2*time.Second)  
63 - userip := c.Ctx.Input.IP()  
64 - _, responseBt := newGeetest.PreProcess("", userip)  
65 - // c.SetSession("geetest_status", status)  
66 - var geetestRsp geetest.FailbackRegisterRespnse  
67 - json.Unmarshal(responseBt, &geetestRsp)  
68 - //对前端定义的数据格式进行适配。。。  
69 - rspData := map[string]interface{}{  
70 - "success": geetestRsp.Success,  
71 - "gt": geetestRsp.GT,  
72 - "challenge": geetestRsp.Challenge,  
73 - "newCaptcha": geetestRsp.NewCaptcha,  
74 - }  
75 - c.ResponseData(rspData)  
76 - return  
77 -} 54 +// func (c *AdminLoginController) CaptchaInit() {
  55 +// const (
  56 +// captchaID = "33a2abf9c5df0d6bc3b89fb39280114b"
  57 +// privateKey = "13320fd2b10199e9a2440a4fbb4d46f7"
  58 +// )
  59 +// newGeetest := geetest.NewGeetestLib(captchaID, privateKey, 2*time.Second)
  60 +// userip := c.Ctx.Input.IP()
  61 +// _, responseBt := newGeetest.PreProcess("", userip)
  62 +// var geetestRsp geetest.FailbackRegisterRespnse
  63 +// json.Unmarshal(responseBt, &geetestRsp)
  64 +// //对前端定义的数据格式进行适配。。。
  65 +// rspData := map[string]interface{}{
  66 +// "success": geetestRsp.Success,
  67 +// "gt": geetestRsp.GT,
  68 +// "challenge": geetestRsp.Challenge,
  69 +// "newCaptcha": geetestRsp.NewCaptcha,
  70 +// }
  71 +// c.ResponseData(rspData)
  72 +// return
  73 +// }
78 74
79 //AdminpPofile 获取登录用户的权限配置 75 //AdminpPofile 获取登录用户的权限配置
80 func (c *AdminLoginController) AdminpPofile() { 76 func (c *AdminLoginController) AdminpPofile() {
1 package controllers 1 package controllers
2 2
3 -import (  
4 - "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"  
5 -)  
6 -  
7 -type BusinessBonusController struct {  
8 - BaseController  
9 -} 3 +// type BusinessBonusController struct {
  4 +// BaseController
  5 +// }
10 6
11 -func (c *BusinessBonusController) Prepare() {  
12 - c.BaseController.Prepare()  
13 - if ok := c.ValidJWTToken(); !ok {  
14 - return  
15 - }  
16 - if ok := c.ValidAdminPermission(domain.PERMISSION_DIVIDEND); !ok {  
17 - return  
18 - }  
19 -} 7 +// func (c *BusinessBonusController) Prepare() {
  8 +// c.BaseController.Prepare()
  9 +// if ok := c.ValidJWTToken(); !ok {
  10 +// return
  11 +// }
  12 +// if ok := c.ValidAdminPermission(domain.PERMISSION_DIVIDEND); !ok {
  13 +// return
  14 +// }
  15 +// }
20 16
21 // func (c *BusinessBonusController) ListBusinessBonus() { 17 // func (c *BusinessBonusController) ListBusinessBonus() {
22 // type Parameter struct { 18 // type Parameter struct {
@@ -110,3 +106,27 @@ func (c *BusinessBonusController) Prepare() { @@ -110,3 +106,27 @@ func (c *BusinessBonusController) Prepare() {
110 // } 106 // }
111 // c.ResponseData(data) 107 // c.ResponseData(data)
112 // } 108 // }
  109 +// type Parameter struct {
  110 +// Id int64 `json:"id"`
  111 +// }
  112 +// var (
  113 +// param Parameter
  114 +// err error
  115 +// )
  116 +// if err = c.BindJsonData(&param); err != nil {
  117 +// logs.Error(err)
  118 +// c.ResponseError(errors.New("json数据解析失败"))
  119 +// return
  120 +// }
  121 +// companyId := c.GetUserCompany()
  122 +// srv := businessService.NewBusinessBonusService(nil)
  123 +// data, err := srv.GetBusinessBonus(businessQuery.GetBusinessBonusQuery{
  124 +// Id: param.Id,
  125 +// CompanyId: companyId,
  126 +// })
  127 +// if err != nil {
  128 +// c.ResponseError(err)
  129 +// return
  130 +// }
  131 +// c.ResponseData(data)
  132 +// }
@@ -2,11 +2,10 @@ package controllers @@ -2,11 +2,10 @@ package controllers
2 2
3 import ( 3 import (
4 "errors" 4 "errors"
5 - "fmt"  
6 "strconv" 5 "strconv"
  6 + "time"
7 7
8 "github.com/astaxie/beego/logs" 8 "github.com/astaxie/beego/logs"
9 - orderCmd "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/orderinfo/command"  
10 orderQuery "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/orderinfo/query" 9 orderQuery "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/orderinfo/query"
11 orderService "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/orderinfo/service" 10 orderService "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/orderinfo/service"
12 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain" 11 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
@@ -32,11 +31,12 @@ func (c *OrderDividendController) Prepare() { @@ -32,11 +31,12 @@ func (c *OrderDividendController) Prepare() {
32 //PageListOrderDividend 获取实发订单分红列表 31 //PageListOrderDividend 获取实发订单分红列表
33 func (c *OrderDividendController) PageListOrderDividend() { 32 func (c *OrderDividendController) PageListOrderDividend() {
34 type Parameter struct { 33 type Parameter struct {
35 - SearchWord string `json:"searchWord"`  
36 - OrderType int `json:"orderType"`  
37 - PageSize int `json:"pageSize"`  
38 - PageNumber int `json:"pageNumber"`  
39 - PartnerCategoryId int `json:"partnerCategoryId"` 34 + SearchWord string `json:"searchWord"`
  35 + OrderType int `json:"orderType"`
  36 + PageSize int `json:"pageSize"`
  37 + PageNumber int `json:"pageNumber"`
  38 + PartnerCategoryId int `json:"partnerCategoryId"`
  39 + CreateTime []string `json:"createTime"`
40 } 40 }
41 var ( 41 var (
42 param Parameter 42 param Parameter
@@ -59,6 +59,33 @@ func (c *OrderDividendController) PageListOrderDividend() { @@ -59,6 +59,33 @@ func (c *OrderDividendController) PageListOrderDividend() {
59 if param.PageSize == 0 { 59 if param.PageSize == 0 {
60 param.PageSize = 20 60 param.PageSize = 20
61 } 61 }
  62 +
  63 + var (
  64 + createTimeBegin string
  65 + createTimeEnd string
  66 + )
  67 + if len(param.CreateTime) > 0 {
  68 + if len(param.CreateTime[0]) > 0 {
  69 + t, err := time.ParseInLocation("2006-01-02", param.CreateTime[0], time.Local)
  70 + if err != nil {
  71 + c.ResponseError(errors.New("UpdateTimeBegin 时间格式错误"))
  72 + return
  73 + }
  74 + createTimeBegin = t.Format("2006-01-02 15:04:05-07")
  75 + }
  76 + }
  77 + if len(param.CreateTime) > 1 {
  78 + if len(param.CreateTime[1]) > 0 {
  79 + t, err := time.ParseInLocation("2006-01-02", param.CreateTime[1], time.Local)
  80 + if err != nil {
  81 + c.ResponseError(errors.New("UpdateTimeEnd 时间格式错误"))
  82 + return
  83 + }
  84 + //设定时间边界
  85 + t = t.Add(86399 * time.Second)
  86 + createTimeEnd = t.Format("2006-01-02 15:04:05-07")
  87 + }
  88 + }
62 companyId := c.GetUserCompany() 89 companyId := c.GetUserCompany()
63 orderSrv := orderService.NewOrderInfoService(nil) 90 orderSrv := orderService.NewOrderInfoService(nil)
64 resp, cnt, err := orderSrv.PageListOrderBonus(orderQuery.ListOrderBonusQuery{ 91 resp, cnt, err := orderSrv.PageListOrderBonus(orderQuery.ListOrderBonusQuery{
@@ -68,6 +95,8 @@ func (c *OrderDividendController) PageListOrderDividend() { @@ -68,6 +95,8 @@ func (c *OrderDividendController) PageListOrderDividend() {
68 Offset: (param.PageNumber - 1) * param.PageSize, 95 Offset: (param.PageNumber - 1) * param.PageSize,
69 CompanyId: companyId, 96 CompanyId: companyId,
70 PartnerCategory: param.PartnerCategoryId, 97 PartnerCategory: param.PartnerCategoryId,
  98 + CreateTimeBegin: createTimeBegin,
  99 + CreateTimeEnd: createTimeEnd,
71 }) 100 })
72 if err != nil { 101 if err != nil {
73 c.ResponseError(err) 102 c.ResponseError(err)
@@ -77,7 +106,6 @@ func (c *OrderDividendController) PageListOrderDividend() { @@ -77,7 +106,6 @@ func (c *OrderDividendController) PageListOrderDividend() {
77 return 106 return
78 } 107 }
79 108
80 -//OrderDividendDetail 订单的分红详情  
81 func (c *OrderDividendController) OrderDividendDetail() { 109 func (c *OrderDividendController) OrderDividendDetail() {
82 type Parameter struct { 110 type Parameter struct {
83 Id string `json:"id"` 111 Id string `json:"id"`
@@ -98,168 +126,26 @@ func (c *OrderDividendController) OrderDividendDetail() { @@ -98,168 +126,26 @@ func (c *OrderDividendController) OrderDividendDetail() {
98 } 126 }
99 companyId := c.GetUserCompany() 127 companyId := c.GetUserCompany()
100 orderSrv := orderService.NewOrderInfoService(nil) 128 orderSrv := orderService.NewOrderInfoService(nil)
101 - orderinfo, err := orderSrv.GetOrderDetail(orderQuery.GetOrderQuery{  
102 - OrderId: orderid,  
103 - CompanyId: companyId,  
104 - }) 129 + orderinfo, err := orderSrv.GetOrderInfoWithBonus(orderid, companyId)
105 if err != nil { 130 if err != nil {
106 c.ResponseError(err) 131 c.ResponseError(err)
107 return 132 return
108 } 133 }
109 - if orderinfo.OrderType != domain.OrderReal {  
110 - c.ResponseError(errors.New("参数错误"))  
111 - return  
112 - }  
113 - allGoods := []map[string]interface{}{}  
114 - for _, v := range orderinfo.Goods {  
115 - detail := map[string]interface{}{  
116 - "productName": v.GoodName,  
117 - "orderNum": v.PlanGoodNumber,  
118 - "univalence": v.Price,  
119 - "partnerRatio": v.PartnerBonusPercent,  
120 - "orderPrice": v.GoodCompute.PlanAmount,  
121 - "partnerDividendsReceivable": v.GoodCompute.PlanPartnerBonus,  
122 - }  
123 - m := map[string]interface{}{  
124 - "detail": detail,  
125 - "quantityControl": "",  
126 - "id": v.Id,  
127 - "stateOfPayment": v.BonusStatus,  
128 - "remark": v.Remark,  
129 - "amountControl": "",  
130 - "partnerDividendControl": "",  
131 - "receivedDividends": v.GoodCompute.PartnerBonusHas,  
132 - "notReceivedDividend": v.GoodCompute.PartnerBonusNot,  
133 - "dividendSpending": v.GoodCompute.PartnerBonusExpense,  
134 - }  
135 - if v.GoodCompute.UseAmount >= 0 {  
136 - m["amountControl"] = fmt.Sprint(v.GoodCompute.UseAmount)  
137 - }  
138 - if v.UseGoodNumber >= 0 {  
139 - m["quantityControl"] = fmt.Sprint(v.UseGoodNumber)  
140 - }  
141 - if v.GoodCompute.UsePartnerBonus >= 0 {  
142 - m["partnerDividendControl"] = fmt.Sprint(v.GoodCompute.UsePartnerBonus)  
143 - }  
144 - allGoods = append(allGoods, m)  
145 - }  
146 - orderData := map[string]interface{}{  
147 - "buyer": orderinfo.Buyer.BuyerName,  
148 - "shipmentsId": orderinfo.DeliveryCode,  
149 - "orderDist": orderinfo.RegionInfo.RegionName,  
150 - "partner": orderinfo.PartnerInfo.PartnerName,  
151 - "id": orderinfo.Id,  
152 - "orderId": orderinfo.OrderCode,  
153 - "partnerCategoryId": orderinfo.PartnerCategory.Id,  
154 - "partnerCategoryName": orderinfo.PartnerCategory.Name,  
155 - }  
156 - dividendCount := map[string]interface{}{  
157 - "orderNum": orderinfo.OrderCompute.PlanOrderCount,  
158 - "orderAmountAdjustment": orderinfo.OrderCompute.PlanOrderAmount,  
159 - "orderNumControl": "",  
160 - "orderAmountAdjustmentControl": "",  
161 - "partnerDividends": orderinfo.OrderCompute.PlanPartnerBonus,  
162 - "partnerDividendsControl": "",  
163 - "receivedDividends": orderinfo.OrderCompute.PartnerBonusHas,  
164 - "notReceivedDividend": orderinfo.OrderCompute.PartnerBonusNot,  
165 - "dividendSpending": orderinfo.OrderCompute.PartnerBonusExpense,  
166 - "commissionProportion": orderinfo.SalesmanBonusPercent,  
167 - "expectedCommission": orderinfo.OrderCompute.SalesmanBonus,  
168 - }  
169 - if orderinfo.OrderCompute.UseOrderAmount >= 0 {  
170 - dividendCount["orderAmountAdjustmentControl"] = fmt.Sprint(orderinfo.OrderCompute.UseOrderAmount)  
171 - }  
172 - if orderinfo.OrderCompute.UsePartnerBonus >= 0 {  
173 - dividendCount["partnerDividendsControl"] = fmt.Sprint(orderinfo.OrderCompute.UsePartnerBonus)  
174 - }  
175 - if orderinfo.OrderCompute.UseOrderCount >= 0 {  
176 - dividendCount["orderNumControl"] = fmt.Sprint(orderinfo.OrderCompute.UseOrderCount)  
177 - }  
178 - rsp := map[string]interface{}{  
179 - "order": orderData,  
180 - "product": allGoods,  
181 - "dividendCount": dividendCount,  
182 - "operationTime": orderinfo.UpdateTime.Local().Format("2006-01-02 15:04:06"),  
183 - }  
184 - if orderinfo.OrderCompute.UseOrderAmount >= 0 {  
185 - rsp["orderNumCountControl"] = fmt.Sprint(orderinfo.OrderCompute.UseOrderAmount)  
186 - }  
187 - if orderinfo.OrderCompute.UseOrderCount >= 0 {  
188 - rsp["orderAmountAdjustmentCountControl"] = fmt.Sprint(orderinfo.OrderCompute.UseOrderCount)  
189 - }  
190 - c.ResponseData(rsp) 134 + c.ResponseData(orderinfo)
191 return 135 return
192 } 136 }
193 137
194 -type postOrderDividend struct {  
195 - Id int64 `json:"id"`  
196 - DividendPayments []postDividendPayment `json:"dividendPayment"`  
197 -} 138 +// type postOrderDividend struct {
  139 +// Id int64 `json:"id"`
  140 +// DividendPayments []postDividendPayment `json:"dividendPayment"`
  141 +// }
198 142
199 -type postDividendPayment struct {  
200 - QuantityControl string `json:"quantityControl"`  
201 - StateOfPayment int `json:"stateOfPayment"`  
202 - ProductId int64 `json:"productId"`  
203 - Remark string `json:"remark"`  
204 -}  
205 -  
206 -func (c *OrderDividendController) EditOrderDividend() {  
207 - var (  
208 - param postOrderDividend  
209 - err error  
210 - )  
211 - if err = c.BindJsonData(&param); err != nil {  
212 - logs.Error(err)  
213 - c.ResponseError(errors.New("json数据解析失败"))  
214 - return  
215 - }  
216 -  
217 - if param.Id == 0 {  
218 - c.ResponseError(errors.New("参数错误"))  
219 - return  
220 - }  
221 - goodbouns := []orderCmd.GoodBouns{}  
222 - for _, v := range param.DividendPayments {  
223 - if v.ProductId == 0 {  
224 - c.ResponseError(errors.New("参数错误"))  
225 - return  
226 - }  
227 - if !(v.StateOfPayment == domain.OrderGoodWaitPay || v.StateOfPayment == domain.OrderGoodHasPay) {  
228 - c.ResponseError(errors.New("参数错误"))  
229 - return  
230 - }  
231 - g := orderCmd.GoodBouns{  
232 - GoodId: v.ProductId,  
233 - Remark: v.Remark,  
234 - BounsStatus: v.StateOfPayment,  
235 - }  
236 - if len(v.QuantityControl) == 0 {  
237 - g.UseGoodNumber = -1  
238 - } else {  
239 - num, err := strconv.Atoi(v.QuantityControl)  
240 - if err != nil {  
241 - c.ResponseError(errors.New("参数错误"))  
242 - return  
243 - }  
244 - g.UseGoodNumber = num  
245 - }  
246 - goodbouns = append(goodbouns, g)  
247 - }  
248 - companyId := c.GetUserCompany()  
249 - cmd := orderCmd.UpdateGoodBouns{  
250 - Id: param.Id,  
251 - GoodBouns: goodbouns,  
252 - CompanyId: companyId,  
253 - }  
254 - orderSrv := orderService.NewOrderInfoService(nil)  
255 - err = orderSrv.UpdateGoodBouns(cmd)  
256 - if err != nil {  
257 - c.ResponseError(err)  
258 - return  
259 - }  
260 - c.ResponseData(nil)  
261 - return  
262 -} 143 +// type postDividendPayment struct {
  144 +// QuantityControl string `json:"quantityControl"`
  145 +// StateOfPayment int `json:"stateOfPayment"`
  146 +// ProductId int64 `json:"productId"`
  147 +// Remark string `json:"remark"`
  148 +// }
263 149
264 //OrderDividendDetailForBestshop 海鲜干货的订单分红详情 150 //OrderDividendDetailForBestshop 海鲜干货的订单分红详情
265 func (c *OrderDividendController) OrderDividendDetailForBestshop() { 151 func (c *OrderDividendController) OrderDividendDetailForBestshop() {
@@ -291,8 +177,8 @@ func (c *OrderDividendController) OrderDividendDetailForBestshop() { @@ -291,8 +177,8 @@ func (c *OrderDividendController) OrderDividendDetailForBestshop() {
291 return 177 return
292 } 178 }
293 179
294 -//EditOrderForBestshop 编辑海鲜干货的订单 中的 货品数量和分红比例  
295 -func (c *OrderDividendController) EditOrderDividendForBestshop() { 180 +//EditOrderForBestshop 编辑订单分红详情中的 货品数量和分红比例
  181 +func (c *OrderDividendController) EditOrderDividend() {
296 type Parameter struct { 182 type Parameter struct {
297 State int `json:"state"` 183 State int `json:"state"`
298 OrderId string `json:"orderId"` 184 OrderId string `json:"orderId"`
@@ -337,8 +223,8 @@ func (c *OrderDividendController) EditOrderDividendForBestshop() { @@ -337,8 +223,8 @@ func (c *OrderDividendController) EditOrderDividendForBestshop() {
337 return 223 return
338 } 224 }
339 225
340 -//PayOrderGoodBonusForBestshop 支付海鲜干货订单中的分红  
341 -func (c *OrderDividendController) PayOrderGoodBonusForBestshop() { 226 +//PayOrderGoodBonus 支付订单中的分红
  227 +func (c *OrderDividendController) PayOrderGoodBonus() {
342 type Parameter struct { 228 type Parameter struct {
343 OrderId string `json:"orderId"` 229 OrderId string `json:"orderId"`
344 ProductId string `json:"productId"` 230 ProductId string `json:"productId"`
@@ -364,7 +250,7 @@ func (c *OrderDividendController) PayOrderGoodBonusForBestshop() { @@ -364,7 +250,7 @@ func (c *OrderDividendController) PayOrderGoodBonusForBestshop() {
364 } 250 }
365 adminId := c.GetUserId() 251 adminId := c.GetUserId()
366 orderSrv := orderService.NewOrderInfoService(nil) 252 orderSrv := orderService.NewOrderInfoService(nil)
367 - err = orderSrv.PayPartnerBonusWithOrderBestshop(orderid, productId, adminId) 253 + err = orderSrv.PayPartnerBonus(orderid, productId, adminId)
368 if err != nil { 254 if err != nil {
369 c.ResponseError(err) 255 c.ResponseError(err)
370 return 256 return
@@ -373,8 +259,8 @@ func (c *OrderDividendController) PayOrderGoodBonusForBestshop() { @@ -373,8 +259,8 @@ func (c *OrderDividendController) PayOrderGoodBonusForBestshop() {
373 return 259 return
374 } 260 }
375 261
376 -//EditOrderRemarkBonusForBestshop 编辑海鲜干货订单中的备注  
377 -func (c *OrderDividendController) EditOrderRemarkBonusForBestshop() { 262 +//EditOrderRemarkBonus 编辑订单分红详情中的备注
  263 +func (c *OrderDividendController) EditOrderRemarkBonus() {
378 type Parameter struct { 264 type Parameter struct {
379 OrderId string `json:"orderId"` 265 OrderId string `json:"orderId"`
380 Remark string `json:"remark"` 266 Remark string `json:"remark"`
@@ -407,11 +293,12 @@ func (c *OrderDividendController) EditOrderRemarkBonusForBestshop() { @@ -407,11 +293,12 @@ func (c *OrderDividendController) EditOrderRemarkBonusForBestshop() {
407 293
408 func (c *OrderDividendController) ListOrderBonusForExcel() { 294 func (c *OrderDividendController) ListOrderBonusForExcel() {
409 type Parameter struct { 295 type Parameter struct {
410 - SearchWord string `json:"searchWord"`  
411 - OrderType int `json:"orderType"`  
412 - PageSize int `json:"pageSize"`  
413 - PageNumber int `json:"pageNumber"`  
414 - PartnerCategoryId int `json:"partnerCategoryId"` 296 + SearchWord string `json:"searchWord"`
  297 + OrderType int `json:"orderType"`
  298 + PageSize int `json:"pageSize"`
  299 + PageNumber int `json:"pageNumber"`
  300 + PartnerCategoryId int `json:"partnerCategoryId"`
  301 + CreateTime []string `json:"createTime"`
415 } 302 }
416 var ( 303 var (
417 param Parameter 304 param Parameter
@@ -428,7 +315,32 @@ func (c *OrderDividendController) ListOrderBonusForExcel() { @@ -428,7 +315,32 @@ func (c *OrderDividendController) ListOrderBonusForExcel() {
428 c.ResponseError(errors.New("参数异常")) 315 c.ResponseError(errors.New("参数异常"))
429 return 316 return
430 } 317 }
431 - 318 + var (
  319 + createTimeBegin string
  320 + createTimeEnd string
  321 + )
  322 + if len(param.CreateTime) > 0 {
  323 + if len(param.CreateTime[0]) > 0 {
  324 + t, err := time.ParseInLocation("2006-01-02", param.CreateTime[0], time.Local)
  325 + if err != nil {
  326 + c.ResponseError(errors.New("UpdateTimeBegin 时间格式错误"))
  327 + return
  328 + }
  329 + createTimeBegin = t.Format("2006-01-02 15:04:05-07")
  330 + }
  331 + }
  332 + if len(param.CreateTime) > 1 {
  333 + if len(param.CreateTime[1]) > 0 {
  334 + t, err := time.ParseInLocation("2006-01-02", param.CreateTime[1], time.Local)
  335 + if err != nil {
  336 + c.ResponseError(errors.New("UpdateTimeEnd 时间格式错误"))
  337 + return
  338 + }
  339 + //设定时间边界
  340 + t = t.Add(86399 * time.Second)
  341 + createTimeEnd = t.Format("2006-01-02 15:04:05-07")
  342 + }
  343 + }
432 companyId := c.GetUserCompany() 344 companyId := c.GetUserCompany()
433 orderSrv := orderService.NewOrderInfoService(nil) 345 orderSrv := orderService.NewOrderInfoService(nil)
434 dataResult, column, err := orderSrv.ListOrderBonusForExcel( 346 dataResult, column, err := orderSrv.ListOrderBonusForExcel(
@@ -437,6 +349,8 @@ func (c *OrderDividendController) ListOrderBonusForExcel() { @@ -437,6 +349,8 @@ func (c *OrderDividendController) ListOrderBonusForExcel() {
437 PartnerOrCode: param.SearchWord, 349 PartnerOrCode: param.SearchWord,
438 CompanyId: companyId, 350 CompanyId: companyId,
439 PartnerCategory: param.PartnerCategoryId, 351 PartnerCategory: param.PartnerCategoryId,
  352 + CreateTimeBegin: createTimeBegin,
  353 + CreateTimeEnd: createTimeEnd,
440 }) 354 })
441 if err != nil { 355 if err != nil {
442 c.ResponseError(err) 356 c.ResponseError(err)
@@ -456,3 +370,34 @@ func (c *OrderDividendController) ListOrderBonusForExcel() { @@ -456,3 +370,34 @@ func (c *OrderDividendController) ListOrderBonusForExcel() {
456 c.ResponseExcelByFile(c.Ctx, excelMaker) 370 c.ResponseExcelByFile(c.Ctx, excelMaker)
457 return 371 return
458 } 372 }
  373 +
  374 +//BatchPayOrderGoodBonus 批量支付订单中的分红
  375 +func (c *OrderDividendController) BatchPayOrderGoodBonus() {
  376 + type Parameter struct {
  377 + OrderIds []string `json:"orderIds"`
  378 + }
  379 + var (
  380 + param Parameter
  381 + err error
  382 + )
  383 + if err = c.BindJsonData(&param); err != nil {
  384 + logs.Error(err)
  385 + c.ResponseError(errors.New("json数据解析失败"))
  386 + return
  387 + }
  388 + orderIds := []int64{}
  389 + for _, v := range param.OrderIds {
  390 + id, _ := strconv.ParseInt(v, 10, 64)
  391 + orderIds = append(orderIds, id)
  392 + }
  393 + adminId := c.GetUserId()
  394 + orderSrv := orderService.NewOrderInfoService(nil)
  395 +
  396 + err = orderSrv.BatchPayPartnerBonus(orderIds, adminId)
  397 + if err != nil {
  398 + c.ResponseError(err)
  399 + return
  400 + }
  401 + c.ResponseData(nil)
  402 + return
  403 +}
@@ -15,6 +15,7 @@ import ( @@ -15,6 +15,7 @@ import (
15 orderService "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/orderinfo/service" 15 orderService "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/orderinfo/service"
16 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain" 16 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
17 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/lib" 17 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/lib"
  18 + "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/lib/exceltool"
18 ) 19 )
19 20
20 type OrderInfoController struct { 21 type OrderInfoController struct {
@@ -32,142 +33,6 @@ func (c *OrderInfoController) Prepare() { @@ -32,142 +33,6 @@ func (c *OrderInfoController) Prepare() {
32 } 33 }
33 } 34 }
34 35
35 -//PageListOrderPurpose 分页获取意向订单列表  
36 -// func (c *OrderInfoController) PageListOrderPurpose() {  
37 -// type Parameter struct {  
38 -// SearchText string `json:"searchText"`  
39 -// Partner int64 `json:"partner"`  
40 -// PageSize int `json:"pageSize"`  
41 -// PageNumber int `json:"pageNumber"`  
42 -// }  
43 -// var (  
44 -// param Parameter  
45 -// err error  
46 -// )  
47 -// if err = c.BindJsonData(&param); err != nil {  
48 -// logs.Error(err)  
49 -// c.ResponseError(errors.New("json数据解析失败"))  
50 -// return  
51 -// }  
52 -// if param.PageNumber == 0 {  
53 -// param.PageNumber = 1  
54 -// }  
55 -// if param.PageSize == 0 {  
56 -// param.PageSize = 20  
57 -// }  
58 -// companyId := c.GetUserCompany()  
59 -// orderSrv := orderService.NewOrderInfoService(nil)  
60 -// orderinfos, cnt, err := orderSrv.PageListOrderBase(orderQuery.ListOrderBaseQuery{  
61 -// PartnerId: param.Partner,  
62 -// OrderCode: param.SearchText,  
63 -// OrderType: domain.OrderIntention,  
64 -// Limit: param.PageSize,  
65 -// Offset: (param.PageNumber - 1) * param.PageSize,  
66 -// CompanyId: companyId,  
67 -// })  
68 -// if err != nil {  
69 -// c.ResponseError(err)  
70 -// return  
71 -// }  
72 -// rsp := []map[string]interface{}{}  
73 -// for i := range orderinfos {  
74 -// orderinfo := orderinfos[i]  
75 -// m := map[string]interface{}{  
76 -// "createTime": orderinfo.CreateTime.Local().Format("2006-01-02 15:04:05"),  
77 -// "updateTime": orderinfo.UpdateTime.Local().Format("2006-01-02 15:04:05"),  
78 -// "buyer": orderinfo.Buyer.BuyerName,  
79 -// "id": orderinfo.Id,  
80 -// "orderId": orderinfo.OrderCode,  
81 -// "partner": orderinfo.PartnerInfo.PartnerName,  
82 -// "orderNum": orderinfo.OrderCompute.PlanOrderCount,  
83 -// "orderPrice": orderinfo.OrderCompute.PlanOrderAmount,  
84 -// "orderDist": orderinfo.RegionInfo.RegionName,  
85 -// }  
86 -// rsp = append(rsp, m)  
87 -// }  
88 -// c.ResponsePageList(rsp, cnt, param.PageNumber)  
89 -// }  
90 -  
91 -//GetOrderPurpose 获取意向订单详情  
92 -// func (c *OrderInfoController) GetOrderPurpose() {  
93 -// type Parameter struct {  
94 -// Id string `json:"id"`  
95 -// }  
96 -// var (  
97 -// param Parameter  
98 -// err error  
99 -// )  
100 -// if err = c.BindJsonData(&param); err != nil {  
101 -// logs.Error(err)  
102 -// c.ResponseError(errors.New("json数据解析失败"))  
103 -// return  
104 -// }  
105 -// orderid, _ := strconv.ParseInt(param.Id, 10, 64)  
106 -// companyId := c.GetUserCompany()  
107 -// orderSrv := orderService.NewOrderInfoService(nil)  
108 -// orderinfo, err := orderSrv.GetOrderDetail(orderQuery.GetOrderQuery{  
109 -// OrderId: orderid,  
110 -// CompanyId: companyId,  
111 -// })  
112 -// if err != nil {  
113 -// c.ResponseError(err)  
114 -// return  
115 -// }  
116 -// if orderinfo.OrderType != domain.OrderIntention {  
117 -// c.ResponseError(errors.New("参数错误"))  
118 -// return  
119 -// }  
120 -// allGoods := []map[string]interface{}{}  
121 -// for _, v := range orderinfo.Goods {  
122 -// m := map[string]interface{}{  
123 -// "id": v.Id,  
124 -// "productName": v.GoodName,  
125 -// "orderNum": v.PlanGoodNumber,  
126 -// "univalence": v.Price,  
127 -// "partnerRatio": v.PartnerBonusPercent,  
128 -// "orderPrice": v.GoodCompute.PlanAmount,  
129 -// }  
130 -// allGoods = append(allGoods, m)  
131 -// }  
132 -// rsp := map[string]interface{}{  
133 -// "buyer": orderinfo.Buyer.BuyerName,  
134 -// "id": orderinfo.Id,  
135 -// "partnerID": orderinfo.PartnerInfo.Id,  
136 -// "partner": orderinfo.PartnerInfo.PartnerName,  
137 -// "orderDist": orderinfo.RegionInfo.RegionName,  
138 -// "orderId": orderinfo.OrderCode,  
139 -// "product": allGoods,  
140 -// "commissionProportion": orderinfo.SalesmanBonusPercent,  
141 -// "orderNumCount": orderinfo.OrderCompute.PlanOrderCount,  
142 -// "orderAmountAdjustmentCount": orderinfo.OrderCompute.PlanOrderAmount,  
143 -// }  
144 -// c.ResponseData(rsp)  
145 -// }  
146 -  
147 -//RemoveOrderPurpose 删除意向订单  
148 -// func (c *OrderInfoController) RemoveOrderPurpose() {  
149 -// type Parameter struct {  
150 -// Id int64 `json:"id"`  
151 -// }  
152 -// var (  
153 -// param Parameter  
154 -// err error  
155 -// )  
156 -// if err = c.BindJsonData(&param); err != nil {  
157 -// logs.Error(err)  
158 -// c.ResponseError(errors.New("json数据解析失败"))  
159 -// return  
160 -// }  
161 -// companyId := c.GetUserCompany()  
162 -// orderSrv := orderService.NewOrderInfoService(nil)  
163 -// err = orderSrv.DeleteOrder(param.Id, companyId)  
164 -// if err != nil {  
165 -// c.ResponseError(err)  
166 -// return  
167 -// }  
168 -// c.ResponseData(nil)  
169 -// }  
170 -  
171 //postPurposeOrderDetail 请求添加/更新的订单数据 36 //postPurposeOrderDetail 请求添加/更新的订单数据
172 type postPurposeOrderDetail struct { 37 type postPurposeOrderDetail struct {
173 Id int64 `json:"id"` 38 Id int64 `json:"id"`
@@ -252,93 +117,6 @@ func (postData *postOrderGood) Valid() error { @@ -252,93 +117,6 @@ func (postData *postOrderGood) Valid() error {
252 return nil 117 return nil
253 } 118 }
254 119
255 -// //UpdateOrderPurpose 更新意向订单  
256 -// func (c *OrderInfoController) UpdateOrderPurpose() {  
257 -// //用与适配前端定义的数据结构  
258 -// var (  
259 -// param postPurposeOrderDetail  
260 -// err error  
261 -// )  
262 -// if err = c.BindJsonData(&param); err != nil {  
263 -// logs.Error(err)  
264 -// c.ResponseError(errors.New("json数据解析失败"))  
265 -// return  
266 -// }  
267 -  
268 -// if err := param.Valid(); err != nil {  
269 -// c.ResponseError(err)  
270 -// return  
271 -// }  
272 -// if param.Id == 0 {  
273 -// err = c.addOrderPurpose(param)  
274 -// } else {  
275 -// err = c.editOrderPurpose(param)  
276 -// }  
277 -// if err != nil {  
278 -// c.ResponseError(err)  
279 -// }  
280 -// c.ResponseData(nil)  
281 -// return  
282 -// }  
283 -  
284 -// func (c *OrderInfoController) addOrderPurpose(param postPurposeOrderDetail) error {  
285 -  
286 -// newGoods := []orderCmd.OrderGoodData{}  
287 -// for _, v := range param.Product {  
288 -// g := orderCmd.OrderGoodData{  
289 -// GoodName: v.ProductName,  
290 -// PlanGoodNumber: v.OrderNum,  
291 -// Price: v.Univalence,  
292 -// PartnerBonusPercent: v.PartnerRatio,  
293 -// }  
294 -// newGoods = append(newGoods, g)  
295 -// }  
296 -// companyId := c.GetUserCompany()  
297 -// createcmd := orderCmd.CreateOrderCommand{  
298 -// OrderType: domain.OrderIntention,  
299 -// OrderCode: param.OrderId,  
300 -// DeliveryCode: "",  
301 -// BuyerName: param.BuyerName,  
302 -// OrderRegion: param.OrderDist,  
303 -// PartnerId: param.PartnerId,  
304 -// SalesmanBonusPercent: param.CommissionProportion,  
305 -// Goods: newGoods,  
306 -// CompanyId: companyId,  
307 -// }  
308 -// orderSrv := orderService.NewOrderInfoService(nil)  
309 -// _, err := orderSrv.CreateNewOrder(createcmd)  
310 -// return err  
311 -// }  
312 -  
313 -// func (c *OrderInfoController) editOrderPurpose(param postPurposeOrderDetail) error {  
314 -// orderSrv := orderService.NewOrderInfoService(nil)  
315 -// newGoods := []orderCmd.OrderGoodData{}  
316 -// for _, v := range param.Product {  
317 -// g := orderCmd.OrderGoodData{  
318 -// GoodName: v.ProductName,  
319 -// PlanGoodNumber: v.OrderNum,  
320 -// Price: v.Univalence,  
321 -// PartnerBonusPercent: v.PartnerRatio,  
322 -// }  
323 -// newGoods = append(newGoods, g)  
324 -// }  
325 -// companyId := c.GetUserCompany()  
326 -// updatecmd := orderCmd.UpdateOrderCommand{  
327 -// Id: param.Id,  
328 -// OrderType: domain.OrderIntention,  
329 -// OrderCode: param.OrderId,  
330 -// DeliveryCode: "",  
331 -// BuyerName: param.BuyerName,  
332 -// OrderRegion: param.OrderDist,  
333 -// PartnerId: param.PartnerId,  
334 -// SalesmanBonusPercent: param.CommissionProportion,  
335 -// Goods: newGoods,  
336 -// CompanyId: companyId,  
337 -// }  
338 -// _, err := orderSrv.UpdateOrderData(updatecmd)  
339 -// return err  
340 -// }  
341 -  
342 type postOrderPurposeDelivery struct { 120 type postOrderPurposeDelivery struct {
343 ShipmentsId string `json:"shipmentsId"` //发货单号 121 ShipmentsId string `json:"shipmentsId"` //发货单号
344 Id string `json:"id"` //订单id 122 Id string `json:"id"` //订单id
@@ -363,51 +141,6 @@ func (postData *postOrderPurposeDelivery) Valid() error { @@ -363,51 +141,6 @@ func (postData *postOrderPurposeDelivery) Valid() error {
363 return nil 141 return nil
364 } 142 }
365 143
366 -//OrderPurposeDelivery 发货 意向订单转实发单  
367 -// func (c *OrderInfoController) OrderPurposeDelivery() {  
368 -// //用与适配前端定义的数据结构  
369 -  
370 -// var (  
371 -// param postOrderPurposeDelivery  
372 -// err error  
373 -// )  
374 -// if err = c.BindJsonData(&param); err != nil {  
375 -// logs.Error(err)  
376 -// c.ResponseError(errors.New("json数据解析失败"))  
377 -// return  
378 -// }  
379 -// param.ShipmentsId = strings.TrimSpace(param.ShipmentsId)  
380 -// orderid, _ := strconv.ParseInt(param.Id, 10, 64)  
381 -// if orderid <= 0 {  
382 -// c.ResponseError(errors.New("参数错误"))  
383 -// return  
384 -// }  
385 -// if err = param.Valid(); err != nil {  
386 -// c.ResponseError(err)  
387 -// return  
388 -// }  
389 -// goods := []orderCmd.OrderGoodData{}  
390 -// for _, v := range param.ProductDetail {  
391 -// g := orderCmd.OrderGoodData{  
392 -// Id: v.Id, GoodName: v.ProductName, PlanGoodNumber: v.OrderNum,  
393 -// Price: v.Univalence, PartnerBonusPercent: v.PartnerRatio,  
394 -// }  
395 -// goods = append(goods, g)  
396 -// }  
397 -// companyId := c.GetUserCompany()  
398 -// deliveryCommand := orderCmd.OrderDeliveryCommand{  
399 -// OrderId: orderid, DeliveryCode: param.ShipmentsId,  
400 -// DeliveryTime: time.Now(), Goods: goods, CompanyId: companyId,  
401 -// }  
402 -// orderSrv := orderService.NewOrderInfoService(nil)  
403 -// err = orderSrv.Delivery(deliveryCommand)  
404 -// if err != nil {  
405 -// c.ResponseError(err)  
406 -// }  
407 -// c.ResponseData(nil)  
408 -// return  
409 -// }  
410 -  
411 //PageListOrderReal 获取实发订单列表 144 //PageListOrderReal 获取实发订单列表
412 func (c *OrderInfoController) PageListOrderReal() { 145 func (c *OrderInfoController) PageListOrderReal() {
413 type Parameter struct { 146 type Parameter struct {
@@ -416,6 +149,7 @@ func (c *OrderInfoController) PageListOrderReal() { @@ -416,6 +149,7 @@ func (c *OrderInfoController) PageListOrderReal() {
416 PageSize int `json:"pageSize"` 149 PageSize int `json:"pageSize"`
417 PageNumber int `json:"pageNumber"` 150 PageNumber int `json:"pageNumber"`
418 UpdateTime []string `json:"updateTime"` 151 UpdateTime []string `json:"updateTime"`
  152 + CreateTime []string `json:"createTime"`
419 } 153 }
420 var ( 154 var (
421 param Parameter 155 param Parameter
@@ -458,6 +192,33 @@ func (c *OrderInfoController) PageListOrderReal() { @@ -458,6 +192,33 @@ func (c *OrderInfoController) PageListOrderReal() {
458 updateTimeEnd = t.Format("2006-01-02 15:04:05-07") 192 updateTimeEnd = t.Format("2006-01-02 15:04:05-07")
459 } 193 }
460 } 194 }
  195 + var (
  196 + createTimeBegin string
  197 + createTimeEnd string
  198 + )
  199 + if len(param.CreateTime) > 0 {
  200 + if len(param.CreateTime[0]) > 0 {
  201 + t, err := time.ParseInLocation("2006-01-02", param.CreateTime[0], time.Local)
  202 + if err != nil {
  203 + c.ResponseError(errors.New("UpdateTimeBegin 时间格式错误"))
  204 + return
  205 + }
  206 + createTimeBegin = t.Format("2006-01-02 15:04:05-07")
  207 + }
  208 + }
  209 + if len(param.CreateTime) > 1 {
  210 + if len(param.CreateTime[1]) > 0 {
  211 + t, err := time.ParseInLocation("2006-01-02", param.CreateTime[1], time.Local)
  212 + if err != nil {
  213 + c.ResponseError(errors.New("UpdateTimeEnd 时间格式错误"))
  214 + return
  215 + }
  216 + //设定时间边界
  217 + t = t.Add(86399 * time.Second)
  218 + createTimeEnd = t.Format("2006-01-02 15:04:05-07")
  219 + }
  220 + }
  221 +
461 companyId := c.GetUserCompany() 222 companyId := c.GetUserCompany()
462 orderSrv := orderService.NewOrderInfoService(nil) 223 orderSrv := orderService.NewOrderInfoService(nil)
463 orderinfos, cnt, err := orderSrv.PageListOrderBase(orderQuery.ListOrderBaseQuery{ 224 orderinfos, cnt, err := orderSrv.PageListOrderBase(orderQuery.ListOrderBaseQuery{
@@ -469,6 +230,8 @@ func (c *OrderInfoController) PageListOrderReal() { @@ -469,6 +230,8 @@ func (c *OrderInfoController) PageListOrderReal() {
469 PartnerCategory: param.PartnerCategory, 230 PartnerCategory: param.PartnerCategory,
470 UpdateTimeBegin: updateTimeBegin, 231 UpdateTimeBegin: updateTimeBegin,
471 UpdateTimeEnd: updateTimeEnd, 232 UpdateTimeEnd: updateTimeEnd,
  233 + CreateTimeBegin: createTimeBegin,
  234 + CreateTimeEnd: createTimeEnd,
472 }) 235 })
473 if err != nil { 236 if err != nil {
474 c.ResponseError(err) 237 c.ResponseError(err)
@@ -514,7 +277,7 @@ func (c *OrderInfoController) GetOrderReal() { @@ -514,7 +277,7 @@ func (c *OrderInfoController) GetOrderReal() {
514 allGoods := []map[string]interface{}{} 277 allGoods := []map[string]interface{}{}
515 for _, v := range orderinfo.Goods { 278 for _, v := range orderinfo.Goods {
516 m := map[string]interface{}{ 279 m := map[string]interface{}{
517 - "id": v.Id, 280 + "id": fmt.Sprint(v.Id),
518 "productName": v.GoodName, 281 "productName": v.GoodName,
519 "orderNum": v.PlanGoodNumber, 282 "orderNum": v.PlanGoodNumber,
520 "univalence": v.Price, 283 "univalence": v.Price,
@@ -594,8 +357,9 @@ func (c *OrderInfoController) UpdateOrderReal() { @@ -594,8 +357,9 @@ func (c *OrderInfoController) UpdateOrderReal() {
594 c.ResponseError(err) 357 c.ResponseError(err)
595 return 358 return
596 } 359 }
  360 + var orderDataReturn *domain.OrderBase
597 if param.Id == 0 { 361 if param.Id == 0 {
598 - err = c.addOrderReal(param) 362 + orderDataReturn, err = c.addOrderReal(param)
599 } else { 363 } else {
600 err = c.editOrderReal(param) 364 err = c.editOrderReal(param)
601 } 365 }
@@ -603,11 +367,17 @@ func (c *OrderInfoController) UpdateOrderReal() { @@ -603,11 +367,17 @@ func (c *OrderInfoController) UpdateOrderReal() {
603 c.ResponseError(err) 367 c.ResponseError(err)
604 return 368 return
605 } 369 }
  370 + if orderDataReturn != nil {
  371 + c.ResponseData(map[string]interface{}{
  372 + "id": orderDataReturn.Id,
  373 + })
  374 + return
  375 + }
606 c.ResponseData(nil) 376 c.ResponseData(nil)
607 return 377 return
608 } 378 }
609 379
610 -func (c *OrderInfoController) addOrderReal(param postRealOrderDetail) error { 380 +func (c *OrderInfoController) addOrderReal(param postRealOrderDetail) (*domain.OrderBase, error) {
611 orderSrv := orderService.NewOrderInfoService(nil) 381 orderSrv := orderService.NewOrderInfoService(nil)
612 newGoods := []orderCmd.OrderGoodData{} 382 newGoods := []orderCmd.OrderGoodData{}
613 for _, v := range param.Product { 383 for _, v := range param.Product {
@@ -632,8 +402,8 @@ func (c *OrderInfoController) addOrderReal(param postRealOrderDetail) error { @@ -632,8 +402,8 @@ func (c *OrderInfoController) addOrderReal(param postRealOrderDetail) error {
632 CompanyId: companyId, 402 CompanyId: companyId,
633 PartnerCategory: param.PartnerCategoryId, 403 PartnerCategory: param.PartnerCategoryId,
634 } 404 }
635 - _, err := orderSrv.CreateNewOrder(createcmd)  
636 - return err 405 + orderData, err := orderSrv.CreateNewOrder(createcmd)
  406 + return orderData, err
637 } 407 }
638 408
639 func (c *OrderInfoController) editOrderReal(param postRealOrderDetail) error { 409 func (c *OrderInfoController) editOrderReal(param postRealOrderDetail) error {
@@ -711,7 +481,7 @@ func (c *OrderInfoController) OrderDisable() { @@ -711,7 +481,7 @@ func (c *OrderInfoController) OrderDisable() {
711 //RemoveOrderReal 删除意向订单 481 //RemoveOrderReal 删除意向订单
712 func (c *OrderInfoController) RemoveOrderReal() { 482 func (c *OrderInfoController) RemoveOrderReal() {
713 type Parameter struct { 483 type Parameter struct {
714 - Id int64 `json:"id"` 484 + Id string `json:"id"`
715 } 485 }
716 var ( 486 var (
717 param Parameter 487 param Parameter
@@ -723,11 +493,113 @@ func (c *OrderInfoController) RemoveOrderReal() { @@ -723,11 +493,113 @@ func (c *OrderInfoController) RemoveOrderReal() {
723 return 493 return
724 } 494 }
725 companyId := c.GetUserCompany() 495 companyId := c.GetUserCompany()
  496 + id, _ := strconv.ParseInt(param.Id, 10, 64)
726 orderSrv := orderService.NewOrderInfoService(nil) 497 orderSrv := orderService.NewOrderInfoService(nil)
727 - err = orderSrv.DeleteOrder(param.Id, companyId) 498 + err = orderSrv.DeleteOrder(id, companyId)
728 if err != nil { 499 if err != nil {
729 c.ResponseError(err) 500 c.ResponseError(err)
730 return 501 return
731 } 502 }
732 c.ResponseData(nil) 503 c.ResponseData(nil)
733 } 504 }
  505 +
  506 +//ListOrderForExcel excel 导出实际订单的列表
  507 +func (c *OrderInfoController) ListOrderForExcel() {
  508 + type Parameter struct {
  509 + SearchText string `json:"searchText"`
  510 + PartnerCategory int `json:"PartnerCategory"`
  511 + UpdateTime []string `json:"updateTime"`
  512 + CreateTime []string `json:"createTime"`
  513 + }
  514 + var (
  515 + param Parameter
  516 + err error
  517 + )
  518 + if err = c.BindJsonData(&param); err != nil {
  519 + logs.Error(err)
  520 + c.ResponseError(errors.New("json数据解析失败"))
  521 + return
  522 + }
  523 + var (
  524 + updateTimeBegin string
  525 + updateTimeEnd string
  526 + )
  527 + if len(param.UpdateTime) > 0 {
  528 + if len(param.UpdateTime[0]) > 0 {
  529 + t, err := time.ParseInLocation("2006-01-02", param.UpdateTime[0], time.Local)
  530 + if err != nil {
  531 + c.ResponseError(errors.New("UpdateTimeBegin 时间格式错误"))
  532 + return
  533 + }
  534 + updateTimeBegin = t.Format("2006-01-02 15:04:05-07")
  535 + }
  536 + }
  537 + if len(param.UpdateTime) > 1 {
  538 + if len(param.UpdateTime[1]) > 0 {
  539 + t, err := time.ParseInLocation("2006-01-02", param.UpdateTime[1], time.Local)
  540 + if err != nil {
  541 + c.ResponseError(errors.New("UpdateTimeEnd 时间格式错误"))
  542 + return
  543 + }
  544 + //设定时间边界
  545 + t = t.Add(86399 * time.Second)
  546 + updateTimeEnd = t.Format("2006-01-02 15:04:05-07")
  547 + }
  548 + }
  549 + var (
  550 + createTimeBegin string
  551 + createTimeEnd string
  552 + )
  553 + if len(param.CreateTime) > 0 {
  554 + if len(param.CreateTime[0]) > 0 {
  555 + t, err := time.ParseInLocation("2006-01-02", param.CreateTime[0], time.Local)
  556 + if err != nil {
  557 + c.ResponseError(errors.New("UpdateTimeBegin 时间格式错误"))
  558 + return
  559 + }
  560 + createTimeBegin = t.Format("2006-01-02 15:04:05-07")
  561 + }
  562 + }
  563 + if len(param.CreateTime) > 1 {
  564 + if len(param.CreateTime[1]) > 0 {
  565 + t, err := time.ParseInLocation("2006-01-02", param.CreateTime[1], time.Local)
  566 + if err != nil {
  567 + c.ResponseError(errors.New("UpdateTimeEnd 时间格式错误"))
  568 + return
  569 + }
  570 + //设定时间边界
  571 + t = t.Add(86399 * time.Second)
  572 + createTimeEnd = t.Format("2006-01-02 15:04:05-07")
  573 + }
  574 + }
  575 +
  576 + companyId := c.GetUserCompany()
  577 + orderSrv := orderService.NewOrderInfoService(nil)
  578 + orderinfos, columns, err := orderSrv.ListOrderForExcel(orderQuery.ListOrderBaseQuery{
  579 + PartnerOrCode: param.SearchText,
  580 + OrderType: domain.OrderReal,
  581 + CompanyId: companyId,
  582 + PartnerCategory: param.PartnerCategory,
  583 + UpdateTimeBegin: updateTimeBegin,
  584 + UpdateTimeEnd: updateTimeEnd,
  585 + CreateTimeBegin: createTimeBegin,
  586 + CreateTimeEnd: createTimeEnd,
  587 + })
  588 + if err != nil {
  589 + c.ResponseError(err)
  590 + return
  591 + }
  592 + var excelHeaders []exceltool.ExcelHead
  593 + for i := range columns {
  594 + h := exceltool.ExcelHead{
  595 + Key: columns[i][0],
  596 + Name: columns[i][1],
  597 + }
  598 + excelHeaders = append(excelHeaders, h)
  599 + }
  600 + excelMaker := exceltool.NewExcelMaker()
  601 + excelMaker.SetListHead(excelHeaders)
  602 + excelMaker.MakeListExcel(orderinfos)
  603 + c.ResponseExcelByFile(c.Ctx, excelMaker)
  604 + return
  605 +}
@@ -84,11 +84,17 @@ func (c *PartnerInfoController) CreatePartnerInfo() { @@ -84,11 +84,17 @@ func (c *PartnerInfoController) CreatePartnerInfo() {
84 } 84 }
85 } 85 }
86 serve := partnerInfoService.NewPartnerInfoService(nil) 86 serve := partnerInfoService.NewPartnerInfoService(nil)
87 - _, err = serve.CreatePartnerInfo(&cmd) 87 + newPartner, err := serve.CreatePartnerInfo(&cmd)
88 if err != nil { 88 if err != nil {
89 c.ResponseError(err) 89 c.ResponseError(err)
90 return 90 return
91 } 91 }
  92 + if newPartner != nil {
  93 + c.ResponseData(map[string]interface{}{
  94 + "id": newPartner.Partner.Id,
  95 + })
  96 + return
  97 + }
92 c.ResponseData(nil) 98 c.ResponseData(nil)
93 return 99 return
94 } 100 }
@@ -202,11 +208,12 @@ func (c *PartnerInfoController) GetPartnerInfo() { @@ -202,11 +208,12 @@ func (c *PartnerInfoController) GetPartnerInfo() {
202 return 208 return
203 } 209 }
204 210
205 -//PartnerInfoSetState 合伙人批量禁用 211 +//PartnerInfoSetState 合伙人批量禁用.启用
206 func (c *PartnerInfoController) PartnerInfoSetState() { 212 func (c *PartnerInfoController) PartnerInfoSetState() {
207 //用与适配前端定义的数据结构 213 //用与适配前端定义的数据结构
208 type Parameter struct { 214 type Parameter struct {
209 - Id []int64 `json:"id"` 215 + Id []int64 `json:"id"`
  216 + Status int `json:"status"`
210 } 217 }
211 var ( 218 var (
212 param Parameter 219 param Parameter
@@ -218,10 +225,23 @@ func (c *PartnerInfoController) PartnerInfoSetState() { @@ -218,10 +225,23 @@ func (c *PartnerInfoController) PartnerInfoSetState() {
218 return 225 return
219 } 226 }
220 comanyId := c.GetUserCompany() 227 comanyId := c.GetUserCompany()
221 - cmd := partnerInfoCmd.StatusPartnerInfoCommand{  
222 - Ids: param.Id,  
223 - CompanyId: comanyId,  
224 - Status: domain.PARTNER_STATUS_NO, 228 + var cmd partnerInfoCmd.StatusPartnerInfoCommand
  229 + switch param.Status {
  230 + case 0:
  231 + cmd = partnerInfoCmd.StatusPartnerInfoCommand{
  232 + Ids: param.Id,
  233 + CompanyId: comanyId,
  234 + Status: domain.PARTNER_STATUS_NO,
  235 + }
  236 + case 1:
  237 + cmd = partnerInfoCmd.StatusPartnerInfoCommand{
  238 + Ids: param.Id,
  239 + CompanyId: comanyId,
  240 + Status: domain.PARTNER_STATUS_YES,
  241 + }
  242 + default:
  243 + c.ResponseError(errors.New("参数错误"))
  244 + return
225 } 245 }
226 newPartnerService := partnerInfoService.NewPartnerInfoService(nil) 246 newPartnerService := partnerInfoService.NewPartnerInfoService(nil)
227 err = newPartnerService.UpdateStatus(cmd) 247 err = newPartnerService.UpdateStatus(cmd)
@@ -80,9 +80,6 @@ func (c *UserController) BeforeEditUser() { @@ -80,9 +80,6 @@ func (c *UserController) BeforeEditUser() {
80 } 80 }
81 var rspData []map[string]interface{} 81 var rspData []map[string]interface{}
82 for i := range allPermission { 82 for i := range allPermission {
83 - if allPermission[i].Code == domain.PERMINSSION_ADMIN_USER {  
84 - continue  
85 - }  
86 m := map[string]interface{}{ 83 m := map[string]interface{}{
87 "id": allPermission[i].Id, 84 "id": allPermission[i].Id,
88 "permissionName": allPermission[i].Name, 85 "permissionName": allPermission[i].Name,
@@ -22,29 +22,20 @@ func init() { @@ -22,29 +22,20 @@ func init() {
22 beego.NSRouter("/add", &controllers.PartnerInfoController{}, "POST:CreatePartnerInfo"), 22 beego.NSRouter("/add", &controllers.PartnerInfoController{}, "POST:CreatePartnerInfo"),
23 beego.NSRouter("/edit", &controllers.PartnerInfoController{}, "POST:UpdatePartnerInfo"), 23 beego.NSRouter("/edit", &controllers.PartnerInfoController{}, "POST:UpdatePartnerInfo"),
24 beego.NSRouter("/detail", &controllers.PartnerInfoController{}, "POST:GetPartnerInfo"), 24 beego.NSRouter("/detail", &controllers.PartnerInfoController{}, "POST:GetPartnerInfo"),
25 - //beego.NSRouter("/set-status", &controllers.PartnerInfoController{}, "POST:PartnerInfoSetState"),  
26 beego.NSRouter("/batchDisabled", &controllers.PartnerInfoController{}, "POST:PartnerInfoSetState"), 25 beego.NSRouter("/batchDisabled", &controllers.PartnerInfoController{}, "POST:PartnerInfoSetState"),
27 ), 26 ),
28 beego.NSNamespace("/dividends", 27 beego.NSNamespace("/dividends",
29 beego.NSRouter("/list", &controllers.OrderDividendController{}, "POST:PageListOrderDividend"), 28 beego.NSRouter("/list", &controllers.OrderDividendController{}, "POST:PageListOrderDividend"),
30 - beego.NSRouter("/edit", &controllers.OrderDividendController{}, "POST:EditOrderDividend"), 29 + beego.NSRouter("/modify", &controllers.OrderDividendController{}, "POST:EditOrderDividend"),
31 beego.NSRouter("/detail", &controllers.OrderDividendController{}, "POST:OrderDividendDetail"), 30 beego.NSRouter("/detail", &controllers.OrderDividendController{}, "POST:OrderDividendDetail"),
32 - beego.NSRouter("/mini-program/detail", &controllers.OrderDividendController{}, "POST:OrderDividendDetailForBestshop"),  
33 - beego.NSRouter("/mini-program/modify", &controllers.OrderDividendController{}, "POST:EditOrderDividendForBestshop"),  
34 - beego.NSRouter("/mini-program/payDividends", &controllers.OrderDividendController{}, "POST:PayOrderGoodBonusForBestshop"),  
35 - beego.NSRouter("/mini-program/remarks", &controllers.OrderDividendController{}, "POST:EditOrderRemarkBonusForBestshop"), 31 + beego.NSRouter("/payDividends", &controllers.OrderDividendController{}, "POST:PayOrderGoodBonus"),
  32 + beego.NSRouter("/payDividends/batch", &controllers.OrderDividendController{}, "POST:BatchPayOrderGoodBonus"),
  33 + beego.NSRouter("/remarks", &controllers.OrderDividendController{}, "POST:EditOrderRemarkBonus"),
36 beego.NSRouter("/list/excel", &controllers.OrderDividendController{}, "POST:ListOrderBonusForExcel"), 34 beego.NSRouter("/list/excel", &controllers.OrderDividendController{}, "POST:ListOrderBonusForExcel"),
37 - // beego.NSRouter("/business/detail", &controllers.BusinessBonusController{}, "POST:GetBusinessBonus"),  
38 - // beego.NSRouter("/business/edit", &controllers.BusinessBonusController{}, "POST:UpdateBusinessBonus"),  
39 - // beego.NSRouter("/business/list", &controllers.BusinessBonusController{}, "POST:ListBusinessBonus"),  
40 ), 35 ),
41 beego.NSNamespace("/order", 36 beego.NSNamespace("/order",
42 - // beego.NSRouter("/purpose/list", &controllers.OrderInfoController{}, "POST:PageListOrderPurpose"),  
43 - // beego.NSRouter("/purpose/update", &controllers.OrderInfoController{}, "POST:UpdateOrderPurpose"),  
44 - // beego.NSRouter("/purpose/detail", &controllers.OrderInfoController{}, "POST:GetOrderPurpose"),  
45 - // beego.NSRouter("/purpose/del", &controllers.OrderInfoController{}, "POST:RemoveOrderPurpose"),  
46 - // beego.NSRouter("/purpose/sendout", &controllers.OrderInfoController{}, "POST:OrderPurposeDelivery"),  
47 beego.NSRouter("/actual/list", &controllers.OrderInfoController{}, "POST:PageListOrderReal"), 37 beego.NSRouter("/actual/list", &controllers.OrderInfoController{}, "POST:PageListOrderReal"),
  38 + beego.NSRouter("/actual/list/excel", &controllers.OrderInfoController{}, "POST:ListOrderForExcel"),
48 beego.NSRouter("/actual/detail", &controllers.OrderInfoController{}, "POST:GetOrderReal"), 39 beego.NSRouter("/actual/detail", &controllers.OrderInfoController{}, "POST:GetOrderReal"),
49 beego.NSRouter("/actual/del", &controllers.OrderInfoController{}, "POST:RemoveOrderReal"), 40 beego.NSRouter("/actual/del", &controllers.OrderInfoController{}, "POST:RemoveOrderReal"),
50 beego.NSRouter("/actual/update", &controllers.OrderInfoController{}, "POST:UpdateOrderReal"), 41 beego.NSRouter("/actual/update", &controllers.OrderInfoController{}, "POST:UpdateOrderReal"),