切换导航条
此项目
正在载入...
登录
allied-creation
/
allied-creation-cooperation
·
提交
转到一个项目
GitLab
转到群组
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
陈志颖
3 years ago
提交
8e40e14689935cf0e883605a6295470e4247d0d7
1 个父辈
0f415e36
refactor:优化订单导入
隐藏空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
42 行增加
和
19 行删除
pkg/application/dividendsOrder/service/dividends_order.go
pkg/application/dividendsReturnedOrder/service/dividends_returned_order.go
pkg/domain/dividends_order.go
pkg/application/dividendsOrder/service/dividends_order.go
查看文件 @
8e40e14
...
...
@@ -336,6 +336,10 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
}
}
log
.
Logger
.
Info
(
"查找合约数据"
,
map
[
string
]
interface
{}{
"cooperationContractsMap"
:
cooperationContractsMap
,
})
// 分红订单DAO初始化
var
dividendsOrderDao
*
dao
.
DividendsOrderDao
if
value
,
err
:=
factory
.
CreateDividendsOrderDao
(
map
[
string
]
interface
{}{
...
...
@@ -609,6 +613,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
DividendsOrderNumber
:
""
,
CooperationContractNumber
:
dividendsOrder
.
CooperationContractNumber
,
OrderGoodExpense
:
expense
,
LineNumber
:
i
,
},
},
CompanyId
:
importDividendsOrderCommand
.
CompanyId
,
...
...
@@ -660,6 +665,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
DividendsOrderNumber
:
""
,
CooperationContractNumber
:
dividendsOrder
.
CooperationContractNumber
,
OrderGoodExpense
:
expense
,
LineNumber
:
i
,
// 记录订单产品行号
})
// 记录聚合行号
...
...
@@ -667,6 +673,10 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
}
}
log
.
Logger
.
Info
(
"聚合订单"
,
map
[
string
]
interface
{}{
"dividendsOrderCommands"
:
dividendsOrderCommands
,
})
// 聚合订单错误返回
if
len
(
aggregateErrorList
)
>
0
{
return
map
[
string
]
interface
{}{
...
...
@@ -698,7 +708,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
row
:=
&
domain
.
ImportInfo
{
Error
:
application
.
ThrowError
(
application
.
BUSINESS_ERROR
,
err
.
Error
()),
// 错误信息
LineNumbers
:
cmd
.
LineNumbers
,
// 错误影响的行
GoodLine
:
map
[
int
]
interface
{}
{},
GoodLine
:
map
[
int
]
string
{},
}
errorDataList
=
append
(
errorDataList
,
row
)
continue
...
...
@@ -758,7 +768,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
row
:=
&
domain
.
ImportInfo
{
Error
:
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
fmt
.
Sprintf
(
"分红订单号生成错误:%s"
,
err
)),
LineNumbers
:
dividendsOrder
.
LineNumbers
,
// 错误影响的行
GoodLine
:
map
[
int
]
interface
{}
{},
GoodLine
:
map
[
int
]
string
{},
}
errorDataList
=
append
(
errorDataList
,
row
)
continue
...
...
@@ -770,18 +780,19 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
row
:=
&
domain
.
ImportInfo
{
Error
:
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
fmt
.
Sprintf
(
"订单日期转换错误:%s"
,
err
)),
LineNumbers
:
dividendsOrder
.
LineNumbers
,
// 错误影响的行
GoodLine
:
map
[
int
]
interface
{}
{},
GoodLine
:
map
[
int
]
string
{},
}
errorDataList
=
append
(
errorDataList
,
row
)
continue
}
orderTime
:=
utils
.
TransformTimestampToTime
(
orderTimeInt
)
// 新增订单产品
var
orderGoods
[]
*
domain
.
OrderGood
var
dividendsOrderAmount
float64
orderGoodErrMap
:=
make
(
map
[
int
]
interface
{},
0
)
for
i
,
orderGood
:=
range
dividendsOrder
.
OrderGoods
{
orderGoodErrMap
:=
make
(
map
[
int
]
string
,
0
)
for
j
,
orderGood
:=
range
dividendsOrder
.
OrderGoods
{
// 校验共创合约是否合法
contractNumberExist
:=
false
for
_
,
cooperationContract
:=
range
cooperationContracts
{
...
...
@@ -791,18 +802,24 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
}
}
if
!
contractNumberExist
{
orderGoodErrMap
[
dividendsOrder
.
OrderGoods
[
i
]
.
LineNumber
]
=
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
fmt
.
Sprintf
(
"共创合约编号不存在:%s"
,
err
))
orderGoodErrMap
[
dividendsOrder
.
OrderGoods
[
j
]
.
LineNumber
]
=
"订单产品关联的共创合约不存在"
continue
}
// 计算产品金额
orderGoodAmount
,
_
:=
decimal
.
NewFromFloat
(
orderGood
.
OrderGoodPrice
)
.
Mul
(
decimal
.
NewFromFloat
(
orderGood
.
OrderGoodQuantity
))
.
Sub
(
decimal
.
NewFromFloat
(
orderGood
.
OrderGoodExpense
))
.
Float64
()
// 校验共创合约激励类型是否正确
ruleMatchedFlag
:=
false
if
orderGood
.
CooperationContractNumber
!=
""
{
// 校验共创合约激励类型是否正确
log
.
Logger
.
Info
(
"订单产品匹配的合约"
,
map
[
string
]
interface
{}{
"contractMatched"
:
cooperationContractsMap
[
orderGood
.
CooperationContractNumber
],
})
if
cooperationContractsMap
[
orderGood
.
CooperationContractNumber
]
!=
nil
&&
cooperationContractsMap
[
orderGood
.
CooperationContractNumber
]
.
IncentivesType
!=
1
{
orderGoodErrMap
[
dividendsOrder
.
OrderGoods
[
i
]
.
LineNumber
]
=
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"退货单产品不能关联金额激励规则"
)
orderGoodErrMap
[
dividendsOrder
.
OrderGoods
[
j
]
.
LineNumber
]
=
"分红订单不能关联金额激励规则"
continue
}
// 校验产品关联合约的激励规则是否匹配订单时间
if
cooperationContractsMap
[
orderGood
.
CooperationContractNumber
]
!=
nil
{
for
_
,
incentivesRule
:=
range
cooperationContractsMap
[
orderGood
.
CooperationContractNumber
]
.
DividendsIncentivesRules
{
...
...
@@ -814,7 +831,8 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
}
}
if
!
ruleMatchedFlag
{
orderGoodErrMap
[
dividendsOrder
.
OrderGoods
[
i
]
.
LineNumber
]
=
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
"订单时间无法匹配分红激励规则,请重新选择"
)
orderGoodErrMap
[
dividendsOrder
.
OrderGoods
[
j
]
.
LineNumber
]
=
"订单时间无法匹配分红激励规则"
continue
}
}
...
...
@@ -838,9 +856,13 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
// 计算分红订单金额
dividendsOrderAmount
,
_
=
decimal
.
NewFromFloat
(
dividendsOrderAmount
)
.
Add
(
decimal
.
NewFromFloat
(
orderGood
.
OrderGoodPrice
)
.
Mul
(
decimal
.
NewFromFloat
(
orderGood
.
OrderGoodQuantity
)
.
Sub
(
decimal
.
NewFromFloat
(
orderGood
.
OrderGoodExpense
))))
.
Float64
()
}
if
len
(
orderGoodErrMap
)
>
0
{
log
.
Logger
.
Info
(
"校验订单产品"
,
map
[
string
]
interface
{}{
"orderGoodErrMap"
:
orderGoodErrMap
,
})
row
:=
&
domain
.
ImportInfo
{
Error
:
application
.
ThrowError
(
application
.
BUSINESS_ERROR
,
"共创合约不存在"
)
,
Error
:
nil
,
LineNumbers
:
dividendsOrder
.
LineNumbers
,
// 错误影响的行
GoodLine
:
orderGoodErrMap
,
// 错误产品行号记录
}
...
...
@@ -874,8 +896,9 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
creatDividendsOrder
=
append
(
creatDividendsOrder
,
newDividendsOrder
)
}
/******************************************************************************************************************/
/
/ 错误报告处理
/
*********************************************** 错误报告处理 *******************************************************/
if
len
(
errorDataList
)
<=
0
{
// 成功返回
if
_
,
err2
:=
dividendsOrderRepository
.
SaveMany
(
creatDividendsOrder
);
err2
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
err2
.
Error
())
...
...
@@ -887,7 +910,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
if
successDataCount
==
int64
(
rowCnt
)
{
return
map
[
string
]
interface
{}{
"successCount"
:
successDataCount
,
"fail"
:
ma
p
[
string
]
interface
{}{}
,
"fail"
:
ma
ke
(
map
[
string
]
interface
{})
,
},
nil
}
}
else
{
// 失败返回
...
...
@@ -897,7 +920,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
if
len
(
errorData
.
GoodLine
)
==
0
{
// 订单错误
for
_
,
line
:=
range
errorData
.
LineNumbers
{
tmpRow
:=
&
domain
.
FailInfo
{
FailReason
:
"订单数据新增错误:"
+
errorData
.
Error
.
Error
(),
FailReason
:
errorData
.
Error
.
Error
(),
}
tmpRow
.
ImportDividendsOrderData
=
&
importDividendsOrderCommand
.
DividendsOrderData
[
line
]
failureDataList
=
append
(
failureDataList
,
tmpRow
)
...
...
@@ -905,7 +928,7 @@ func (dividendsOrderService *DividendsOrderService) ImportDividendsOrder(importD
}
else
if
len
(
errorData
.
GoodLine
)
>
0
{
// 订单产品错误
for
line
:=
range
errorData
.
GoodLine
{
tmpRow
:=
&
domain
.
FailInfo
{
FailReason
:
"订单数据新增错误:"
+
errorData
.
Error
.
Error
()
,
FailReason
:
errorData
.
GoodLine
[
line
]
,
}
tmpRow
.
ImportDividendsOrderData
=
&
importDividendsOrderCommand
.
DividendsOrderData
[
line
]
failureDataList
=
append
(
failureDataList
,
tmpRow
)
...
...
pkg/application/dividendsReturnedOrder/service/dividends_returned_order.go
查看文件 @
8e40e14
...
...
@@ -707,7 +707,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide
row
:=
&
domain
.
ImportInfo
{
Error
:
application
.
ThrowError
(
application
.
BUSINESS_ERROR
,
err
.
Error
()),
// 错误信息
LineNumbers
:
cmd
.
LineNumbers
,
// 错误影响的行
GoodLine
:
map
[
int
]
interface
{}
{},
GoodLine
:
map
[
int
]
string
{},
}
errorDataList
=
append
(
errorDataList
,
row
)
continue
...
...
@@ -862,7 +862,7 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) ImportDivide
row
:=
&
domain
.
ImportInfo
{
Error
:
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
fmt
.
Sprintf
(
"保存退货单数据失败:%s"
,
err
)),
LineNumbers
:
dividendsReturnedOrder
.
LineNumbers
,
// 错误影响的行
GoodLine
:
map
[
int
]
interface
{}
{},
GoodLine
:
map
[
int
]
string
{},
}
errorDataList
=
append
(
errorDataList
,
row
)
continue
...
...
pkg/domain/dividends_order.go
查看文件 @
8e40e14
...
...
@@ -53,9 +53,9 @@ type DividendsOrder struct {
// ImportInfo 导入错误信息
type
ImportInfo
struct
{
Error
error
`json:"error"`
LineNumbers
[]
int
`json:"lineNumbers"`
GoodLine
map
[
int
]
interface
{}
`json:"goodLine"`
Error
error
`json:"error"`
LineNumbers
[]
int
`json:"lineNumbers"`
GoodLine
map
[
int
]
string
`json:"goodLine"`
}
// FailInfo 返回的失败信息
...
...
请
注册
或
登录
后发表评论