Comjobs.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. namespace app\common\model;
  3. use think\Model;
  4. use think\model\concern\SoftDelete;
  5. class Comjobs extends Model
  6. {
  7. use SoftDelete;
  8. protected $deleteTime = 'deletetime';
  9. protected $defaultSoftDelete = 0;
  10. // 设置字段信息
  11. protected $schema = [
  12. 'id' => 'int',
  13. 'workerid' => 'int',
  14. 'title' => 'string',
  15. 'video' => 'string',
  16. 'cateid' => 'int',
  17. 'province' => 'string',
  18. 'city' => 'string',
  19. 'district' => 'string',
  20. 'agegroup' => 'string',
  21. 'tags' => 'string',
  22. 'enddate' => 'int',
  23. 'requirement' => 'string',
  24. 'comdetails' => 'string',
  25. 'picall' => 'string',
  26. 'companydetails' => 'string',
  27. 'retmoney' => 'int',
  28. 'wtype' => 'tinyint',
  29. 'bwagall' => 'string',
  30. 'zwagall' => 'string',
  31. 'fwagall' => 'string',
  32. 'telephone' => 'string',
  33. 'remark' => 'string',
  34. 'status' => 'tinyint',
  35. 'priority' => 'int',
  36. 'updatetime' => 'int',
  37. 'createtime' => 'int',
  38. 'volume' => 'int',
  39. 'recruitment_cate' => 'int',
  40. 'latitude' => 'float',
  41. 'longitude' => 'float',
  42. 'address' => 'string',
  43. 'community' => 'string',
  44. 'recruit_num' => 'int',
  45. 'is_worry' => 'tinyint',
  46. 'education' => 'string',
  47. 'emp_time' => 'string',
  48. 'company_name' => 'string',
  49. 'contact' => 'string',
  50. ];
  51. // 设置字段自动转换类型
  52. protected $type = [
  53. 'tags' => 'json',
  54. 'picall' => 'json',
  55. 'emp_time' => 'json',
  56. 'enddate' => 'timestamp:Y-m-d',
  57. 'updatetime' => 'timestamp:Y-m-d H:i:s',
  58. 'createtime' => 'timestamp:Y-m-d H:i:s',
  59. ];
  60. // 设置JSON数据返回数组
  61. protected $jsonAssoc = true;
  62. public function getWtypeTextAttr($value, $data)
  63. {
  64. $wtype = [1 => '按月', 2 => '按时', 3 => '按件', 4 => '按项目', 5 => '面议'];
  65. return $wtype[$data['wtype']];
  66. }
  67. public function getRecruitmentCateTextAttr($value, $data)
  68. {
  69. $recruitment_cate = [1 => '普通招聘', 2 => '无忧聘'];
  70. return $recruitment_cate[$data['recruitment_cate']];
  71. }
  72. public function getStatusTextAttr($value, $data)
  73. {
  74. $status = [1 => '待修改', 2 => '待审核', 3 => '已上架', 4 => '已停招', 5 => '已下架'];
  75. return $status[$data['status']];
  76. }
  77. // 关联ComjobsCate
  78. public function comjobsCate()
  79. {
  80. return $this->hasOne(ComjobsCate::class, "id", "cateid");
  81. }
  82. // 关联Worker
  83. public function worker()
  84. {
  85. return $this->hasOne(Worker::class, "id", "workerid")->removeOption('soft_delete');
  86. }
  87. // 关联ComjobsLog
  88. public function comjobsLog()
  89. {
  90. return $this->hasMany(ComjobsLog::class, "comjobsid", "id");
  91. }
  92. public function ageCode()
  93. {
  94. return $this->hasOne(RensheCode::class, 'name', 'agegroup');
  95. }
  96. public function educationCode()
  97. {
  98. return $this->hasOne(RensheCode::class, 'name', 'agegroup');
  99. }
  100. public function getEmpCodeAttr($value, $data)
  101. {
  102. $emp_time = json_decode($data['emp_time'], true);
  103. if (empty($emp_time)) {
  104. return '';
  105. }
  106. $emp_code = [];
  107. $emp_list = RensheCode::where('type', 'emp_time')->column('code', 'name');
  108. foreach ($emp_time as $v) {
  109. if (!empty($emp_list[$v])) {
  110. $emp_code[] = $emp_list[$v];
  111. }
  112. }
  113. return implode(',', $emp_code);
  114. }
  115. public function getTagsCodeAttr($value, $data)
  116. {
  117. $tags = json_decode($data['tags'], true);
  118. if (empty($tags)) {
  119. return '';
  120. }
  121. $tags_code = [];
  122. $tags_list = RensheCode::where('type', 'welfare')->column('code', 'name');
  123. foreach ($tags as $v) {
  124. if (!empty($tags_list[$v])) {
  125. $tags_code[] = $tags_list[$v];
  126. }
  127. }
  128. return implode(',', $tags_code);
  129. }
  130. }