report_mapping_category_group.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package services
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hongze_clpt/models"
  6. "hongze/hongze_clpt/utils"
  7. "strings"
  8. "time"
  9. )
  10. // 校验文章主客观权限
  11. func CheckArticlePermissionType(articleId int, user *models.WxUserItem) (checkPermissionType bool) {
  12. var err error
  13. defer func() {
  14. if err != nil {
  15. go utils.SendAlarmMsg("校验文章主客观权限,失败"+err.Error()+fmt.Sprint("uid:", user.UserId, "articleId", articleId), 2)
  16. }
  17. }()
  18. permissionStr, e := models.GetCompanyPermissionByUser(user.CompanyId)
  19. if e != nil {
  20. err = errors.New("GetCompanyPermissionByUser, Err: " + e.Error())
  21. return
  22. }
  23. var condition string
  24. var pars []interface{}
  25. condition += ` AND article_id = ? `
  26. pars = append(pars, articleId)
  27. list, e := models.GetCygxReportMappingCategoryGroupList(condition, pars)
  28. if e != nil {
  29. err = errors.New("GetCygxReportMappingCategoryGroupList, Err: " + e.Error())
  30. return
  31. }
  32. if len(list) == 0 {
  33. checkPermissionType = true
  34. return
  35. }
  36. var chartPermissionId int
  37. var chartPermissionName string
  38. var permissionTypeZg bool
  39. var permissionTypeKg bool
  40. for _, v := range list {
  41. chartPermissionId = v.ChartPermissionId
  42. if v.PermissionType == 1 || v.PermissionType == 0 {
  43. permissionTypeZg = true
  44. }
  45. if v.PermissionType == 2 || v.PermissionType == 0 {
  46. permissionTypeKg = true
  47. }
  48. }
  49. categoryinfo, e := models.GetChartPermissionById(chartPermissionId)
  50. if e != nil {
  51. err = errors.New("GetChartPermissionById, Err: " + e.Error())
  52. return
  53. }
  54. if permissionTypeZg {
  55. chartPermissionName = categoryinfo.PermissionName + "(主观)"
  56. }
  57. if permissionTypeKg {
  58. chartPermissionName = categoryinfo.PermissionName + "(客观)"
  59. }
  60. if permissionTypeKg && permissionTypeZg {
  61. chartPermissionName = categoryinfo.PermissionName
  62. }
  63. if strings.Contains(permissionStr, chartPermissionName) {
  64. checkPermissionType = true
  65. }
  66. return
  67. }