RecruitModel.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. <?php
  2. namespace app\common\model;
  3. use think\model\concern\SoftDelete;
  4. class RecruitModel extends BaseModel
  5. {
  6. use SoftDelete;
  7. // 设置表名
  8. protected $name = 'recruit';
  9. //自动完成
  10. protected $autoWriteTimestamp = true;
  11. // 设置字段自动转换类型
  12. protected $type = [
  13. 'forms' => 'array',
  14. 'step' => 'array',
  15. 'pen_ticket_field' => 'array',
  16. 'computer_ticket_field' => 'array',
  17. 'face_ticket_field' => 'array',
  18. 'reexamine_field' => 'array',
  19. /*'apply_start' => 'timestamp:Y-m-d H:i:s',
  20. 'apply_end' => 'timestamp:Y-m-d H:i:s',
  21. 'audit_start' => 'timestamp:Y-m-d H:i:s',
  22. 'audit_end' => 'timestamp:Y-m-d H:i:s',
  23. 'preliminary_start' => 'timestamp:Y-m-d H:i:s',
  24. 'preliminary_end' => 'timestamp:Y-m-d H:i:s',
  25. 'computer_start' => 'timestamp:Y-m-d H:i:s',
  26. 'computer_end' => 'timestamp:Y-m-d H:i:s',
  27. 'interview_start' => 'timestamp:Y-m-d H:i:s',
  28. 'interview_end' => 'timestamp:Y-m-d H:i:s',
  29. 'reexamine_start' => 'timestamp:Y-m-d H:i:s',
  30. 'reexamine_end' => 'timestamp:Y-m-d H:i:s',
  31. 'health_start' => 'timestamp:Y-m-d H:i:s',
  32. 'health_end' => 'timestamp:Y-m-d H:i:s',
  33. 'political_start' => 'timestamp:Y-m-d H:i:s',
  34. 'political_end' => 'timestamp:Y-m-d H:i:s',
  35. 'publicity_start' => 'timestamp:Y-m-d H:i:s',
  36. 'publicity_end' => 'timestamp:Y-m-d H:i:s',
  37. 'supplement_start' => 'timestamp:Y-m-d H:i:s',
  38. 'supplement_end' => 'timestamp:Y-m-d H:i:s',
  39. 'pen_confirm_start' => 'timestamp:Y-m-d H:i:s',
  40. 'pen_confirm_end' => 'timestamp:Y-m-d H:i:s',*/
  41. ];
  42. // 常量
  43. const STATUS_INT = [1 => '是', 2 => '否'];
  44. const STATUS_STEP = [1 => '报名', 2 => '审核', 3 => '笔试', 4 => '上机', 5 => '面试', 6 => '复试', 7 => '体检', 8 => '政审', 9 => '公示'];
  45. // const STATUS_TICKET_TYPE = [-1 => '不需要', 1 => '纸质', 2 => '短信', 3 => '模板'];
  46. const STATUS_TICKET_TYPE = [-1 => '不需要', 1 => '纸质'];
  47. const STATUS_TICKET_STATUS = [-1 => '未生成', 1 => '生成中', 2 => '已生成'];
  48. const STATUS_SCORE = [1 => '已上传', 2 => '未上传'];
  49. const FORMS = ['basic' => '基础信息模块', 'expand_special' => '扩展模块-加分', 'detail' => '详情介绍模块', 'identification' => '身份证明上传模块', 'education_certification' => '学历证明上传模块', 'other_certification' => '其他证明上传模块', 'hj_certification' => '户籍证明上传模块', 'remark' => '备注模块', 'chengnuoshu' => '诚信承诺书', 'shixin' => '失信被执行人查询信息页扫描件', 'baokaoshengming' => '报考声明书'];
  50. //状态
  51. const STATUS_YES = 1;
  52. const STATUS_NO = 2;
  53. //流程
  54. const STEP_SIGN = 1;
  55. const STEP_EXAMINE = 2;
  56. const STEP_WRITE = 3;
  57. const STEP_COMPUTER = 4;
  58. const STEP_FACE = 5;
  59. const STEP_RETEST = 6;
  60. const STEP_HEALTH = 7;
  61. const STEP_POLITICS = 8;
  62. const STEP_PUBLICITY = 9;
  63. //准考证类型
  64. const TICKET_TYPE_NO = -1;
  65. const TICKET_TYPE_PAPER = 1;
  66. const TICKET_TYPE_MESSAGE = 2;
  67. //准考证状态
  68. const TICKET_STATUS_No = -1;
  69. const TICKET_STATUS_PROGRESS = 1;
  70. const TICKET_STATUS_FINISH = 2;
  71. //是否上传成绩
  72. const TICKET_SCORE_YES = 1;
  73. const TICKET_SCORE_NO = 2;
  74. public function getStatusTextAttr($value, $data)
  75. {
  76. return self::STATUS_INT[$data['status']];
  77. }
  78. public function getCurrentTextAttr($value, $data)
  79. {
  80. return self::STATUS_STEP[$data['current']];
  81. }
  82. public function getStepArrAttr($value, $data)
  83. {
  84. $arr = [];
  85. $step = $data['step'];
  86. if (is_string($step)) {
  87. $step = explode('-', $step);
  88. }
  89. foreach ($step as $v) {
  90. $arr[] = self::STATUS_STEP[$v];
  91. }
  92. return $arr;
  93. }
  94. public function getPredeterminedStatusTextAttr($value, $data)
  95. {
  96. return self::STATUS_INT[$data['predetermined_status']];
  97. }
  98. public function getShowReportTextAttr($value, $data)
  99. {
  100. return self::STATUS_INT[$data['show_report']];
  101. }
  102. public function getPenTicketTypeTextAttr($value, $data)
  103. {
  104. return self::STATUS_TICKET_TYPE[$data['pen_ticket_type']];
  105. }
  106. public function getPenTicketStatusTextAttr($value, $data)
  107. {
  108. return self::STATUS_TICKET_STATUS[$data['pen_ticket_status']];
  109. }
  110. public function getPenStatusTextAttr($value, $data)
  111. {
  112. return self::STATUS_SCORE[$data['pen_status']];
  113. }
  114. public function getPenConfirmTextAttr($value, $data)
  115. {
  116. return self::STATUS_INT[$data['pen_confirm']];
  117. }
  118. public function getComputerTypeTextAttr($value, $data)
  119. {
  120. return self::STATUS_TICKET_TYPE[$data['computer_ticket_type']];
  121. }
  122. public function getComputerTicketStatusTextAttr($value, $data)
  123. {
  124. return self::STATUS_TICKET_STATUS[$data['computer_ticket_status']];
  125. }
  126. public function getComputerStatusTextAttr($value, $data)
  127. {
  128. return self::STATUS_SCORE[$data['computer_status']];
  129. }
  130. public function getFaceTypeTextAttr($value, $data)
  131. {
  132. return self::STATUS_TICKET_TYPE[$data['face_ticket_type']];
  133. }
  134. public function getFaceTicketStatusTextAttr($value, $data)
  135. {
  136. return self::STATUS_TICKET_STATUS[$data['face_ticket_status']];
  137. }
  138. public function getFaceStatusTextAttr($value, $data)
  139. {
  140. return self::STATUS_SCORE[$data['face_status']];
  141. }
  142. public function getReexamineTypeTextAttr($value, $data)
  143. {
  144. return self::STATUS_TICKET_TYPE[$data['reexamine_ticket_type']];
  145. }
  146. public function getReexamineTicketStatusTextAttr($value, $data)
  147. {
  148. return self::STATUS_TICKET_STATUS[$data['reexamine_ticket_status']];
  149. }
  150. public function getReexamineStatusTextAttr($value, $data)
  151. {
  152. return self::STATUS_SCORE[$data['reexamine_status']];
  153. }
  154. public function getApplyTimeAttr($value, $data)
  155. {
  156. $start_time = date('Y-m-d', strtotime($data['apply_start']));
  157. $end_time = date('Y-m-d', strtotime($data['apply_end']));
  158. return [$start_time, $end_time];
  159. }
  160. }