// +---------------------------------------------------------------------- namespace App\Services; use App\Models\CityModel; use App\Models\FansModel; use App\Models\MemberModel; use App\Models\SiyuanModel; /** * 会员管理-服务类 * @author wesmiler * @since 2020/11/11 * Class MemberService * @package App\Services */ class MemberService extends BaseService { protected static $instance = null; /** * 构造函数 * @author wesmiler * @since 2020/11/11 * MemberService constructor. */ public function __construct() { $this->model = new MemberModel(); $this->cityModel = new CityModel(); } /** * 静态入口 * @return MemberService|null */ public static function make(){ if(!self::$instance){ self::$instance = new MemberService(); } return self::$instance; } /** * 添加会编辑会员 * @return array * @since 2020/11/11 * @author wesmiler */ public function edit() { // 请求参数 $data = request()->all(); // 头像处理 $avatar = trim($data['avatar']); if (strpos($avatar, "temp")) { $data['avatar'] = save_image($avatar, 'member'); } else { $data['avatar'] = str_replace(IMG_URL, "", $data['avatar']); } // 出生日期 if ($data['birthday']) { $data['birthday'] = strtotime($data['birthday']); } // 城市处理 $city = isset($data['city']) ? $data['city'] : [3]; if (!empty($data['city'])) { // 省份 $data['province_id'] = $city[0]; // 城市 $data['city_id'] = $city[1]; // 县区 $data['district_id'] = $city[2]; } unset($data['city']); return parent::edit($data); // TODO: Change the autogenerated stub } /** * 获取用户信息 * @param $openid OPENID * @param array $field m用户表 * @return array */ public function getUserInfo($where, $field = []) { $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']; $info = $this->model::from('member as m') ->leftJoin('member_level as ml', 'ml.id', '=', 'm.member_level') ->leftJoin('master as ms', 'ms.user_id', '=', 'm.id') ->leftJoin('yigong as yg', 'yg.user_id', '=', 'm.id') ->select($field) ->where($where) ->where('m.status', '>', 0) ->first(); $info = $info ? $info->toArray() : []; if (isset($info['avatar'])) { $info['avatar'] = $info['avatar'] ? get_image_url($info['avatar']) : ''; } if($info){ // 僧人参数 if(array_key_exists('mtype', $info)){ $info['mtype'] = $info['mtype']? intval($info['mtype']) : 0; } if(array_key_exists('master_type', $info)){ $info['master_type'] = $info['master_type']? intval($info['master_type']) : 0; } if(array_key_exists('master_status', $info)){ $info['master_status'] = $info['master_status']? intval($info['master_status']) : 0; } if(array_key_exists('master_name', $info)){ $info['master_name'] = $info['master_name']? trim($info['master_name']) : ''; } if(array_key_exists('yigong_siyuan', $info)){ $info['yigong_siyuan'] = $info['yigong_siyuan']? trim($info['yigong_siyuan']) : ''; } if(array_key_exists('yg_on_siyuan', $info)){ $info['yg_on_siyuan'] = $info['yg_on_siyuan']? intval($info['yg_on_siyuan']) : 0; } if(array_key_exists('yigong_status', $info)){ $info['yigong_status'] = $info['yigong_status']? intval($info['yigong_status']) : 0; } if(array_key_exists('siyuan', $info)){ $info['siyuan'] = $info['siyuan']? trim($info['siyuan']) : ''; } if(array_key_exists('sr_on_siyuan', $info)){ $info['sr_on_siyuan'] = $info['sr_on_siyuan']? intval($info['sr_on_siyuan']) : 0; } $info['yg_siyuan'] = ''; if(array_key_exists('siyuan_id', $info) && $info['siyuan_id']){ $info['yg_siyuan'] = $info['siyuan_id']? SiyuanModel::where('id', $info['siyuan_id'])->value('title') : ''; } // 城市 if(isset($info['city_id'])){ $info['city_name'] = $info['city_id']?CityService::make()->getName($info['city_id']) : ''; $openid = isset($info['openid'])? $info['openid'] : ''; if(empty($info['city_name']) && $openid){ $info['city_name'] = FansModel::where(['openid'=> $openid])->value('city'); } } } return $info; } }