get('keywords'); $isOwner = $request->get('member_is_owner', 'N'); if (!$keywords) { return json_fail("查询错误"); } $res = Db::table('member') ->leftjoin('member_cert', 'member.member_id', '=', 'member_cert.join_cert_member_id') ->select('member.member_id', 'member.member_mobile', 'member_cert.member_cert_name') ->where('member.member_is_owner', $isOwner) ->where(function ($query) use ($keywords) { $query->where('member.member_mobile', 'like', '%' . $keywords . '%') ->orWhere("member.member_id", 'like', '%' . $keywords . '%') ->orWhere("member_cert.member_cert_name", 'like', '%' . $keywords . '%'); })->get(); $data = []; foreach ($res as $item) { $data[] = [ 'key' => $item->member_id, 'value' => !empty($item->member_cert_name) ? $item->member_cert_name . '-' . $item->member_mobile : $item->member_mobile, ]; } return json_success('', $data); } public function selectWriteOffMember() { $members = Member::with([ 'cert' => function ($query) { $query->select('join_cert_member_id', 'member_cert_name'); } ])->whereRaw("JSON_EXTRACT(`member_json`, '$.user') IS NOT NULL") ->select('member_id', 'member_mobile', 'member_json') ->get() ->toArray(); foreach ($members as &$member) { $member['member_json'] = json_decode($member['member_json'], true); $member['username'] = $member['member_mobile']; $member['user_id'] = $member['member_json']['user'] ? $member['member_json']['user']['user_id'] : ''; if (isset($member['cert']['member_cert_name'])) { $member['username'] = $member['cert']['member_cert_name'] . '-' . $member['username']; } } return json_success('', $members); } public function selectFamilyMemberList(Request $request) { $keywords = $request->get('keywords'); if (!$keywords) { return json_fail("查询错误"); } // 创建的家庭 $family = Family::where('join_family_creator_member_id', $request->get('memberId'))->get()->toArray(); if (!$family) { return json_success('暂无数据'); } $familyIds = array_column($family, 'family_id'); $res = FamilyMember::whereIn('join_family_id', $familyIds) ->where("family_member_name", 'like', '%' . $keywords . '%') ->get() ->toArray(); $data = []; foreach ($res as $item) { $data[] = [ 'key' => $item['join_family_member_id'], 'value' => $item['family_member_name'] ]; } return json_success('', $data); } public function selectMemberAllQuota(Request $request){ $memberId = $request->get('member_id',''); $person = $request->get('person',''); if(!$memberId){ return json_fail('参数异常'); } $data = []; $benefit = MemberBenefit::where('join_benefit_member_id',$memberId) // ->whereColumn('member_benefit_limit_count','>','member_benefit_used_count') ->select('member_benefit_id as id','member_benefit_name as name','member_benefit_limit_count as total','member_benefit_used_count as used') ->get() ->toArray(); foreach($benefit as $item){ if ($item['total'] - $item['used'] < $person){ $item['disabled'] = true; } $item['cut'] = $item['total'] - $item['used']; $data[] = $item; } $quotas = MemberQuota::where('join_quota_member_id',$memberId) ->selectRaw('join_quota_member_id,join_member_rule_added_component_id,COUNT(*) as total') ->groupBy('join_quota_member_id','join_member_rule_added_component_id') ->get() ->toArray(); foreach($quotas as $quota){ $usedNum = MemberQuota::where('join_quota_member_id',$quota['join_quota_member_id']) ->where('join_member_rule_added_component_id',$quota['join_member_rule_added_component_id']) ->where('member_quota_status','USED') ->count('*'); if($quota['total'] <= $usedNum){ continue; } $memberQuota = MemberQuota::where('join_quota_member_id',$quota['join_quota_member_id']) ->where('join_member_rule_added_component_id',$quota['join_member_rule_added_component_id']) ->select('member_quota_id as id','member_quota_name as name') ->first() ->toArray(); $memberQuota['total'] = $quota['total']; $memberQuota['used'] = $usedNum; if ($memberQuota['total'] - $memberQuota['used'] < $person){ $memberQuota['disabled'] = true; } $memberQuota['cut'] = $memberQuota['total'] - $memberQuota['used']; $data[] = $memberQuota; } return json_success('',$data); } public function list(Request $request) { return MemberService::list($request); } public function info(Request $request) { $memberId = $request->get('member_id', ''); if (!$memberId) { return json_fail("参数错误"); } return MemberService::info($memberId); } public function balanceInfo(Request $request) { $memberId = $request->get('member_id', ''); if (!$memberId) { return json_fail("参数错误"); } return MemberService::balanceInfo($memberId); } public function pointInfo(Request $request) { $memberId = $request->get('member_id', ''); if (!$memberId) { return json_fail("参数错误"); } return MemberService::pointInfo($memberId); } /** * @Desc 添加会员 * @Author Gorden * @Date 2024/3/25 13:40 * * @param Request $request * @return \support\Response */ public function add(Request $request) { $validate = new MemberValidate(); if (!$validate->scene('add')->check($request->post())) { return json_fail($validate->getError()); } _syslog("添加用户", "用户【" . $request->post('member_cert_name') . '】'); return MemberService::add($request->post()); } public function update(Request $request) { $validate = new MemberValidate(); if (!$validate->scene('update')->check($request->post())) { return json_fail($validate->getError()); } _syslog("编辑用户", "用户【" . $request->post('member_cert_name') ?? $request->post('member_id') . '】'); return MemberService::update($request->post()); } /** * @Desc 绑定的设备 * @Author Gorden * @Date 2024/4/7 10:20 * * @param $id * @return \support\Response */ public function device($id) { return MemberService::deviceList($id); } public function addDevice(Request $request) { return MemberService::addDevice($request); } public function updateDevice(Request $request) { return MemberService::updateDevice($request); } public function deleteDevice(Request $request) { return MemberService::deleteDevice($request); } }