MemberModel.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Laravel框架 [ Laravel ]
  4. // +----------------------------------------------------------------------
  5. // | 版权所有 2017~2021 南京Laravel研发中心
  6. // +----------------------------------------------------------------------
  7. // | 官方网站: http://www.laravel.cn
  8. // +----------------------------------------------------------------------
  9. // | Author: wesmiler <12345678@qq.com>
  10. // +----------------------------------------------------------------------
  11. namespace App\Models;
  12. /**
  13. * 会员-模型
  14. * @author wesmiler
  15. * @since 2020/11/11
  16. * Class MemberModel
  17. * @package App\Models
  18. */
  19. class MemberModel extends BaseModel
  20. {
  21. // 设置数据表
  22. protected $table = 'member';
  23. /**
  24. * 获取会员信息
  25. * @param int $id 会员ID
  26. * @return array|string
  27. * @author wesmiler
  28. * @since 2020/11/11
  29. */
  30. public function getInfo($id)
  31. {
  32. $info = parent::getInfo($id); // TODO: Change the autogenerated stub
  33. if ($info) {
  34. // 头像
  35. if ($info['avatar']) {
  36. $info['avatar'] = get_image_url($info['avatar']);
  37. }
  38. // 出生日期
  39. if ($info['birthday']) {
  40. $info['birthday'] = datetime($info['birthday']);
  41. $info['age'] = max(0, date('Y') - date('Y',$info['birthday']));
  42. }
  43. // 城市
  44. if ($info['province_id'] && $info['city_id'] && $info['district_id']) {
  45. $city = [];
  46. $city[] = $info['province_id'];
  47. $city[] = $info['city_id'];
  48. $city[] = $info['district_id'];
  49. $info['city'] = $city;
  50. //$info['cityNames'] = $city;
  51. }
  52. }
  53. return $info;
  54. }
  55. public function getSengrenList($params){
  56. $page = isset($params['pageSize'])? intval($params['pageSize']) : PAGE;
  57. $pageSize = isset($params['pageSize'])? intval($params['pageSize']) : PERPAGE;
  58. $dataList = MemberModel::from('master as ms')
  59. ->leftJoin('member as m','m.id','=', 'ms.user_id')
  60. ->where(function($query) use($params){
  61. $type = isset($params['type'])? intval($params['type']) : 0;
  62. if($type>0){
  63. $query->where('ms.type',$type);
  64. }
  65. $onSiyuan = isset($params['on_siyuan'])? intval($params['on_siyuan']) : 0;
  66. if($onSiyuan>0){
  67. $query->where('ms.on_siyuan',$onSiyuan);
  68. }
  69. $status = isset($params['status'])? $params['status'] : 0;
  70. if($status>0){
  71. $query->where('ms.status', $status);
  72. }else{
  73. $query->whereIn('ms.status', [1,2]);
  74. }
  75. $realname = isset($params['realname'])? trim($params['realname']) : '';
  76. if(!empty($realname)){
  77. $query->where('ms.realname','like',"%{$realname}%");
  78. }
  79. })
  80. ->select(['ms.id','m.avatar','ms.user_id','ms.realname','ms.type','ms.idcard_front','ms.idcard_back','ms.contact_phone','ms.master_type','ms.master_no','ms.on_siyuan','ms.siyuan','ms.siyuan_address','ms.status','ms.create_time','ms.update_time'])
  81. ->orderBy('ms.id','desc')
  82. ->paginate($pageSize);
  83. $dataList = $dataList? $dataList->toArray() : [];
  84. if($dataList){
  85. foreach ($dataList['data'] as &$item) {
  86. $item['idcard_front'] = $item['idcard_front'] ? get_image_url($item['idcard_front']) : '';
  87. $item['avatar'] = $item['avatar'] ? get_image_url($item['avatar']) : '';
  88. $item['idcard_back'] = $item['idcard_back'] ? get_image_url($item['idcard_back']) : '';
  89. $item['create_time'] = $item['create_time']? datetime($item['create_time'], 'Y-m-d H:i') : '';
  90. }
  91. }
  92. return $dataList;
  93. }
  94. }