|
@@ -64,16 +64,13 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
|
|
|
|
if dataType == "季度" {
|
|
|
dataTypeArr = []string{"Q1", "Q2", "Q3", "Q4"}
|
|
|
-
|
|
|
} else if dataType == "半年度" {
|
|
|
dataTypeArr = []string{"H1", "H2"}
|
|
|
-
|
|
|
} else {
|
|
|
dataTypeArr = []string{""}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
- condition := " AND role_type_code IN ('rai_seller','rai_group') AND enabled = 1 AND rai_enabled = 1"
|
|
|
+ condition := " AND role_type_code IN ('rai_seller','rai_group') AND enabled = 1 AND rai_enabled = 1 "
|
|
|
var pars []interface{}
|
|
|
if adminId != "" {
|
|
|
serviceAdminId = ""
|
|
@@ -97,6 +94,17 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
|
br.ErrMsg = "获取管理账号失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
+ var sellerDevelop []*system.AdminItem
|
|
|
+ var sellerService []*system.AdminItem
|
|
|
+ var sellerDevelopIds = make(map[int]bool)
|
|
|
+ for _, v := range sellerList {
|
|
|
+ if strings.Contains(v.RealName, "6") {
|
|
|
+ sellerService = append(sellerService, v)
|
|
|
+ } else {
|
|
|
+ sellerDevelop = append(sellerDevelop, v)
|
|
|
+ sellerDevelopIds[v.AdminId] = true
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
startDate := fmt.Sprintf("%d-01-01", startYear)
|
|
@@ -143,6 +151,25 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
|
mapNewCustomerInvoicingMoney := make(map[string]float64)
|
|
|
mapNewCustomerPaymentsReceivedMoney := make(map[string]float64)
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ var keyMap string
|
|
|
+ var keyMapTtoal string
|
|
|
+ var keyMapTtoalServer string
|
|
|
for _, v := range listRaiData {
|
|
|
startDateTime := utils.StrDateToDate(v.StartDate)
|
|
|
monthNum := startDateTime.Month()
|
|
@@ -165,27 +192,47 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- keyMap := fmt.Sprint(yearStr, "_", v.SellerIdLast)
|
|
|
+ keyMap = fmt.Sprint(yearStr, "_", v.SellerIdLast)
|
|
|
+ if sellerDevelopIds[v.SellerIdLast] == true {
|
|
|
+ keyMapTtoal = fmt.Sprint(yearStr, "_Develop")
|
|
|
+ } else {
|
|
|
+ keyMapTtoal = fmt.Sprint(yearStr, "_Service")
|
|
|
+ }
|
|
|
|
|
|
if v.RaiContractType == "新签合同" {
|
|
|
mapNewContractMoney[keyMap] += v.Money
|
|
|
mapNewContractNum[keyMap]++
|
|
|
+
|
|
|
+ mapNewContractMoney[keyMapTtoal] += v.Money
|
|
|
+ mapNewContractNum[keyMapTtoal]++
|
|
|
} else if v.RaiContractType == "续约合同" {
|
|
|
mapRenewedContractMoney[keyMap] += v.Money
|
|
|
mapRenewedContractNum[keyMap]++
|
|
|
+
|
|
|
+ mapRenewedContractMoney[keyMapTtoal] += v.Money
|
|
|
+ mapRenewedContractNum[keyMapTtoal]++
|
|
|
}
|
|
|
|
|
|
if startDateTime.Before(time.Now().AddDate(0, 0, -1)) {
|
|
|
mapExpiredContractMoney[keyMap] += v.Money
|
|
|
mapExpiredContractNum[keyMap]++
|
|
|
+
|
|
|
+ mapExpiredContractMoney[keyMapTtoal] += v.Money
|
|
|
+ mapExpiredContractNum[keyMapTtoal]++
|
|
|
}
|
|
|
|
|
|
if mapNoRenewedcompanyContractIds[v.CompanyContractId] {
|
|
|
confirmedNoRenewalContractMoney[keyMap] += v.Money
|
|
|
confirmedNoRenewalContractNum[keyMap]++
|
|
|
+
|
|
|
+ confirmedNoRenewalContractMoney[keyMapTtoal] += v.Money
|
|
|
+ confirmedNoRenewalContractNum[keyMapTtoal]++
|
|
|
}
|
|
|
mapSignedClientMoney[keyMap] += v.Money
|
|
|
mapSignedClientNum[keyMap]++
|
|
|
+
|
|
|
+ mapSignedClientMoney[keyMapTtoal] += v.Money
|
|
|
+ mapSignedClientNum[keyMapTtoal]++
|
|
|
}
|
|
|
|
|
|
listFmsData, err := fms.GetContractRegisterListByStartDate(startDate, endDate)
|
|
@@ -218,12 +265,22 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
|
}
|
|
|
|
|
|
keyMap := fmt.Sprint(yearStr, "_", v.RaiSellerId)
|
|
|
+
|
|
|
+ if sellerDevelopIds[v.RaiSellerId] == true {
|
|
|
+ keyMapTtoal = fmt.Sprint(yearStr, "_Develop")
|
|
|
+ } else {
|
|
|
+ keyMapTtoal = fmt.Sprint(yearStr, "_Service")
|
|
|
+ }
|
|
|
+
|
|
|
mapInvoiceAmountMoney[keyMap] += v.InvoicedAmount
|
|
|
mapPaymentAmountMoney[keyMap] += v.PaymentAmount
|
|
|
|
|
|
+ mapInvoiceAmountMoney[keyMapTtoal] += v.InvoicedAmount
|
|
|
+ mapPaymentAmountMoney[keyMapTtoal] += v.PaymentAmount
|
|
|
+
|
|
|
if v.ContractType == 1 {
|
|
|
- mapNewCustomerInvoicingMoney[keyMap] += v.InvoicedAmount
|
|
|
- mapNewCustomerPaymentsReceivedMoney[keyMap] += v.PaymentAmount
|
|
|
+ mapNewCustomerInvoicingMoney[keyMapTtoal] += v.InvoicedAmount
|
|
|
+ mapNewCustomerPaymentsReceivedMoney[keyMapTtoal] += v.PaymentAmount
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -258,27 +315,19 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
|
yearStr += "H2"
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
keyMap := fmt.Sprint(yearStr, "_", v.SysUserId)
|
|
|
mapAddTrialNum[keyMap]++
|
|
|
- }
|
|
|
|
|
|
-
|
|
|
-
|
|
|
- var sellerDevelop []*system.AdminItem
|
|
|
- var sellerService []*system.AdminItem
|
|
|
- for _, v := range sellerList {
|
|
|
- if strings.Contains(v.RealName, "6") {
|
|
|
- sellerService = append(sellerService, v)
|
|
|
+
|
|
|
+ sysUserId, _ := strconv.Atoi(v.SysUserId)
|
|
|
+ if sellerDevelopIds[sysUserId] == true {
|
|
|
+ keyMapTtoal = fmt.Sprint(yearStr, "_Develop")
|
|
|
} else {
|
|
|
- sellerDevelop = append(sellerDevelop, v)
|
|
|
+ keyMapTtoal = fmt.Sprint(yearStr, "_Service")
|
|
|
}
|
|
|
+ mapAddTrialNum[keyMapTtoal]++
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
resp := new(statistic_report.RaiDataSummaryListResp)
|
|
|
var items []*statistic_report.RaiDataSummaryResp
|
|
|
for i := startYear; i <= endYear; i++ {
|
|
@@ -286,10 +335,10 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
|
for _, Dv := range dataTypeArr {
|
|
|
item := new(statistic_report.RaiDataSummaryResp)
|
|
|
item.DataType = fmt.Sprint(i, Dv)
|
|
|
-
|
|
|
-
|
|
|
+ keyMapTtoal = fmt.Sprint(item.DataType, "_Develop")
|
|
|
+ keyMapTtoalServer = fmt.Sprint(item.DataType, "_Server")
|
|
|
for _, vS := range sellerDevelop {
|
|
|
- keyMap := fmt.Sprint(item.DataType, "_", vS.AdminId)
|
|
|
+ keyMap = fmt.Sprint(item.DataType, "_", vS.AdminId)
|
|
|
sellerItem := new(statistic_report.RaiDataSummaryDetail)
|
|
|
sellerItem.SellerId = vS.AdminId
|
|
|
sellerItem.SellerName = vS.RealName
|
|
@@ -348,6 +397,55 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
|
if len(sellerDevelop) > 0 {
|
|
|
sellerItem := new(statistic_report.RaiDataSummaryDetail)
|
|
|
sellerItem.SellerName = "开拓组合计"
|
|
|
+ sellerItem.AddTrialCount = fmt.Sprint(mapAddTrialNum[keyMapTtoal])
|
|
|
+ sellerItem.NewContractData = fmt.Sprint(utils.SubFloatToString(mapNewContractMoney[keyMapTtoal], 2), " / ", mapNewContractNum[keyMapTtoal])
|
|
|
+ sellerItem.ExpiredContractData = fmt.Sprint(utils.SubFloatToString(mapExpiredContractMoney[keyMapTtoal], 2), " / ", mapExpiredContractNum[keyMapTtoal])
|
|
|
+ sellerItem.RenewedContractData = fmt.Sprint(utils.SubFloatToString(mapRenewedContractMoney[keyMapTtoal], 2), " / ", mapRenewedContractNum[keyMapTtoal])
|
|
|
+ var renewalRateMoey string
|
|
|
+ var renewalRateNum string
|
|
|
+ if mapRenewedContractMoney[keyMapTtoal] == 0 || mapExpiredContractMoney[keyMapTtoal] == 0 {
|
|
|
+ renewalRateMoey = "0%"
|
|
|
+ } else {
|
|
|
+ renewalRateMoey = utils.SubFloatToString(mapRenewedContractMoney[keyMapTtoal]/mapExpiredContractMoney[keyMapTtoal]*100, 2) + "%"
|
|
|
+ }
|
|
|
+ if mapRenewedContractNum[keyMapTtoal] == 0 || mapExpiredContractNum[keyMapTtoal] == 0 {
|
|
|
+ renewalRateNum = "0%"
|
|
|
+ } else {
|
|
|
+ renewalRateNum = utils.SubFloatToString(float64(mapRenewedContractNum[keyMapTtoal])/float64(mapExpiredContractNum[keyMapTtoal])*100, 2) + "%"
|
|
|
+ }
|
|
|
+ sellerItem.RenewalRateData = fmt.Sprint(renewalRateMoey, " / ", renewalRateNum)
|
|
|
+ sellerItem.ConfirmedNoRenewalContractData = fmt.Sprint(utils.SubFloatToString(confirmedNoRenewalContractMoney[keyMapTtoal], 2), " / ", confirmedNoRenewalContractNum[keyMapTtoal])
|
|
|
+
|
|
|
+ var confirmNonRenewalRateMoey string
|
|
|
+ var confirmNonRenewalRateNum string
|
|
|
+ if confirmedNoRenewalContractMoney[keyMapTtoal] == 0 || mapExpiredContractMoney[keyMapTtoal] == 0 {
|
|
|
+ confirmNonRenewalRateMoey = "0%"
|
|
|
+ } else {
|
|
|
+ confirmNonRenewalRateMoey = utils.SubFloatToString(confirmedNoRenewalContractMoney[keyMapTtoal]/mapExpiredContractMoney[keyMapTtoal]*100, 2) + "%"
|
|
|
+ }
|
|
|
+ if confirmedNoRenewalContractNum[keyMapTtoal] == 0 || mapExpiredContractNum[keyMapTtoal] == 0 {
|
|
|
+ confirmNonRenewalRateNum = "0%"
|
|
|
+ } else {
|
|
|
+ confirmNonRenewalRateNum = utils.SubFloatToString(float64(confirmedNoRenewalContractNum[keyMapTtoal])/float64(mapExpiredContractNum[keyMapTtoal])*100, 2) + "%"
|
|
|
+ }
|
|
|
+ sellerItem.ConfirmNonRenewalRateData = fmt.Sprint(confirmNonRenewalRateMoey, " / ", confirmNonRenewalRateNum)
|
|
|
+
|
|
|
+ sellerItem.SignedClientCount = fmt.Sprint(mapSignedClientNum[keyMapTtoal])
|
|
|
+ if mapSignedClientNum[keyMapTtoal] == 0 || mapSignedClientMoney[keyMapTtoal] == 0 {
|
|
|
+ sellerItem.AverageRevenueCount = "0"
|
|
|
+ } else {
|
|
|
+ sellerItem.AverageRevenueCount = utils.SubFloatToString(mapSignedClientMoney[keyMapTtoal]/float64(mapSignedClientNum[keyMapTtoal]), 2)
|
|
|
+ }
|
|
|
+
|
|
|
+ sellerItem.InvoiceAmountCount = utils.SubFloatToString(mapInvoiceAmountMoney[keyMapTtoal], 2)
|
|
|
+ sellerItem.PaymentReceivedCount = utils.SubFloatToString(mapPaymentAmountMoney[keyMapTtoal], 2)
|
|
|
+ if mapInvoiceAmountMoney[keyMapTtoal] == 0 || mapPaymentAmountMoney[keyMapTtoal] == 0 {
|
|
|
+ sellerItem.UnpaidRatioCount = "0%"
|
|
|
+ } else {
|
|
|
+ sellerItem.UnpaidRatioCount = utils.SubFloatToString((mapInvoiceAmountMoney[keyMapTtoal]-mapPaymentAmountMoney[keyMapTtoal])/mapInvoiceAmountMoney[keyMapTtoal]*100, 2) + "%"
|
|
|
+ }
|
|
|
+ sellerItem.NewCustomerInvoicingCount = utils.SubFloatToString(mapNewCustomerInvoicingMoney[keyMapTtoal], 2)
|
|
|
+ sellerItem.NewCustomerPaymentsReceivedCount = utils.SubFloatToString(mapNewCustomerPaymentsReceivedMoney[keyMapTtoal], 2)
|
|
|
item.DataList = append(item.DataList, sellerItem)
|
|
|
}
|
|
|
|
|
@@ -355,25 +453,109 @@ func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
|
|
|
sellerItem := new(statistic_report.RaiDataSummaryDetail)
|
|
|
sellerItem.SellerId = vS.AdminId
|
|
|
sellerItem.SellerName = vS.RealName
|
|
|
- sellerItem.AddTrialCount = "新增试用-(数据)"
|
|
|
- sellerItem.NewContractData = "新签合同(金额/数量)-(数据)"
|
|
|
- sellerItem.ExpiredContractData = "到期合同(金额/数量)-(数据)"
|
|
|
- sellerItem.RenewedContractData = "续约合同(金额/数量)-(数据)"
|
|
|
- sellerItem.RenewalRateData = "续约率(金额/数量)-(数据)"
|
|
|
- sellerItem.ConfirmedNoRenewalContractData = "确认不续约合同(金额/数量)-(数据)"
|
|
|
- sellerItem.ConfirmNonRenewalRateData = "确认不续约率(金额/数量)-(数据)"
|
|
|
- sellerItem.SignedClientCount = "签约客户数量-(数据)"
|
|
|
- sellerItem.AverageRevenueCount = "客单价-(数据)"
|
|
|
- sellerItem.InvoiceAmountCount = "开票金额-(数据)"
|
|
|
- sellerItem.PaymentReceivedCount = "到款金额-(数据)"
|
|
|
- sellerItem.UnpaidRatioCount = "未到款比例-(数据)"
|
|
|
- sellerItem.NewCustomerInvoicingCount = "新客开票-(数据)"
|
|
|
- sellerItem.NewCustomerPaymentsReceivedCount = "新客到款-(数据)"
|
|
|
+ sellerItem.AddTrialCount = fmt.Sprint(mapAddTrialNum[keyMap])
|
|
|
+ sellerItem.NewContractData = fmt.Sprint(utils.SubFloatToString(mapNewContractMoney[keyMap], 2), " / ", mapNewContractNum[keyMap])
|
|
|
+ sellerItem.ExpiredContractData = fmt.Sprint(utils.SubFloatToString(mapExpiredContractMoney[keyMap], 2), " / ", mapExpiredContractNum[keyMap])
|
|
|
+ sellerItem.RenewedContractData = fmt.Sprint(utils.SubFloatToString(mapRenewedContractMoney[keyMap], 2), " / ", mapRenewedContractNum[keyMap])
|
|
|
+ var renewalRateMoey string
|
|
|
+ var renewalRateNum string
|
|
|
+ if mapRenewedContractMoney[keyMap] == 0 || mapExpiredContractMoney[keyMap] == 0 {
|
|
|
+ renewalRateMoey = "0%"
|
|
|
+ } else {
|
|
|
+ renewalRateMoey = utils.SubFloatToString(mapRenewedContractMoney[keyMap]/mapExpiredContractMoney[keyMap]*100, 2) + "%"
|
|
|
+ }
|
|
|
+ if mapRenewedContractNum[keyMap] == 0 || mapExpiredContractNum[keyMap] == 0 {
|
|
|
+ renewalRateNum = "0%"
|
|
|
+ } else {
|
|
|
+ renewalRateNum = utils.SubFloatToString(float64(mapRenewedContractNum[keyMap])/float64(mapExpiredContractNum[keyMap])*100, 2) + "%"
|
|
|
+ }
|
|
|
+ sellerItem.RenewalRateData = fmt.Sprint(renewalRateMoey, " / ", renewalRateNum)
|
|
|
+ sellerItem.ConfirmedNoRenewalContractData = fmt.Sprint(utils.SubFloatToString(confirmedNoRenewalContractMoney[keyMap], 2), " / ", confirmedNoRenewalContractNum[keyMap])
|
|
|
+
|
|
|
+ var confirmNonRenewalRateMoey string
|
|
|
+ var confirmNonRenewalRateNum string
|
|
|
+ if confirmedNoRenewalContractMoney[keyMap] == 0 || mapExpiredContractMoney[keyMap] == 0 {
|
|
|
+ confirmNonRenewalRateMoey = "0%"
|
|
|
+ } else {
|
|
|
+ confirmNonRenewalRateMoey = utils.SubFloatToString(confirmedNoRenewalContractMoney[keyMap]/mapExpiredContractMoney[keyMap]*100, 2) + "%"
|
|
|
+ }
|
|
|
+ if confirmedNoRenewalContractNum[keyMap] == 0 || mapExpiredContractNum[keyMap] == 0 {
|
|
|
+ confirmNonRenewalRateNum = "0%"
|
|
|
+ } else {
|
|
|
+ confirmNonRenewalRateNum = utils.SubFloatToString(float64(confirmedNoRenewalContractNum[keyMap])/float64(mapExpiredContractNum[keyMap])*100, 2) + "%"
|
|
|
+ }
|
|
|
+ sellerItem.ConfirmNonRenewalRateData = fmt.Sprint(confirmNonRenewalRateMoey, " / ", confirmNonRenewalRateNum)
|
|
|
+
|
|
|
+ sellerItem.SignedClientCount = fmt.Sprint(mapSignedClientNum[keyMap])
|
|
|
+ if mapSignedClientNum[keyMap] == 0 || mapSignedClientMoney[keyMap] == 0 {
|
|
|
+ sellerItem.AverageRevenueCount = "0"
|
|
|
+ } else {
|
|
|
+ sellerItem.AverageRevenueCount = utils.SubFloatToString(mapSignedClientMoney[keyMap]/float64(mapSignedClientNum[keyMap]), 2)
|
|
|
+ }
|
|
|
+
|
|
|
+ sellerItem.InvoiceAmountCount = utils.SubFloatToString(mapInvoiceAmountMoney[keyMap], 2)
|
|
|
+ sellerItem.PaymentReceivedCount = utils.SubFloatToString(mapPaymentAmountMoney[keyMap], 2)
|
|
|
+ if mapInvoiceAmountMoney[keyMap] == 0 || mapPaymentAmountMoney[keyMap] == 0 {
|
|
|
+ sellerItem.UnpaidRatioCount = "0%"
|
|
|
+ } else {
|
|
|
+ sellerItem.UnpaidRatioCount = utils.SubFloatToString((mapInvoiceAmountMoney[keyMap]-mapPaymentAmountMoney[keyMap])/mapInvoiceAmountMoney[keyMap]*100, 2) + "%"
|
|
|
+ }
|
|
|
+ sellerItem.NewCustomerInvoicingCount = utils.SubFloatToString(mapNewCustomerInvoicingMoney[keyMap], 2)
|
|
|
+ sellerItem.NewCustomerPaymentsReceivedCount = utils.SubFloatToString(mapNewCustomerPaymentsReceivedMoney[keyMap], 2)
|
|
|
item.DataList = append(item.DataList, sellerItem)
|
|
|
}
|
|
|
if len(sellerService) > 0 {
|
|
|
sellerItem := new(statistic_report.RaiDataSummaryDetail)
|
|
|
sellerItem.SellerName = "服务组合计"
|
|
|
+ sellerItem.AddTrialCount = fmt.Sprint(mapAddTrialNum[keyMapTtoalServer])
|
|
|
+ sellerItem.NewContractData = fmt.Sprint(utils.SubFloatToString(mapNewContractMoney[keyMapTtoalServer], 2), " / ", mapNewContractNum[keyMapTtoalServer])
|
|
|
+ sellerItem.ExpiredContractData = fmt.Sprint(utils.SubFloatToString(mapExpiredContractMoney[keyMapTtoalServer], 2), " / ", mapExpiredContractNum[keyMapTtoalServer])
|
|
|
+ sellerItem.RenewedContractData = fmt.Sprint(utils.SubFloatToString(mapRenewedContractMoney[keyMapTtoalServer], 2), " / ", mapRenewedContractNum[keyMapTtoalServer])
|
|
|
+ var renewalRateMoey string
|
|
|
+ var renewalRateNum string
|
|
|
+ if mapRenewedContractMoney[keyMapTtoalServer] == 0 || mapExpiredContractMoney[keyMapTtoalServer] == 0 {
|
|
|
+ renewalRateMoey = "0%"
|
|
|
+ } else {
|
|
|
+ renewalRateMoey = utils.SubFloatToString(mapRenewedContractMoney[keyMapTtoalServer]/mapExpiredContractMoney[keyMapTtoalServer]*100, 2) + "%"
|
|
|
+ }
|
|
|
+ if mapRenewedContractNum[keyMapTtoalServer] == 0 || mapExpiredContractNum[keyMapTtoalServer] == 0 {
|
|
|
+ renewalRateNum = "0%"
|
|
|
+ } else {
|
|
|
+ renewalRateNum = utils.SubFloatToString(float64(mapRenewedContractNum[keyMapTtoalServer])/float64(mapExpiredContractNum[keyMapTtoalServer])*100, 2) + "%"
|
|
|
+ }
|
|
|
+ sellerItem.RenewalRateData = fmt.Sprint(renewalRateMoey, " / ", renewalRateNum)
|
|
|
+ sellerItem.ConfirmedNoRenewalContractData = fmt.Sprint(utils.SubFloatToString(confirmedNoRenewalContractMoney[keyMapTtoalServer], 2), " / ", confirmedNoRenewalContractNum[keyMapTtoalServer])
|
|
|
+
|
|
|
+ var confirmNonRenewalRateMoey string
|
|
|
+ var confirmNonRenewalRateNum string
|
|
|
+ if confirmedNoRenewalContractMoney[keyMapTtoalServer] == 0 || mapExpiredContractMoney[keyMapTtoalServer] == 0 {
|
|
|
+ confirmNonRenewalRateMoey = "0%"
|
|
|
+ } else {
|
|
|
+ confirmNonRenewalRateMoey = utils.SubFloatToString(confirmedNoRenewalContractMoney[keyMapTtoalServer]/mapExpiredContractMoney[keyMapTtoalServer]*100, 2) + "%"
|
|
|
+ }
|
|
|
+ if confirmedNoRenewalContractNum[keyMapTtoalServer] == 0 || mapExpiredContractNum[keyMapTtoalServer] == 0 {
|
|
|
+ confirmNonRenewalRateNum = "0%"
|
|
|
+ } else {
|
|
|
+ confirmNonRenewalRateNum = utils.SubFloatToString(float64(confirmedNoRenewalContractNum[keyMapTtoalServer])/float64(mapExpiredContractNum[keyMapTtoalServer])*100, 2) + "%"
|
|
|
+ }
|
|
|
+ sellerItem.ConfirmNonRenewalRateData = fmt.Sprint(confirmNonRenewalRateMoey, " / ", confirmNonRenewalRateNum)
|
|
|
+
|
|
|
+ sellerItem.SignedClientCount = fmt.Sprint(mapSignedClientNum[keyMapTtoalServer])
|
|
|
+ if mapSignedClientNum[keyMapTtoalServer] == 0 || mapSignedClientMoney[keyMapTtoalServer] == 0 {
|
|
|
+ sellerItem.AverageRevenueCount = "0"
|
|
|
+ } else {
|
|
|
+ sellerItem.AverageRevenueCount = utils.SubFloatToString(mapSignedClientMoney[keyMapTtoalServer]/float64(mapSignedClientNum[keyMapTtoalServer]), 2)
|
|
|
+ }
|
|
|
+
|
|
|
+ sellerItem.InvoiceAmountCount = utils.SubFloatToString(mapInvoiceAmountMoney[keyMapTtoalServer], 2)
|
|
|
+ sellerItem.PaymentReceivedCount = utils.SubFloatToString(mapPaymentAmountMoney[keyMapTtoalServer], 2)
|
|
|
+ if mapInvoiceAmountMoney[keyMapTtoalServer] == 0 || mapPaymentAmountMoney[keyMapTtoalServer] == 0 {
|
|
|
+ sellerItem.UnpaidRatioCount = "0%"
|
|
|
+ } else {
|
|
|
+ sellerItem.UnpaidRatioCount = utils.SubFloatToString((mapInvoiceAmountMoney[keyMapTtoalServer]-mapPaymentAmountMoney[keyMapTtoalServer])/mapInvoiceAmountMoney[keyMapTtoalServer]*100, 2) + "%"
|
|
|
+ }
|
|
|
+ sellerItem.NewCustomerInvoicingCount = utils.SubFloatToString(mapNewCustomerInvoicingMoney[keyMapTtoalServer], 2)
|
|
|
+ sellerItem.NewCustomerPaymentsReceivedCount = utils.SubFloatToString(mapNewCustomerPaymentsReceivedMoney[keyMapTtoalServer], 2)
|
|
|
item.DataList = append(item.DataList, sellerItem)
|
|
|
}
|
|
|
items = append(items, item)
|