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.
 
 
 
 
 
 

188 rivejä
5.7 KiB

  1. <?php
  2. namespace backend\modules\api\models;
  3. use yii\db\ActiveRecord;
  4. /**
  5. * This is the model class for table "base_driver".
  6. *
  7. * @property integer $DRIVER_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 string $DRIVER_NAME
  14. * @property string $DRIVER_NUMBER
  15. * @property integer $SEX
  16. * @property integer $AGE
  17. * @property string $PHONE_NO
  18. * @property integer $MAIN_CORP_ID
  19. * @property integer $ORG_ID
  20. * @property string $ID_NUMBER
  21. * @property string $LICENSE_NO
  22. * @property integer $DRIVER_STATUS
  23. * @property string $DRIVER_BIRTHDAY
  24. * @property string $FIRST_LICENSE_DATE
  25. * @property integer $AREA_ID
  26. * @property string $ADDRESS
  27. * @property string $LICENSE_START_DATE
  28. * @property integer $VALID_YEARS
  29. *
  30. * @property BusOrder[] $busOrders
  31. */
  32. class BaseDriver extends ActiveRecord
  33. {
  34. /**
  35. * @inheritdoc
  36. */
  37. public static function tableName()
  38. {
  39. return 'base_driver';
  40. }
  41. /**
  42. * @inheritdoc
  43. */
  44. public function rules()
  45. {
  46. return [
  47. [['CREATE_USER_ID', 'UPDATE_USER_ID', 'CANCEL_FLAG', 'SEX', 'AGE', 'MAIN_CORP_ID', 'ORG_ID', 'DRIVER_STATUS', 'AREA_ID', 'VALID_YEARS'], 'integer'],
  48. [['CREATE_TIME', 'DRIVER_NAME'], 'required'],
  49. [['UPDATE_TIME'], 'safe'],
  50. [['CREATE_TIME', 'DRIVER_NAME', 'DRIVER_NUMBER', 'PHONE_NO', 'ID_NUMBER', 'DRIVER_BIRTHDAY', 'FIRST_LICENSE_DATE', 'LICENSE_START_DATE'], 'string', 'max' => 20],
  51. [['LICENSE_NO'], 'string', 'max' => 50],
  52. [['ADDRESS'], 'string', 'max' => 255],
  53. ];
  54. }
  55. /**
  56. * @inheritdoc
  57. */
  58. public function attributeLabels()
  59. {
  60. return [
  61. 'DRIVER_ID' => 'Driver 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. 'DRIVER_NAME' => '司机姓名',
  68. 'DRIVER_NUMBER' => '司机编号',
  69. 'SEX' => '性别 1:男 2:女',
  70. 'AGE' => '年龄',
  71. 'PHONE_NO' => '司机电话',
  72. 'MAIN_CORP_ID' => '运营主体ID',
  73. 'ORG_ID' => '所属公司ID',
  74. 'ID_NUMBER' => '身份证号',
  75. 'LICENSE_NO' => '驾驶证号',
  76. 'DRIVER_STATUS' => '司机状态',
  77. 'DRIVER_BIRTHDAY' => '出生日期',
  78. 'FIRST_LICENSE_DATE' => '初次领证日期',
  79. 'AREA_ID' => '对应base_area.id',
  80. 'ADDRESS' => '详细地址',
  81. 'LICENSE_START_DATE' => '有效起始日期',
  82. 'VALID_YEARS' => '有效期限',
  83. ];
  84. }
  85. /**
  86. * @return \yii\db\ActiveQuery
  87. */
  88. public function getBusOrders()
  89. {
  90. return $this->hasMany(BusOrder::className(), ['send_bus_driver_res_id' => 'DRIVER_ID']);
  91. }
  92. /**
  93. * Function Description:获取司机信息
  94. * Function Name: getDriverInfoByPhone
  95. * @param string $phone 手机号
  96. *
  97. * @return array|bool|null|ActiveRecord
  98. *
  99. * @author 张帅
  100. */
  101. public function getDriverInfoByPhone($phone)
  102. {
  103. $result = self::find()
  104. ->select([
  105. 'd.driver_id',
  106. 'd.driver_name',
  107. 'd.org_id',
  108. 'd.phone_no',
  109. 's.supplier_name',
  110. ])
  111. ->from(self::tableName() . ' as d')
  112. ->leftJoin(BaseSupplier::tableName() . ' as s', 's.id = d.org_id')
  113. ->where(['d.phone_no' => $phone, 'd.cancel_flag' => 0, 's.cancel_flag' => 0])
  114. ->asArray()->one();
  115. if (count($result) == 0) {
  116. return false;
  117. }
  118. return $result;
  119. }
  120. /**
  121. * Function Description:获取司机信息通过司机id
  122. * Function Name: getDriverInfoById
  123. * @param int $driver_id 司机id
  124. *
  125. * @return array|bool|null|ActiveRecord
  126. *
  127. * @author 张帅
  128. */
  129. public function getDriverInfoById($driver_id)
  130. {
  131. $result = self::find()
  132. ->select([
  133. 'd.driver_id',
  134. 'd.driver_name',
  135. 'd.org_id',
  136. 'd.phone_no',
  137. 's.supplier_name',
  138. ])
  139. ->from(self::tableName() . ' as d')
  140. ->leftJoin(BaseSupplier::tableName() . ' as s', 's.id = d.org_id')
  141. ->where(['d.driver_id' => $driver_id, 'd.cancel_flag' => 0, 's.cancel_flag' => 0])
  142. ->asArray()->one();
  143. if (count($result) == 0) {
  144. return false;
  145. }
  146. return $result;
  147. }
  148. /**
  149. * 获取司机列表
  150. * @return array|bool|ActiveRecord[]
  151. * @author 傅冬荣
  152. */
  153. public function getDriverListInfo($key_word){
  154. $param=['and',['=','d.cancel_flag',0], ['=','s.cancel_flag',0]];
  155. if($key_word != ''){
  156. $param[]=['or',['like','d.driver_id','%'.$key_word.'%',false],['like','d.driver_name','%'.$key_word.'%',false],['like','d.phone_no','%'.$key_word.'%',false]];
  157. }
  158. $result = self::find()
  159. ->select([
  160. 'd.driver_id',
  161. 'd.driver_name',
  162. 'd.org_id',
  163. 'd.phone_no',
  164. 's.supplier_name',
  165. ])
  166. ->from(self::tableName() . ' as d')
  167. ->leftJoin(BaseSupplier::tableName() . ' as s', 's.id = d.org_id')
  168. ->filterwhere($param)
  169. ->asArray()
  170. -> all();
  171. if (count($result) == 0) {
  172. return false;
  173. }
  174. return $result;
  175. }
  176. }