gorden 6 månader sedan
förälder
incheckning
da864649dd

+ 66 - 1
app/admin/controller/order/RefundController.php

@@ -11,6 +11,7 @@ use app\model\OrderExpress;
 use app\model\OrderReturn;
 use app\model\OrderReturn;
 use app\model\OrderSheet;
 use app\model\OrderSheet;
 use app\model\PayDetail;
 use app\model\PayDetail;
+use app\model\SysUser;
 use Payment\Common\PayException;
 use Payment\Common\PayException;
 use support\Db;
 use support\Db;
 use support\exception\BusinessException;
 use support\exception\BusinessException;
@@ -36,6 +37,10 @@ class RefundController extends Curd
         $type = $request->get('type', '');
         $type = $request->get('type', '');
         $field = $field ?? 'order_return_addtimes';
         $field = $field ?? 'order_return_addtimes';
         $where['order_return_category'] = '退款';
         $where['order_return_category'] = '退款';
+        if (!empty($where['order_return_addtimes'])){
+            $where['order_return_addtimes'][0] = strtotime($where['order_return_addtimes'][0]);
+            $where['order_return_addtimes'][1] = strtotime($where['order_return_addtimes'][1]);
+        }
         if ($type == 'today') {
         if ($type == 'today') {
             $where['order_return_addtimes'] = [
             $where['order_return_addtimes'] = [
                 strtotime(date('Y-m-d') . ' 00:00:00'),
                 strtotime(date('Y-m-d') . ' 00:00:00'),
@@ -97,6 +102,21 @@ class RefundController extends Curd
     public function afterQuery($items)
     public function afterQuery($items)
     {
     {
         foreach ($items as &$item) {
         foreach ($items as &$item) {
+            if (!empty($item['order'])) {
+                $orderSheet = OrderSheet::with([
+                    'goods' => function ($query) {
+                        $query->select('goods_id', 'goods_name');
+                    }
+                ])->select('join_sheet_order_id','join_sheet_goods_id')
+                    ->where('join_sheet_order_id',$item['order']->order_id)
+                    ->get()
+                    ->toArray();
+                $goodsName = !empty($orderSheet) ? $orderSheet[0]['goods']['goods_name'] : '';
+                if (count($orderSheet) > 1){
+                    $goodsName.= ' 等';
+                }
+                $item['goods_name'] = $goodsName;
+            }
             if (!empty($item['order_return_apply_json']) && is_json($item['order_return_apply_json'])) {
             if (!empty($item['order_return_apply_json']) && is_json($item['order_return_apply_json'])) {
                 $json = json_decode($item['order_return_apply_json'], true);
                 $json = json_decode($item['order_return_apply_json'], true);
                 $item['order_return_apply_json'] = $json['apply'] ?? '';
                 $item['order_return_apply_json'] = $json['apply'] ?? '';
@@ -105,7 +125,12 @@ class RefundController extends Curd
                 $json = json_decode($item['order_return_recharge_json'], true);
                 $json = json_decode($item['order_return_recharge_json'], true);
                 $item['order_return_recharge_json'] = $json['change'] ?? '';
                 $item['order_return_recharge_json'] = $json['change'] ?? '';
             }
             }
-
+            if (!empty($item['order_return_refund_json']) && is_json($item['order_return_refund_json'])) {
+                $returnRefundJson = json_decode($item['order_return_refund_json'], true);
+                if (!empty($returnRefundJson['user_id'])){
+                    $item['userName'] = SysUser::where('user_id',$returnRefundJson['user_id'])->value('user_name');
+                }
+            }
         }
         }
 
 
         return $items;
         return $items;
@@ -152,13 +177,28 @@ class RefundController extends Curd
             'goods' => function ($query) {
             'goods' => function ($query) {
                 $query->select('goods_id', 'goods_name', 'goods_cover', 'goods_market_price', 'goods_sales_price', 'goods_classify');
                 $query->select('goods_id', 'goods_name', 'goods_cover', 'goods_market_price', 'goods_sales_price', 'goods_classify');
             },
             },
+            'sku' => function ($query) {
+                $query->select('goods_sku_id', 'join_sku_goods_id', 'goods_sku_specs_json', 'goods_sku_sales_price');
+            },
             'memberInfo',
             'memberInfo',
             'cert',
             'cert',
             'refund'
             'refund'
         ])->where('join_sheet_order_id', $orderId)
         ])->where('join_sheet_order_id', $orderId)
             ->get()
             ->get()
             ->toArray();
             ->toArray();
+        $member = [];
+        $cert = [];
+        $memberInfo = [];
         foreach ($orderSheet as &$item) {
         foreach ($orderSheet as &$item) {
+            if (isset($item['member']) && empty($member)) {
+                $member = $item['member'];
+            }
+            if (isset($item['cert']) && empty($cert)) {
+                $cert = $item['cert'];
+            }
+            if (isset($item['member_info']) && empty($memberInfo)) {
+                $memberInfo = $item['member_info'];
+            }
             $item['goods']['goods_cover'] = getenv('STORAGE_DOMAIN') . $item['goods']['goods_cover'];
             $item['goods']['goods_cover'] = getenv('STORAGE_DOMAIN') . $item['goods']['goods_cover'];
             if (!empty($item['goods']) && $item['goods']['goods_classify'] == 'PACKAGE') {
             if (!empty($item['goods']) && $item['goods']['goods_classify'] == 'PACKAGE') {
                 $components = GoodsComponent::with('goods')
                 $components = GoodsComponent::with('goods')
@@ -181,6 +221,20 @@ class RefundController extends Curd
 
 
                 $item['goods']['components'] = $goodsArr;
                 $item['goods']['components'] = $goodsArr;
             }
             }
+            if (!empty($item['sku'])) {
+                if (!empty($item['sku']['goods_sku_specs_json'])) {
+                    $specsJson = json_decode($item['sku']['goods_sku_specs_json'], true);
+                    $skuName = '';
+                    foreach ($specsJson as $specsKey => $skuSpecs) {
+                        if (is_array($skuSpecs)) {
+                            $skuName = $skuName . ' ' . implode(' ', $skuSpecs) . ';';
+                        } else {
+                            $skuName = $skuName . ' ' . $skuSpecs . ';';
+                        }
+                    }
+                    $item['sku']['goods_sku_title'] = rtrim($skuName, ';');
+                }
+            }
 
 
             if (!empty($item['refund'])) {
             if (!empty($item['refund'])) {
                 if (!empty($item['refund']['order_return_apply_json']) && is_json($item['refund']['order_return_apply_json'])) {
                 if (!empty($item['refund']['order_return_apply_json']) && is_json($item['refund']['order_return_apply_json'])) {
@@ -195,9 +249,20 @@ class RefundController extends Curd
         }
         }
 
 
         $order = Order::where('order_id', $orderId)->first();
         $order = Order::where('order_id', $orderId)->first();
+        $return = OrderReturn::where('join_return_order_id', $orderId)->first();
+        if (!empty($return->order_return_refund_json)) {
+            $returnRefundJson = json_decode($return->order_return_refund_json, true);
+            if (!empty($returnRefundJson['user_id'])){
+                $return->userName = SysUser::where('user_id',$returnRefundJson['user_id'])->value('user_name');
+            }
+        }
         $express = OrderExpress::where('join_express_order_id', $orderId)->first();
         $express = OrderExpress::where('join_express_order_id', $orderId)->first();
         $data = [
         $data = [
+            'member' => $member,
+            'cert' => $cert,
+            'member_info' => $memberInfo,
             'order' => $order,
             'order' => $order,
+            'refund' => $return,
             'sheet' => $orderSheet,
             'sheet' => $orderSheet,
             'express' => $express
             'express' => $express
         ];
         ];

+ 41 - 18
app/admin/service/member/MemberService.php

@@ -82,9 +82,9 @@ class MemberService
                 $query->whereBetween('member.member_addtimes', $addtime);
                 $query->whereBetween('member.member_addtimes', $addtime);
             })
             })
             ->select('member_id', 'member_is_vip', 'member_is_owner', 'member_classify', 'member_status', 'member_mobile', 'member_from', 'member_addtimes', 'member_extend_json',
             ->select('member_id', 'member_is_vip', '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_info.member_info_referee', 'member_info.member_info_business', 'member_info.member_info_service',
+                'member_info.member_info_nickname', 'member_info.member_info_headimg', 'member_info.member_info_referee', 'member_info.member_info_business', 'member_info.member_info_service', 'member_info.member_info_city', 'member_info.member_info_address', 'member_info.member_info_gender', 'member_info.member_info_birthday',
                 'member_role.member_role_id', 'member_role.member_role_name',
                 '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_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'
 //                'member_account.member_account_surplus'
             );
             );
         // 总条数
         // 总条数
@@ -102,8 +102,16 @@ class MemberService
                 'member_info_headimg' => !empty($row['member_info_headimg']) ? $row['member_info_headimg'] : '',
                 'member_info_headimg' => !empty($row['member_info_headimg']) ? $row['member_info_headimg'] : '',
                 'member_info_referee' => !empty($row['member_info_referee']) ? $row['member_info_referee'] : '',
                 'member_info_referee' => !empty($row['member_info_referee']) ? $row['member_info_referee'] : '',
                 'member_info_business' => !empty($row['member_info_business']) ? $row['member_info_business'] : '',
                 'member_info_business' => !empty($row['member_info_business']) ? $row['member_info_business'] : '',
-                'member_info_service' => !empty($row['member_info_service']) ? $row['member_info_service'] : ''
+                'member_info_service' => !empty($row['member_info_service']) ? $row['member_info_service'] : '',
+                'member_info_city' => !empty($row['member_info_city']) ? explode('-',$row['member_info_city']) : '',
+                'member_info_address' => !empty($row['member_info_address']) ? $row['member_info_address'] : '',
+                'member_info_birthday' => !empty($row['member_info_birthday']) ? $row['member_info_birthday'] : '',
+                'member_info_gender' => !empty($row['member_info_gender']) ? $row['member_info_gender'] : '',
             ];
             ];
