package autoreply import ( "strconv" "time" "wechat-conf/models" "wechat-conf/models/model" "wechat-conf/utils" "github.com/go-xorm/xorm" ) // AutoreplyDAO 当前数据库操作对象 type AutoreplyDAO struct { ctx *utils.Context db *xorm.Session } // NewAutoreplyDAO New Inst func NewAutoreplyDAO(ctx *utils.Context) *AutoreplyDAO { return &AutoreplyDAO{ ctx: ctx, db: ctx.DB, } } func (m *AutoreplyDAO) GetAutoReplyList(orgId, autoType string, page, pagesize int) ([]model.TaAutoReply, error) { var autoreply []model.TaAutoReply sql := `SELECT * FROM ta_auto_reply WHERE org_id = '` + orgId + `' AND auto_type = '` + autoType + `' and status >`+ strconv.Itoa(models.STATUS_DEL) sql += ` order by create_date desc limit ` + strconv.Itoa((page-1)*pagesize) + `, ` + strconv.Itoa(pagesize) err := m.db.Sql(sql).Find(&autoreply) return autoreply, err } func (m *AutoreplyDAO) GetAutoReplyListCount(orgId, autoType string) (int, error) { var autoreply []model.TaAutoReply sql := `SELECT * FROM ta_auto_reply WHERE org_id = '` + orgId + `' AND auto_type = '` + autoType + `'` err := m.db.Sql(sql).Find(&autoreply) return len(autoreply), err } func (m *AutoreplyDAO) AddAutoReply(auto model.TaAutoReply) (*model.TaAutoReply, error) { auto.CreateDate = time.Now() auto.Status = models.STATUS_NORMAL auto.AutoReplyId = utils.GetGUID() _, err := m.db.Insert(auto) return &auto, err } func (m *AutoreplyDAO) AddKeyword(keyword model.TaAutoReplyKeywords) error { keyword.KeywordsId = utils.GetGUID() keyword.Status = models.STATUS_NORMAL _, err := m.db.Insert(keyword) return err } func (m *AutoreplyDAO) UpdateAutoRelpy(auto model.TaAutoReply) error { var cols = []string{ "auto_type", "rule_name", "pair_type", "message_type", "message_paragraph", "message_img", "message_content", "keywords", } _, err := m.db.Cols(cols...).Where("auto_reply_id = ?", auto.AutoReplyId).Update(auto) return err } func (m *AutoreplyDAO) DeleteKeywords(autoReplyId string) error { _, err := m.db.Delete(&model.TaAutoReplyKeywords{AutoReplyId: autoReplyId}) return err } func (m *AutoreplyDAO) DeleteAutoReply(autoReplyId string) error { var auto = model.TaAutoReply{ AutoReplyId: autoReplyId, Status: models.STATUS_DEL, } var cols = []string{ "status", } _, err := m.db.Cols(cols...).Where("auto_reply_id = ?", auto.AutoReplyId).Update(auto) return err } func (m *AutoreplyDAO) GetAutoReplyById(autoReplyId string) (*model.TaAutoReply, error) { var autoReply []model.TaAutoReply sql := `SELECT * FROM ta_auto_reply WHERE auto_reply_id = '` + autoReplyId + `'` err := m.db.Sql(sql).Find(&autoReply) if len(autoReply) > 0 { return &autoReply[0], err } return nil, err }