company.go 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package models
  2. import "github.com/beego/beego/v2/client/orm"
  3. type CompanyDetail struct {
  4. CompanyId int `orm:"column(company_id);pk"`
  5. CompanyName string `description:"客户名称"`
  6. Status string `description:"客户状态"`
  7. SellerId int `description:"销售id"`
  8. SellerName string `description:"销售名称"`
  9. Mobile string `description:"销售手机号"`
  10. }
  11. func GetCompanyDetailById(companyId int) (item *CompanyDetail, err error) {
  12. //sql := ` SELECT a.company_id,a.company_name,b.status,b.seller_id,b.seller_name,c.mobile
  13. // FROM company AS a
  14. // INNER JOIN company_product AS b ON a.company_id=b.company_id
  15. // LEFT JOIN admin AS c ON b.seller_id=c.admin_id
  16. // WHERE a.company_id=? AND b.product_id=2 `
  17. sql := ` SELECT a.company_id,a.company_name,b.status,b.seller_id,b.seller_name,c.mobile
  18. FROM company AS a
  19. INNER JOIN company_product AS b ON a.company_id=b.company_id
  20. INNER JOIN company_report_permission AS p ON p.company_id = a.company_id
  21. INNER JOIN chart_permission AS cp ON cp.chart_permission_id=p.chart_permission_id
  22. LEFT JOIN admin AS c ON b.seller_id=c.admin_id
  23. WHERE a.company_id=? AND cp.cygx_auth=1
  24. OR (a.company_id = ? AND cp.permission_name = '策略' ) ORDER BY b.product_id DESC LIMIT 1` // 兼容永续状态
  25. o := orm.NewOrm()
  26. err = o.Raw(sql, companyId, companyId).QueryRow(&item)
  27. return
  28. }
  29. func GetCompanyDetailByIdGroup(companyId int) (item *CompanyDetail, err error) {
  30. sql := ` SELECT a.company_id,a.company_name,b.status,b.seller_id,b.seller_name,c.mobile
  31. FROM company AS a
  32. INNER JOIN company_product AS b ON a.company_id=b.company_id
  33. INNER JOIN company_report_permission AS p ON p.company_id = a.company_id
  34. INNER JOIN chart_permission AS cp ON cp.chart_permission_id = p.chart_permission_id
  35. LEFT JOIN admin AS c ON b.seller_id=c.admin_id
  36. WHERE a.company_id=? AND b.product_id = 2
  37. OR (a.company_id = ? AND cp.permission_name = '策略' )
  38. ORDER BY b.product_id DESC LIMIT 0,1 `
  39. o := orm.NewOrm()
  40. err = o.Raw(sql, companyId, companyId).QueryRow(&item)
  41. return
  42. }
  43. func GetCountCompanyDetailByIdGroup(companyId int) (count int, err error) {
  44. sql := ` SELECT COUNT(1) AS count
  45. FROM company AS a
  46. INNER JOIN company_product AS b ON a.company_id=b.company_id
  47. INNER JOIN company_report_permission AS p ON p.company_id = a.company_id
  48. INNER JOIN chart_permission AS cp ON cp.chart_permission_id = p.chart_permission_id
  49. LEFT JOIN admin AS c ON b.seller_id=c.admin_id
  50. WHERE a.company_id=? AND b.product_id = 2 OR (a.company_id = ? AND cp.permission_name = '策略' ) `
  51. o := orm.NewOrm()
  52. err = o.Raw(sql, companyId, companyId).QueryRow(&count)
  53. return
  54. }
  55. //原有权限叫校验,下方更改与2021-5.18
  56. //func GetCompanyPermission(companyId int) (permission string, err error) {
  57. // sql := ` SELECT GROUP_CONCAT(DISTINCT b.chart_permission_name ORDER BY b.sort ASC SEPARATOR ',') AS permission
  58. // FROM company_report_permission AS a
  59. // INNER JOIN chart_permission AS b ON a.chart_permission_id=b.chart_permission_id
  60. // INNER JOIN company_product AS c ON a.company_id=c.company_id AND a.product_id=c.product_id
  61. // WHERE a.company_id=?
  62. // AND a.product_id=2
  63. // AND b.show_type=1
  64. // AND c.status IN('正式','试用','永续') `
  65. // o := orm.NewOrm()
  66. // err = o.Raw(sql, companyId).QueryRow(&permission)
  67. // return
  68. //}
  69. func GetCompanyPermission(companyId int) (permission string, err error) {
  70. sql := ` SELECT GROUP_CONCAT(DISTINCT b.chart_permission_name ORDER BY b.sort ASC SEPARATOR ',') AS permission
  71. FROM company_report_permission AS a
  72. INNER JOIN chart_permission AS b ON a.chart_permission_id=b.chart_permission_id
  73. INNER JOIN company_product AS c ON a.company_id=c.company_id AND a.product_id=c.product_id
  74. WHERE a.company_id=?
  75. AND c.is_suspend=0
  76. AND b.cygx_auth=1
  77. AND c.status IN('正式','试用','永续')
  78. AND a.status IN('正式','试用','永续') `
  79. o := orm.NewOrm()
  80. err = o.Raw(sql, companyId).QueryRow(&permission)
  81. return
  82. }
  83. func GetCompanyPermissionByName(name string) (permission string, err error) {
  84. sql := ` SELECT GROUP_CONCAT(DISTINCT b.chart_permission_name ORDER BY b.sort ASC SEPARATOR '/') AS permission
  85. FROM company_report_permission AS a
  86. INNER JOIN chart_permission AS b ON a.chart_permission_id=b.chart_permission_id
  87. INNER JOIN company_product AS c ON a.company_id=c.company_id AND a.product_id=c.product_id
  88. INNER JOIN company AS cm ON cm.company_id=c.company_id
  89. WHERE cm.company_name=?
  90. AND b.product_id = 2 `
  91. o := orm.NewOrm()
  92. err = o.Raw(sql, name).QueryRow(&permission)
  93. return
  94. }
  95. func GetCompanyDetailAllById(companyId int) (item *CompanyDetail, err error) {
  96. sql := ` SELECT a.company_id,a.company_name,b.status,b.seller_id,b.seller_name,c.mobile
  97. FROM company AS a
  98. INNER JOIN company_product AS b ON a.company_id=b.company_id
  99. INNER JOIN company_report_permission AS p ON p.company_id = a.company_id
  100. INNER JOIN chart_permission AS cp ON cp.chart_permission_id=p.chart_permission_id
  101. LEFT JOIN admin AS c ON b.seller_id=c.admin_id
  102. WHERE a.company_id=? AND cp.cygx_auth=1
  103. OR (a.company_id = ? AND cp.permission_name = '策略' )` // 兼容永续状态
  104. //WHERE a.company_id=? AND b.status IN('正式','试用','永续')`
  105. o := orm.NewOrm()
  106. err = o.Raw(sql, companyId, companyId).QueryRow(&item)
  107. return
  108. }
  109. //获取对应销售以及销售的手机号
  110. func GetSellerDetailAllByCompanyId(companyId int) (item *CompanyDetail, err error) {
  111. sql := ` SELECT c.mobile ,c.real_name as seller_name
  112. FROM
  113. company AS a
  114. INNER JOIN company_product AS b ON a.company_id = b.company_id
  115. INNER JOIN admin AS c ON b.seller_id = c.admin_id
  116. WHERE
  117. b.product_id = 2
  118. AND a.company_id = ? LIMIT 1`
  119. o := orm.NewOrm()
  120. err = o.Raw(sql, companyId).QueryRow(&item)
  121. return
  122. }
  123. func GetCompanySellerName(companyId int) (sellerName string, err error) {
  124. sql := ` SELECT
  125. GROUP_CONCAT( DISTINCT p.seller_name SEPARATOR '/' ) AS sellerName
  126. FROM
  127. company_product AS p
  128. WHERE
  129. p.company_id = ? `
  130. o := orm.NewOrm()
  131. err = o.Raw(sql, companyId).QueryRow(&sellerName)
  132. return
  133. }