MemberService.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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\Services;
  12. use App\Models\CityModel;
  13. use App\Models\FansModel;
  14. use App\Models\MemberModel;
  15. use App\Models\SiyuanModel;
  16. /**
  17. * 会员管理-服务类
  18. * @author wesmiler
  19. * @since 2020/11/11
  20. * Class MemberService
  21. * @package App\Services
  22. */
  23. class MemberService extends BaseService
  24. {
  25. protected static $instance = null;
  26. /**
  27. * 构造函数
  28. * @author wesmiler
  29. * @since 2020/11/11
  30. * MemberService constructor.
  31. */
  32. public function __construct()
  33. {
  34. $this->model = new MemberModel();
  35. $this->cityModel = new CityModel();
  36. }
  37. /**
  38. * 静态入口
  39. * @return MemberService|null
  40. */
  41. public static function make(){
  42. if(!self::$instance){
  43. self::$instance = new MemberService();
  44. }
  45. return self::$instance;
  46. }
  47. /**
  48. * 添加会编辑会员
  49. * @return array
  50. * @since 2020/11/11
  51. * @author wesmiler
  52. */
  53. public function edit()
  54. {
  55. // 请求参数
  56. $data = request()->all();
  57. // 头像处理
  58. $avatar = trim($data['avatar']);
  59. if (strpos($avatar, "temp")) {
  60. $data['avatar'] = save_image($avatar, 'member');
  61. } else {
  62. $data['avatar'] = str_replace(IMG_URL, "", $data['avatar']);
  63. }
  64. // 出生日期
  65. if ($data['birthday']) {
  66. $data['birthday'] = strtotime($data['birthday']);
  67. }
  68. // 城市处理
  69. $city = isset($data['city']) ? $data['city'] : [3];
  70. if (!empty($data['city'])) {
  71. // 省份
  72. $data['province_id'] = $city[0];
  73. // 城市
  74. $data['city_id'] = $city[1];
  75. // 县区
  76. $data['district_id'] = $city[2];
  77. }
  78. unset($data['city']);
  79. return parent::edit($data); // TODO: Change the autogenerated stub
  80. }
  81. /**
  82. * 获取用户信息
  83. * @param $openid OPENID
  84. * @param array $field m用户表
  85. * @return array
  86. */
  87. public function getUserInfo($where, $field = [])
  88. {
  89. $field = $field ? $field : ['m.id', 'm.openid', 'm.invite_id','m.city_id', 'ms.type as mtype', 'yg.status as yigong_status','yg.on_siyuan as yg_on_siyuan','yg.siyuan_id','ms.siyuan','ms.on_siyuan as sr_on_siyuan', 'ms.master_type', 'ms.realname as master_name', 'ms.status as master_status', 'm.mobile', 'm.nickname', 'm.avatar', 'm.gender', 'm.member_level', 'm.is_vip', 'm.realname', 'm.balance', 'm.salary', 'm.merits_num', 'm.coupon', 'm.score', 'm.login_time','m.intro', 'm.status'];
  90. $info = $this->model::from('member as m')
  91. ->leftJoin('member_level as ml', 'ml.id', '=', 'm.member_level')
  92. ->leftJoin('master as ms', 'ms.user_id', '=', 'm.id')
  93. ->leftJoin('yigong as yg', 'yg.user_id', '=', 'm.id')
  94. ->select($field)
  95. ->where($where)
  96. ->where('m.status', '>', 0)
  97. ->first();
  98. $info = $info ? $info->toArray() : [];
  99. if (isset($info['avatar'])) {
  100. $info['avatar'] = $info['avatar'] ? get_image_url($info['avatar']) : '';
  101. }
  102. if($info){
  103. // 僧人参数
  104. if(array_key_exists('mtype', $info)){
  105. $info['mtype'] = $info['mtype']? intval($info['mtype']) : 0;
  106. }
  107. if(array_key_exists('master_type', $info)){
  108. $info['master_type'] = $info['master_type']? intval($info['master_type']) : 0;
  109. }
  110. if(array_key_exists('master_status', $info)){
  111. $info['master_status'] = $info['master_status']? intval($info['master_status']) : 0;
  112. }
  113. if(array_key_exists('master_name', $info)){
  114. $info['master_name'] = $info['master_name']? trim($info['master_name']) : '';
  115. }
  116. if(array_key_exists('yigong_siyuan', $info)){
  117. $info['yigong_siyuan'] = $info['yigong_siyuan']? trim($info['yigong_siyuan']) : '';
  118. }
  119. if(array_key_exists('yg_on_siyuan', $info)){
  120. $info['yg_on_siyuan'] = $info['yg_on_siyuan']? intval($info['yg_on_siyuan']) : 0;
  121. }
  122. if(array_key_exists('yigong_status', $info)){
  123. $info['yigong_status'] = $info['yigong_status']? intval($info['yigong_status']) : 0;
  124. }
  125. if(array_key_exists('siyuan', $info)){
  126. $info['siyuan'] = $info['siyuan']? trim($info['siyuan']) : '';
  127. }
  128. if(array_key_exists('sr_on_siyuan', $info)){
  129. $info['sr_on_siyuan'] = $info['sr_on_siyuan']? intval($info['sr_on_siyuan']) : 0;
  130. }
  131. $info['yg_siyuan'] = '';
  132. if(array_key_exists('siyuan_id', $info) && $info['siyuan_id']){
  133. $info['yg_siyuan'] = $info['siyuan_id']? SiyuanModel::where('id', $info['siyuan_id'])->value('title') : '';
  134. }
  135. // 城市
  136. if(isset($info['city_id'])){
  137. $info['city_name'] = $info['city_id']?CityService::make()->getName($info['city_id']) : '';
  138. $openid = isset($info['openid'])? $info['openid'] : '';
  139. if(empty($info['city_name']) && $openid){
  140. $info['city_name'] = FansModel::where(['openid'=> $openid])->value('city');
  141. }
  142. }
  143. }
  144. return $info;
  145. }
  146. }