safe_dao.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. "github.com/go-xorm/xorm"
  10. "go.mod/models"
  11. )
  12. //数据库操作引擎
  13. type SafeDao struct {
  14. engine *xorm.Engine
  15. }
  16. //获得一个DAO对象
  17. func NewSafeDao(engine *xorm.Engine) *SafeDao {
  18. return &SafeDao{
  19. engine: engine,
  20. }
  21. }
  22. func (d *SafeDao) FindById(id int) *models.CmSafe {
  23. data := &models.CmSafe{Id: id}
  24. ok, err := d.engine.Get(data)
  25. if ok && err == nil {
  26. return data
  27. } else {
  28. data.Id = 0
  29. return data
  30. }
  31. }
  32. // id获得数据
  33. func (d *SafeDao) GetListByBid(id int) []models.CmSafe {
  34. dataList := make([]models.CmSafe, 0)
  35. err := d.engine.
  36. Where("bidsection_id=?", id).
  37. Asc("id").
  38. Find(&dataList)
  39. if err != nil {
  40. return dataList
  41. }
  42. return dataList
  43. }
  44. // 插入单条记录
  45. func (d *SafeDao) InsertRecord(data models.CmSafe) (bool, error) {
  46. affected, err := d.engine.InsertOne(data)
  47. return affected > 0, err
  48. }
  49. // 删除记录
  50. func (d *SafeDao) DeleteRecord(id int) (bool, error) {
  51. safe := models.CmSafe{}
  52. affected, err := d.engine.Id(id).Delete(safe)
  53. return affected > 0, err
  54. }
  55. // 根据code获取记录
  56. func (d *SafeDao) FindByCode(code string) bool {
  57. data := &models.CmSafe{Code: code}
  58. has, _ := d.engine.Get(data)
  59. return has
  60. }
  61. // 筛选出应用了当前规则的条数
  62. func (d *SafeDao) CountRuleCode(bid int) (int64, error) {
  63. data := &models.CmSafe{}
  64. total, err := d.engine.Where("`bidsection_id` = ?", bid).Count(data)
  65. if err != nil {
  66. total = 0
  67. }
  68. return total, err
  69. }