message.go 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package message
  2. import (
  3. "spaceofcheng/services/models"
  4. "spaceofcheng/services/models/model"
  5. "spaceofcheng/services/utils"
  6. "strconv"
  7. "time"
  8. "github.com/go-xorm/xorm"
  9. )
  10. // MessageDAO 当前数据库操作对象
  11. type MessageDAO struct {
  12. ctx *utils.Context
  13. db *xorm.Session
  14. }
  15. // NewMessageDAO New Inst
  16. func NewMessageDAO(ctx *utils.Context) *MessageDAO {
  17. return &MessageDAO{
  18. ctx: ctx,
  19. db: ctx.DB,
  20. }
  21. }
  22. // GetCmsInfoList 获取消息列表
  23. func (m *MessageDAO) GetCmsInfoList(title, orgid string, page int, pageSize int) ([]model.TaCmsInfo, error) {
  24. var cmsinfos []model.TaCmsInfo
  25. dao := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("org_id=?", orgid)
  26. if title != "" {
  27. dao.And("info_name like '%" + title + "%'")
  28. }
  29. err := dao.Limit(pageSize, (page-1)*pageSize).Desc("create_date").Find(&cmsinfos)
  30. return cmsinfos, err
  31. }
  32. // GetCmsInfoListCount 消息列表
  33. func (m *MessageDAO) GetCmsInfoListCount(title, orgid string) (int, error) {
  34. var cmsinfos []model.TaCmsInfo
  35. dao := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("org_id=?", orgid)
  36. if title != "" {
  37. dao.And("info_name like '%" + title + "%'")
  38. }
  39. err := dao.Find(&cmsinfos)
  40. if err != nil {
  41. return 0, err
  42. }
  43. return len(cmsinfos), nil
  44. }
  45. // GetCmsInfoByLocation 根据位置获取消息信息
  46. func (m *MessageDAO) GetCmsInfoByLocation(locationid, orgid string) ([]model.TaCmsInfo, error) {
  47. var cmsinfos []model.TaCmsInfo
  48. err := m.db.Where("status=?", models.STATUS_NORMAL).And("org_id=?", orgid).And("location_id=?", locationid).Desc("create_date").Find(&cmsinfos)
  49. return cmsinfos, err
  50. }
  51. // GetCmsInfoByID 获取单条消息记录
  52. func (m *MessageDAO) GetCmsInfoByID(id string) (*model.TaCmsInfo, error) {
  53. var cmsinfos []model.TaCmsInfo
  54. err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("info_id=?", id).Find(&cmsinfos)
  55. if err != nil {
  56. return nil, err
  57. }
  58. return &cmsinfos[0], nil
  59. }
  60. // AddCmsInfo 新增消息记录
  61. func (m *MessageDAO) AddCmsInfo(cmsinfo model.TaCmsInfo) (*model.TaCmsInfo, error) {
  62. cmsinfo.InfoId = utils.GetGUID()
  63. cmsinfo.Status = models.STATUS_NORMAL
  64. cmsinfo.CreateDate = time.Now()
  65. user := m.ctx.Get("user").(model.SysUser)
  66. cmsinfo.CreateUser = user.UserId
  67. _, err := m.db.Insert(cmsinfo)
  68. return &cmsinfo, err
  69. }
  70. // UpdateCmsInfo 修改
  71. func (m *MessageDAO) UpdateCmsInfo(cmsinfo model.TaCmsInfo) error {
  72. var cols = []string{
  73. "info_name",
  74. "info_url",
  75. "location_id",
  76. "case_id",
  77. }
  78. _, err := m.db.Cols(cols...).Where("info_id=?", cmsinfo.InfoId).Update(cmsinfo)
  79. return err
  80. }
  81. // DelCmsInfo 删除
  82. func (m *MessageDAO) DelCmsInfo(infoid string) error {
  83. var info = model.TaCmsInfo{
  84. InfoId: infoid,
  85. Status: models.STATUS_DEL,
  86. }
  87. var cols = []string{
  88. "status",
  89. }
  90. _, err := m.db.Cols(cols...).Where("info_id=?", info.InfoId).Update(info)
  91. return err
  92. }