company.go 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package roadshow
  2. import (
  3. "github.com/rdlucklib/rdluck_tools/orm"
  4. "time"
  5. )
  6. type CompanySearchView struct {
  7. CompanyId int `orm:"column(company_id);pk"`
  8. CompanyName string `description:"客户名称"`
  9. CreditCode string `description:"社会统一信用码"`
  10. CompanyCode string `description:"客户编码"`
  11. }
  12. func CompanySearch(sellerId int, keyWord string) (list []*CompanySearchView, err error) {
  13. o := orm.NewOrm()
  14. sql := ` SELECT b.company_id,b.company_name FROM company AS a
  15. INNER JOIN company_product AS b ON a.company_id=b.company_id
  16. WHERE b.seller_id=?
  17. AND b.status IN('正式','试用')
  18. AND b.company_name LIKE '%` + keyWord + `%'
  19. `
  20. sql += ` GROUP BY b.company_id `
  21. _, err = o.Raw(sql, sellerId).QueryRows(&list)
  22. return
  23. }
  24. type CompanyDetailView struct {
  25. CompanyId int `orm:"column(company_id);pk"`
  26. CompanyName string `description:"客户名称"`
  27. Status string `description:"客户状态"`
  28. IndustryId int `description:"行业id"`
  29. IndustryName string `description:"行业名称"`
  30. PermissionName string `description:"开通品种"`
  31. ReportReadTotal int `description:"累计阅读次数"`
  32. }
  33. type CompanyProduct struct {
  34. CompanyProductId int `orm:"column(company_product_id);pk" description:"客户产品id"`
  35. CompanyId int `description:"客户id"`
  36. ProductId int `description:"产品id"`
  37. ProductName string `description:"产品名称"`
  38. CompanyName string `description:"客户名称"`
  39. Source string `description:"来源"`
  40. Reasons string `description:"新增理由"`
  41. Status string `description:"客户状态"`
  42. IndustryId int `description:"行业id"`
  43. IndustryName string `description:"行业名称"`
  44. SellerId int `description:"销售id"`
  45. SellerName string `description:"销售名称"`
  46. GroupId int `description:"销售分组id"`
  47. DepartmentId int `description:"销售部门id"`
  48. IsSuspend int `description:"1:暂停,0:启用"`
  49. SuspendTime time.Time `description:"暂停启用时间"`
  50. TryOutTime time.Time `description:"正式转试用时间"`
  51. RenewalReason string `description:"正式转试用后的续约情况说明"`
  52. LastDescriptionTime time.Time `description:"上次添加说明时间"`
  53. RenewalIntention int `description:"是否勾选无续约意向,1:确认,0:未确认"`
  54. ApproveStatus string `description:"审批状态:'审批中','通过','驳回'"`
  55. FreezeTime time.Time `description:"冻结时间"`
  56. FreezeReason time.Time `description:"冻结理由"`
  57. Remark string `description:"备注信息"`
  58. CreateTime time.Time `description:"创建时间"`
  59. ModifyTime time.Time `description:"修改时间"`
  60. StartDate string `description:"开始日期"`
  61. EndDate string `description:"结束日期"`
  62. ContractEndDate time.Time `description:"合同结束日期"`
  63. LoseReason string `description:"流失原因"`
  64. LossTime time.Time `description:"流失时间"`
  65. CompanyType string `description:"客户类型"`
  66. OpenCode string `description:"开放给第三方的编码,不让第三方定位我们的客户信息"`
  67. ViewTotal int `description:"总阅读次数"`
  68. LastViewTime time.Time `description:"最后一次阅读时间"`
  69. PackageType int `description:"套餐类型"`
  70. Scale string `description:"管理规模,空不填,1::50亿以下,2:50~100亿,3:100亿以上。"`
  71. }
  72. func GetCompanyProductByCompanyIdAndProductId(companyId, productId int) (item *CompanyProduct, err error) {
  73. o := orm.NewOrm()
  74. sql := `SELECT b.* FROM company AS a
  75. INNER JOIN company_product AS b ON a.company_id=b.company_id
  76. WHERE a.company_id=? AND b.product_id=? LIMIT 1 `
  77. err = o.Raw(sql, companyId, productId).QueryRow(&item)
  78. return
  79. }
  80. //客户授权产品结构体(包含产品名称)
  81. type CompanyReportPermissionAndName struct {
  82. CompanyReportPermissionId int `description:"客户授权产品id"`
  83. CompanyId int
  84. ReportPermissionId int
  85. CreatedTime time.Time
  86. LastUpdatedTime time.Time
  87. ChartPermissionId int
  88. StartDate string `description:"权限开始日期"`
  89. EndDate string `description:"权限结束日期"`
  90. ProductId int `description:"产品id"`
  91. ProductName string `description:"产品名称"`
  92. CompanyContractId int `description:"合同id"`
  93. PermissionName string `description:"客户授权产品的名称"`
  94. ClassifyName string `description:"客户授权产品的分类名称"`
  95. Status string `description:"'正式','试用','关闭'"`
  96. ModifyTime time.Time `description:"修改时间"`
  97. }
  98. //根据企业用户id和产品id获取所有正式的权限
  99. func GetCompanyProductReportPermissionList(companyId, productId int) (items []*CompanyReportPermissionAndName, err error) {
  100. o := orm.NewOrm()
  101. sql := `SELECT a.*,b.permission_name,b.classify_name FROM company_report_permission a left join chart_permission b on a.chart_permission_id=b.chart_permission_id WHERE a.company_id = ? and a.product_id=? `
  102. _, err = o.Raw(sql, companyId, productId).QueryRows(&items)
  103. return
  104. }