作者 陈志颖

合并分支 'dev' 到 'test'

Dev



查看合并请求 !19
... ... @@ -800,6 +800,7 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent
// 分离分红订单和退货单
dividendsOrderNumbers := make([]string, 0)
dividendsReturnedOrderNumbers := make([]string, 0)
if len(estimateSuccessfullyDividendsOrders) > 0 {
for k, _ := range estimateSuccessfullyDividendsOrders {
if k[:2] == "RE" { // 分红退货单
dividendsReturnedOrderNumbers = append(dividendsReturnedOrderNumbers, k)
... ... @@ -807,6 +808,7 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent
dividendsOrderNumbers = append(dividendsOrderNumbers, k)
}
}
}
// 分红订单仓储初始化
var dividendsOrderRepository domain.DividendsOrderRepository
... ... @@ -819,6 +821,7 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent
}
// 查找分红订单
if len(dividendsOrderNumbers) > 0 {
if countDividendsOrdersFound, dividendsOrdersFound, err := dividendsOrderRepository.Find(map[string]interface{}{
"dividendsOrderNumbers": dividendsOrderNumbers,
"companyId": confirmDividendsIncentivesEstimateCommand.CompanyId,
... ... @@ -848,6 +851,7 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent
}
}
}
}
// 分红退货单仓储初始化
var dividendsReturnedOrderRepository domain.DividendsReturnedOrderRepository
... ... @@ -860,6 +864,7 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent
}
// 查找分红退货单
if len(dividendsReturnedOrderNumbers) > 0 {
if countDividendsReturnedOrdersFound, dividendsReturnedOrdersFound, err := dividendsReturnedOrderRepository.Find(map[string]interface{}{
"dividendsReturnedOrderNumbers": dividendsReturnedOrderNumbers,
"companyId": confirmDividendsIncentivesEstimateCommand.CompanyId,
... ... @@ -889,6 +894,7 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmDividendsIncent
}
}
}
}
// 完成第二阶段事务提交
if err := newTransactionContext.CommitTransaction(); err != nil {
... ... @@ -1068,7 +1074,7 @@ func (dividendsEstimateService *DividendsEstimateService) ConfirmMoneyIncentives
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
}
if confirmMoneyIncentivesEstimateCommand.Action == 1 { // 只预算,不入库
return dividendsEstimatesSaved, nil
return dividendsEstimates, nil
} else if confirmMoneyIncentivesEstimateCommand.Action == 2 { // 确定预算
if err := transactionContext.CommitTransaction(); err != nil {
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
... ...
... ... @@ -8,6 +8,7 @@ import (
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain"
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/service"
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/dao"
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/utils"
"time"
)
... ... @@ -49,6 +50,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do
// 金额激励预算
for _, undertaker := range contract.Undertakers {
if utils.IsContain64(undertakerUIDs, undertaker.UndertakerId) {
// 判断承接人在当前阶段是否已经分红
undertakerEstimated, err := dividendsEstimateDao.UserEstimated(map[string]interface{}{
"undertakerUid": undertaker.UserId,
... ... @@ -61,7 +63,8 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do
if undertakerEstimated {
return nil, fmt.Errorf("用户 " + undertaker.UserName + " 已分红")
} else {
undertakerDividendsAmount, _ := decimal.NewFromFloat(moneyIncentivesRuleMatched.MoneyIncentivesAmount).Mul(decimal.NewFromFloat(1).Sub(decimal.NewFromFloat(moneyIncentivesRuleMatched.SalesmanPercentage).Add(decimal.NewFromFloat(moneyIncentivesRuleMatched.ReferrerPercentage))).Div(decimal.NewFromFloat(100))).Float64()
undertakerDividendsAmount, _ := decimal.NewFromFloat(moneyIncentivesRuleMatched.MoneyIncentivesAmount).
Mul(decimal.NewFromFloat(1).Sub(decimal.NewFromFloat(moneyIncentivesRuleMatched.SalesmanPercentage).Add(decimal.NewFromFloat(moneyIncentivesRuleMatched.ReferrerPercentage)).Div(decimal.NewFromFloat(100)))).Float64()
dividendsEstimateDetails = append(dividendsEstimateDetails, &service.DividendsEstimateDetail{
DividendsUser: &domain.User{
UserId: undertaker.UserId,
... ... @@ -154,6 +157,7 @@ func (domainService *ConfirmMoneyIncentivesEstimateService) Confirm(contract *do
}
}
}
}
return dividendsEstimateDetails, nil
}
... ...
... ... @@ -135,3 +135,13 @@ func IsContain(items []int32, item int32) bool {
}
return false
}
// IsContain64 判断int64数组是否包含
func IsContain64(items []int64, item int64) bool {
for _, eachItem := range items {
if eachItem == item {
return true
}
}
return false
}
... ...