company_report_permission.go 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package models
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "hongze/hongze_task/utils"
  5. "time"
  6. )
  7. type CompanyReportPermission struct {
  8. CompanyReportPermissionId int64 `orm:"column(company_report_permission_id);pk"`
  9. CompanyId int `description:"公司id"`
  10. ProductId int `description:"产品id"`
  11. ProductName string `description:"产品名称"`
  12. ReportPermissionId int `description:"权限id(作废)"`
  13. Status string `description:"状态"`
  14. CreatedTime time.Time `description:"创建时间"`
  15. LastUpdatedTime time.Time `description:"更新时间"`
  16. ChartPermissionId int `description:"大分类ID"`
  17. StartDate string `description:"合同开始日期"`
  18. EndDate string `description:"合同结束日期"`
  19. ModifyTime string `description:"更新时间"`
  20. IsUpgrade int `description:"是否升级,1是,0否"`
  21. }
  22. // Update 更新客户产品权限
  23. func (item *CompanyReportPermission) Update(cols []string) (err error) {
  24. o := orm.NewOrm()
  25. _, err = o.Update(item, cols...)
  26. return
  27. }
  28. func GetCompanyReportPermission(companyId int) (items []*CompanyReportPermission, err error) {
  29. sql := `SELECT * FROM company_report_permission WHERE company_id=? `
  30. _, err = orm.NewOrm().Raw(sql, companyId).QueryRows(&items)
  31. return
  32. }
  33. func AddCompanyReportPermission(item *CompanyReportPermission) (err error) {
  34. o := orm.NewOrm()
  35. _, err = o.Insert(item)
  36. return
  37. }
  38. func ModifyCompanyOldPermission(startDate, endDate, productName string, companyId, productId int) (err error) {
  39. o := orm.NewOrm()
  40. sql := `UPDATE company_report_permission SET start_date=?,end_date=?,product_id=?,product_name=?,modify_time=NOW() WHERE company_id=? AND start_date IS NULL `
  41. _, err = o.Raw(sql, startDate, endDate, productId, productName, companyId).Exec()
  42. return
  43. }
  44. // GetCompanyReportPermissionNeedTryOut 获取需要正式转关闭的产品权益
  45. func GetCompanyReportPermissionNeedTryOut(endDate string) (items []*CompanyReportPermission, err error) {
  46. o := orm.NewOrm()
  47. sql := `SELECT *
  48. FROM company_report_permission
  49. WHERE status='正式' AND end_date<=?`
  50. _, err = o.Raw(sql, endDate).QueryRows(&items)
  51. return
  52. }
  53. // GetCompanyReportPermissionNeedClose 获取需要关闭的产品权限
  54. func GetCompanyReportPermissionNeedClose(endDate string) (items []*CompanyReportPermission, err error) {
  55. o := orm.NewOrm()
  56. sql := `SELECT *
  57. FROM company_report_permission
  58. WHERE status='试用' AND end_date<=?`
  59. _, err = o.Raw(sql, endDate).QueryRows(&items)
  60. return
  61. }
  62. // CompanyReportPermissionTryOut 正式转试用用户权限
  63. func CompanyReportPermissionTryOut(companyReportPermissionId int64, companyId, productId int) (err error) {
  64. startDate := time.Now().Format(utils.FormatDate)
  65. endDate := time.Now().AddDate(0, 2, 0).Format(utils.FormatDate)
  66. o := orm.NewOrm()
  67. //修改产品权限状态为关闭
  68. //sql := `UPDATE company_report_permission SET status='试用',modify_time=NOW() WHERE company_report_permission_id = ? AND company_id= ? AND product_id = ? `
  69. sql := `UPDATE company_report_permission SET status='试用',start_date=?,end_date=?,modify_time=NOW() WHERE company_report_permission_id = ? AND company_id= ? AND product_id = ? `
  70. _, err = o.Raw(sql, startDate, endDate, companyReportPermissionId, companyId, productId).Exec()
  71. //_, err = o.Raw(sql, companyReportPermissionId, companyId, productId).Exec()
  72. if err != nil {
  73. return err
  74. }
  75. return
  76. }
  77. // CompanyReportPermissionClose 关闭用户权限
  78. func CompanyReportPermissionClose(companyReportPermissionId int64, companyId, productId int) (err error) {
  79. o := orm.NewOrm()
  80. //修改产品权限状态为关闭
  81. sql := `UPDATE company_report_permission SET status='关闭',modify_time=NOW() WHERE company_report_permission_id = ? AND company_id= ? AND product_id = ? `
  82. _, err = o.Raw(sql, companyReportPermissionId, companyId, productId).Exec()
  83. if err != nil {
  84. return err
  85. }
  86. return
  87. }
  88. //查询是否存在还未过期的产品权限
  89. func GetCompanyReportPermissionCount(companyId, productId int) (count int, err error) {
  90. o := orm.NewOrm()
  91. startDate := time.Now().Format(utils.FormatDate)
  92. countSql := `SELECT
  93. COUNT(company_report_permission_id ) AS COUNT
  94. FROM company_report_permission WHERE status in ('试用','正式') AND end_date >= ? AND company_id= ? AND product_id = ? `
  95. err = o.Raw(countSql, startDate, companyId, productId).QueryRow(&count)
  96. return
  97. }
  98. func GetCompanyReportPermissionByStatus(companyId, productId int, status string) (items []*CompanyReportPermission, err error) {
  99. o := orm.NewOrm()
  100. sql := `SELECT * FROM company_report_permission WHERE company_id=? AND product_id=? AND status = ? `
  101. _, err = o.Raw(sql, companyId, productId, status).QueryRows(&items)
  102. return
  103. }