|
@@ -28,6 +28,9 @@ class MemberService
|
|
|
$pageSize = $request->get('pageSize', 10);
|
|
|
$name = $request->get('name', '');
|
|
|
$mobile = $request->get('mobile', '');
|
|
|
+ $level = $request->get('level','');
|
|
|
+ $isAuth = $request->get('is_auth','');
|
|
|
+ $addtime = $request->get('member_addtimes',[]);
|
|
|
|
|
|
$rows = Member::with('account')
|
|
|
->where('member_is_owner', 'N')
|
|
@@ -40,7 +43,24 @@ class MemberService
|
|
|
$query->where('member_cert.member_cert_name', 'like', '%' . $name . '%');
|
|
|
})->when($mobile != '', function ($query) use ($mobile) {
|
|
|
$query->where('member.member_mobile', 'like', '%' . $mobile . '%');
|
|
|
- })->select('member_id', 'member_is_owner', 'member_classify', 'member_status', 'member_mobile', 'member_from', 'member_addtimes', 'member_extend_json',
|
|
|
+ })->when($level != '', function ($query) use ($level) {
|
|
|
+ if($level == 'other'){
|
|
|
+ $query->whereNull('member.join_member_role_id');
|
|
|
+ }else{
|
|
|
+ $query->where('member_role.member_role_id', $level);
|
|
|
+ }
|
|
|
+ })->when($isAuth != '', function ($query) use ($isAuth) {
|
|
|
+ if($isAuth == 'Y'){
|
|
|
+ $query->where('member_cert.member_cert_name','<>',NULL)->where('member_cert.member_cert_nbr','<>',NULL)->where('member_cert.member_cert_name','<>','')->where('member_cert.member_cert_nbr','<>','');
|
|
|
+ }else{
|
|
|
+ $query->where('member_cert.member_cert_name',NULL)->orWhere('member_cert.member_cert_nbr',NULL)->orWhere('member_cert.member_cert_name','')->orWhere('member_cert.member_cert_nbr','');
|
|
|
+ }
|
|
|
+ })->when(!empty($addtime), function ($query) use ($addtime) {
|
|
|
+ $addtime[0] = strtotime($addtime[0]);
|
|
|
+ $addtime[1] = strtotime($addtime[1]);
|
|
|
+ $query->whereBetween('member.member_addtimes', $addtime);
|
|
|
+ })
|
|
|
+ ->select('member_id', 'member_is_owner', 'member_classify', 'member_status', 'member_mobile', 'member_from', 'member_addtimes', 'member_extend_json',
|
|
|
'member_info.member_info_nickname', 'member_info.member_info_headimg',
|
|
|
'member_role.member_role_id', 'member_role.member_role_name',
|
|
|
'member_cert.member_cert_birth', 'member_cert.member_cert_gender', 'member_cert.member_cert_name', 'member_cert.member_cert_nbr', 'member_cert.member_cert_province', 'member_cert.member_cert_addr', 'member_cert.member_cert_face', 'member_cert.member_cert_photo', 'member_cert.member_cert_nation',
|
|
@@ -55,7 +75,7 @@ class MemberService
|
|
|
|
|
|
foreach ($rows as &$row) {
|
|
|
$row['info'] = [
|
|
|
- 'member_info_nickname' => $row['member_info_nickname'] ?? '',
|
|
|
+ 'member_info_nickname' => $row['member_info_nickname'] ?? substr($row['member_mobile'],-4,4).'用户',
|
|
|
'member_info_headimg' => !empty($row['member_info_headimg']) ? $row['member_info_headimg'] : ''
|
|
|
];
|
|
|
$row['cert'] = [
|
|
@@ -118,6 +138,91 @@ class MemberService
|
|
|
return json_success('', compact('rows', 'page', 'pageSize', 'total'));
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public static function exportMember(Request $request)
|
|
|
+ {
|
|
|
+ $memberIds = $request->get('member_id','');
|
|
|
+ $rows = Member::with('account')
|
|
|
+ ->where('member_is_owner', 'N')
|
|
|
+ ->leftJoin('member_info', 'member_info.join_info_member_id', 'member.member_id')
|
|
|
+ ->leftJoin('member_cert', 'member_cert.join_cert_member_id', 'member.member_id')
|
|
|
+// ->leftjoin('member_account', 'member.member_id', '=', 'member_account.join_account_member_id')
|
|
|
+ ->leftJoin('member_role', 'member_role.member_role_id', 'member.join_member_role_id')
|
|
|
+// ->where('member_account.member_account_classify', 'CASH')
|
|
|
+ ->when($memberIds != '', function ($query) use ($memberIds) {
|
|
|
+ $query->whereIn('member.member_id', $memberIds);
|
|
|
+ })->select('member_id', 'member_is_owner', 'member_classify', 'member_status', 'member_mobile', 'member_from', 'member_addtimes', 'member_extend_json',
|
|
|
+ 'member_info.member_info_nickname', 'member_info.member_info_headimg',
|
|
|
+ 'member_role.member_role_id', 'member_role.member_role_name',
|
|
|
+ 'member_cert.member_cert_birth', 'member_cert.member_cert_gender', 'member_cert.member_cert_name', 'member_cert.member_cert_nbr', 'member_cert.member_cert_province', 'member_cert.member_cert_addr', 'member_cert.member_cert_face', 'member_cert.member_cert_photo', 'member_cert.member_cert_nation',
|
|
|
+// 'member_account.member_account_surplus'
|
|
|
+ )->orderBy('member_addtimes', 'DESC')
|
|
|
+ ->get()
|
|
|
+ ->toArray();
|
|
|
+
|
|
|
+ $exportData = [];
|
|
|
+ foreach ($rows as $row) {
|
|
|
+ $row['info'] = [
|
|
|
+ 'member_info_nickname' => $row['member_info_nickname'] ?? '',
|
|
|
+ 'member_info_headimg' => !empty($row['member_info_headimg']) ? $row['member_info_headimg'] : ''
|
|
|
+ ];
|
|
|
+ $row['cert'] = [
|
|
|
+ 'member_cert_name' => $row['member_cert_name'],
|
|
|
+ ];
|
|
|
+ $account = [];
|
|
|
+ if (!empty($row['account'])) {
|
|
|
+ foreach ($row['account'] as $item) {
|
|
|
+ if ($item['member_account_classify'] == 'POINTS') {
|
|
|
+ $account['points'] = [
|
|
|
+ 'member_account_surplus' => $item['member_account_surplus'],
|
|
|
+ 'member_account_added' => $item['member_account_added'],
|
|
|
+ ];
|
|
|
+ } else if ($item['member_account_classify'] == 'CASH') {
|
|
|
+ $account['cash'] = [
|
|
|
+ 'member_account_surplus' => $item['member_account_surplus'],
|
|
|
+ 'member_account_added' => $item['member_account_added'],
|
|
|
+ ];
|
|
|
+ } else if ($item['member_account_classify'] == 'CARD') {
|
|
|
+ $account['card'] = [
|
|
|
+ 'member_account_surplus' => $item['member_account_surplus'],
|
|
|
+ 'member_account_added' => $item['member_account_added'],
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // $row['account'] = $account;
|
|
|
+
|
|
|
+ $row['is_auth'] = "未认证";
|
|
|
+ if (!empty($row['member_cert_nbr']) && !empty($row['member_cert_name'])) {
|
|
|
+ $row['is_auth'] = "已认证";
|
|
|
+ }
|
|
|
+
|
|
|
+ $row['source'] = "APP";
|
|
|
+ if (!empty($row['member_extend_json'])) {
|
|
|
+ $extendJson = json_decode($row['member_extend_json'], true);
|
|
|
+ if (isset($extendJson['come_from'])) {
|
|
|
+ $row['source'] = $extendJson['come_from'] ?? '';
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $sourceStr = ['APP'=>"APP",'CUSTOMER'=>"客户管理",'SYSTEM'=>"后台"];
|
|
|
+ $exportData[] = [
|
|
|
+ 'member_id'=>$row['member_id'],
|
|
|
+ 'member_info_nickname'=>$row['info']['member_info_nickname'] ?? '',
|
|
|
+ 'member_mobile'=>$row['member_mobile'] ?? '',
|
|
|
+ 'member_cert_name'=>$row['cert']['member_cert_name'] ?? '',
|
|
|
+ 'source'=> in_array($row['source'],$sourceStr) ? $sourceStr[$row['source']] : 'APP',
|
|
|
+ 'cash'=>isset($account['cash']) ? $account['cash']['member_account_surplus'] + $account['cash']['member_account_added'] : 0,
|
|
|
+ 'points'=>isset($account['points']) ? $account['points']['member_account_surplus'] + $account['points']['member_account_added'] : 0,
|
|
|
+ 'is_auth' => $row['is_auth'],
|
|
|
+ 'level' => $row['member_role_name'] ?? '普通用户',
|
|
|
+ 'member_addtimes'=>$row['member_addtimes']
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ return json_success('',$exportData);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public static function info($memberId)
|
|
|
{
|
|
|
$member = Member::with('cert')
|