Cert.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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\traits\ModelTrait;
  11. class Cert extends BaseModel
  12. {
  13. /**
  14. * 数据表主键
  15. * @var string
  16. */
  17. protected $pk = 'id';
  18. /**
  19. * 模型名称
  20. * @var string
  21. */
  22. protected $name = 'cert';
  23. use ModelTrait;
  24. public static function add_cert($uid, $name, $gender, $idcard, $job, $photo, $level = '')
  25. {
  26. if (self::be(['idcard' => $idcard, 'status' => [0, 1]])) {
  27. return self::setErrorInfo('已有身份证号码相同的记录存在');
  28. }
  29. $add_time = time();
  30. return self::create(compact('uid', 'name', 'gender', 'idcard', 'job', 'photo', 'level', 'add_time'));
  31. }
  32. public static function search($name)
  33. {
  34. return self::where('name|iscard|code', 'like', "%$name%")->where('status', 1)->find();
  35. }
  36. public static function check_cert($id, $status, $level)
  37. {
  38. $info = self::get($id);
  39. if ($info['status'] != 0) return self::setErrorInfo('记录已处理');
  40. if ($status == 1) {
  41. $date = date('Y-m-d');
  42. $code = self::createNewCode($id);
  43. $res = self::where('id', $id)->update(['status' => 1, 'level' => $level]);
  44. } else {
  45. $res = self::where('id', $id)->update(['status' => 0]);
  46. }
  47. return $res;
  48. }
  49. public static function createNewCode($id)
  50. {
  51. do {
  52. $str = date('ymd') . strtoupper(substr(md5($id . rand(100000, 999999)), 3, 8));
  53. } while (self::be(['code' => $str]));
  54. return $str;
  55. }
  56. }