MemberModel.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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 $openid OPENID
  58. * @param array $field
  59. * @return array
  60. */
  61. public function getUserInfo($openid, $field=[]){
  62. $field = $field? $field : ['id','openid','invite_id','mobile','nickname','avatar','gender','member_level','is_vip','realname','balance','salary','merits_num','coupon','score','login_time','status'];
  63. $info = $this->model::from('member as m')
  64. ->leftJoin('member_level as ml','ml.id','=','m.member_level')
  65. ->select($field)
  66. ->where(['openid'=> $openid])
  67. ->where('status','>', 0)
  68. ->first();
  69. return $info? $info->toArray() : [];
  70. }
  71. /**
  72. * 僧人列表
  73. * @param $params
  74. * @return array
  75. */
  76. public function getSengrenList($params){
  77. $page = isset($params['pageSize'])? intval($params['pageSize']) : PAGE;
  78. $pageSize = isset($params['pageSize'])? intval($params['pageSize']) : PERPAGE;
  79. $dataList = MemberModel::from('master as ms')
  80. ->leftJoin('member as m','m.id','=', 'ms.user_id')
  81. ->where(function($query) use($params){
  82. $type = isset($params['type'])? intval($params['type']) : 0;
  83. if($type>0){
  84. $query->where('ms.type',$type);
  85. }
  86. $onSiyuan = isset($params['on_siyuan'])? intval($params['on_siyuan']) : 0;
  87. if($onSiyuan>0){
  88. $query->where('ms.on_siyuan',$onSiyuan);
  89. }
  90. $status = isset($params['status'])? $params['status'] : 0;
  91. if($status>0){
  92. $query->where('ms.status', $status);
  93. }else{
  94. $query->whereIn('ms.status', [1,2]);
  95. }
  96. $realname = isset($params['realname'])? trim($params['realname']) : '';
  97. if(!empty($realname)){
  98. $query->where('ms.realname','like',"%{$realname}%");
  99. }
  100. })
  101. ->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'])
  102. ->orderBy('ms.id','desc')
  103. ->paginate($pageSize);
  104. $dataList = $dataList? $dataList->toArray() : [];
  105. if($dataList){
  106. foreach ($dataList['data'] as &$item) {
  107. $item['idcard_front'] = $item['idcard_front'] ? get_image_url($item['idcard_front']) : '';
  108. $item['avatar'] = $item['avatar'] ? get_image_url($item['avatar']) : '';
  109. $item['idcard_back'] = $item['idcard_back'] ? get_image_url($item['idcard_back']) : '';
  110. $item['create_time'] = $item['create_time']? datetime($item['create_time'], 'Y-m-d H:i') : '';
  111. }
  112. }
  113. return $dataList;
  114. }
  115. }