package db import ( "applet/app/db/model" "applet/app/utils/logx" "github.com/gin-gonic/gin" "xorm.io/xorm" ) // SysPushUserByUIDByTypeIn is 根据uid和类型获取对应的通知 func SysPushUserByUIDByTypeIn(c *gin.Context, Db *xorm.Engine, uid interface{}, limit int, start int, t ...interface{}) ([]*model.SysPushUser, error) { var m []*model.SysPushUser if limit == 0 && start == 0 { if err := Db.Where("uid = ?", uid).In("type", t...).Desc("time").Find(&m); err != nil { return nil, err } mm, err := sysModFormat(c, m) if err != nil { return nil, err } return mm.([]*model.SysPushUser), nil } if err := Db.Where("uid = ?", uid).In("type", t...).Limit(limit, start).Desc("time").Find(&m); err != nil { return nil, err } mm, err := sysModFormat(c, m) if err != nil { return nil, err } return mm.([]*model.SysPushUser), nil } //SysPushUserInTypeGET is In 查询 一个 func SysPushUserInTypeGET(c *gin.Context, Db *xorm.Engine, uid interface{}, ts ...interface{}) (*model.SysPushUser, error) { m := new(model.SysPushUser) has, err := Db.Where("uid = ?", uid).In("type", ts...).Desc("time").Get(m) if err != nil { return nil, err } if !has { return nil, nil } mm, err := sysModFormat(c, m) if err != nil { return nil, err } return mm.(*model.SysPushUser), nil } //SysPushUserInType is In 查询 func SysPushUserInType(c *gin.Context, Db *xorm.Engine, uid interface{}, ts ...interface{}) ([]*model.SysPushUser, error) { var m []*model.SysPushUser if err := Db.Where("uid = ?", uid).In("type", ts...).Desc("time").Find(&m); err != nil { return nil, err } mm, err := sysModFormat(c, &m) if err != nil { return nil, err } return mm.([]*model.SysPushUser), nil } //SysPushUserInTypeCount is In 查询 func SysPushUserInTypeCount(Db *xorm.Engine, uid interface{}, ts ...interface{}) (int64, error) { m := new(model.SysPushUser) count, err := Db.Where("uid = ? AND is_read = 0", uid).In("type", ts...).Count(m) if err != nil { return 0, err } return count, nil } //SysPushUserInsertOne is 插入一条记录 func SysPushUserInsertOne(Db *xorm.Engine, m *model.SysPushUser) (int64, error) { affected, err := Db.InsertOne(m) if err != nil { return 0, err } return affected, nil } //BatchUpdateSysPushUserRead is 批量更新某种类型的通知 func BatchUpdateSysPushUserRead(Db *xorm.Engine, uid, t interface{}) error { sql := "update sys_push_user set is_read = ? where uid = ? and type = ?" _, err := Db.Exec(sql, 1, uid, t) if err != nil { return logx.Warn(err) } return nil }