正在显示
5 个修改的文件
包含
67 行增加
和
12 行删除
@@ -8,6 +8,8 @@ import ( | @@ -8,6 +8,8 @@ import ( | ||
8 | ) | 8 | ) |
9 | 9 | ||
10 | type OrderGoods struct { | 10 | type OrderGoods struct { |
11 | + // 订单产品ID | ||
12 | + OrderGoodId string `json:"orderGoodId"` | ||
11 | // 订单产品金额 | 13 | // 订单产品金额 |
12 | OrderGoodAmount float64 `json:"orderGoodAmount"` | 14 | OrderGoodAmount float64 `json:"orderGoodAmount"` |
13 | // 订单产品名称 | 15 | // 订单产品名称 |
@@ -2,11 +2,9 @@ package command | @@ -2,11 +2,9 @@ package command | ||
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | "fmt" | 4 | "fmt" |
5 | + "github.com/beego/beego/v2/core/validation" | ||
5 | "reflect" | 6 | "reflect" |
6 | "strings" | 7 | "strings" |
7 | - "time" | ||
8 | - | ||
9 | - "github.com/beego/beego/v2/core/validation" | ||
10 | ) | 8 | ) |
11 | 9 | ||
12 | type UpdateDividendsOrderCommand struct { | 10 | type UpdateDividendsOrderCommand struct { |
@@ -19,7 +17,9 @@ type UpdateDividendsOrderCommand struct { | @@ -19,7 +17,9 @@ type UpdateDividendsOrderCommand struct { | ||
19 | // 分红订单原单号 | 17 | // 分红订单原单号 |
20 | DividendsOriginalOrderNum string `cname:"分红订单原单号" json:"dividendsOriginalOrderNum" valid:"Required"` | 18 | DividendsOriginalOrderNum string `cname:"分红订单原单号" json:"dividendsOriginalOrderNum" valid:"Required"` |
21 | // 订单产生时间 | 19 | // 订单产生时间 |
22 | - OrderTime time.Time `cname:"订单产生时间" json:"orderTime" valid:"Required"` | 20 | + OrderTime string `cname:"订单产生时间" json:"orderTime" valid:"Required"` |
21 | + // 订单产品列表 | ||
22 | + OrderGoods []*OrderGoods `cname:"订单产品列表" json:"orderGoods,omitempty"` | ||
23 | // 备注 | 23 | // 备注 |
24 | Remarks string `cname:"备注" json:"remarks" valid:"Required"` | 24 | Remarks string `cname:"备注" json:"remarks" valid:"Required"` |
25 | // 业务员uid | 25 | // 业务员uid |
@@ -37,7 +37,15 @@ type UpdateDividendsOrderCommand struct { | @@ -37,7 +37,15 @@ type UpdateDividendsOrderCommand struct { | ||
37 | } | 37 | } |
38 | 38 | ||
39 | func (updateDividendsOrderCommand *UpdateDividendsOrderCommand) Valid(validation *validation.Validation) { | 39 | func (updateDividendsOrderCommand *UpdateDividendsOrderCommand) Valid(validation *validation.Validation) { |
40 | - //validation.SetError("CustomValid", "未实现的自定义认证") | 40 | + if len(updateDividendsOrderCommand.OrderGoods) <= 0 { |
41 | + validation.Error("激励规则不能为空") | ||
42 | + } else { | ||
43 | + for i, _ := range updateDividendsOrderCommand.OrderGoods { | ||
44 | + if updateDividendsOrderCommand.OrderGoods[i].OrderGoodId == "" { | ||
45 | + updateDividendsOrderCommand.OrderGoods[i].OrderGoodId = "0" | ||
46 | + } | ||
47 | + } | ||
48 | + } | ||
41 | } | 49 | } |
42 | 50 | ||
43 | func (updateDividendsOrderCommand *UpdateDividendsOrderCommand) ValidateCommand() error { | 51 | func (updateDividendsOrderCommand *UpdateDividendsOrderCommand) ValidateCommand() error { |
@@ -608,6 +608,8 @@ func (dividendsOrderService *DividendsOrderService) UpdateDividendsOrder(updateD | @@ -608,6 +608,8 @@ func (dividendsOrderService *DividendsOrderService) UpdateDividendsOrder(updateD | ||
608 | defer func() { | 608 | defer func() { |
609 | _ = transactionContext.RollbackTransaction() | 609 | _ = transactionContext.RollbackTransaction() |
610 | }() | 610 | }() |
611 | + | ||
612 | + // 分红订单仓储初始化 | ||
611 | var dividendsOrderRepository domain.DividendsOrderRepository | 613 | var dividendsOrderRepository domain.DividendsOrderRepository |
612 | if value, err := factory.CreateDividendsOrderRepository(map[string]interface{}{ | 614 | if value, err := factory.CreateDividendsOrderRepository(map[string]interface{}{ |
613 | "transactionContext": transactionContext, | 615 | "transactionContext": transactionContext, |
@@ -616,23 +618,67 @@ func (dividendsOrderService *DividendsOrderService) UpdateDividendsOrder(updateD | @@ -616,23 +618,67 @@ func (dividendsOrderService *DividendsOrderService) UpdateDividendsOrder(updateD | ||
616 | } else { | 618 | } else { |
617 | dividendsOrderRepository = value | 619 | dividendsOrderRepository = value |
618 | } | 620 | } |
621 | + | ||
622 | + // 订单时间转换 | ||
623 | + orderTimeInt, err := strconv.ParseInt(updateDividendsOrderCommand.OrderTime, 10, 64) | ||
624 | + if err != nil { | ||
625 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "订单时间错误") | ||
626 | + } | ||
627 | + orderTime := utils.TransformTimestampToTime(orderTimeInt) | ||
628 | + | ||
629 | + // 获取分红订单 | ||
619 | dividendsOrder, err := dividendsOrderRepository.FindOne(map[string]interface{}{"dividendsOrderId": updateDividendsOrderCommand.DividendsOrderId}) | 630 | dividendsOrder, err := dividendsOrderRepository.FindOne(map[string]interface{}{"dividendsOrderId": updateDividendsOrderCommand.DividendsOrderId}) |
620 | if err != nil { | 631 | if err != nil { |
621 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 632 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
622 | } | 633 | } |
634 | + | ||
635 | + // 新增订单产品 | ||
636 | + var orderGoods []*domain.OrderGood | ||
637 | + var dividendsOrderAmount float64 | ||
638 | + for _, orderGood := range updateDividendsOrderCommand.OrderGoods { | ||
639 | + // 产品ID类型转换 | ||
640 | + orderGoodId, err3 := strconv.ParseInt(orderGood.OrderGoodId, 10, 64) | ||
641 | + if err3 != nil { | ||
642 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err3.Error()) | ||
643 | + } | ||
644 | + orderGoods = append(orderGoods, &domain.OrderGood{ | ||
645 | + OrderGoodId: orderGoodId, | ||
646 | + OrderGoodAmount: orderGood.OrderGoodAmount, | ||
647 | + OrderGoodName: orderGood.OrderGoodName, | ||
648 | + OrderGoodPrice: orderGood.OrderGoodPrice, | ||
649 | + OrderGoodQuantity: orderGood.OrderGoodQuantity, | ||
650 | + DividendsOrderNumber: dividendsOrder.DividendsOrderNumber, | ||
651 | + DividendsReturnedOrderNumber: "", | ||
652 | + CooperationContractNumber: orderGood.CooperationContractNumber, | ||
653 | + OrderGoodExpense: orderGood.OrderGoodExpense, | ||
654 | + OrgId: updateDividendsOrderCommand.OrgId, | ||
655 | + CompanyId: updateDividendsOrderCommand.CompanyId, | ||
656 | + CreatedAt: time.Time{}, | ||
657 | + UpdatedAt: time.Now(), | ||
658 | + }) | ||
659 | + // 计算分红订单金额 | ||
660 | + dividendsOrderAmount = dividendsOrderAmount + orderGood.OrderGoodAmount | ||
661 | + } | ||
662 | + | ||
623 | if dividendsOrder == nil { | 663 | if dividendsOrder == nil { |
624 | return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateDividendsOrderCommand.DividendsOrderId))) | 664 | return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateDividendsOrderCommand.DividendsOrderId))) |
625 | } | 665 | } |
626 | if err := dividendsOrder.Update(tool_funs.SimpleStructToMap(updateDividendsOrderCommand)); err != nil { | 666 | if err := dividendsOrder.Update(tool_funs.SimpleStructToMap(updateDividendsOrderCommand)); err != nil { |
627 | return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | 667 | return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) |
628 | } | 668 | } |
629 | - if dividendsOrder, err := dividendsOrderRepository.Save(dividendsOrder); err != nil { | 669 | + |
670 | + dividendsOrder.OrderTime = orderTime | ||
671 | + dividendsOrder.DividendsOrderAmount = dividendsOrderAmount | ||
672 | + dividendsOrder.Goods = orderGoods | ||
673 | + | ||
674 | + // 保存订单更新 | ||
675 | + if dividendsOrderSaved, err := dividendsOrderRepository.Save(dividendsOrder); err != nil { | ||
630 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 676 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
631 | } else { | 677 | } else { |
632 | if err := transactionContext.CommitTransaction(); err != nil { | 678 | if err := transactionContext.CommitTransaction(); err != nil { |
633 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 679 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
634 | } | 680 | } |
635 | - return dividendsOrder, nil | 681 | + return dividendsOrderSaved, nil |
636 | } | 682 | } |
637 | } | 683 | } |
638 | 684 |
1 | package domain | 1 | package domain |
2 | 2 | ||
3 | -import "time" | 3 | +import ( |
4 | + "time" | ||
5 | +) | ||
4 | 6 | ||
5 | const ( | 7 | const ( |
6 | TO_BE_DIVIDEND = iota + 1 | 8 | TO_BE_DIVIDEND = iota + 1 |
@@ -74,9 +76,6 @@ func (dividendsOrder *DividendsOrder) Update(data map[string]interface{}) error | @@ -74,9 +76,6 @@ func (dividendsOrder *DividendsOrder) Update(data map[string]interface{}) error | ||
74 | if dividendsOrderAmount, ok := data["dividendsOrderAmount"]; ok { | 76 | if dividendsOrderAmount, ok := data["dividendsOrderAmount"]; ok { |
75 | dividendsOrder.DividendsOrderAmount = dividendsOrderAmount.(float64) | 77 | dividendsOrder.DividendsOrderAmount = dividendsOrderAmount.(float64) |
76 | } | 78 | } |
77 | - if orderTime, ok := data["orderTime"]; ok { | ||
78 | - dividendsOrder.OrderTime = orderTime.(time.Time) | ||
79 | - } | ||
80 | if dividendTime, ok := data["dividendTime"]; ok { | 79 | if dividendTime, ok := data["dividendTime"]; ok { |
81 | dividendsOrder.DividendTime = dividendTime.(time.Time) | 80 | dividendsOrder.DividendTime = dividendTime.(time.Time) |
82 | } | 81 | } |
@@ -169,7 +169,7 @@ func (repository *CooperationProjectRepository) UpdateMany(cooperationProjects [ | @@ -169,7 +169,7 @@ func (repository *CooperationProjectRepository) UpdateMany(cooperationProjects [ | ||
169 | CooperationProjectPublishTime: cooperationProject.CooperationProjectPublishTime, | 169 | CooperationProjectPublishTime: cooperationProject.CooperationProjectPublishTime, |
170 | CooperationProjectPublisher: cooperationProject.CooperationProjectPublisher, | 170 | CooperationProjectPublisher: cooperationProject.CooperationProjectPublisher, |
171 | CooperationProjectSponsor: cooperationProject.CooperationProjectSponsor, | 171 | CooperationProjectSponsor: cooperationProject.CooperationProjectSponsor, |
172 | - CooperationModeNumber: cooperationProject.CooperationProjectNumber, | 172 | + CooperationModeNumber: cooperationProject.CooperationMode.CooperationModeNumber, |
173 | Department: cooperationProject.Department, | 173 | Department: cooperationProject.Department, |
174 | CooperationProjectUndertakerTypes: cooperationProject.CooperationProjectUndertakerTypes, | 174 | CooperationProjectUndertakerTypes: cooperationProject.CooperationProjectUndertakerTypes, |
175 | Attachment: cooperationProject.Attachment, | 175 | Attachment: cooperationProject.Attachment, |
-
请 注册 或 登录 后发表评论