companyapi.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. // 模块模型操作接口-公司
  2. // 秒寻科技
  3. // zt 2024-02-01
  4. package companyapi
  5. import (
  6. "errors"
  7. "ipsomc/core/company/companymodel"
  8. "ipsomc/core/dao/mysql/mysqlapi"
  9. "ipsomc/core/dao/mysql/mysqlmodel"
  10. "ipsomc/module/project/projectapi"
  11. "strconv"
  12. )
  13. type CompanyApi struct {
  14. MySqlApi mysqlapi.MySqlApi
  15. ProjectApi projectapi.ProjectApi
  16. }
  17. // 查重
  18. func (obj *CompanyApi) CheckCompany(dataModel *companymodel.Company) error {
  19. var count uint
  20. //查重
  21. if err := obj.MySqlApi.GetDb().Model(dataModel).Where("name=?", dataModel.Name).Count(&count).Error; err != nil {
  22. return err
  23. }
  24. if count > 0 {
  25. return errors.New("该公司已注册")
  26. }
  27. return nil
  28. }
  29. // 新增基站基本参数
  30. func (obj *CompanyApi) AddCompany(dataModel *companymodel.Company) error {
  31. var count int = 0
  32. //查重
  33. if err := obj.MySqlApi.GetDb().Model(dataModel).Where("name=?", dataModel.Name).Count(&count).Error; err != nil {
  34. return err
  35. }
  36. if count > 0 {
  37. return errors.New("新增错误,该公司已经存在")
  38. }
  39. //保存数据
  40. if err := obj.MySqlApi.AddItem(dataModel); err != nil {
  41. return err
  42. }
  43. return nil
  44. }
  45. // 修改基站基本参数
  46. func (obj *CompanyApi) UpdateCompany(dataModel *companymodel.Company, dataMap map[string]interface{}) error {
  47. var count int = 0
  48. //查重
  49. if err := obj.MySqlApi.GetDb().Model(dataModel).Where("id<>? and name=?", dataModel.ID, dataModel.Name).Count(&count).Error; err != nil {
  50. return err
  51. }
  52. if count > 0 {
  53. return errors.New("修改错误,该公司已经存在")
  54. }
  55. //保存数据
  56. if err := obj.MySqlApi.UpdateItem(dataModel, dataMap); err != nil {
  57. return err
  58. }
  59. return nil
  60. }
  61. // 删除
  62. func (obj *CompanyApi) DeleteCompany(dataModel *companymodel.Company) error {
  63. //检查该公司是否存在项目,存在项目则不能删除
  64. count, err := obj.ProjectApi.GetCompanyProjectSum(dataModel.ID)
  65. if err != nil {
  66. return err
  67. }
  68. if count > 0 {
  69. return errors.New("该公司已创建 " + strconv.Itoa(count) + " 个项目,请先删除项目资料再删除公司资料")
  70. }
  71. //删除公司资料和管理员资源(包括系统管理员和项目管理员)
  72. if err := obj.MySqlApi.DeleteItem(dataModel); err != nil {
  73. return errors.New("删除记录失败")
  74. }
  75. return nil
  76. }
  77. // 查询一条公司记录
  78. func (obj *CompanyApi) GetCompanyById(dataModel *companymodel.Company) error {
  79. if err := obj.MySqlApi.GetItemByID(dataModel); err != nil {
  80. return err
  81. }
  82. return nil
  83. }
  84. // 分页查询记录
  85. func (obj *CompanyApi) GetCompanyPageList(dataModel *companymodel.Company, pageListParam *mysqlmodel.PageListParam, dataList interface{}) (mysqlmodel.PageListData, error) {
  86. pageListData, err := obj.MySqlApi.GetPageItemList(dataModel, pageListParam, dataList)
  87. if err != nil {
  88. return pageListData, err
  89. }
  90. return pageListData, nil
  91. }