package wechatcontent

import (
	"strconv"
	"time"
	"wechat-conf/models"
	"wechat-conf/models/model"
	"wechat-conf/utils"

	"github.com/go-xorm/xorm"
)

// WechatContentDAO 当前数据库操作对象
type WechatContentDAO struct {
	ctx *utils.Context
	db  *xorm.Session
}

// NewWechatContentDAO New Inst
func NewWechatContentDAO(ctx *utils.Context) *WechatContentDAO {
	return &WechatContentDAO{
		ctx: ctx,
		db:  ctx.DB,
	}
}
func (m *WechatContentDAO) GetWechatContentList(orgId string, page, pagesize int) ([]model.TaWechatContent, error) {
	var content []model.TaWechatContent
	sql := `SELECT * FROM ta_wechat_content where status > ` + strconv.Itoa(models.STATUS_DEL) + ` 
	and org_id = '` + orgId + `'`
	sql += ` order by create_date desc limit ` + strconv.Itoa((page-1)*pagesize) + `, ` + strconv.Itoa(pagesize)
	err := m.db.Sql(sql).Find(&content)
	return content, err
}
func (m *WechatContentDAO) GetWechatContentListCount(orgId string) (int, error) {
	var content []model.TaWechatContent
	sql := `SELECT * FROM ta_wechat_content where status > ` + strconv.Itoa(models.STATUS_DEL) + ` 
	and org_id = '` + orgId + `'`
	err := m.db.Sql(sql).Find(&content)
	return len(content), err
}
func (m *WechatContentDAO) GetWechatContentByMediaId(mediaId string) (*model.TaWechatContent, error) {
	var content []model.TaWechatContent
	sql := `SELECT * FROM ta_wechat_content where media_id = '` + mediaId + `'`
	err := m.db.Sql(sql).Find(&content)
	if len(content) > 0 {
		return &content[0], err
	}
	return nil, err
}
func (m *WechatContentDAO) AddWechatContent(content model.TaWechatContent) error {
	content.CreateDate = time.Now()
	content.Status = models.STATUS_NORMAL
	_, err := m.db.Insert(content)
	return err
}
func (m *WechatContentDAO) DeleteWechatContent(mediaId string) error {
	var content = model.TaWechatContent{
		MediaId: mediaId,
		Status:  models.STATUS_DEL,
	}
	var cols = []string{
		"status",
	}
	_, err := m.db.Cols(cols...).Where("media_id = ?", content.MediaId).Update(content)
	return err
}