MemberModel.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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['age'] = $info['birthday']>0? max(0, date('Y') - date('Y',$info['birthday'])) : 0;
  41. $info['birthday'] = $info['birthday']? datetime($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. /**
  56. * 僧人列表
  57. * @param $params
  58. * @return array
  59. */
  60. public function getSengrenList($params){
  61. $page = isset($params['pageSize'])? intval($params['pageSize']) : PAGE;
  62. $pageSize = isset($params['pageSize'])? intval($params['pageSize']) : PERPAGE;
  63. $dataList = MemberModel::from('master as ms')
  64. ->leftJoin('member as m','m.id','=', 'ms.user_id')
  65. ->where(function($query) use($params){
  66. $type = isset($params['type'])? intval($params['type']) : 0;
  67. if($type>0){
  68. $query->where('ms.type',$type);
  69. }
  70. $onSiyuan = isset($params['on_siyuan'])? intval($params['on_siyuan']) : 0;
  71. if($onSiyuan>0){
  72. $query->where('ms.on_siyuan',$onSiyuan);
  73. }
  74. $status = isset($params['status'])? $params['status'] : 0;
  75. if($status>0){
  76. $query->where('ms.status', $status);
  77. }else{
  78. $query->whereIn('ms.status', [1,2,3]);
  79. }
  80. $realname = isset($params['realname'])? trim($params['realname']) : '';
  81. if(!empty($realname)){
  82. $query->where('ms.realname','like',"%{$realname}%");
  83. }
  84. })
  85. ->select(['ms.id','m.avatar','ms.user_id','ms.realname','ms.reason','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'])
  86. ->orderBy('ms.id','desc')
  87. ->paginate($pageSize);
  88. $dataList = $dataList? $dataList->toArray() : [];
  89. if($dataList){
  90. foreach ($dataList['data'] as &$item) {
  91. $item['idcard_front'] = $item['idcard_front'] ? get_image_url($item['idcard_front']) : '';
  92. $item['avatar'] = $item['avatar'] ? get_image_url($item['avatar']) : '';
  93. $item['idcard_back'] = $item['idcard_back'] ? get_image_url($item['idcard_back']) : '';
  94. $item['create_time'] = $item['create_time']? datetime($item['create_time'], 'Y-m-d H:i') : '';
  95. }
  96. }
  97. return $dataList;
  98. }
  99. }