12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package cases
  2. import (
  3. "errors"
  4. "spaceofcheng/services/models/cases"
  5. "spaceofcheng/services/models/model"
  6. "spaceofcheng/services/service"
  7. "spaceofcheng/services/utils"
  8. )
  9. // GetTagList 获取tag列表
  10. func (s *CaseServ) GetTagList(caseid, caseids string, page, pageSize int) (map[string]interface{}, error) {
  11. if pageSize == 0 {
  12. pageSize = service.PAGENUM
  13. }
  14. if page == 0 {
  15. page = 1
  16. }
  17. tags, err := s.dao.GetTagList(caseid, caseids, page, pageSize)
  18. if err != nil {
  19. utils.LogError("获取案场标签信息失败: " + err.Error())
  20. return nil, errors.New("获取案场标签信息失败")
  21. }
  22. total, err := s.dao.GetTagCount(caseid, caseids)
  23. if err != nil {
  24. utils.LogError("获取案场标签信息失败: " + err.Error())
  25. return nil, errors.New("获取案场标签信息失败")
  26. }
  27. return map[string]interface{}{
  28. "list": tags,
  29. "pagesize": pageSize,
  30. "pagenum": total,
  31. "page": page,
  32. }, err
  33. }
  34. // GetTagByID 根据ID获取标签
  35. func (s *CaseServ) GetTagByID(tagid string) (*cases.Tag, error) {
  36. tag, err := s.dao.GetTagByID(tagid)
  37. if err != nil {
  38. utils.LogError("获取案场标签信息失败: " + err.Error())
  39. return nil, errors.New("获取案场标签信息失败")
  40. }
  41. if tag != nil {
  42. tagcases, err := s.dao.GetTagCaseByTagID(tagid)
  43. if err != nil {
  44. utils.LogError("获取案场标签信息失败: " + err.Error())
  45. return nil, errors.New("获取案场标签信息失败")
  46. }
  47. tag.TagCases = tagcases
  48. }
  49. return tag, err
  50. }
  51. // SaveTag 保存标签
  52. func (s *CaseServ) SaveTag(tag model.SysTag, caseids string) (*model.SysTag, error) {
  53. var newInfo *model.SysTag
  54. var err error
  55. if tag.TagName == "" {
  56. return nil, utils.LogError("标签名称不能为空!")
  57. }
  58. if caseids == "" {
  59. return nil, utils.LogError("案场不能为空!")
  60. }
  61. if tag.TagId == "" {
  62. newInfo, err = s.dao.AddTag(tag)
  63. } else {
  64. err = s.dao.UpdateTag(tag)
  65. newInfo = &tag
  66. }
  67. if err != nil {
  68. utils.LogError("保存标签信息失败: " + err.Error())
  69. return nil, errors.New("保存标签信息失败")
  70. }
  71. err = s.dao.DelTagCase(newInfo.TagId)
  72. if err != nil {
  73. utils.LogError("保存标签信息失败: " + err.Error())
  74. return nil, errors.New("保存标签信息失败")
  75. }
  76. err = s.dao.SaveTagCase(newInfo.TagId, caseids)
  77. if err != nil {
  78. utils.LogError("保存标签信息失败: " + err.Error())
  79. return nil, errors.New("保存标签信息失败")
  80. }
  81. return newInfo, err
  82. }
  83. // DelTag 删除标签
  84. func (s *CaseServ) DelTag(tagid string) error {
  85. err := s.dao.DeleteTag(tagid)
  86. if err != nil {
  87. utils.LogError("删除标签失败: " + err.Error())
  88. return errors.New("删除标签失败")
  89. }
  90. return err
  91. }