+            if (!empty($row['info']['member_info_address']) && in_array($row['info']['member_info_address'], ['请选择', '省-市-区'])) {
+                $row['info']['member_info_address'] = '';
+            }
+
             $row['cert'] = [
             $row['cert'] = [
                 'member_cert_birth' => $row['member_cert_birth'],
                 'member_cert_birth' => $row['member_cert_birth'],
                 'member_cert_gender' => $row['member_cert_gender'],
                 'member_cert_gender' => $row['member_cert_gender'],
@@ -332,7 +340,14 @@ class MemberService
             'member_info_referee' => !empty($member['info']) && !empty($member['info']['member_info_referee']) ? $member['info']['member_info_referee'] : '',
             'member_info_referee' => !empty($member['info']) && !empty($member['info']['member_info_referee']) ? $member['info']['member_info_referee'] : '',
             'member_info_business' => !empty($member['info']) && !empty($member['info']['member_info_business']) ? $member['info']['member_info_business'] : '',
             'member_info_business' => !empty($member['info']) && !empty($member['info']['member_info_business']) ? $member['info']['member_info_business'] : '',
             'member_info_service' => !empty($member['info']) && !empty($member['info']['member_info_service']) ? $member['info']['member_info_service'] : '',
             'member_info_service' => !empty($member['info']) && !empty($member['info']['member_info_service']) ? $member['info']['member_info_service'] : '',
+            'member_info_city' => !empty($member['info']) && !empty($member['info']['member_info_city']) ? explode('-',$member['info']['member_info_city']) : '',
+            'member_info_address' => !empty($member['info']) && !empty($member['info']['member_info_address']) ? $member['info']['member_info_address'] : '',
+            'member_info_gender' => !empty($member['info']) && !empty($member['info']['member_info_gender']) ? $member['info']['member_info_gender'] : '',
+            'member_info_birthday' => !empty($member['info']) && !empty($member['info']['member_info_birthday']) ? $member['info']['member_info_birthday'] : '',
         ];
         ];
