You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

133 lines
3.6 KiB

  1. <?php
  2. namespace backend\modules\hotel\models;
  3. use Yii;
  4. /**
  5. * This is the model class for table "{{%opera_sort}}".
  6. *
  7. * @property integer $id
  8. * @property integer $hotel_id
  9. * @property integer $base_room_id
  10. * @property integer $room_id
  11. * @property integer $channel_id
  12. * @property integer $seq
  13. */
  14. class OperaSort extends \yii\db\ActiveRecord
  15. {
  16. /**
  17. * @inheritdoc
  18. */
  19. public static function tableName()
  20. {
  21. return '{{%opera_sort}}';
  22. }
  23. /**
  24. * @inheritdoc
  25. */
  26. public function rules()
  27. {
  28. return [
  29. [['hotel_id', 'base_room_id'], 'required'],
  30. [['hotel_id', 'base_room_id', 'room_id', 'channel_id', 'seq'], 'integer'],
  31. ];
  32. }
  33. /**
  34. * @inheritdoc
  35. */
  36. public function attributeLabels()
  37. {
  38. return [
  39. 'id' => 'ID',
  40. 'hotel_id' => '酒店ID',
  41. 'base_room_id' => '基础房型ID',
  42. 'room_id' => '子房型ID',
  43. 'channel_id' => '渠道ID 0:非渠道 非0:渠道ID',
  44. 'seq' => '排列顺序',
  45. ];
  46. }
  47. /**
  48. * User:Steven
  49. * Desc:获取携程与与携程有直连关系的酒店
  50. */
  51. public function getDirectHotel()
  52. {
  53. $db = Yii::$app->db;
  54. $sql1 = "select HOTEL_ID,HOTEL_NAME from opera_hotel where cancel_flag=0";
  55. $rs = $db->createCommand($sql1)->queryAll();
  56. return $rs;
  57. }
  58. /**
  59. * User:石福鹏
  60. * 获取基础房型及其排序规则
  61. * @param $hotel_id
  62. * @return array
  63. */
  64. public function getBaseRoomData($hotel_id)
  65. {
  66. $db = Yii::$app->db;
  67. $sql = "select a.hotel_id, main_id as parent_room_type, a.base_room_name, b.seq
  68. from opera_hotel_base_room a
  69. left join opera_sort b on a.hotel_id = b.hotel_id and a.main_id = b.base_room_id
  70. where a.cancel_flag = 0 and a.hotel_id = $hotel_id and b.room_id = 0 and b.channel_id = 0 GROUP by parent_room_type order by b.seq";
  71. $result = $db->createCommand($sql)->queryAll();
  72. return $result;
  73. }
  74. /**
  75. * User:石福鹏
  76. * 获取子房型及其排序规则
  77. * @param $hotel_id
  78. * @return array
  79. */
  80. public function getRoomData($hotel_id)
  81. {
  82. $db = Yii::$app->db;
  83. $sql = "select
  84. a.hotel_id,a.parent_room_type,a.room_type,a.room_name,a.inner_identify,b.seq,c.ROOM_TYPE_SALE
  85. from
  86. opera_hotel_room a
  87. LEFT JOIN opera_hotel c on a.HOTEL_ID=c.HOTEL_ID
  88. left join opera_sort b on a.hotel_id = b.hotel_id
  89. and a.parent_room_type = b.base_room_id and a.room_type=b.room_id
  90. where
  91. a.cancel_flag = 0
  92. and FIND_IN_SET(a.parent_room_type,c.ROOM_TYPE_SALE)
  93. and b.room_id <> 0
  94. and b.channel_id = 0
  95. and
  96. a.hotel_id = $hotel_id order by a.parent_room_type,b.seq";
  97. $result = $db->createCommand($sql)->queryAll();
  98. return $result;
  99. }
  100. /**
  101. * 添加基础房型排序
  102. * @param $hotel_id
  103. * @param $base_room_id
  104. * @param $seq
  105. * @return mixed
  106. */
  107. public function addRoomSort($hotel_id, $base_room_id, $seq)
  108. {
  109. $sql = "INSERT into opera_sort(hotel_id,base_room_id,room_id,channel_id,seq) VALUES($hotel_id,$base_room_id,0,0,$seq)";
  110. $res = $this->DBTool->execSql($sql);
  111. return $res;
  112. }
  113. public function beforeSave($insert)
  114. {
  115. if($this -> isNewRecord)
  116. {
  117. $this -> room_id = 0;
  118. }
  119. return parent::beforeSave($insert);
  120. }
  121. }