Cert.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. /**
  3. * @Created by PhpStorm
  4. * @author: Kirin
  5. * @day: 2023/8/23
  6. * @time: 17:04
  7. */
  8. namespace app\models\user;
  9. use crmeb\basic\BaseModel;
  10. use crmeb\services\FormBuilder;
  11. use crmeb\traits\ModelTrait;
  12. use think\facade\Route;
  13. class Cert extends BaseModel
  14. {
  15. /**
  16. * 数据表主键
  17. * @var string
  18. */
  19. protected $pk = 'id';
  20. /**
  21. * 模型名称
  22. * @var string
  23. */
  24. protected $name = 'cert';
  25. public static $level = [
  26. 0 => '无',
  27. 1 => '低级',
  28. 2 => '中级',
  29. 3 => '高级',
  30. 4 => '特级',
  31. ];
  32. public static $gender = [
  33. 0 => '男',
  34. 1 => '女',
  35. ];
  36. protected $append = [
  37. 'level_name',
  38. 'gender_name',
  39. ];
  40. use ModelTrait;
  41. public function getLevelNameAttr($value, $data)
  42. {
  43. return self::$level[$data['level']];
  44. }
  45. public function getAddTimeAttr($value)
  46. {
  47. return date('Y-m-d H:i:s', $value);
  48. }
  49. public function getGenderNameAttr($value, $data)
  50. {
  51. return self::$gender[$data['gender']];
  52. }
  53. public static function getList($where)
  54. {
  55. if (isset($where['status']) && $where['status'] != '') {
  56. $model = self::where('status', $where['status']);
  57. } else {
  58. $model = new self();
  59. }
  60. if (isset($where['uid']) && $where['uid'] != '') {
  61. $model = self::where('uid', $where['uid']);
  62. }
  63. $count = $model->count();
  64. $data = $model->page((int)$where['page'], (int)$where['limit'])->order('id desc')->select();
  65. return compact('count', 'data');
  66. }
  67. public static function add_cert($uid, $name, $gender, $idcard, $job, $photo, $level = '')
  68. {
  69. if (self::be(['idcard' => $idcard, 'status' => [0, 1]])) {
  70. return self::setErrorInfo('已有身份证号码相同的记录存在');
  71. }
  72. $add_time = time();
  73. return self::create(compact('uid', 'name', 'gender', 'idcard', 'job', 'photo', 'level', 'add_time'));
  74. }
  75. public static function search($name)
  76. {
  77. return self::where('name|iscard|code', 'like', "%$name%")->where('status', 1)->find();
  78. }
  79. public static function check_cert($id, $status, $level)
  80. {
  81. $info = self::get($id);
  82. if ($info['status'] != 0) return self::setErrorInfo('记录已处理');
  83. if ($status == 1) {
  84. $date = date('Y-m-d');
  85. $code = self::createNewCode($id);
  86. $res = self::where('id', $id)->update(['status' => 1, 'level' => $level, 'date' => $date, 'code' => $code]);
  87. } else {
  88. $res = self::where('id', $id)->update(['status' => 0]);
  89. }
  90. return $res;
  91. }
  92. public static function createNewCode($id)
  93. {
  94. do {
  95. $str = date('ymd') . strtoupper(substr(md5($id . rand(100000, 999999)), 3, 8));
  96. } while (self::be(['code' => $str]));
  97. return $str;
  98. }
  99. }