...
|
...
|
@@ -2,10 +2,18 @@ package controllers |
|
|
|
|
|
import (
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
"github.com/astaxie/beego/logs"
|
|
|
OrderPaymentCmd "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/order_payment/command"
|
|
|
OrderPaymentQuery "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/order_payment/query"
|
|
|
OrderPaymentSvr "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/order_payment/service"
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/utils"
|
|
|
|
|
|
OrderQuery "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/order/query"
|
|
|
OrderSvr "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/order/service"
|
|
|
|
|
|
PartnerInfoQuery "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/partnerInfo/query"
|
|
|
PartnerInfoSvr "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/partnerInfo/service"
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
|
|
|
"strconv"
|
|
|
)
|
...
|
...
|
@@ -76,11 +84,13 @@ func (c *DividendsController) Edit() { |
|
|
//Edit 分红支付详情
|
|
|
func (c *DividendsController) Detail() {
|
|
|
type Parameter struct {
|
|
|
Id int64 `json:"id"` //订单编号
|
|
|
Id string `json:"id"` //订单编号
|
|
|
}
|
|
|
var (
|
|
|
param Parameter
|
|
|
err error
|
|
|
param Parameter
|
|
|
err error
|
|
|
order *domain.Order
|
|
|
partner *domain.PartnerInfo
|
|
|
)
|
|
|
if err = c.BindJsonData(¶m); err != nil {
|
|
|
logs.Error(err)
|
...
|
...
|
@@ -88,17 +98,28 @@ func (c *DividendsController) Detail() { |
|
|
return
|
|
|
}
|
|
|
|
|
|
cmd := OrderPaymentQuery.GetOrderPaymentQuery{
|
|
|
OrderId: param.Id,
|
|
|
}
|
|
|
serve := OrderPaymentSvr.NewOrderPaymentService(nil)
|
|
|
cmd := OrderPaymentQuery.GetOrderPaymentQuery{}
|
|
|
cmd.OrderId, _ = strconv.ParseInt(param.Id, 10, 64)
|
|
|
|
|
|
var (
|
|
|
OrderPaymentSvr = OrderPaymentSvr.NewOrderPaymentService(nil)
|
|
|
OrderSvr = OrderSvr.NewOrderService(nil)
|
|
|
PartnerInfoSvr = PartnerInfoSvr.NewPartnerInfoService(nil)
|
|
|
)
|
|
|
var data []*domain.OrderPayment
|
|
|
var extral map[string]interface{}
|
|
|
extral, data, err = serve.ListOrderPayment(&cmd)
|
|
|
data, err = OrderPaymentSvr.ListOrderPayment(&cmd)
|
|
|
if err != nil {
|
|
|
c.ResponseError(err)
|
|
|
return
|
|
|
}
|
|
|
if order, err = OrderSvr.GetOrder(OrderQuery.GetOrderQuery{OrderId: cmd.OrderId}); err != nil {
|
|
|
c.ResponseError(err)
|
|
|
return
|
|
|
}
|
|
|
if partner, err = PartnerInfoSvr.GetPartnerInfo(PartnerInfoQuery.GetPartnerInfoQuery{Id: order.PartnerInfo.Id}); err != nil {
|
|
|
c.ResponseError(err)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
type DividendPayment struct {
|
|
|
PaymentForGoods float64 `json:"paymentForGoods"`
|
...
|
...
|
@@ -107,8 +128,34 @@ func (c *DividendsController) Detail() { |
|
|
Dividend float64 `json:"dividend"`
|
|
|
DividendProportion float64 `json:"dividendProportion"`
|
|
|
}
|
|
|
type Order struct {
|
|
|
OrderNumber string `json:"orderNumber"` //订单号
|
|
|
OrderState int `json:"orderState"` //订单状态
|
|
|
CreateTime string `json:"createTime"` //订单创建时间
|
|
|
OrderName string `json:"orderName"` //订单名称
|
|
|
OrderNum string `json:"orderNum"` //订单数量
|
|
|
OrderAmount string `json:"orderAmount"` //订单金额
|
|
|
Id string `json:"id"` //订单编号
|
|
|
}
|
|
|
type Partner struct {
|
|
|
PartnerName string `json:"partnerName"` //合伙人姓名
|
|
|
DividendProportion float64 `json:"dividendProportion"` //分红比例
|
|
|
DividendsReceivable float64 `json:"dividendsReceivable"` //应收分红
|
|
|
DividendSpending float64 `json:"dividendSpending"` //分红支出
|
|
|
ReceiveDividends float64 `json:"receiveDividends"` //实收分红
|
|
|
NotReceivedDividends float64 `json:"notReceivedDividends"` //未收分红
|
|
|
RceivedDividends float64 `json:"receivedDividends"` //已收分红
|
|
|
}
|
|
|
type Commission struct {
|
|
|
SalesmanName string `json:"salesmanName"` //业务员名称
|
|
|
CommissionProportion float64 `json:"commissionProportion"` //业务员抽成比例
|
|
|
ExpectedCommission float64 `json:"expectedCommission"` //业务员预计抽成
|
|
|
}
|
|
|
type Response struct {
|
|
|
DividendPayment []DividendPayment `json:"dividendPayment"`
|
|
|
Order Order `json:"order"`
|
|
|
Partner Partner `json:"partner"`
|
|
|
Commission Commission `json:"commission"`
|
|
|
}
|
|
|
rsp := Response{DividendPayment: make([]DividendPayment, 0)}
|
|
|
for i := range data {
|
...
|
...
|
@@ -118,10 +165,35 @@ func (c *DividendsController) Detail() { |
|
|
UpdateTime: item.UpdateAt.Local().Format("2006-01-02 15:04:05"),
|
|
|
StateOfPayment: item.BonusStatus,
|
|
|
Dividend: item.BonusAmount,
|
|
|
DividendProportion: extral["PartnerBonusPercent"].(float64),
|
|
|
DividendProportion: order.PartnerBonusPercent,
|
|
|
}
|
|
|
rsp.DividendPayment = append(rsp.DividendPayment, payment)
|
|
|
}
|
|
|
rsp.Order = Order{
|
|
|
OrderNumber: order.OrderCode,
|
|
|
OrderState: order.OrderStatus,
|
|
|
CreateTime: order.CreateAt.Local().Format("2006-01-02 15:04:05"),
|
|
|
OrderName: order.OrderName,
|
|
|
OrderNum: fmt.Sprintf("%v", order.OrderCount),
|
|
|
OrderAmount: fmt.Sprintf("%v", order.OrderAmount),
|
|
|
Id: fmt.Sprintf("%v", order.Id),
|
|
|
}
|
|
|
rsp.Partner = Partner{
|
|
|
PartnerName: partner.Partner.PartnerName,
|
|
|
DividendProportion: order.PartnerBonusPercent,
|
|
|
DividendsReceivable: order.OrderTotalBonus() + order.OrderBonusOutstanding(), //应收分红 = 实收分红+分红支出
|
|
|
DividendSpending: order.OrderBonusOutstanding(), //分红支出
|
|
|
ReceiveDividends: order.OrderBonusReceive() + order.OrderBonusWait(), //应实收分红 = 已收分红 + 等待分红
|
|
|
NotReceivedDividends: order.OrderBonusWait(), //未收分红
|
|
|
RceivedDividends: order.OrderBonusReceive(),
|
|
|
}
|
|
|
rsp.Commission = Commission{
|
|
|
CommissionProportion: order.SalesmanBonusPercent,
|
|
|
ExpectedCommission: utils.Decimal(order.OrderActualAmount * (order.SalesmanBonusPercent / 100)),
|
|
|
}
|
|
|
if len(partner.Salesman) > 0 {
|
|
|
rsp.Commission.SalesmanName = partner.Salesman[0].Name
|
|
|
}
|
|
|
|
|
|
c.ResponseData(rsp)
|
|
|
return
|
...
|
...
|
|