project_dao.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /*
  2. * @description:工程项目数据库操作
  3. * @Author: CP
  4. * @Date: 2020-09-03 14:40:06
  5. * @FilePath: \construction_management\dao\project_dao.go
  6. */
  7. package dao
  8. import (
  9. "errors"
  10. "github.com/go-xorm/xorm"
  11. "go.mod/models"
  12. )
  13. //数据库操作引擎
  14. type ProjectDao struct {
  15. engine *xorm.Engine
  16. }
  17. //获得一个DAO对象
  18. func NewProjectDao(engine *xorm.Engine) *ProjectDao {
  19. return &ProjectDao{
  20. engine: engine,
  21. }
  22. }
  23. //CmProjectAccount 设置的值获得数据
  24. // func (d *ProjectDao) Get(data *models.CmProject) {
  25. // //data := data
  26. // ok, err := d.engine.Get(data)
  27. // if ok && err == nil {
  28. // //return nil
  29. // } else {
  30. // data.Id = 0
  31. // //return err
  32. // }
  33. // }
  34. //设置的值获得数据
  35. func (d *ProjectDao) GetCode(code string) *models.CmProject {
  36. data := &models.CmProject{}
  37. ok, err := d.engine.
  38. Where("code = ?", code).
  39. Get(data)
  40. if ok && err == nil {
  41. return data
  42. } else {
  43. data.Id = 0
  44. return data
  45. }
  46. }
  47. // 获得一组项目数据
  48. func (d *ProjectDao) GetListByCode(code string) []models.CmProject {
  49. datalist := make([]models.CmProject, 0)
  50. err := d.engine.
  51. Where("code like ?", code+"%").
  52. Desc("id").
  53. Find(&datalist)
  54. if err != nil {
  55. return datalist
  56. } else {
  57. return datalist
  58. }
  59. }
  60. //更新
  61. func (d *ProjectDao) Update(data *models.CmProject, columns []string) error {
  62. //_, err := d.engine.Id(data.Id).MustCols(columns...).Update(data)
  63. is, err := d.engine.Where("id = ? ", data.Id).MustCols(columns...).Update(data)
  64. if is == 0 {
  65. return errors.New("未找到项目")
  66. }
  67. return err
  68. }