123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- package autoreply
-
- import (
- "errors"
- "strings"
- "wechat-conf/models"
- "wechat-conf/models/autoreply"
- "wechat-conf/models/model"
- "wechat-conf/service"
- "wechat-conf/utils"
- )
-
- // AutoreplyServ 用户
- type AutoreplyServ struct {
- ctx *utils.Context
- dao *autoreply.AutoreplyDAO
- }
-
- // NewAutoreplyServ 初始化
- func NewAutoreplyServ(ctx *utils.Context) *AutoreplyServ {
- return &AutoreplyServ{
- ctx: ctx,
- dao: autoreply.NewAutoreplyDAO(ctx),
- }
- }
- func (s *AutoreplyServ) GetAutoReplyList(orgId, autoType string, page, pageSize int) (map[string]interface{}, error) {
- if pageSize == 0 {
- pageSize = service.PAGENUM
- }
- autoreply, err := s.dao.GetAutoReplyList(orgId, autoType, page, pageSize)
- if err != nil {
- utils.LogError("获取自动回复列表失败: " + err.Error())
- return nil, errors.New("获取自动回复列表失败")
- }
- total, err := s.dao.GetAutoReplyListCount(orgId, autoType)
- if err != nil {
- utils.LogError("获取自动回复列表失败: " + err.Error())
- return nil, errors.New("获取自动回复列表失败")
- }
- return map[string]interface{}{
- "list": autoreply,
- "pageSize": pageSize,
- "pagenum": total,
- "page": page,
- }, nil
- }
-
- func (s *AutoreplyServ) GetAutoReplyById(autoReplyId string) (*model.TaAutoReply, error) {
- autoreply, err := s.dao.GetAutoReplyById(autoReplyId)
- if err != nil {
- utils.LogError("获取自动回复详情失败: " + err.Error())
- return nil, errors.New("获取自动回复详情失败")
- }
- return autoreply, nil
- }
-
- func (s *AutoreplyServ) SaveAutoReply(autoreply model.TaAutoReply, orgId string) (*model.TaAutoReply, error) {
- var newAutoreply *model.TaAutoReply
- var err error
- if autoreply.AutoReplyId == "" {
- autoreply.OrgId = orgId
- newAutoreply, err = s.dao.AddAutoReply(autoreply)
- } else {
- err = s.dao.DeleteKeywords(autoreply.AutoReplyId)
- err = s.dao.UpdateAutoRelpy(autoreply)
- newAutoreply = &autoreply
- }
- if autoreply.AutoType == models.AUTOREPLY_KEYWORDS {
- keywords := strings.Split(autoreply.Keywords, ",")
- for i := 0; i < len(keywords); i++ {
- var keyword = model.TaAutoReplyKeywords{
- AutoReplyId: newAutoreply.AutoReplyId,
- Keywords: keywords[i],
- }
- err = s.dao.AddKeyword(keyword)
- }
- if err != nil {
- utils.LogError("保存自动回复失败: " + err.Error())
- return nil, errors.New("保存自动回复失败")
- }
- }
-
- return newAutoreply, nil
- }
-
- func (s *AutoreplyServ) DeleteAutoReply(autoreplyId string) error {
- err := s.dao.DeleteAutoReply(autoreplyId)
- err = s.dao.DeleteKeywords(autoreplyId)
- if err != nil {
- utils.LogError("删除自动回复失败: " + err.Error())
- return errors.New("删除自动回复失败")
- }
- return nil
- }
-
- // GetAutoReplayByAppID 获取自动回复消息
- func (s *AutoreplyServ) GetAutoReplayByAppID(appid, val string) (*model.TaAutoReply, error) {
- autoReplay, err := s.dao.GetAutoReplayByAppID(appid, val)
- if err != nil {
- utils.LogError("获取自动回复消息失败: " + err.Error())
- return nil, errors.New("获取自动回复消息失败")
- }
- return autoReplay, err
- }
-
- // GetSubscribeByAppID 获取关注回复消息
- func (s *AutoreplyServ) GetSubscribeByAppID(appid string) (*model.TaAutoReply, error) {
- autoReplay, err := s.dao.GetSubscribeByAppID(appid)
- if err != nil {
- utils.LogError("获取关注回复消息失败: " + err.Error())
- return nil, errors.New("获取关注回复消息失败")
- }
- return autoReplay, err
- }
-
- func (s *AutoreplyServ) DisableAutoreply(autoType, orgId, isUse string) error {
- err := s.dao.DisableAutoreply(autoType, orgId, isUse)
- if err != nil {
- utils.LogError("修改状态失败: " + err.Error())
- return errors.New("修改状态失败")
- }
- return nil
- }
|