model.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. /**
  3. * The model file of serverroom module of ZenTaoPMS.
  4. *
  5. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
  6. * @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  7. * @author Jiangxiu Peng <pengjiangxiu@cnezsoft.com>
  8. * @package serverroom
  9. * @link https://www.zentao.net
  10. */
  11. class serverroomModel extends model
  12. {
  13. /**
  14. * 获取机房列表。
  15. * Get room list.
  16. *
  17. * @param string $browseType
  18. * @param int $param
  19. * @param string $orderBy
  20. * @param object $pager
  21. * @access public
  22. * @return array
  23. */
  24. public function getList($browseType = 'all', $param = 0, $orderBy = 'id_desc', $pager = null)
  25. {
  26. $query = '';
  27. if($browseType == 'bysearch')
  28. {
  29. if($param)
  30. {
  31. $query = $this->loadModel('search')->getQuery($param);
  32. if($query)
  33. {
  34. $this->session->set('serverroomQuery', $query->sql);
  35. $this->session->set('serverroomForm', $query->form);
  36. }
  37. else
  38. {
  39. $this->session->set('serverroomQuery', ' 1 = 1');
  40. }
  41. }
  42. else
  43. {
  44. if($this->session->serverroomQuery == false) $this->session->set('serverroomQuery', ' 1 = 1');
  45. }
  46. $query = $this->session->serverroomQuery;
  47. }
  48. return $this->dao->select('*')->from(TABLE_SERVERROOM)
  49. ->where('deleted')->eq('0')
  50. ->beginIF($query)->andWhere($query)->fi()
  51. ->orderBy($orderBy)
  52. ->page($pager)
  53. ->fetchAll('id');
  54. }
  55. /**
  56. * 获取机房键值对信息。
  57. * Get server room pairs
  58. *
  59. * @access public
  60. * @return array
  61. */
  62. public function getPairs()
  63. {
  64. $rooms = $this->dao->select('id, city, provider, name')->from(TABLE_SERVERROOM)
  65. ->where('deleted')->eq('0')
  66. ->orderBy('id_desc')
  67. ->fetchAll('id');
  68. foreach($rooms as $roomID => $room)
  69. {
  70. $city = zget($this->lang->serverroom->cityList, $room->city, '');
  71. $provider = zget($this->lang->serverroom->providerList, $room->provider, '');
  72. $name = $city ? $city . ' - ' : '';
  73. $name .= $provider ? $provider . ' - ' : '';
  74. $name .= $room->name;
  75. $rooms[$roomID] = $name;
  76. }
  77. return $rooms;
  78. }
  79. /**
  80. * 创建机房信息。
  81. * Create serverroom.
  82. *
  83. * @param object $room
  84. * @access public
  85. * @return int
  86. */
  87. public function create($room)
  88. {
  89. $this->dao->insert(TABLE_SERVERROOM)->data($room)->autoCheck()
  90. ->batchCheck($this->config->serverroom->create->requiredFields, 'notempty')
  91. ->exec();
  92. if(dao::isError()) return false;
  93. return $this->dao->lastInsertID();
  94. }
  95. /**
  96. * 更新机房信息。
  97. * Update serverroom.
  98. *
  99. * @param int $roomID
  100. * @access public
  101. * @return array
  102. * @param object $room
  103. */
  104. public function update($roomID, $room)
  105. {
  106. $oldRoom = $this->fetchByID($roomID);
  107. $this->dao->update(TABLE_SERVERROOM)->data($room)->autoCheck()
  108. ->batchCheck($this->config->serverroom->edit->requiredFields, 'notempty')
  109. ->where('id')->eq($roomID)
  110. ->exec();
  111. if(dao::isError()) return false;
  112. return common::createChanges($oldRoom, $room);
  113. }
  114. }