Browse Source

补字段

gorden 4 months ago
parent
commit
dc65cb68aa

+ 42 - 12
app/admin/controller/finance/CommissionListController.php

@@ -4,11 +4,13 @@ namespace app\admin\controller\finance;
 
 use app\admin\service\goods\GoodsSkuService;
 use app\admin\service\member\MemberService;
+use app\admin\service\order\PayDetailService;
 use app\controller\Curd;
 use app\model\Member;
 use app\model\MemberAccountList;
 use app\model\Order;
 use app\model\OrderSheet;
+use app\model\PayDetail;
 use support\Request;
 use support\Response;
 
@@ -90,6 +92,20 @@ class CommissionListController extends Curd
             $item['member_is_referrer'] = isset($item['member']) ? $item['member']['member_is_referrer'] : '';
 
             unset($item['member'], $item['memberInfo'], $item['memberCert']);
+
+            if (!empty($item['member_account_list_json'])) {
+                $memberAccountListJson = json_decode($item['member_account_list_json'], true);
+                $member = Member::with([
+                    'cert' => function ($query) {
+                        $query->select('join_cert_member_id', 'member_cert_name');
+                    }
+                ])->where('member_id', $memberAccountListJson['master_member_id'])
+                    ->first();
+                $mobile = !empty($member->member_mobile) ? $member->member_mobile : '';
+                $certName = !empty($member->cert) ? $member->cert->member_cert_name : '';
+                $item['master_name'] = MemberService::getMemberCertName($mobile, $certName, '');
+            }
+
         }
 
         return $items;
