EnrollSource.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: xiaofeng
  5. * Date: 2018/3/4
  6. * Time: 上午9:25
  7. */
  8. namespace common\models;
  9. class EnrollSource extends Common
  10. {
  11. public function rules()
  12. {
  13. return [
  14. ['name', 'unique', 'targetClass' => 'common\models\EnrollSource','on'=>'add','message'=>'来源名称已存在','filter'=>function($query){
  15. $query->andWhere(['type'=>$this->type]);
  16. return $query->andWhere(['del'=>$this->setDel]);
  17. }],
  18. [['name', 'type'], 'required', 'message' => '{attribute}不能为空'],
  19. ['name', 'string', 'max' => 100],
  20. ['remarks', 'string', 'max' => 255],
  21. [['uid', 'del', 'source_id'], 'number'],
  22. [['del','state'], 'default', 'value' => 1],
  23. [['del','state'], 'in', 'range' => [1, 2]],
  24. ];
  25. }
  26. public function attributeLabels()
  27. {
  28. return [
  29. 'type' => '来源设备', //1=>移动,2=>PC
  30. 'name' => '来源名称',
  31. 'contact' => '关于我们',
  32. 'copyright' => '版权声明'
  33. ];
  34. }
  35. public function FindById($id)
  36. {
  37. return self::findOne($id);
  38. }
  39. public function WhereColumn()
  40. {
  41. $query = static::find();
  42. $query->andWhere(['del'=>1]);
  43. $query->andFilterWhere(['id'=>$this->id]);
  44. $query->andFilterWhere(['type'=>$this->type]);
  45. $query->andFilterWhere(['source_id'=>$this->source_id]);
  46. return $query;
  47. }
  48. public function getListTotal($page)
  49. {
  50. $query = $this->WhereColumn();
  51. if (!empty($page['name'])){
  52. $query->andFilterWhere(['like','name',$page['name']]);
  53. }
  54. if (!empty($page['source_id'])){
  55. $query->andFilterWhere(['source_id'=>$page['source_id']]);
  56. }
  57. if (!empty($page['type'])){
  58. $query->andFilterWhere(['type'=>$page['type']]);
  59. }
  60. return $query->count();
  61. }
  62. public function getList($page,$select = null)
  63. {
  64. $query = $this->WhereColumn();
  65. $query->select($select);
  66. if (!empty($page['name'])){
  67. $query->andFilterWhere(['like','name',$page['name']]);
  68. }
  69. if (!empty($page['source_id'])){
  70. $query->andFilterWhere(['source_id'=>$page['source_id']]);
  71. }
  72. if (!empty($page['type'])){
  73. $query->andFilterWhere(['type'=>$page['type']]);
  74. }
  75. if(!empty($page['page']))
  76. {
  77. $query->offset = ($page['page'] - 1) * $page['limit'];
  78. $query->limit = $page['limit'];
  79. }
  80. return $query->orderBy(['create_at'=>SORT_DESC,'name'=>SORT_DESC])->asArray()->all();
  81. }
  82. public function TypeColumn($type)
  83. {
  84. $this->type = $type;
  85. $query = $this->WhereColumn();
  86. $rows = $query->asArray()->all();
  87. return array_column($rows,'name','source_id');
  88. }
  89. }