|
- 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
- }
|