company.go 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  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. ProductId int `description:"1,FICC,2权益"`
  11. }
  12. func GetCompanyDetailById(companyId int) (item *CompanyDetail, err error) {
  13. //sql := ` SELECT a.company_id,a.company_name,b.status,b.seller_id,b.seller_name,c.mobile
  14. // FROM company AS a
  15. // INNER JOIN company_product AS b ON a.company_id=b.company_id
  16. // LEFT JOIN admin AS c ON b.seller_id=c.admin_id
  17. // WHERE a.company_id=? AND b.product_id=2 `
  18. sql := ` SELECT a.company_id,a.company_name,b.status,b.seller_id,b.seller_name,c.mobile,p.product_id
  19. FROM company AS a
  20. INNER JOIN company_product AS b ON a.company_id=b.company_id
  21. INNER JOIN company_report_permission AS p ON p.company_id = a.company_id
  22. INNER JOIN chart_permission AS cp ON cp.chart_permission_id=p.chart_permission_id
  23. LEFT JOIN admin AS c ON b.seller_id=c.admin_id
  24. WHERE a.company_id=? AND cp.cygx_auth=1
  25. OR (a.company_id = ? AND cp.permission_name = '策略' ) ORDER BY b.product_id DESC LIMIT 1` // 兼容永续状态
  26. o := orm.NewOrm()
  27. err = o.Raw(sql, companyId, companyId).QueryRow(&item)
  28. return
  29. }
  30. func GetCompanyDetailByIdGroup(companyId int) (item *CompanyDetail, err error) {
  31. sql := ` SELECT a.company_id,a.company_name,b.status,b.seller_id,b.seller_name,c.mobile
  32. FROM company AS a
  33. INNER JOIN company_product AS b ON a.company_id=b.company_id
  34. INNER JOIN company_report_permission AS p ON p.company_id = a.company_id
  35. INNER JOIN chart_permission AS cp ON cp.chart_permission_id = p.chart_permission_id
  36. LEFT JOIN admin AS c ON b.seller_id=c.admin_id
  37. WHERE a.company_id=? AND b.product_id = 2
  38. OR (a.company_id = ? AND cp.permission_name = '策略' )
  39. ORDER BY b.product_id DESC LIMIT 0,1 `
  40. o := orm.NewOrm()
  41. err = o.Raw(sql, companyId, companyId).QueryRow(&item)
  42. return
  43. }
  44. func GetCountCompanyDetailByIdGroup(companyId int) (count int, err error) {
  45. sql := ` SELECT COUNT(1) AS count
  46. FROM company AS a
  47. INNER JOIN company_product AS b ON a.company_id=b.company_id
  48. INNER JOIN company_report_permission AS p ON p.company_id = a.company_id
  49. INNER JOIN chart_permission AS cp ON cp.chart_permission_id = p.chart_permission_id
  50. LEFT JOIN admin AS c ON b.seller_id=c.admin_id
  51. WHERE a.company_id=? AND b.product_id = 2 OR (a.company_id = ? AND cp.permission_name = '策略' ) `
  52. o := orm.NewOrm()
  53. err = o.Raw(sql, companyId, companyId).QueryRow(&count)
  54. return
  55. }
  56. //原有权限叫校验,下方更改与2021-5.18
  57. //func GetCompanyPermission(companyId int) (permission string, err error) {
  58. // sql := ` SELECT GROUP_CONCAT(DISTINCT b.chart_permission_name ORDER BY b.sort ASC SEPARATOR ',') AS permission
  59. // FROM company_report_permission AS a
  60. // INNER JOIN chart_permission AS b ON a.chart_permission_id=b.chart_permission_id
  61. // INNER JOIN company_product AS c ON a.company_id=c.company_id AND a.product_id=c.product_id
  62. // WHERE a.company_id=?
  63. // AND a.product_id=2
  64. // AND b.show_type=1
  65. // AND c.status IN('正式','试用','永续') `
  66. // o := orm.NewOrm()
  67. // err = o.Raw(sql, companyId).QueryRow(&permission)
  68. // return
  69. //}
  70. func GetCompanyPermission(companyId int) (permission string, err error) {
  71. sql := ` SELECT GROUP_CONCAT(DISTINCT b.chart_permission_name ORDER BY b.sort ASC SEPARATOR ',') AS permission
  72. FROM company_report_permission AS a
  73. INNER JOIN chart_permission AS b ON a.chart_permission_id=b.chart_permission_id
  74. INNER JOIN company_product AS c ON a.company_id=c.company_id AND a.product_id=c.product_id
  75. WHERE a.company_id=?
  76. AND c.is_suspend=0
  77. AND b.cygx_auth=1
  78. AND c.status IN('正式','试用','永续')
  79. AND a.status IN('正式','试用','永续') `
  80. o := orm.NewOrm()
  81. err = o.Raw(sql, companyId).QueryRow(&permission)
  82. return
  83. }
  84. func GetCompanyPermissionByUser(companyId int) (permission string, err error) {
  85. sql := ` SELECT GROUP_CONCAT(DISTINCT b.remark ORDER BY b.sort ASC SEPARATOR ',') AS permission
  86. FROM company_report_permission AS a
  87. INNER JOIN chart_permission AS b ON a.chart_permission_id=b.chart_permission_id
  88. INNER JOIN company_product AS c ON a.company_id=c.company_id AND a.product_id=c.product_id
  89. WHERE a.company_id=?
  90. AND c.is_suspend=0
  91. AND b.cygx_auth=1
  92. AND c.status IN('正式','试用','永续')
  93. AND a.status IN('正式','试用','永续') `
  94. o := orm.NewOrm()
  95. err = o.Raw(sql, companyId).QueryRow(&permission)
  96. return
  97. }
  98. func GetCompanyPermissionByName(name string) (permission string, err error) {
  99. sql := ` SELECT GROUP_CONCAT(DISTINCT b.chart_permission_name ORDER BY b.sort ASC SEPARATOR '/') AS permission
  100. FROM company_report_permission AS a
  101. INNER JOIN chart_permission AS b ON a.chart_permission_id=b.chart_permission_id
  102. INNER JOIN company_product AS c ON a.company_id=c.company_id AND a.product_id=c.product_id
  103. INNER JOIN company AS cm ON cm.company_id=c.company_id
  104. WHERE cm.company_name=?
  105. AND b.product_id = 2 `
  106. o := orm.NewOrm()
  107. err = o.Raw(sql, name).QueryRow(&permission)
  108. return
  109. }
  110. func GetCompanyDetailAllById(companyId int) (item *CompanyDetail, err error) {
  111. sql := ` SELECT a.company_id,a.company_name,b.status,b.seller_id,b.seller_name,c.mobile
  112. FROM company AS a
  113. INNER JOIN company_product AS b ON a.company_id=b.company_id
  114. INNER JOIN company_report_permission AS p ON p.company_id = a.company_id
  115. INNER JOIN chart_permission AS cp ON cp.chart_permission_id=p.chart_permission_id
  116. LEFT JOIN admin AS c ON b.seller_id=c.admin_id
  117. WHERE a.company_id=? AND cp.cygx_auth=1
  118. OR (a.company_id = ? AND cp.permission_name = '策略' )` // 兼容永续状态
  119. //WHERE a.company_id=? AND b.status IN('正式','试用','永续')`
  120. o := orm.NewOrm()
  121. err = o.Raw(sql, companyId, companyId).QueryRow(&item)
  122. return
  123. }
  124. //获取对应销售以及销售的手机号
  125. func GetSellerDetailAllByCompanyId(companyId int) (item *CompanyDetail, err error) {
  126. sql := ` SELECT c.mobile ,c.real_name as seller_name
  127. FROM
  128. company AS a
  129. INNER JOIN company_product AS b ON a.company_id = b.company_id
  130. INNER JOIN admin AS c ON b.seller_id = c.admin_id
  131. WHERE
  132. b.product_id = 2
  133. AND a.company_id = ? LIMIT 1`
  134. o := orm.NewOrm()
  135. err = o.Raw(sql, companyId).QueryRow(&item)
  136. return
  137. }
  138. func GetCompanySellerName(companyId int) (sellerName string, err error) {
  139. sql := ` SELECT
  140. GROUP_CONCAT( DISTINCT p.seller_name SEPARATOR '/' ) AS sellerName
  141. FROM
  142. company_product AS p
  143. WHERE
  144. p.company_id = ? `
  145. o := orm.NewOrm()
  146. err = o.Raw(sql, companyId).QueryRow(&sellerName)
  147. return
  148. }
  149. type CompanyProductStatus struct {
  150. IsSuspend int `description:"1:暂停,0:启用"`
  151. }
  152. //获取对应销售以及销售的手机号
  153. func GetCompanyProductDetail(companyId, productId int) (item *CompanyProductStatus, err error) {
  154. sql := ` SELECT * FROM company_product WHERE company_id = ? AND product_id = ?; `
  155. o := orm.NewOrm()
  156. err = o.Raw(sql, companyId, productId).QueryRow(&item)
  157. return
  158. }
  159. //获取公司详情详情
  160. func GetCompanyByName(companyName string) (item *Company, err error) {
  161. o := orm.NewOrm()
  162. sql := `SELECT * FROM company WHERE company_name = ? LIMIT 1`
  163. err = o.Raw(sql, companyName).QueryRow(&item)
  164. return
  165. }