@@ -124,7 +140,7 @@ class CommissionListController extends Curd
             if (isset($accountListJson['master_member_id'])) {
                 $member = Member::with([
                     'info' => function ($query) {
-                        $query->select('join_info_member_id', 'member_info_nickname');
+                        $query->select('join_info_member_id', 'member_info_nickname', 'member_info_headimg');
                     },
                     'cert' => function ($query) {
                         $query->select('join_cert_member_id', 'member_cert_name');
@@ -135,6 +151,7 @@ class CommissionListController extends Curd
                 ])->where('member_id', $accountListJson['master_member_id'])
                     ->first();
                 $info->master_nickname = isset($member->info) && !empty($member->info->member_info_nickname) ? $member->info->member_info_nickname : MemberService::getMemberNickname($member->member_mobile ?? '');
+                $info->master_headimg = MemberService::getAvatarUrl(!empty($member->info) ? $member->info->member_info_headimg : '');
                 $info->master_certname = isset($member->cert) && !empty($member->cert->member_cert_name) ? $member->cert->member_cert_name : '';
                 $info->master_mobile = isset($member) && !empty($member->member_mobile) ? $member->member_mobile : '';
                 $info->master_member_name = MemberService::getMemberName($info->master_mobile, $info->master_certname, $info->master_nickname);
@@ -148,28 +165,41 @@ class CommissionListController extends Curd
             // 订单
             if (isset($accountListJson['order_id'])) {
                 $info->order = Order::where('order_id', $accountListJson['order_id'])
-                    ->select('order_id','order_groupby','order_amount_total','order_amount_pay','order_addtimes')
+                    ->select('order_id', 'order_groupby', 'order_amount_total', 'order_amount_pay', 'order_addtimes')
                     ->first();
                 $sheets = OrderSheet::with([
-                    'goods'=>function($query){
-                        $query->select('goods_id','goods_name','goods_sales_price','goods_cover');
+                    'goods' => function ($query) {
+                        $query->select('goods_id', 'goods_name', 'goods_sales_price', 'goods_cover');
                     },
-                    'sku' => function($query){
-                        $query->select('goods_sku_id','goods_sku_specs_json');
+                    'sku' => function ($query) {
+                        $query->select('goods_sku_id', 'goods_sku_specs_json');
                     }
-                ])->where('join_sheet_order_id',$accountListJson['order_id'])
-                    ->select('join_sheet_order_id','join_sheet_goods_id','join_sheet_goods_sku_id','order_sheet_num','order_sheet_price','order_sheet_amount','order_sheet_addtimes')
+                ])->where('join_sheet_order_id', $accountListJson['order_id'])
+                    ->select('join_sheet_order_id', 'join_sheet_goods_id', 'join_sheet_goods_sku_id', 'order_sheet_num', 'order_sheet_price', 'order_sheet_amount', 'order_sheet_addtimes')
                     ->get()
                     ->toArray();
-                foreach ($sheets as &$sheet){
-                    if (!empty($sheet['goods']) && !empty($sheet['goods']['goods_cover'])){
-                        $sheet['goods']['goods_cover'] = getenv('STORAGE_DOMAIN').$sheet['goods']['goods_cover'];
+                foreach ($sheets as &$sheet) {
+                    if (!empty($sheet['goods']) && !empty($sheet['goods']['goods_cover'])) {
+                        $sheet['goods']['goods_cover'] = getenv('STORAGE_DOMAIN') . $sheet['goods']['goods_cover'];
                     }
-                    if (!empty($sheet['sku'])){
+                    if (!empty($sheet['sku'])) {
                         $sheet['sku']['sku_title'] = GoodsSkuService::getSkuTitle($sheet['sku']['goods_sku_specs_json']);
                     }
                 }
                 $info->sheet = $sheets;
+
+                // 支付记录
+                $payDetails = PayDetail::whereJsonContains('join_pay_object_json->order_id', $accountListJson['order_id'])
+                    ->select('pay_amount', 'pay_status', 'pay_paytimes', 'pay_prepayid')
+                    ->where('pay_status', 'SUCCESS')
+                    ->orderBy('pay_addtimes', 'DESC')
+                    ->get()
+                    ->toArray();
+                foreach ($payDetails as &$detail) {
+                    $detail['pay_category'] = PayDetailService::getPayWayByPrepayId($detail['pay_prepayid']);
+                }
+
+                $info->payDetails = $payDetails;
             }
         }
 

+ 19 - 35
app/admin/controller/finance/MemberAccountController.php

@@ -3,6 +3,7 @@
 namespace app\admin\controller\finance;
 
 use app\model\Member;
+use app\model\MemberRole;
 use support\Db;
 use support\Request;
 
@@ -28,36 +29,14 @@ class MemberAccountController
             $month = date('Ym');
         }
 
-        // $rows = Db::table("data_account_{$month} as da")
-        //     ->leftJoin('member as m', 'm.member_id', '=', 'da.join_data_account_member_id')
-        //     ->leftJoin('member_cert as mc', 'mc.join_cert_member_id', '=', 'da.join_data_account_member_id')
-        //     ->leftJoin('member_info as mi', 'mi.join_info_member_id', '=', 'da.join_data_account_member_id')
-        //     ->when(!empty($classify), function ($query) use ($classify) {
-        //         $query->where('da.data_account_classify', $classify);
-        //     })
-        //     ->selectRaw("app_m.member_mobile,app_mc.member_cert_name,app_mi.member_info_nickname,app_m.member_addtimes as member_addtimes,
-        //         GROUP_CONCAT(app_da.data_account_income) as data_account_income,GROUP_CONCAT(app_da.data_account_expend) as data_account_expend,
-        //         GROUP_CONCAT(app_da.data_account_surplus) as data_account_surplus,GROUP_CONCAT(app_da.data_account_added) as data_account_added
-        //         ")
-        //     ->groupBy('da.join_data_account_member_id');
-
-        // $total = $rows->count('*');
-        // $rows = $rows->orderBy('m.member_addtimes','DESC')
-        //     ->forPage($page, $pageSize)
-        //     ->get()
-        //     ->toArray();
-        // $statistics = [];
-        // foreach ($rows as &$row){
-        //     $row->data_account_income = last(explode(',',$row->data_account_income));
-        //     $row->data_account_expend = last(explode(',',$row->data_account_expend));
-        //     $row->data_account_surplus = last(explode(',',$row->data_account_surplus));
-        //     $row->data_account_added = last(explode(',',$row->data_account_added));
-        //     $row->member_addtimes = date('Y-m-d H:i:s',$row->member_addtimes);
-        // }
-
-        // return json_success('', compact('rows', 'page', 'pageSize', 'total','statistics'));
-
-
+        // 兼容老等级搜索
+        $levelIds = [];
+        if (!empty($level)) {
+            $levelName = MemberRole::where('member_role_id', $level)->value('member_role_name');
+            if (!empty($levelName)) {
+                $levelIds = MemberRole::where('member_role_name', $levelName)->pluck('member_role_id')->toArray();
+            }
+        }
         $rows = Member::with([
             'cert' => function ($query) {
                 $query->select('join_cert_member_id', 'member_cert_name');
@@ -70,13 +49,18 @@ class MemberAccountController
             }
         ])->join('member_account as ma', function ($join) use ($accountType) {
             $join->on('member.member_id', '=', 'ma.join_account_member_id')->where('ma.member_account_classify', '=', $accountType);
-        })->when(!empty($level), function ($query) use ($level) {
-            if ($level == '00'){
-                $query->where('join_member_role_id','')->orWhere('join_member_role_id',NULL);
-            }else{
+        })->leftJoin('member_role', 'member_role.member_role_id', 'member.join_member_role_id')
+            ->when(!empty($level), function ($query) use ($level,$levelIds) {
+            if ($level == '00') {
+                $query->where('join_member_role_id', '')->orWhere('join_member_role_id', NULL);
+            } else if ($level == 'VIP') {
+                $query->where('member.member_is_vip', 'Y');
+            } else if (!empty($levelIds)) {
+                $query->whereIn('member_role.member_role_id', $levelIds);
+            } else {
                 $query->where('join_member_role_id', $level);
             }
-            
+
         })->when(!empty($days), function ($query) use ($days) {
             $query->whereBetween('member.member_addtimes', $days);
         })->when(!empty($premisesId), function ($query) use ($premisesId) {

+ 7 - 5
app/admin/controller/finance/WithdrawalListController.php

@@ -95,9 +95,9 @@ class WithdrawalListController extends Curd
             $item['member_is_referrer'] = isset($item['member']) ? $item['member']['member_is_referrer'] : '';
 
             unset($item['member'], $item['memberInfo'], $item['memberCert']);
-            if (!empty($item['member_account_list_extend_json'])){
-                $memberAccountListExtendJson = json_decode($item['member_account_list_extend_json'],true);
-                if (isset($memberAccountListExtendJson['reason'])){
+            if (!empty($item['member_account_list_extend_json'])) {
+                $memberAccountListExtendJson = json_decode($item['member_account_list_extend_json'], true);
+                if (isset($memberAccountListExtendJson['reason'])) {
                     $item['reason'] = $memberAccountListExtendJson['reason'];
                 }
             }
@@ -132,6 +132,8 @@ class WithdrawalListController extends Curd
         // 获取银行卡信息
         if (!empty($info->member_account_list_json)) {
             $accountListJson = json_decode($info->member_account_list_json, true);
+            $info->out_rate = !empty($accountListJson['out_rate']) ? $accountListJson['out_rate'] / 10 : 0;
+            $info->to_account = sprintf('%.2f',$info->member_account_list_amount - (round($info->member_account_list_amount * $info->out_rate / 100, 2)));
             $info->banks = [
                 [
                     'bank_name' => $accountListJson['bank_name'] ?? '',
@@ -142,10 +144,10 @@ class WithdrawalListController extends Curd
         }
         if (!empty($info->member_account_list_extend_json)) {
             $memberAccountListExtendJson = json_decode($info->member_account_list_extend_json, true);
-            if (isset($memberAccountListExtendJson['reason'])){
+            if (isset($memberAccountListExtendJson['reason'])) {
                 $info->reason = $memberAccountListExtendJson['reason'];
             }
-            if (isset($memberAccountListExtendJson['resulttime'])){
+            if (isset($memberAccountListExtendJson['resulttime'])) {
                 $info->resulttime = $memberAccountListExtendJson['resulttime'];
             }
         }

+ 34 - 10
app/admin/service/order/PayDetailService.php

@@ -88,16 +88,17 @@ class PayDetailService
             $data['pay_status'] = $detail['pay_status'];
             $data['pay_amount'] = $detail['pay_amount'];
             $data['pay_category'] = $detail['pay_category'];
-            $payWay = '';
-            if (in_array($detail['pay_prepayid'], ['WXPAY', 'ALIPAY', 'OFFLINE_WXPAY', 'OFFLINE_ALIPAY', 'MONEY', 'OFFLINE'])) {
-                $payWay = $detail['pay_prepayid'];
-            } else {
-                $prepayid = explode('-', $detail['pay_prepayid']);
-                if (!empty($prepayid[1]) && in_array($prepayid[1], ['CASH', 'WELFARE', 'QRCODE', 'NONE'])) {
-                    $payWay = $prepayid[1];
-                }
-            }
-            if (empty($payWay)){
+//            $payWay = '';
+//            if (in_array($detail['pay_prepayid'], ['WXPAY', 'ALIPAY', 'OFFLINE_WXPAY', 'OFFLINE_ALIPAY', 'MONEY', 'OFFLINE'])) {
+//                $payWay = $detail['pay_prepayid'];
+//            } else {
+//                $prepayid = explode('-', $detail['pay_prepayid']);
+//                if (!empty($prepayid[1]) && in_array($prepayid[1], ['CASH', 'WELFARE', 'QRCODE', 'NONE'])) {
+//                    $payWay = $prepayid[1];
+//                }
+//            }
+            $payWay = self::getPayWayByPrepayId($detail['pay_prepayid']);
+            if (empty($payWay)) {
                 $data['payWay'] = '';
                 return $data;
             }
@@ -111,4 +112,27 @@ class PayDetailService
 
         return $data;
     }
+
+    /**
+     * @Desc 根据prepayId 获取 支付方式
+     * @Author Gorden
+     * @Date 2024/10/28 14:04
+     *
+     * @param $prepayId
+     * @return mixed|string
+     */
+    public static function getPayWayByPrepayId($prepayId)
+    {
+        $payWay = '';
+        if (in_array($prepayId, ['WXPAY', 'ALIPAY', 'OFFLINE_WXPAY', 'OFFLINE_ALIPAY', 'MONEY', 'OFFLINE'])) {
+            $payWay = $prepayId;
+        } else {
+            $prepayId = explode('-', $prepayId);
+            if (!empty($prepayid[1]) && in_array($prepayid[1], ['CASH', 'WELFARE', 'QRCODE', 'NONE'])) {
+                $payWay = $prepayid[1];
+            }
+        }
+
+        return $payWay;
+    }
 }