...
|
...
|
@@ -98,6 +98,86 @@ func (srv PersonStatisticsService) IndexStatistics(cmd *command.IndexStatisticsC |
|
|
}, nil
|
|
|
}
|
|
|
|
|
|
// IndexStatistics 个人端 - 首页统计 (入口页面统计数据)
|
|
|
func (srv PersonStatisticsService) IndexStatisticsV2(cmd *command.IndexStatisticsCommand) (interface{}, error) {
|
|
|
gateway := allied_creation_cooperation.NewHttplibAlliedCreationCooperation(
|
|
|
cmd.Operator)
|
|
|
|
|
|
// 1.项目概览统计
|
|
|
contractStatisticsResult, err := gateway.CooperationStatistics(allied_creation_cooperation.PersonCooperationContractStatistics, map[string]interface{}{
|
|
|
"userBaseId": cmd.Operator.UserBaseId,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
|
|
}
|
|
|
type contractStatistics struct {
|
|
|
ContractSum int `json:"contractSum"`
|
|
|
ContractStoppedSum int `json:"contractStoppedSum"`
|
|
|
}
|
|
|
var cs = &contractStatistics{}
|
|
|
if err := json.UnmarshalFromString(json.MarshalToString(contractStatisticsResult), cs); err != nil {
|
|
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
|
|
}
|
|
|
|
|
|
var response = struct {
|
|
|
OrgIds []int `json:"orgIds"`
|
|
|
}{}
|
|
|
err = gateway.CooperationStatisticsWithObject(allied_creation_cooperation.PersonCooperationCompany, map[string]interface{}{
|
|
|
"userBaseId": cmd.Operator.UserBaseId,
|
|
|
}, &response)
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
|
|
}
|
|
|
var overview = map[string]interface{}{
|
|
|
"contractSum": cs.ContractSum, //总合约数
|
|
|
"contractStoppedSum": cs.ContractStoppedSum, //停止的合约数
|
|
|
"companySum": len(response.OrgIds), //共创企业数
|
|
|
}
|
|
|
year, month, _ := time.Now().Date()
|
|
|
beginTime := time.Date(year, month, 1, 0, 0, 0, 0, time.Local)
|
|
|
endTime := beginTime.AddDate(0, 1, 0)
|
|
|
// 2.本月分红统计 - 个人
|
|
|
unPaidResult, err := gateway.CooperationStatistics(allied_creation_cooperation.CreditAccountStatistics, map[string]interface{}{
|
|
|
"userBaseId": cmd.Operator.UserBaseId,
|
|
|
"beginTime": beginTime,
|
|
|
"endTime": endTime,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
|
|
}
|
|
|
type AnnualDividend struct {
|
|
|
Total float64 `json:"total"`
|
|
|
Accounting float64 `json:"accounting"`
|
|
|
Accounted float64 `json:"accounted"`
|
|
|
Paid float64 `json:"paid"`
|
|
|
Unpaid float64 `json:"unpaid"`
|
|
|
}
|
|
|
var annualUnPaidDividend = &AnnualDividend{}
|
|
|
if err := json.UnmarshalFromString(json.MarshalToString(unPaidResult), annualUnPaidDividend); err != nil {
|
|
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
|
|
}
|
|
|
// 2.本月分红统计 - 个人
|
|
|
paymentResult, err := gateway.CooperationStatistics(allied_creation_cooperation.CreditAccountStatistics, map[string]interface{}{
|
|
|
"userBaseId": cmd.Operator.UserBaseId,
|
|
|
"paymentBeginTime": beginTime,
|
|
|
"paymentEndTime": endTime,
|
|
|
})
|
|
|
var annualPaymentDividend = &AnnualDividend{}
|
|
|
if err := json.UnmarshalFromString(json.MarshalToString(paymentResult), annualPaymentDividend); err != nil {
|
|
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
|
|
}
|
|
|
dividendStatistics := map[string]interface{}{
|
|
|
"dividendAmount": annualPaymentDividend.Paid + annualUnPaidDividend.Unpaid, // 分红金额 annualDividend.Total
|
|
|
"paidAmount": annualPaymentDividend.Paid, // 已支付
|
|
|
"unPaidAmount": annualUnPaidDividend.Unpaid, // 未支付
|
|
|
}
|
|
|
|
|
|
return map[string]interface{}{
|
|
|
"overview": overview,
|
|
|
"dividendStatistics": dividendStatistics,
|
|
|
}, nil
|
|
|
}
|
|
|
|
|
|
// CompanyStatistics 共创用户-共创企业统计
|
|
|
func (srv PersonStatisticsService) CompanyStatistics(cmd *command.CooperationPersonStatisticsCommand) (interface{}, error) {
|
|
|
|
...
|
...
|
@@ -181,6 +261,85 @@ func (srv PersonStatisticsService) CompanyStatistics(cmd *command.CooperationPer |
|
|
}, nil
|
|
|
}
|
|
|
|
|
|
// CompanyStatistics 共创用户-共创企业统计
|
|
|
func (srv PersonStatisticsService) CompanyStatisticsV2(cmd *command.CooperationPersonStatisticsCommand) (interface{}, error) {
|
|
|
|
|
|
gateway := allied_creation_cooperation.NewHttplibAlliedCreationCooperation(
|
|
|
cmd.Operator)
|
|
|
var response = struct {
|
|
|
OrgIds []int `json:"orgIds"`
|
|
|
}{}
|
|
|
err := gateway.CooperationStatisticsWithObject(allied_creation_cooperation.PersonCooperationCompany, map[string]interface{}{
|
|
|
"userBaseId": cmd.Operator.UserBaseId,
|
|
|
}, &response)
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
|
|
}
|
|
|
var companyList []int = response.OrgIds
|
|
|
if len(companyList) == 0 {
|
|
|
return map[string]interface{}{
|
|
|
"list": []struct{}{},
|
|
|
}, nil
|
|
|
}
|
|
|
result, err := gateway.CooperationStatistics(allied_creation_cooperation.CooperationCompanyStatistics, map[string]interface{}{
|
|
|
"userBaseId": cmd.Operator.UserBaseId,
|
|
|
"companyList": companyList,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
|
|
}
|
|
|
|
|
|
type cooperationCompanyStatisticsResponse struct {
|
|
|
// 当天统计的企业id
|
|
|
OrgId int64 `json:"orgId"`
|
|
|
// 共创项目数
|
|
|
CooperationProjectCount int64 `json:"cooperationProjectCount"`
|
|
|
// 共创合约数
|
|
|
CooperationContractCount int64 `json:"cooperationContractCount"`
|
|
|
// 分红占比
|
|
|
DividendsRatio float64 `json:"dividendsRatio"`
|
|
|
// 分红支出
|
|
|
DividendsIncome float64 `json:"dividendsIncome"`
|
|
|
// 企业信息
|
|
|
Company domain.Company `json:"company"`
|
|
|
}
|
|
|
var cooperationCompanyStatisticsResponses []cooperationCompanyStatisticsResponse
|
|
|
if err := json.UnmarshalFromString(json.MarshalToString(result), &cooperationCompanyStatisticsResponses); err != nil {
|
|
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
|
|
}
|
|
|
var values = make([]interface{}, 0)
|
|
|
gatewayUser := allied_creation_user.NewHttplibAlliedCreationUser(
|
|
|
cmd.Operator)
|
|
|
for i := range companyList {
|
|
|
for j := range cooperationCompanyStatisticsResponses {
|
|
|
if cooperationCompanyStatisticsResponses[j].OrgId == int64(companyList[i]) {
|
|
|
orgData, err := gatewayUser.OrgGet(allied_creation_user.ReqOrgGet{
|
|
|
OrgId: companyList[i],
|
|
|
FetchFlag: 1,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
|
|
}
|
|
|
var companyLog string
|
|
|
if orgData.Company != nil {
|
|
|
companyLog = orgData.Company.Logo
|
|
|
}
|
|
|
cooperationCompanyStatisticsResponses[j].Company = domain.Company{
|
|
|
CompanyID: orgData.OrgID,
|
|
|
CompanyName: orgData.OrgName,
|
|
|
Logo: companyLog,
|
|
|
}
|
|
|
values = append(values, cooperationCompanyStatisticsResponses[j])
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return map[string]interface{}{
|
|
|
"list": values,
|
|
|
}, nil
|
|
|
}
|
|
|
|
|
|
// CooperationProjectRecommend TODO:其他公司按公开的项目查 猜你喜欢(共创项目)
|
|
|
func (srv PersonStatisticsService) CooperationProjectRecommend(projectQuery *command.ListCooperationProjectQuery) (int64, interface{}, error) {
|
|
|
if projectQuery.Operator.UserBaseId > 0 {
|
...
|
...
|
|