+        if (!empty($member['info']['member_info_address']) && in_array($member['info']['member_info_address'], ['请选择', '省-市-区'])) {
+            $member['info']['member_info_address'] = '';
+        }
         $member['cert'] = [
         $member['cert'] = [
             'member_cert_birth' => $member['cert']['member_cert_birth'] ?? '',
             'member_cert_birth' => $member['cert']['member_cert_birth'] ?? '',
             'member_cert_gender' => $member['cert']['member_cert_gender'] ?? '',
             'member_cert_gender' => $member['cert']['member_cert_gender'] ?? '',
@@ -344,23 +359,23 @@ class MemberService
             'member_cert_photo' => !empty($member['cert']) && !empty($member['cert']['member_cert_photo']) ? getenv('STORAGE_DOMAIN') . $member['cert']['member_cert_photo'] : '',
             'member_cert_photo' => !empty($member['cert']) && !empty($member['cert']['member_cert_photo']) ? getenv('STORAGE_DOMAIN') . $member['cert']['member_cert_photo'] : '',
             'member_cert_nation' => $member['cert']['member_cert_nation'] ?? '',
             'member_cert_nation' => $member['cert']['member_cert_nation'] ?? '',
         ];
         ];
-        if (!empty($member['join_invite_member_id'])){
+        if (!empty($member['join_invite_member_id'])) {
             $inviteMember = Member::with([
             $inviteMember = Member::with([
-                'info'=>function($query){
-                    $query->select('join_info_member_id','member_info_nickname');
+                'info' => function ($query) {
+                    $query->select('join_info_member_id', 'member_info_nickname');
                 },
                 },
-                'cert'=>function($query){
-                    $query->select('join_cert_member_id','member_cert_name');
+                'cert' => function ($query) {
+                    $query->select('join_cert_member_id', 'member_cert_name');
                 }
                 }
-            ])->where('member_id',$member['join_invite_member_id'])
+            ])->where('member_id', $member['join_invite_member_id'])
                 ->first();
                 ->first();
             $inviteMemberName = '';
             $inviteMemberName = '';
-            if (!empty($inviteMember->cert) && !empty($inviteMember->cert->member_cert_name)){
+            if (!empty($inviteMember->cert) && !empty($inviteMember->cert->member_cert_name)) {
                 $inviteMemberName = $inviteMember->cert->member_cert_name;
                 $inviteMemberName = $inviteMember->cert->member_cert_name;
-            }elseif (!empty($inviteMemberName->info) && !empty($inviteMemberName->info->member_info_nickname)){
+            } elseif (!empty($inviteMemberName->info) && !empty($inviteMemberName->info->member_info_nickname)) {
                 $inviteMemberName = $inviteMemberName->info->member_info_nickname;
                 $inviteMemberName = $inviteMemberName->info->member_info_nickname;
             }
             }
-            $member['invite_member'] = $inviteMemberName.(!empty($inviteMember->member_invite_code) ? '('.$inviteMember->member_invite_code.')' : '');
+            $member['invite_member'] = $inviteMemberName . (!empty($inviteMember->member_invite_code) ? '(' . $inviteMember->member_invite_code . ')' : '');
         }
         }
 
 
         $member['is_auth'] = "未认证";
         $member['is_auth'] = "未认证";
