itemapi.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. // 模块模型操作接口-项目
  2. // 秒寻科技
  3. // zt 2024-02-03
  4. package projectapi
  5. import (
  6. "errors"
  7. "ipsomc/core/dao/mysql/mysqlapi"
  8. "ipsomc/core/dao/mysql/mysqlmodel"
  9. "ipsomc/module/project/projectmodel"
  10. )
  11. type ProjectApi struct {
  12. MySqlApi mysqlapi.MySqlApi
  13. }
  14. // 查重
  15. func (obj *ProjectApi) AddProject(dataModel *projectmodel.Project) error {
  16. var count uint
  17. //项目名称查重
  18. if err := obj.MySqlApi.GetDb().Model(dataModel).Where("company_id=? and name=?", dataModel.CompanyID, dataModel.Name).Count(&count).Error; err != nil {
  19. return err
  20. }
  21. if count > 0 {
  22. return errors.New("该项目已经存在")
  23. }
  24. //项目编号查重
  25. count = 0
  26. if err := obj.MySqlApi.GetDb().Model(dataModel).Where("project_id=?", dataModel.ProjectID).Count(&count).Error; err != nil {
  27. return err
  28. }
  29. if count > 0 {
  30. return errors.New("该项目编号已经存在")
  31. }
  32. //查重二级域名
  33. count = 0
  34. if err := obj.MySqlApi.GetDb().Model(dataModel).Where("domain_name=?", dataModel.DomainName).Count(&count).Error; err != nil {
  35. return err
  36. }
  37. if count > 0 {
  38. return errors.New("该二级域名已经存在")
  39. }
  40. if err := obj.MySqlApi.AddItem(dataModel); err != nil {
  41. return errors.New("数据库操作失败")
  42. }
  43. return nil
  44. }
  45. // 修改
  46. func (obj *ProjectApi) UpdateProject(dataModel *projectmodel.Project, dataMap map[string]interface{}) error {
  47. var count uint
  48. var tmpModel projectmodel.Project
  49. //查重
  50. if err := obj.MySqlApi.GetDb().Model(&tmpModel).Where("id<>? and company_id=? and name=?", dataModel.ID, dataModel.CompanyID, dataModel.Name).Count(&count).Error; err != nil {
  51. return err
  52. }
  53. if count > 0 {
  54. return errors.New("该项目已经存在")
  55. }
  56. //查重二级域名
  57. count = 0
  58. if err := obj.MySqlApi.GetDb().Model(dataModel).Where("domain_name=?", dataModel.DomainName).Count(&count).Error; err != nil {
  59. return err
  60. }
  61. if count > 0 {
  62. return errors.New("域名已经存在")
  63. }
  64. if err := obj.MySqlApi.UpdateItem(dataModel, dataMap); err != nil {
  65. return err
  66. }
  67. return nil
  68. }
  69. // 删除
  70. func (obj *ProjectApi) DeleteProject(dataModel *projectmodel.Project) error {
  71. if err := obj.MySqlApi.DeleteItem(dataModel); err != nil {
  72. return errors.New("删除记录失败")
  73. }
  74. return nil
  75. }
  76. // 查询单条记录
  77. func (obj *ProjectApi) GetProjectById(dataModel *projectmodel.Project) error {
  78. if err := obj.MySqlApi.GetItemByID(dataModel); err != nil {
  79. return errors.New("查询记录失败")
  80. }
  81. return nil
  82. }
  83. // 根据域名获得项目
  84. func (obj *ProjectApi) GetProjectByDomainName(dataModel *projectmodel.Project) error {
  85. if err := obj.MySqlApi.GetDb().Model(dataModel).Where("domain_name=?", dataModel.DomainName).First(dataModel).Error; err != nil {
  86. return errors.New("查询记录失败")
  87. }
  88. return nil
  89. }
  90. // 查询记录
  91. func (obj *ProjectApi) GetProjectList(dataModel *projectmodel.Project, listParam *mysqlmodel.ListParam, dataList interface{}) error {
  92. if err := obj.MySqlApi.GetItemList(dataModel, listParam, dataList); err != nil {
  93. return err
  94. }
  95. return nil
  96. }
  97. // 分页查询记录
  98. func (obj *ProjectApi) GetProjectPageList(dataModel *projectmodel.Project, pageListParam *mysqlmodel.PageListParam, dataList interface{}) (mysqlmodel.PageListData, error) {
  99. pageListData, err := obj.MySqlApi.GetPageItemList(dataModel, pageListParam, dataList)
  100. if err != nil {
  101. return pageListData, err
  102. }
  103. return pageListData, nil
  104. }