booktype.go 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package booktype
  2. import (
  3. "errors"
  4. "spaceofcheng/services/models/booktype"
  5. "spaceofcheng/services/models/model"
  6. "spaceofcheng/services/service"
  7. "spaceofcheng/services/utils"
  8. )
  9. // BooktypeServ 系统处理
  10. type BooktypeServ struct {
  11. ctx *utils.Context
  12. dao *booktype.BooktypeDAO
  13. }
  14. // NewBooktypeServ 初始化
  15. func NewBooktypeServ(ctx *utils.Context) *BooktypeServ {
  16. return &BooktypeServ{
  17. ctx: ctx,
  18. dao: booktype.NewBooktypeDAO(ctx),
  19. }
  20. }
  21. func (s *BooktypeServ) GetBookTypeList(caseid string, page, pageSize int) (map[string]interface{}, error) {
  22. if pageSize == 0 {
  23. pageSize = service.PAGENUM
  24. }
  25. list, err := s.dao.GetBookTypeList(caseid, page, pageSize)
  26. if err != nil {
  27. utils.LogError("获取图书分类列表失败: " + err.Error())
  28. return nil, errors.New("获取图书分类列表失败")
  29. }
  30. total, err := s.dao.GetBookTypeListCount(caseid)
  31. if err != nil {
  32. utils.LogError("获取图书分类列表失败: " + err.Error())
  33. return nil, errors.New("获取图书分类列表失败")
  34. }
  35. return map[string]interface{}{
  36. "list": list,
  37. "pageSize": pageSize,
  38. "pagenum": total,
  39. "page": page,
  40. }, nil
  41. }
  42. func (s *BooktypeServ) GetBookTypeById(bookTypeId string) (*model.TaBookType, error) {
  43. bookType, err := s.dao.GetBookTypeById(bookTypeId)
  44. if err != nil {
  45. utils.LogError("获取图书分类详情失败: " + err.Error())
  46. return nil, errors.New("获取图书分类详情失败")
  47. }
  48. return bookType, nil
  49. }
  50. func (s *BooktypeServ) SaveBookType(booktype model.TaBookType) (*model.TaBookType, error) {
  51. if booktype.BookTypeImg == "" {
  52. return nil, errors.New("类型图片不能为空")
  53. }
  54. if booktype.CaseId == "" {
  55. return nil, errors.New("案场不能为空")
  56. }
  57. if booktype.BookTypeName == "" {
  58. return nil, errors.New("类型名称不能为空")
  59. }
  60. if booktype.BookTypeId == "" {
  61. num, err := s.dao.IsNameExist(booktype.BookTypeName, booktype.CaseId)
  62. if err != nil {
  63. utils.LogError("新增图书分类失败: " + err.Error())
  64. return nil, errors.New("新增图书分类失败")
  65. }
  66. if num > 0 {
  67. return nil, errors.New("已存在分类名称")
  68. }
  69. bookType, err := s.dao.AddBookType(booktype)
  70. if err != nil {
  71. utils.LogError("新增图书分类失败: " + err.Error())
  72. return nil, errors.New("新增图书分类失败")
  73. }
  74. return bookType, nil
  75. }
  76. bookType, err := s.dao.EditBookType(booktype)
  77. if err != nil {
  78. utils.LogError("修改图书分类失败: " + err.Error())
  79. return nil, errors.New("修改图书分类失败")
  80. }
  81. return bookType, nil
  82. }
  83. func (s *BooktypeServ) DeleteBookType(bookTypeId string) error {
  84. num, err := s.dao.IsExistBook(bookTypeId)
  85. if err != nil {
  86. utils.LogError("删除图书失败: " + err.Error())
  87. return errors.New("删除图书失败")
  88. }
  89. if num > 0 {
  90. return errors.New("该类型下有图书,不能删除")
  91. }
  92. err = s.dao.DeleteBookType(bookTypeId)
  93. if err != nil {
  94. utils.LogError("删除图书失败: " + err.Error())
  95. return errors.New("删除图书失败")
  96. }
  97. return nil
  98. }