...
|
...
|
@@ -5,6 +5,8 @@ import ( |
|
|
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/factory"
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/order_payment/command"
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/order_payment/query"
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/models"
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/utils"
|
|
|
"time"
|
|
|
|
|
|
//"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/order_payment/query"
|
...
|
...
|
@@ -86,92 +88,31 @@ func (OrderPaymentService *OrderPaymentService) CreateOrderPayment(command *comm |
|
|
return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
}
|
|
|
}
|
|
|
var bonusStatus int = 1
|
|
|
if len(command.DivdendPaymentItem) > 0 {
|
|
|
bonusStatus = command.DivdendPaymentItem[len(command.DivdendPaymentItem)-1].StateOfPayment
|
|
|
}
|
|
|
|
|
|
if err = OrderDao.Update(map[string]interface{}{"id": command.OrderId, "orderPaymentAmount": command.TotalPaymentAmount}); err != nil {
|
|
|
if err = OrderDao.Update(map[string]interface{}{"id": command.OrderId, "orderPaymentAmount": command.TotalPaymentAmount, "bonusStatus": bonusStatus}); err != nil {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//// GetOrderPayment 返回合伙人
|
|
|
//func (OrderPaymentService *OrderPaymentService) GetOrderPayment(command query.GetOrderPaymentQuery) (data *domain.OrderPayment, err error) {
|
|
|
// var (
|
|
|
// transactionContext, _ = factory.CreateTransactionContext(nil)
|
|
|
// )
|
|
|
// if err = command.ValidateQuery(); err != nil {
|
|
|
// return nil, lib.ThrowError(lib.ARG_ERROR, err.Error())
|
|
|
// }
|
|
|
// if err := transactionContext.StartTransaction(); err != nil {
|
|
|
// return nil, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
|
|
|
// }
|
|
|
// defer func() {
|
|
|
// transactionContext.RollbackTransaction()
|
|
|
// }()
|
|
|
// var OrderPaymentRepository domain.OrderPaymentRepository
|
|
|
// if OrderPaymentRepository, err = factory.CreateOrderPaymentRepository(map[string]interface{}{
|
|
|
// "transactionContext": transactionContext,
|
|
|
// }); err != nil {
|
|
|
// return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
// }
|
|
|
// data, err = OrderPaymentRepository.FindOne(domain.PartnerFindOneQuery{UserId: command.Id})
|
|
|
// if err != nil {
|
|
|
// return nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
// }
|
|
|
// err = transactionContext.CommitTransaction()
|
|
|
// return
|
|
|
//}
|
|
|
//
|
|
|
//// 更新客户价值
|
|
|
//func (OrderPaymentService *OrderPaymentService) UpdateOrderPayment(updateOrderPaymentCommand *command.UpdateOrderPaymentCommand) (err error) {
|
|
|
// var (
|
|
|
// transactionContext, _ = factory.CreateTransactionContext(nil)
|
|
|
// )
|
|
|
// if err = updateOrderPaymentCommand.ValidateCommand(); err != nil {
|
|
|
// return application.ThrowError(application.ARG_ERROR, err.Error())
|
|
|
// }
|
|
|
// if err := transactionContext.StartTransaction(); err != nil {
|
|
|
// return lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
|
|
|
// }
|
|
|
// defer func() {
|
|
|
// transactionContext.RollbackTransaction()
|
|
|
// }()
|
|
|
// var OrderPaymentRepository domain.OrderPaymentRepository
|
|
|
// if OrderPaymentRepository, err = factory.CreateOrderPaymentRepository(map[string]interface{}{
|
|
|
// "transactionContext": transactionContext,
|
|
|
// }); err != nil {
|
|
|
// return lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
|
|
|
// }
|
|
|
// OrderPayment, err := OrderPaymentRepository.FindOne(domain.PartnerFindOneQuery{
|
|
|
// UserId: updateOrderPaymentCommand.Id,
|
|
|
// })
|
|
|
// if err != nil {
|
|
|
// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
// }
|
|
|
// OrderPayment.PartnerCategory = updateOrderPaymentCommand.PartnerCategory
|
|
|
// OrderPayment.Salesman = updateOrderPaymentCommand.Salesman
|
|
|
// OrderPayment.Status = updateOrderPaymentCommand.Status
|
|
|
// OrderPayment.RegionInfo = updateOrderPaymentCommand.RegionInfo
|
|
|
// if _, err = OrderPaymentRepository.Save(OrderPayment); err != nil {
|
|
|
// return lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
// }
|
|
|
// transactionContext.CommitTransaction()
|
|
|
// return
|
|
|
//}
|
|
|
//
|
|
|
// 返回订单支付列表
|
|
|
func (OrderPaymentService *OrderPaymentService) ListOrderPayment(listOrderPaymentQuery *query.ListOrderPaymentQuery) (int, []*domain.OrderPayment, error) {
|
|
|
func (OrderPaymentService *OrderPaymentService) ListOrderPayment(listOrderPaymentQuery *query.GetOrderPaymentQuery) (map[string]interface{}, []*domain.OrderPayment, error) {
|
|
|
var (
|
|
|
transactionContext, _ = factory.CreateTransactionContext(nil)
|
|
|
OrderDao, _ = factory.CreateOrderDao(map[string]interface{}{"transactionContext": transactionContext})
|
|
|
OrderPayments []*domain.OrderPayment
|
|
|
count int
|
|
|
err error
|
|
|
)
|
|
|
if err = listOrderPaymentQuery.ValidateQuery(); err != nil {
|
|
|
return 0, nil, lib.ThrowError(lib.ARG_ERROR, err.Error())
|
|
|
return nil, nil, lib.ThrowError(lib.ARG_ERROR, err.Error())
|
|
|
}
|
|
|
if err := transactionContext.StartTransaction(); err != nil {
|
|
|
return 0, nil, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
|
|
|
return nil, nil, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
|
|
|
}
|
|
|
defer func() {
|
|
|
if err != nil {
|
...
|
...
|
@@ -182,19 +123,99 @@ func (OrderPaymentService *OrderPaymentService) ListOrderPayment(listOrderPaymen |
|
|
if OrderPaymentRepository, err = factory.CreateOrderPaymentRepository(map[string]interface{}{
|
|
|
"transactionContext": transactionContext,
|
|
|
}); err != nil {
|
|
|
return 0, nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
return nil, nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
}
|
|
|
queryOption := domain.OrderPaymentQuery{
|
|
|
OrderId: listOrderPaymentQuery.OrderId,
|
|
|
}
|
|
|
orderBase, e := OrderDao.GetOrderBaseInfo(listOrderPaymentQuery.OrderId)
|
|
|
if e != nil {
|
|
|
return nil, nil, e
|
|
|
}
|
|
|
if OrderPayments, err = OrderPaymentRepository.Find(queryOption); err != nil {
|
|
|
return 0, nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
return nil, nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
}
|
|
|
//if count, err = OrderPaymentRepository.CountAll(queryOption); err != nil {
|
|
|
// return nil, nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
//}
|
|
|
|
|
|
if err = transactionContext.CommitTransaction(); err != nil {
|
|
|
return nil, nil, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
|
|
|
}
|
|
|
if count, err = OrderPaymentRepository.CountAll(queryOption); err != nil {
|
|
|
return orderBase, OrderPayments, nil
|
|
|
}
|
|
|
|
|
|
// 返回分红管理列表
|
|
|
func (OrderPaymentService *OrderPaymentService) ListDividendOrders(listOrderPaymentQuery *query.ListDividendOrdersQuery) (int, interface{}, error) {
|
|
|
var (
|
|
|
transactionContext, _ = factory.CreateTransactionContext(nil)
|
|
|
//OrderPayments []*domain.OrderPayment
|
|
|
count int
|
|
|
err error
|
|
|
OrderDao, _ = factory.CreateOrderDao(map[string]interface{}{"transactionContext": transactionContext})
|
|
|
orders []*models.Order
|
|
|
)
|
|
|
if err = listOrderPaymentQuery.ValidateQuery(); err != nil {
|
|
|
return 0, nil, lib.ThrowError(lib.ARG_ERROR, err.Error())
|
|
|
}
|
|
|
if err := transactionContext.StartTransaction(); err != nil {
|
|
|
return 0, nil, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
|
|
|
}
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
transactionContext.RollbackTransaction()
|
|
|
}
|
|
|
}()
|
|
|
if count, orders, err = OrderDao.GetDividendOrders(map[string]interface{}{
|
|
|
"orderCode": listOrderPaymentQuery.OrderNumber,
|
|
|
"partnerName": listOrderPaymentQuery.PartnerName,
|
|
|
"orderType": 1,
|
|
|
"offset": (listOrderPaymentQuery.PageNumber - 1) * listOrderPaymentQuery.PageSize,
|
|
|
"limit": listOrderPaymentQuery.PageSize,
|
|
|
}); err != nil {
|
|
|
return 0, nil, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
|
|
|
}
|
|
|
|
|
|
type DividendOrderItem struct {
|
|
|
OrderNumber string `json:"orderNumber"` //订单号
|
|
|
OrderState int `json:"orderState"` //订单状态
|
|
|
StateOfPayment string `json:"stateOfPayment"` //支付状态
|
|
|
CreateTime string `json:"createTime"` //订单创建时间
|
|
|
PartnerName string `json:"partnerName"` //合伙人姓名
|
|
|
DividendProportion float64 `json:"dividendProportion"` //分红比例
|
|
|
DividendsReceivable float64 `json:"dividendsReceivable"` //应收分红
|
|
|
DividendSpending float64 `json:"dividendSpending"` //分红支出
|
|
|
ReceiveDividends float64 `json:"receiveDividends"` //实收分红
|
|
|
CommissionProportion float64 `json:"commissionProportion"` //业务员抽成比例
|
|
|
}
|
|
|
var list = make([]DividendOrderItem, 0)
|
|
|
for i := range orders {
|
|
|
order := orders[i]
|
|
|
item := DividendOrderItem{
|
|
|
OrderNumber: order.OrderCode,
|
|
|
OrderState: order.OrderStatus,
|
|
|
StateOfPayment: "",
|
|
|
CreateTime: order.CreateAt.Local().Format("2006-01-02 15:04:05"),
|
|
|
PartnerName: order.PartnerInfo.PartnerName,
|
|
|
DividendProportion: order.PartnerBonusPercent,
|
|
|
DividendsReceivable: utils.Decimal(order.OrderActualAmount * (order.PartnerBonusPercent / 100.0)),
|
|
|
DividendSpending: 0,
|
|
|
ReceiveDividends: utils.Decimal(order.OrderPaymentAmount * (order.PartnerBonusPercent / 100.0)),
|
|
|
CommissionProportion: order.SalesmanBonusPercent,
|
|
|
}
|
|
|
if order.BonusStatus == domain.BonusPaid {
|
|
|
item.StateOfPayment = "已支付分红"
|
|
|
} else {
|
|
|
item.StateOfPayment = "等待支付分红"
|
|
|
}
|
|
|
if order.OrderActualAmount < order.OrderAmount {
|
|
|
item.DividendSpending = utils.Decimal(order.OrderAmount - order.OrderActualAmount)
|
|
|
}
|
|
|
list = append(list, item)
|
|
|
}
|
|
|
|
|
|
if err = transactionContext.CommitTransaction(); err != nil {
|
|
|
return 0, nil, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
|
|
|
}
|
|
|
return count, OrderPayments, nil
|
|
|
return count, list, nil
|
|
|
} |
...
|
...
|
|