123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- package statistic
- import (
- "fmt"
- "hongze/hz_crm_api/controllers"
- "hongze/hz_crm_api/models"
- "hongze/hz_crm_api/models/statistic_report"
- "hongze/hz_crm_api/models/system"
- "strings"
- )
- // 权益数据汇总
- // StatisticRaiDataSummaryController 权益数据汇总基类
- type StatisticRaiDataSummaryController struct {
- controllers.BaseAuthController
- }
- // MergeCompanyList
- // @Title 权益数据汇总
- // @Description 权益数据汇总统计列表接口
- // @Param AdminId query string true "销售id,多个用英文逗号隔开,空字符串为全部"
- // @Param StartYear query int false "开始日期(年份)"
- // @Param EndYear query int false "结束日期(年份)"
- // @Param DataType query string false "报表类型,枚举值:`季度`,`年度`,`半年度`"
- // @Param TryOutType query string false " '试用', '非试用' 非试用即为冻结/流失"
- // @Param IsExport query bool false "是否导出excel,默认是false"
- // @Param IsConfirm query int false "是否确认续约: -1-默认全部; 0-待确认; 1-已确认 ;2-到期合同"
- // @Success 200 {object} statistic_report.RaiDataSummaryListResp
- // @router /rai_data_summary/list [get]
- func (this *StatisticRaiDataSummaryController) RaiDataSummaryList() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- //adminId := this.GetString("AdminId")
- dataType := this.GetString("DataType")
- startYear, _ := this.GetInt("StartYear")
- endYear, _ := this.GetInt("EndYear")
- dataTypeArr := []string{}
- 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"
- var pars []interface{}
- sellerList, err := system.GetSysUserItemsOrderByCreated(condition, pars)
- if err != nil {
- br.Msg = "获取管理账号失败"
- br.ErrMsg = "获取管理账号失败,Err:" + err.Error()
- return
- }
- var sellerDevelop []*system.AdminItem // 开拓组销售
- var sellerService []*system.AdminItem // 服务组销售
- for _, v := range sellerList {
- if strings.Contains(v.RealName, "6") {
- sellerService = append(sellerService, v)
- } else {
- sellerDevelop = append(sellerDevelop, v)
- }
- }
- resp := new(statistic_report.RaiDataSummaryListResp)
- var items []*statistic_report.RaiDataSummaryResp
- for i := startYear; i <= endYear; i++ {
- //if len(dataTypeArr) > 0 {
- for _, Dv := range dataTypeArr {
- item := new(statistic_report.RaiDataSummaryResp)
- item.DataType = fmt.Sprint(i, Dv)
- for _, vS := range sellerDevelop {
- sellerItem := new(statistic_report.RaiDataSummaryDetail)
- 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 = "新客到款-(数据)"
- item.DataList = append(item.DataList, sellerItem)
- }
- if len(sellerDevelop) > 0 {
- sellerItem := new(statistic_report.RaiDataSummaryDetail)
- sellerItem.SellerName = "开拓组合计"
- item.DataList = append(item.DataList, sellerItem)
- }
- for _, vS := range sellerService {
- sellerItem := new(statistic_report.RaiDataSummaryDetail)
- 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 = "新客到款-(数据)"
- item.DataList = append(item.DataList, sellerItem)
- }
- if len(sellerService) > 0 {
- sellerItem := new(statistic_report.RaiDataSummaryDetail)
- sellerItem.SellerName = "服务组合计"
- item.DataList = append(item.DataList, sellerItem)
- }
- items = append(items, item)
- }
- }
- resp.List = items
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
|