annex_dao.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. // fmt.Println("start", start, "pageSize", pageSize)
  29. total, err := d.engine.Table("`cm_annex` as f").
  30. 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").
  31. Join("LEFT", "`cm_project_account` as a", "a.id = f.account_id").
  32. Where("f.data_id = ? and f.data_type = ?", dataId, dataType).
  33. Limit(pageSize, start).
  34. FindAndCount(&dataList)
  35. // fmt.Println("total", total)
  36. if err != nil {
  37. return dataList, 0
  38. }
  39. return dataList, total
  40. }
  41. // 获取总数
  42. func (d *AnnexDao) GetCount(dataType int, dataId int) (int64, error) {
  43. file := models.CmAnnex{DataType: dataType, DataId: dataId}
  44. total, err := d.engine.Count(&file)
  45. fmt.Println(err)
  46. if err != nil {
  47. return 0, err
  48. }
  49. return total, nil
  50. }
  51. // 批量插入数据
  52. func (d *AnnexDao) InsertByList(data []models.CmAnnex) error {
  53. _, err := d.engine.Insert(&data)
  54. // fmt.Println("__________________________________", data)
  55. return err
  56. }
  57. // 删除数据(记录id)
  58. func (d *AnnexDao) DeleteById(id int) error {
  59. file := models.CmAnnex{Id: id}
  60. _, err := d.engine.Delete(&file)
  61. return err
  62. }