project_account_dao.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. /*
  2. * @description:项目用户数据库操作
  3. * @Author: CP
  4. * @Date: 2020-08-31 15:57:04
  5. * @FilePath: \construction_management\dao\project_account_dao.go
  6. */
  7. package dao
  8. import (
  9. "errors"
  10. "github.com/go-xorm/xorm"
  11. "go.mod/models"
  12. )
  13. //数据库操作引擎
  14. type ProjectAccountDao struct {
  15. engine *xorm.Engine
  16. }
  17. //获得一个DAO对象
  18. func NewProjectAccountDao(engine *xorm.Engine) *ProjectAccountDao {
  19. return &ProjectAccountDao{
  20. engine: engine,
  21. }
  22. }
  23. //CmProjectAccount 设置的值获得数据
  24. func (d *ProjectAccountDao) GetOne(data *models.CmProjectAccount) *models.CmProjectAccount {
  25. //data := data
  26. //Get取到值后,会自动赋值到data中
  27. ok, err := d.engine.Get(data)
  28. if ok && err == nil {
  29. return data
  30. } else {
  31. data.Id = 0
  32. return data
  33. }
  34. }
  35. //id获得数据
  36. func (d *ProjectAccountDao) Get(id int, projectId int) *models.CmProjectAccount {
  37. data := &models.CmProjectAccount{Id: id, ProjectId: projectId}
  38. ok, err := d.engine.Get(data)
  39. if ok && err == nil {
  40. return data
  41. } else {
  42. data.Id = 0
  43. return data
  44. }
  45. }
  46. // 获得项目下的账号信息
  47. func (d *ProjectAccountDao) GetAll(projectId int) []models.CmProjectAccount {
  48. datalist := make([]models.CmProjectAccount, 0)
  49. err := d.engine.
  50. Where("project_id = ?", projectId).
  51. Desc("id").
  52. Find(&datalist)
  53. if err != nil {
  54. return datalist
  55. } else {
  56. return datalist
  57. }
  58. }
  59. func (d *ProjectAccountDao) GetInId(ids string) []models.CmProjectAccount {
  60. datalist := make([]models.CmProjectAccount, 0)
  61. err := d.engine.
  62. Where("id in (?) ", ids).
  63. Desc("id").
  64. Find(&datalist)
  65. if err != nil {
  66. return datalist
  67. } else {
  68. return datalist
  69. }
  70. }
  71. // 检索 账号姓名单位手机
  72. func (d *ProjectAccountDao) Search(name string, projectId int) []models.CmProjectAccount {
  73. datalist := make([]models.CmProjectAccount, 0)
  74. err := d.engine.
  75. Where("project_id = ? ", projectId).
  76. And("account like ? or name like ? or company like ? or mobile like ?", name+"%", name+"%", name+"%", name+"%").
  77. Desc("id").
  78. Find(&datalist)
  79. if err != nil {
  80. return datalist
  81. } else {
  82. return datalist
  83. }
  84. }
  85. // 新增
  86. func (d *ProjectAccountDao) Add(data *models.CmProjectAccount) error {
  87. _, err := d.engine.Insert(data)
  88. return err
  89. }
  90. //更新
  91. func (d *ProjectAccountDao) Update(data *models.CmProjectAccount, columns []string) error {
  92. //_, err := d.engine.Id(data.Id).MustCols(columns...).Update(data)
  93. is, err := d.engine.Where("id = ? and project_id = ? ", data.Id, data.ProjectId).MustCols(columns...).Update(data)
  94. if is == 0 {
  95. return errors.New("未找到账号")
  96. }
  97. return err
  98. }
  99. // 物理删除
  100. func (d *ProjectAccountDao) Delete(data *models.CmProjectAccount) error {
  101. is, err := d.engine.Where("id = ? and project_id = ? ", data.Id, data.ProjectId).Delete(data)
  102. if is == 0 {
  103. return errors.New("未找到账号")
  104. }
  105. return err
  106. }