@@ -871,9 +886,9 @@ class MemberService
                 'member_cert_nbr' => $params['cert_nbr'] ?? '',
                 'member_cert_nbr' => $params['cert_nbr'] ?? '',
                 'member_cert_birth' => !empty($params['birth']) ? date('Y-m-d', strtotime($params['birth'])) : '',
                 'member_cert_birth' => !empty($params['birth']) ? date('Y-m-d', strtotime($params['birth'])) : '',
                 'member_cert_gender' => $params['gender'] ?? '',
                 'member_cert_gender' => $params['gender'] ?? '',
-                'member_cert_province' => !empty($params['province']) ? json_encode($params['province'], JSON_UNESCAPED_UNICODE) : '[]',
-                'member_cert_city' => $params['city'] ?? '',
-                'member_cert_addr' => $params['addr'] ?? '',
+//                'member_cert_province' => !empty($params['province']) ? json_encode($params['province'], JSON_UNESCAPED_UNICODE) : '[]',
+//                'member_cert_city' => $params['city'] ?? '',
+//                'member_cert_addr' => $params['addr'] ?? '',
 //                'member_cert_face' => str_replace(getenv('STORAGE_DOMAIN'), '', $params['member_cert_face']),
 //                'member_cert_face' => str_replace(getenv('STORAGE_DOMAIN'), '', $params['member_cert_face']),
 //                'member_cert_photo' => str_replace(getenv('STORAGE_DOMAIN'), '', $params['member_cert_photo']),
 //                'member_cert_photo' => str_replace(getenv('STORAGE_DOMAIN'), '', $params['member_cert_photo']),
             ];
             ];
