company_statistic.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package services
  2. import (
  3. "fmt"
  4. "hongze/hongze_task/models"
  5. "hongze/hongze_task/utils"
  6. "time"
  7. )
  8. //存量客户数据统计
  9. func StackCompanyStatistic()(err error) {
  10. dayStr := time.Now().AddDate(0,0,-1).Format(utils.FormatDate) //截止到昨天的数据
  11. //查询昨天的数据有没有生成,如果没有生成的话,那么重新生成
  12. count,err := models.GetStackCompanyCount(dayStr)
  13. if err != nil{
  14. fmt.Println("查询昨天的数据是否生成语句 执行异常:", err.Error())
  15. return
  16. }
  17. //昨天数据有生成,那么就不往下执行了
  18. if count > 0 {
  19. fmt.Println("昨天的数据已经生成,不允许重复生成")
  20. return
  21. }
  22. total, list, err := models.GetStackCompanyListV1()
  23. if err != nil {
  24. fmt.Println("查询新签客户数(存量客户)异常:", err.Error())
  25. return
  26. }
  27. fmt.Println("total:", total)
  28. //fmt.Println(list)
  29. for _, company := range list {
  30. item := models.StackCompanyStatistic{
  31. CompanyId: company.CompanyId,
  32. CompanyName: company.CompanyName,
  33. ProductId: company.ProductId,
  34. ProductName: company.ProductName,
  35. ContractNum: company.Count,
  36. SellerId: company.SellerId,
  37. SellerName: company.SellerName,
  38. GroupId: company.GroupId,
  39. DepartmentId: company.DepartmentId,
  40. Date: dayStr, //截止到昨天的数据
  41. StartDate: company.StartDate,
  42. EndDate: company.EndDate,
  43. RegionType: company.RegionType,
  44. CreateTime: time.Now(),
  45. }
  46. if company.ProductStatus == "正式" {
  47. //正式客户
  48. if company.Count == 1 {
  49. //新签客户数
  50. item.Type = "新签客户"
  51. } else {
  52. item.Type = "续约客户"
  53. }
  54. } else {
  55. //未续约客户
  56. item.Type = "未续约客户"
  57. }
  58. addErr := models.AddStackCompanyStatistic(&item)
  59. if addErr != nil{
  60. fmt.Println("存量客户数据统计,插入数据异常:",addErr)
  61. }
  62. }
  63. return
  64. }