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.
 
 
 
 
 
 

136 lines
4.6 KiB

  1. <?php
  2. /**
  3. *
  4. * ============================================================================
  5. * * 版权所有 蜘蛛出行 * *
  6. * 网站地址: http://www.zhizhuchuxing.com
  7. * ----------------------------------------------------------------------------
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
  9. * 使用;不允许对程序代码以任何形式任何目的的再发布。
  10. * ============================================================================
  11. * Author By: 倪宗锋
  12. * PhpStorm ChannelRoom.php
  13. * Create By 2017/4/13 15:23 $
  14. */
  15. namespace backend\modules\hotel\models;
  16. use yii\db\ActiveRecord;
  17. class ChannelRoom extends ActiveRecord
  18. {
  19. public static function tableName()
  20. {
  21. return 'channel_room';
  22. }
  23. public function rules()
  24. {
  25. return [
  26. [['RoomId', 'HasWindow', 'Currency', 'ChannelHotelID'], 'string', 'max' => 20],
  27. [['RoomName', 'AddBedFee'], 'string', 'max' => 255],
  28. [['ChannelID', 'Person'], 'integer']
  29. ];
  30. }
  31. /**
  32. * Des:请不要随意添加修改此表 以免造成数据更新失败的问题
  33. * Name: attributeLabels
  34. * @return array
  35. * @author 倪宗锋
  36. */
  37. public function attributeLabels()
  38. {
  39. return [
  40. 'RoomId' => 'RoomId',
  41. 'RoomName' => 'RoomName',
  42. 'Person' => 'Person',
  43. 'HasWindow' => 'HasWindow',
  44. 'AddBedFee' => 'AddBedFee',
  45. 'Currency' => 'Currency',
  46. 'ChannelID' => 'ChannelID',
  47. 'ChannelHotelID' => 'ChannelHotelID'
  48. ];
  49. }
  50. /**
  51. * Des:更新酒店房型数据
  52. * Name: upRoomForCtrip
  53. * @param $roomList
  54. * @param $hotelId
  55. * @return bool
  56. * @throws \yii\db\Exception
  57. * @author 倪宗锋
  58. */
  59. public function upRoomForCtrip($roomList, $hotelId)
  60. {
  61. //清除当前酒店的房型数据
  62. $deleteWhere = [
  63. 'and',
  64. ['=', 'ChannelHotelID', $hotelId],
  65. ['=', 'ChannelID', \Yii::$app->params['ctrip']['relation_supplier_id']]
  66. ];
  67. \Yii::$app->db->createCommand()->delete(static::tableName(), $deleteWhere)->execute();
  68. //插入数据
  69. $prodValues = [];
  70. $prodKeys = array_keys($this->attributes);
  71. foreach ($roomList as $key => $val) {
  72. $prodVal = [];
  73. $prodVal[] = $val['Room'];
  74. $prodVal[] = $val['RoomName'];
  75. $prodVal[] = empty($val['Person']) ? '' : $val['Person'];
  76. $prodVal[] = empty($val['HasWindow']) ? '' : $val['HasWindow'];
  77. $prodVal[] = empty($val['AddBedFee']) ? '' : $val['AddBedFee'];
  78. $prodVal[] = empty($val['Currency']) ? '' : $val['Currency'];
  79. $prodVal[] = \Yii::$app->params['ctrip']['relation_supplier_id'];//1标识携程
  80. $prodVal[] = $hotelId;//渠道酒店ID
  81. $prodValues[] = $prodVal;
  82. }
  83. $count = \Yii::$app->db->createCommand()->batchInsert(static::tableName(), $prodKeys, $prodValues)->execute();
  84. if ($count == 0) {
  85. return false;
  86. }
  87. return true;
  88. }
  89. /**
  90. * Des:获取房型信息
  91. * Name: setParamsForCtrip
  92. * @param $params
  93. * @return array
  94. * @author 倪宗锋
  95. */
  96. public function getParamsForCtrip($params)
  97. {
  98. $sql = '' . "SELECT a.ChannelHotelID,a.RoomId,b.ID,b.HOTEL_ID,b.ROOM_NAME
  99. from channel_room a,opera_hotel_room b
  100. WHERE a.ChannelID = ". \Yii::$app->params['ctrip']['relation_supplier_id']." and a.RoomId = {$params['channelRoomId']} and b.ID={$params['roomId']}";
  101. $db = \Yii::$app->db;
  102. $result = $db->createCommand($sql)->queryOne();
  103. return $result;
  104. }
  105. /**
  106. * Des:获取设置页面的房型列表
  107. * Name: getRoomListByHotelId
  108. * @param $hotelId
  109. * @return array
  110. * @author 倪宗锋
  111. */
  112. public function getRoomListByHotelId($hotelId)
  113. {
  114. $sql = "
  115. SELECT a.*,c.ROOM_NAME 'name1',c.ID 'roomId1', c.INNER_IDENTIFY
  116. from channel_room a
  117. LEFT JOIN channel_room_relation b on a.RoomId = b.ChannelRoomId and b.ChannelId = " . \Yii::$app->params['ctrip']['relation_supplier_id'] ."
  118. LEFT JOIN opera_hotel_room c on b.RoomId = c.ID
  119. WHERE a.ChannelID = " . \Yii::$app->params['ctrip']['relation_supplier_id'] . " and a.ChannelHotelID = '{$hotelId}'
  120. ORDER BY CONVERT(c.ROOM_NAME USING GBK) desc,CONVERT(a.RoomName USING GBK) ASC
  121. ";
  122. $db = \Yii::$app->db;
  123. $result = $db->createCommand($sql)->queryAll();
  124. return $result;
  125. }
  126. }