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.
 
 
 
 
 
 

125 regels
4.1 KiB

  1. <?php
  2. namespace backend\modules\api\models;
  3. use Yii;
  4. /**
  5. * This is the model class for table "opera_tickets_agent".
  6. *
  7. * @property integer $TICKET_ID
  8. * @property integer $CREATE_USER_ID
  9. * @property string $CREATE_TIME
  10. * @property integer $UPDATE_USER_ID
  11. * @property string $UPDATE_TIME
  12. * @property integer $CANCEL_FLAG
  13. * @property integer $LINE_ID
  14. * @property string $TICKET_NAME
  15. * @property integer $TICKET_TYPE
  16. * @property integer $START_STATION_RES_ID
  17. * @property integer $END_STATION_RES_ID
  18. * @property integer $START_STATION_AREA_ID
  19. * @property integer $END_STATION_AREA_ID
  20. * @property integer $SEAT_TYPE
  21. * @property integer $HUMAN_TYPE
  22. * @property string $PROD_PRICE
  23. * @property string $CUS_PRICE
  24. * @property string $COST_PRICE
  25. * @property integer $FROM_MAIN_CORP_ID
  26. * @property integer $TO_MAIN_CORP_ID
  27. * @property integer $AUTHORITY_STATUS
  28. * @property integer $IS_ONSALE
  29. * @property integer $ID
  30. */
  31. class OperaTicketsAgent extends \yii\db\ActiveRecord
  32. {
  33. /**
  34. * @inheritdoc
  35. */
  36. public static function tableName()
  37. {
  38. return 'opera_tickets_agent';
  39. }
  40. /**
  41. * @inheritdoc
  42. */
  43. public function rules()
  44. {
  45. return [
  46. [['TICKET_ID', 'CREATE_USER_ID', 'UPDATE_USER_ID', 'CANCEL_FLAG', 'LINE_ID', 'TICKET_TYPE', 'START_STATION_RES_ID', 'END_STATION_RES_ID', 'START_STATION_AREA_ID', 'END_STATION_AREA_ID', 'SEAT_TYPE', 'HUMAN_TYPE', 'FROM_MAIN_CORP_ID', 'TO_MAIN_CORP_ID', 'AUTHORITY_STATUS', 'IS_ONSALE'], 'integer'],
  47. [['CREATE_TIME'], 'required'],
  48. [['UPDATE_TIME'], 'safe'],
  49. [['PROD_PRICE', 'CUS_PRICE', 'COST_PRICE'], 'number'],
  50. [['CREATE_TIME'], 'string', 'max' => 20],
  51. [['TICKET_NAME'], 'string', 'max' => 50],
  52. [['TICKET_ID'], 'unique'],
  53. ];
  54. }
  55. /**
  56. * @inheritdoc
  57. */
  58. public function attributeLabels()
  59. {
  60. return [
  61. 'TICKET_ID' => 'Ticket ID',
  62. 'CREATE_USER_ID' => '记录创建用户ID',
  63. 'CREATE_TIME' => '记录创建时间',
  64. 'UPDATE_USER_ID' => '记录最后更新用户ID',
  65. 'UPDATE_TIME' => '记录最后更新时间',
  66. 'CANCEL_FLAG' => '记录有效性标记,CANCEL_FLAG=0记录有效;CANCEL_FLAG=1,记录已删除',
  67. 'LINE_ID' => '线路ID',
  68. 'TICKET_NAME' => '票种名称',
  69. 'TICKET_TYPE' => '单程往返标志 TICKET_TYPE=1单程票,TICKET_TYPE=2往返票',
  70. 'START_STATION_RES_ID' => '上车站ID',
  71. 'END_STATION_RES_ID' => '下车站ID',
  72. 'START_STATION_AREA_ID' => '出发地ID',
  73. 'END_STATION_AREA_ID' => '目的地ID',
  74. 'SEAT_TYPE' => '座位类型,72-普通座',
  75. 'HUMAN_TYPE' => '人群属性 159-成人',
  76. 'PROD_PRICE' => '分销价',
  77. 'CUS_PRICE' => '零售价',
  78. 'COST_PRICE' => '预估成本',
  79. 'FROM_MAIN_CORP_ID' => '票种来源运营主体',
  80. 'TO_MAIN_CORP_ID' => '票种规则所属运营主体',
  81. 'AUTHORITY_STATUS' => '授权状态,0:关,1:开',
  82. 'IS_ONSALE' => '是否售卖,0:关,1:开',
  83. 'ID' => 'ID',
  84. ];
  85. }
  86. /**
  87. * Function Description:通过userid获取可售卖票种
  88. * Function Name: getTicketListByUserId
  89. * @param array $ticket_id_arr 票种id数组
  90. * @param int $user_id 用户id
  91. *
  92. * @return array|\yii\db\ActiveRecord[]
  93. *
  94. * @author Redstop
  95. */
  96. public function getTicketListByUserId( $user_id ) {
  97. $sql_where = [
  98. 'and',
  99. ['=', 't.cancel_flag', 0],
  100. ['=', 't.authority_status', 1],
  101. ['=', 't.is_onsale', 1],
  102. ['=', 'u.id', $user_id],
  103. ];
  104. $result = self::find()
  105. ->select([
  106. 'ticket_id' => 't.ticket_id',//票种ID
  107. ])
  108. ->from(self::tableName() . ' as t')
  109. ->innerJoin(BaseUser::tableName() . ' as u', 't.to_main_corp_id = u.main_corp_id')
  110. ->where($sql_where)
  111. ->indexBy('ticket_id')
  112. ->asArray()->all();
  113. return $result;
  114. }
  115. }