一物一码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

95 rivejä
2.5 KiB

  1. package db
  2. import (
  3. "applet/app/db/model"
  4. "applet/app/utils/logx"
  5. "github.com/gin-gonic/gin"
  6. "xorm.io/xorm"
  7. )
  8. // SysPushUserByUIDByTypeIn is 根据uid和类型获取对应的通知
  9. func SysPushUserByUIDByTypeIn(c *gin.Context, Db *xorm.Engine, uid interface{}, limit int, start int, t ...interface{}) ([]*model.SysPushUser, error) {
  10. var m []*model.SysPushUser
  11. if limit == 0 && start == 0 {
  12. if err := Db.Where("uid = ?", uid).In("type", t...).Desc("time").Find(&m); err != nil {
  13. return nil, err
  14. }
  15. mm, err := sysModFormat(c, m)
  16. if err != nil {
  17. return nil, err
  18. }
  19. return mm.([]*model.SysPushUser), nil
  20. }
  21. if err := Db.Where("uid = ?", uid).In("type", t...).Limit(limit, start).Desc("time").Find(&m); err != nil {
  22. return nil, err
  23. }
  24. mm, err := sysModFormat(c, m)
  25. if err != nil {
  26. return nil, err
  27. }
  28. return mm.([]*model.SysPushUser), nil
  29. }
  30. //SysPushUserInTypeGET is In 查询 一个
  31. func SysPushUserInTypeGET(c *gin.Context, Db *xorm.Engine, uid interface{}, ts ...interface{}) (*model.SysPushUser, error) {
  32. m := new(model.SysPushUser)
  33. has, err := Db.Where("uid = ?", uid).In("type", ts...).Desc("time").Get(m)
  34. if err != nil {
  35. return nil, err
  36. }
  37. if !has {
  38. return nil, nil
  39. }
  40. mm, err := sysModFormat(c, m)
  41. if err != nil {
  42. return nil, err
  43. }
  44. return mm.(*model.SysPushUser), nil
  45. }
  46. //SysPushUserInType is In 查询
  47. func SysPushUserInType(c *gin.Context, Db *xorm.Engine, uid interface{}, ts ...interface{}) ([]*model.SysPushUser, error) {
  48. var m []*model.SysPushUser
  49. if err := Db.Where("uid = ?", uid).In("type", ts...).Desc("time").Find(&m); err != nil {
  50. return nil, err
  51. }
  52. mm, err := sysModFormat(c, &m)
  53. if err != nil {
  54. return nil, err
  55. }
  56. return mm.([]*model.SysPushUser), nil
  57. }
  58. //SysPushUserInTypeCount is In 查询
  59. func SysPushUserInTypeCount(Db *xorm.Engine, uid interface{}, ts ...interface{}) (int64, error) {
  60. m := new(model.SysPushUser)
  61. count, err := Db.Where("uid = ? AND is_read = 0", uid).In("type", ts...).Count(m)
  62. if err != nil {
  63. return 0, err
  64. }
  65. return count, nil
  66. }
  67. //SysPushUserInsertOne is 插入一条记录
  68. func SysPushUserInsertOne(Db *xorm.Engine, m *model.SysPushUser) (int64, error) {
  69. affected, err := Db.InsertOne(m)
  70. if err != nil {
  71. return 0, err
  72. }
  73. return affected, nil
  74. }
  75. //BatchUpdateSysPushUserRead is 批量更新某种类型的通知
  76. func BatchUpdateSysPushUserRead(Db *xorm.Engine, uid, t interface{}) error {
  77. sql := "update sys_push_user set is_read = ? where uid = ? and type = ?"
  78. _, err := Db.Exec(sql, 1, uid, t)
  79. if err != nil {
  80. return logx.Warn(err)
  81. }
  82. return nil
  83. }