切换导航条
此项目
正在载入...
登录
allied-creation
/
allied-creation-cooperation
·
提交
转到一个项目
GitLab
转到群组
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
yangfu
3 years ago
提交
d0fc8c3fd56c33e2bc00966422c9fd171e774c3f
1 个父辈
77d96b2d
共创用户列表 明细修改
隐藏空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
207 行增加
和
42 行删除
pkg/infrastructure/dao/pg_cooperation_contract_dao.go
pkg/infrastructure/dao/pg_cooperation_contract_undertaker_dao.go
pkg/infrastructure/domain_service/pg_cooperation_company_statistics_service.go
pkg/infrastructure/dao/pg_cooperation_contract_dao.go
查看文件 @
d0fc8c3
...
...
@@ -225,7 +225,7 @@ func (dao *CooperationContractDao) Find(queryOptions map[string]interface{}) (in
var
cooperationContractRelevantModels
[]
*
models
.
CooperationContractRelevant
if
cooperationContract
,
err
:=
transform
.
TransformToCooperationContractDomainModelFromPgModels
(
cooperationContractModel
,
&
models
.
CooperationMode
{},
&
models
.
CooperationMode
{
CooperationModeNumber
:
cooperationContractModel
.
CooperationModeNumber
},
dividendsIncentivesRuleModels
,
moneyIncentivesRuleModels
,
cooperationContractRelevantModels
,
...
...
pkg/infrastructure/dao/pg_cooperation_contract_undertaker_dao.go
查看文件 @
d0fc8c3
...
...
@@ -39,6 +39,14 @@ func (repository *CooperationContractUndertakerDao) Find(queryOptions map[string
return
query
,
nil
})
}
if
userId
,
ok
:=
queryOptions
[
"userId"
];
ok
&&
userId
.
(
int64
)
!=
0
{
query
.
WhereGroup
(
func
(
query
*
orm
.
Query
)
(
*
orm
.
Query
,
error
)
{
query
.
WhereOr
(
"user_id = ? "
,
userId
)
query
.
WhereOr
(
"referrer->>'userId' = '?' "
,
userId
)
query
.
WhereOr
(
"salesman->>'userId' = '?' "
,
userId
)
return
query
,
nil
})
}
offsetLimitFlag
:=
true
if
offsetLimit
,
ok
:=
queryOptions
[
"offsetLimit"
];
ok
{
offsetLimitFlag
=
offsetLimit
.
(
bool
)
...
...
pkg/infrastructure/domain_service/pg_cooperation_company_statistics_service.go
查看文件 @
d0fc8c3
...
...
@@ -312,12 +312,14 @@ func (ptr *CooperationStatisticsService) CompanyCooperationUsersStatistics(query
userService
,
_
:=
NewUserService
()
contractUndertakerDao
,
_
:=
dao
.
NewCooperationContractUndertakerDao
(
ptr
.
transactionContext
)
dividendsOrderDao
,
_
:=
dao
.
NewDividendsOrderDao
(
ptr
.
transactionContext
)
var
retMap
=
make
([]
interface
{},
0
)
for
i
:=
range
responses
{
responses
[
i
]
.
CooperationTime
=
time
.
Now
()
.
Unix
()
*
1000
item
:=
map
[
string
]
interface
{}{
"dividendsOrderAmount"
:
responses
[
i
]
.
DividendsOrderAmount
,
"dividendsOrderAmount"
:
0
,
"actuallyPaidAmount"
:
responses
[
i
]
.
ActuallyPaidAmount
,
"unPaidAmount"
:
responses
[
i
]
.
UnPaidAmount
,
"cooperationTime"
:
time
.
Now
()
.
Unix
()
*
1000
,
...
...
@@ -337,6 +339,16 @@ func (ptr *CooperationStatisticsService) CompanyCooperationUsersStatistics(query
},
}
}
// 订单金额
_
,
contracts
,
_
:=
contractUndertakerDao
.
Find
(
map
[
string
]
interface
{}{
"orgId"
:
request
.
OrgId
,
"userId"
:
responses
[
i
]
.
UserId
})
var
contractsNumbers
[]
string
for
i
:=
range
contracts
{
contractsNumbers
=
append
(
contractsNumbers
,
contracts
[
i
]
.
CooperationContractNumber
)
}
if
len
(
contractsNumbers
)
>
0
{
item
[
"dividendsOrderAmount"
],
_
=
dividendsOrderDao
.
CalculateGoodOrderAmount
(
map
[
string
]
interface
{}{
"orgId"
:
request
.
OrgId
,
"cooperationContractNumbers"
:
contractsNumbers
})
}
retMap
=
append
(
retMap
,
item
)
}
...
...
@@ -367,63 +379,208 @@ func (ptr *CooperationStatisticsService) CooperationUserModeStatistics(queryOpti
}
queryOptions
=
tool_funs
.
SimpleStructToMap
(
&
request
)
orderGoodDao
,
_
:=
dao
.
NewOrderGoodDao
(
ptr
.
transactionContext
)
modeStatistics
,
err
:=
orderGoodDao
.
CooperationUserModeStatistics
(
queryOptions
)
if
err
!=
nil
{
return
nil
,
err
contractUndertakerDao
,
_
:=
dao
.
NewCooperationContractUndertakerDao
(
ptr
.
transactionContext
)
contractDao
,
_
:=
dao
.
NewCooperationContractDao
(
ptr
.
transactionContext
)
cooperationModeRepository
,
_
:=
repository
.
NewCooperationModeRepository
(
ptr
.
transactionContext
)
// 1.查询承接的合约
_
,
contractUndertakers
,
_
:=
contractUndertakerDao
.
Find
(
map
[
string
]
interface
{}{
"orgId"
:
request
.
OrgId
,
"userId"
:
request
.
UserId
})
var
contractsNumbers
[]
string
for
i
:=
range
contractUndertakers
{
contractsNumbers
=
append
(
contractsNumbers
,
contractUndertakers
[
i
]
.
CooperationContractNumber
)
}
if
len
(
modeStatistics
)
==
0
{
if
len
(
contractsNumbers
)
==
0
{
return
struct
{}{},
nil
}
_
,
contracts
,
_
:=
contractDao
.
Find
(
map
[
string
]
interface
{}{
"orgId"
:
request
.
OrgId
,
"cooperationContractNumbers"
:
contractsNumbers
})
if
len
(
contracts
)
==
0
{
return
struct
{}{},
nil
}
var
modeNumbers
[]
string
var
mapModeStatistics
=
make
(
map
[
string
]
*
domain
.
CooperationModeStatisticsDto
)
for
i
:=
range
modeStatistics
{
mapModeStatistics
[
modeStatistics
[
i
]
.
CooperationModeNumber
]
=
modeStatistics
[
i
]
modeNumbers
=
append
(
modeNumbers
,
modeStatistics
[
i
]
.
CooperationModeNumber
)
for
i
:=
range
contracts
{
modeNumbers
=
append
(
modeNumbers
,
contracts
[
i
]
.
CooperationMode
.
CooperationModeNumber
)
}
// 2.查询模式
_
,
modes
,
_
:=
cooperationModeRepository
.
Find
(
map
[
string
]
interface
{}{
"orgId"
:
request
.
OrgId
,
"cooperationModeNumbers"
:
modeNumbers
})
if
len
(
modes
)
==
0
{
return
struct
{}{},
nil
}
var
mapMode
=
make
(
map
[
string
]
*
domain
.
CooperationMode
)
var
mapModeContracts
=
make
(
map
[
string
][]
string
)
var
cooperationTypes
[]
interface
{}
for
i
:=
range
modes
{
mapMode
[
modes
[
i
]
.
CooperationModeNumber
]
=
modes
[
i
]
mapModeContracts
[
modes
[
i
]
.
CooperationModeNumber
]
=
make
([]
string
,
0
)
cooperationTypes
=
append
(
cooperationTypes
,
map
[
string
]
interface
{}{
"cooperationModeId"
:
modes
[
i
]
.
CooperationModeId
,
"cooperationModeName"
:
modes
[
i
]
.
CooperationModeName
,
"cooperationModeNumber"
:
modes
[
i
]
.
CooperationModeNumber
,
})
}
for
i
:=
range
contracts
{
key
:=
contracts
[
i
]
.
CooperationMode
.
CooperationModeNumber
if
_
,
ok
:=
mapMode
[
key
];
ok
{
mapModeContracts
[
key
]
=
append
(
mapModeContracts
[
key
],
contracts
[
i
]
.
CooperationContractNumber
)
}
}
cooperationModeRepository
,
_
:=
repository
.
NewCooperationModeRepository
(
ptr
.
transactionContext
)
_
,
cooperModes
,
err
:=
cooperationModeRepository
.
Find
(
map
[
string
]
interface
{}{
"cooperationModeNumbers"
:
modeNumbers
,
"orgId"
:
request
.
OrgId
})
// 3.分红支出
dividendsDetails
,
err
:=
ptr
.
userModeDividend
(
request
.
OrgId
,
mapMode
,
mapModeContracts
)
if
err
!=
nil
{
return
nil
,
err
}
// 4.成交订单
orderDetails
,
err
:=
ptr
.
userModeOrder
(
request
.
OrgId
,
mapMode
,
mapModeContracts
)
if
err
!=
nil
{
return
nil
,
err
}
var
cooperationTypes
,
dividendsExpenseByTypes
,
orderAmountByTypes
[]
interface
{}
var
totalOrderAmount
float64
var
totalDividendAmount
float64
for
i
:=
range
cooperModes
{
m
:=
cooperModes
[
i
]
if
modeStatistics
,
ok
:=
mapModeStatistics
[
m
.
CooperationModeNumber
];
ok
{
totalOrderAmount
+=
modeStatistics
.
OrderAmount
totalDividendAmount
+=
modeStatistics
.
DividendsEstimate
dividendsExpenseByTypes
=
append
(
dividendsExpenseByTypes
,
map
[
string
]
interface
{}{
"dividendsTypeName"
:
m
.
CooperationModeName
+
"分红支出"
,
"dividendsExpense"
:
modeStatistics
.
DividendsEstimate
,
//实际已支付金额
})
orderAmountByTypes
=
append
(
orderAmountByTypes
,
map
[
string
]
interface
{}{
"orderAmount"
:
modeStatistics
.
OrderAmount
,
"orderTypeName"
:
m
.
CooperationModeName
+
"成交订单"
,
})
return
map
[
string
]
interface
{}{
"cooperationTypes"
:
cooperationTypes
,
"dividendsDetails"
:
dividendsDetails
,
"orderDetails"
:
orderDetails
,
},
nil
}
// 用户模式分红
func
(
ptr
*
CooperationStatisticsService
)
userModeDividend
(
orgId
int64
,
mapMode
map
[
string
]
*
domain
.
CooperationMode
,
mapModeContracts
map
[
string
][]
string
)
(
interface
{},
error
)
{
creditAccountDao
,
_
:=
dao
.
NewCreditAccountDao
(
ptr
.
transactionContext
)
var
dividends
dividendsExpenseByTypes
=
make
([]
dividendsExpenseByType
,
0
)
var
total
float64
=
0
for
_
,
v
:=
range
mapMode
{
numbers
:=
mapModeContracts
[
v
.
CooperationModeNumber
]
var
dividendsEstimate
=
&
CreditAccountStatisticsResponse
{}
err
:=
creditAccountDao
.
DividendsStatistics
(
map
[
string
]
interface
{}{
"orgId"
:
orgId
,
"cooperationContractNumbers"
:
numbers
},
dividendsEstimate
)
if
err
!=
nil
{
return
nil
,
err
}
dividends
=
append
(
dividends
,
dividendsExpenseByType
{
DividendsTypeName
:
v
.
CooperationModeName
+
"分红支出"
,
DividendsExpense
:
dividendsEstimate
.
Paid
,
//实际已支付金额
})
total
+=
dividendsEstimate
.
Paid
}
return
map
[
string
]
interface
{}{
"dividendsExpense"
:
total
,
"dividendsExpenseByTypes"
:
dividends
,
},
nil
}
// 用户模式订单
func
(
ptr
*
CooperationStatisticsService
)
userModeOrder
(
orgId
int64
,
mapMode
map
[
string
]
*
domain
.
CooperationMode
,
mapModeContracts
map
[
string
][]
string
)
(
interface
{},
error
)
{
creditAccountDao
,
_
:=
dao
.
NewDividendsOrderDao
(
ptr
.
transactionContext
)
var
dividends
orderAmountByTypes
=
make
([]
orderAmountByType
,
0
)
var
total
float64
=
0
for
_
,
v
:=
range
mapMode
{
numbers
:=
mapModeContracts
[
v
.
CooperationModeNumber
]
amount
,
err
:=
creditAccountDao
.
CalculateGoodOrderAmount
(
map
[
string
]
interface
{}{
"orgId"
:
orgId
,
"cooperationContractNumbers"
:
numbers
})
if
err
!=
nil
{
return
nil
,
err
}
cooperationTypes
=
append
(
cooperationTypes
,
map
[
string
]
interface
{}{
"cooperationModeId"
:
m
.
CooperationModeId
,
"cooperationModeName"
:
m
.
CooperationModeName
,
"cooperationModeNumber"
:
m
.
CooperationModeNumber
,
dividends
=
append
(
dividends
,
orderAmountByType
{
OrderAmount
:
amount
,
OrderTypeName
:
v
.
CooperationModeName
+
"成交订单"
,
})
total
+=
amount
}
return
map
[
string
]
interface
{}{
"cooperationTypes"
:
cooperationTypes
,
"dividendsDetails"
:
map
[
string
]
interface
{}{
"dividendsExpense"
:
totalDividendAmount
,
"dividendsExpenseByTypes"
:
dividendsExpenseByTypes
,
},
"orderDetails"
:
map
[
string
]
interface
{}{
"orderAmount"
:
totalOrderAmount
,
"orderAmountByTypes"
:
orderAmountByTypes
,
},
"orderAmount"
:
total
,
"orderAmountByTypes"
:
dividends
,
},
nil
}
// 公司 - 共创用户模式统计
func
(
ptr
*
CooperationStatisticsService
)
CooperationUserModeStatisticsBak
(
queryOptions
map
[
string
]
interface
{})
(
interface
{},
error
)
{
// 参数验证
//var request = struct {
// UserId int64 `json:"userId" valid:"Required"`
// OrgId int64 `json:"orgId" valid:"Required"`
//}{}
//if err := LoadQueryObject(queryOptions, &request); err != nil {
// return nil, err
//}
//queryOptions = tool_funs.SimpleStructToMap(&request)
//
//orderGoodDao, _ := dao.NewOrderGoodDao(ptr.transactionContext)
//modeStatistics, err := orderGoodDao.CooperationUserModeStatistics(queryOptions)
//if err != nil {
// return nil, err
//}
//if len(modeStatistics) == 0 {
// return struct{}{}, nil
//}
//
//var modeNumbers []string
//var mapModeStatistics = make(map[string]*domain.CooperationModeStatisticsDto)
//for i := range modeStatistics {
// mapModeStatistics[modeStatistics[i].CooperationModeNumber] = modeStatistics[i]
// modeNumbers = append(modeNumbers, modeStatistics[i].CooperationModeNumber)
//}
//
//cooperationModeRepository, _ := repository.NewCooperationModeRepository(ptr.transactionContext)
//_, cooperModes, err := cooperationModeRepository.Find(map[string]interface{}{"cooperationModeNumbers": modeNumbers, "orgId": request.OrgId})
//if err != nil {
// return nil, err
//}
//var cooperationTypes, dividendsExpenseByTypes, orderAmountByTypes []interface{}
//var totalOrderAmount float64
//var totalDividendAmount float64
//for i := range cooperModes {
// m := cooperModes[i]
// if modeStatistics, ok := mapModeStatistics[m.CooperationModeNumber]; ok {
// totalOrderAmount += modeStatistics.OrderAmount
// totalDividendAmount += modeStatistics.DividendsEstimate
// dividendsExpenseByTypes = append(dividendsExpenseByTypes, map[string]interface{}{
// "dividendsTypeName": m.CooperationModeName + "分红支出",
// "dividendsExpense": modeStatistics.DividendsEstimate, //实际已支付金额
// })
// orderAmountByTypes = append(orderAmountByTypes, map[string]interface{}{
// "orderAmount": modeStatistics.OrderAmount,
// "orderTypeName": m.CooperationModeName + "成交订单",
// })
// }
// cooperationTypes = append(cooperationTypes, map[string]interface{}{
// "cooperationModeId": m.CooperationModeId,
// "cooperationModeName": m.CooperationModeName,
// "cooperationModeNumber": m.CooperationModeNumber,
// })
//}
//return map[string]interface{}{
// "cooperationTypes": cooperationTypes,
// "dividendsDetails": map[string]interface{}{
// "dividendsExpense": totalDividendAmount,
// "dividendsExpenseByTypes": dividendsExpenseByTypes,
// },
// "orderDetails": map[string]interface{}{
// "orderAmount": totalOrderAmount,
// "orderAmountByTypes": orderAmountByTypes,
// },
//}, nil
return
nil
,
nil
}
type
dividendsExpenseByType
struct
{
DividendsTypeName
string
`json:"dividendsTypeName"`
DividendsExpense
float64
`json:"dividendsExpense"`
}
type
orderAmountByType
struct
{
OrderTypeName
string
`json:"orderTypeName"`
OrderAmount
float64
`json:"orderAmount"`
}
type
dividendsExpenseByTypes
[]
dividendsExpenseByType
func
(
s
dividendsExpenseByTypes
)
Len
()
int
{
return
len
(
s
)
}
func
(
s
dividendsExpenseByTypes
)
Less
(
i
,
j
int
)
bool
{
return
s
[
i
]
.
DividendsExpense
<
s
[
j
]
.
DividendsExpense
}
func
(
s
dividendsExpenseByTypes
)
Swap
(
i
,
j
int
)
{
s
[
i
],
s
[
j
]
=
s
[
j
],
s
[
i
]
}
type
orderAmountByTypes
[]
orderAmountByType
func
(
s
orderAmountByTypes
)
Len
()
int
{
return
len
(
s
)
}
func
(
s
orderAmountByTypes
)
Less
(
i
,
j
int
)
bool
{
return
s
[
i
]
.
OrderAmount
<
s
[
j
]
.
OrderAmount
}
func
(
s
orderAmountByTypes
)
Swap
(
i
,
j
int
)
{
s
[
i
],
s
[
j
]
=
s
[
j
],
s
[
i
]
}
// 公司 - 共创用户分红支付统计
func
(
ptr
*
CooperationStatisticsService
)
CompanyPaymentHistoryStatistics
(
queryOptions
map
[
string
]
interface
{})
(
interface
{},
error
)
{
// 参数验证
...
...
请
注册
或
登录
后发表评论