1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package channel
  2. import (
  3. "errors"
  4. "spaceofcheng/services/models/channel"
  5. "spaceofcheng/services/models/model"
  6. "spaceofcheng/services/service"
  7. "spaceofcheng/services/utils"
  8. )
  9. // ChannelServ 系统处理
  10. type ChannelServ struct {
  11. ctx *utils.Context
  12. dao *channel.ChannelDAO
  13. }
  14. // NewChannelServ 初始化
  15. func NewChannelServ(ctx *utils.Context) *ChannelServ {
  16. return &ChannelServ{
  17. ctx: ctx,
  18. dao: channel.NewChannelDAO(ctx),
  19. }
  20. }
  21. // GetChannelList 获取渠道列表
  22. func (s *ChannelServ) GetChannelList(caseid string, page, pageSize int) (map[string]interface{}, error) {
  23. if pageSize == 0 {
  24. pageSize = service.PAGENUM
  25. }
  26. channels, err := s.dao.GetChannels(caseid, page, pageSize)
  27. if err != nil {
  28. utils.LogError("获取渠道列表失败: " + err.Error())
  29. return nil, errors.New("获取渠道列表失败")
  30. }
  31. total, err := s.dao.GetChannelsCount(caseid)
  32. if err != nil {
  33. utils.LogError("获取渠道列表失败: " + err.Error())
  34. return nil, errors.New("获取渠道列表失败")
  35. }
  36. return map[string]interface{}{
  37. "list": channels,
  38. "pageSize": pageSize,
  39. "pagenum": total,
  40. "page": page,
  41. }, nil
  42. }
  43. // GetChannelById 根据渠道id获取渠道
  44. func (s *ChannelServ) GetChannelById(channelId string) (*model.TaChannel, error) {
  45. channel, err := s.dao.GetChannelById(channelId)
  46. if err != nil {
  47. utils.LogError("获取渠道信息失败: " + err.Error())
  48. return nil, errors.New("获取渠道信息失败")
  49. }
  50. return channel, nil
  51. }
  52. // SaveChannel 保存渠道
  53. func (s *ChannelServ) SaveChannel(channel model.TaChannel) (*model.TaChannel, error) {
  54. var newChannel *model.TaChannel
  55. var err error
  56. if channel.ChannelId == "" {
  57. newChannel, err = s.dao.AddNewChannel(channel)
  58. } else {
  59. err = s.dao.UpdateChannel(channel)
  60. newChannel = &channel
  61. }
  62. if err != nil {
  63. utils.LogError("保存渠道信息失败: " + err.Error())
  64. return nil, errors.New("保存渠道信息失败")
  65. }
  66. return newChannel, nil
  67. }
  68. // DeleteChannel 删除渠道
  69. func (s *ChannelServ) DeleteChannel(caseid string) error {
  70. err := s.dao.DeleteChannel(caseid)
  71. if err != nil {
  72. utils.LogError("删除渠道信息失败: " + err.Error())
  73. return errors.New("删除渠道信息失败")
  74. }
  75. return err
  76. }