@@ -886,6 +901,10 @@ class MemberService
                 'member_info_referee' => $params['member_info_referee'] ?? '',
                 'member_info_referee' => $params['member_info_referee'] ?? '',
                 'member_info_business' => $params['member_info_business'] ?? '',
                 'member_info_business' => $params['member_info_business'] ?? '',
                 'member_info_service' => $params['member_info_service'] ?? '',
                 'member_info_service' => $params['member_info_service'] ?? '',
+                'member_info_city' => !empty($params['province']) ? implode('-', $params['province']) : '',
+                'member_info_address' => $params['member_info_address'] ?? '',
+                'member_info_birthday'=>$params['birth'] ? date('Y-m-d', strtotime($params['birth'])) : '',
+                'member_info_gender' => $params['gender'] ?? '',
             ];
             ];
             MemberInfo::insert($infoData);
             MemberInfo::insert($infoData);
 
 
@@ -953,9 +972,9 @@ class MemberService
                 'member_cert_nbr' => $params['cert_nbr'] ?? '',
                 'member_cert_nbr' => $params['cert_nbr'] ?? '',
                 'member_cert_birth' => $params['birth'] ? date('Y-m-d', strtotime($params['birth'])) : '',
                 'member_cert_birth' => $params['birth'] ? date('Y-m-d', strtotime($params['birth'])) : '',
                 'member_cert_gender' => $params['gender'] ?? '',
                 'member_cert_gender' => $params['gender'] ?? '',
-                'member_cert_province' => $params['province'] ? json_encode($params['province'], JSON_UNESCAPED_UNICODE) : '[]',
-                'member_cert_city' => $params['city'] ?? '',
-                'member_cert_addr' => $params['addr'] ?? '',
+//                'member_cert_province' => $params['province'] ? json_encode($params['province'], JSON_UNESCAPED_UNICODE) : '[]',
+//                'member_cert_city' => $params['city'] ?? '',
+//                'member_cert_addr' => $params['addr'] ?? '',
                 'member_cert_face' => str_replace(getenv('STORAGE_DOMAIN'), '', $params['member_cert_face']),
                 'member_cert_face' => str_replace(getenv('STORAGE_DOMAIN'), '', $params['member_cert_face']),
                 'member_cert_photo' => str_replace(getenv('STORAGE_DOMAIN'), '', $params['member_cert_photo']),
                 'member_cert_photo' => str_replace(getenv('STORAGE_DOMAIN'), '', $params['member_cert_photo']),
             ];
             ];
@@ -979,6 +998,10 @@ class MemberService
                 'member_info_referee' => $params['member_info_referee'] ?? '',
                 'member_info_referee' => $params['member_info_referee'] ?? '',
                 'member_info_business' => $params['member_info_business'] ?? '',
                 'member_info_business' => $params['member_info_business'] ?? '',
                 'member_info_service' => $params['member_info_service'] ?? '',
                 'member_info_service' => $params['member_info_service'] ?? '',
+                'member_info_city' => !empty($params['province']) ? implode('-', $params['province']) : '',
+                'member_info_address' => $params['member_info_address'] ?? '',
+                'member_info_birthday'=>$params['birth'] ? date('Y-m-d', strtotime($params['birth'])) : '',
+                'member_info_gender' => $params['gender'] ?? '',
             ];
             ];
             if (!MemberInfo::where('join_info_member_id', $params['member_id'])->exists()) {
             if (!MemberInfo::where('join_info_member_id', $params['member_id'])->exists()) {
                 MemberInfo::insert($infoData);
                 MemberInfo::insert($infoData);