annex_dao.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. * @description: 安全巡检数据库操作相关
  3. * @Author: LanJianRong
  4. * @Date: 2020-11-20
  5. * @FilePath: \construction_management\dao\safe_dao.go
  6. */
  7. package dao
  8. import (
  9. "fmt"
  10. "github.com/go-xorm/xorm"
  11. "go.mod/models"
  12. "go.mod/web/viewmodels"
  13. )
  14. // 数据库操作引擎
  15. type AnnexDao struct {
  16. engine *xorm.Engine
  17. }
  18. // 获得一个DAO对象
  19. func NewAnnexDao(engine *xorm.Engine) *AnnexDao {
  20. return &AnnexDao{
  21. engine: engine,
  22. }
  23. }
  24. // 获取附件列表
  25. func (d *AnnexDao) GetList(dataType int, dataId int, pageNo int, pageSize int) ([]viewmodels.AnnexListView, int64) {
  26. dataList := make([]viewmodels.AnnexListView, 0)
  27. start := (pageNo - 1) * pageSize
  28. total, err := d.engine.Table("`cm_annex` as f").
  29. Select("f.`id`, f.`account_id`, f.`create_time`, f.`name` as file_name, f.`oss_url` as file_path, a.`name` as account_name").
  30. Join("LEFT", "`cm_project_account` as a", "a.id = f.account_id").
  31. Where("f.data_id = ? and f.data_type = ?", dataId, dataType).
  32. Limit(pageSize, start).
  33. FindAndCount(&dataList)
  34. if err != nil {
  35. return dataList, 0
  36. }
  37. return dataList, total
  38. }
  39. // 获取总数
  40. func (d *AnnexDao) GetCount(dataType int, dataId int) (int64, error) {
  41. file := models.CmAnnex{DataType: dataType, DataId: dataId}
  42. total, err := d.engine.Count(&file)
  43. fmt.Println(err)
  44. if err != nil {
  45. return 0, err
  46. }
  47. return total, nil
  48. }
  49. // 批量插入数据
  50. func (d *AnnexDao) InsertByList(data []models.CmAnnex) error {
  51. _, err := d.engine.Insert(&data)
  52. // fmt.Println("__________________________________", data)
  53. return err
  54. }
  55. // 删除数据(记录id)
  56. func (d *AnnexDao) DeleteById(id int) error {
  57. file := models.CmAnnex{Id: id}
  58. _, err := d.engine.Delete(&file)
  59. return err
  60. }