<?php

namespace App\Http\Controllers\Api;

use App\Command\Log;
use App\Models\Merchant;
use App\Models\User as UserModel;
use App\Models\OrderDivideRecord;
use App\Models\OrderGoods;
use App\Models\OrderInfo;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class MerchantController extends BaseController
{
    //绑定直购码用户列表
    public function getUserList(Request $request)
    {
        $mer_id = $request->user()->merchant_id;
        $merObj = Merchant::where('id', $mer_id)->first();
        $buycode = $merObj->buycode ?? '';
        if (!$buycode) {
            return $this->JsonResponse('', '参数错误', 201);
        }
        $page = $request->page ?? 1;
        $limit = $request->limit ?? 10;

        $sql = UserModel::where(['buycode' => $buycode, 'status' => 1, 'deleted_at' => null]);

        $total = $sql->count();
        $data = [
            'divideAmount' => 0,
            'total' => $total,
            'total_page' => ceil($total / $limit),
            'list' => []
        ];
        //商户佣金总额
        $divideAmount = OrderDivideRecord::where(['sh_type' => 3, 'um_id' => $mer_id])->sum('divide_price');
        $data['divideAmount'] = (float)$divideAmount;

        $listData = $sql->offset(($page - 1) * $limit)->limit($limit)->orderBy('created_at', 'DESC')->get();
        if ($listData->toArray()) {
            foreach ($listData as $item) {
                //获取会员给商户产生的佣金
                $uid = $item->id;
                $divide_price = OrderDivideRecord::where(['sh_type' => 3, 'um_id' => $mer_id, 'user_id' => $uid])->sum('divide_price');
                $data['list'][] = [
                    'uid' => $uid,
                    'name' => $item->name,
                    'divide_price' => (float)$divide_price,
                    'avatar' => $item->avatar ? env('IMAGE_URL') . $item->avatar : env('NO_AVATAR_IMAGE_URL'),
                    'created_at' => date('Y-m-d H:i:s', strtotime($item->created_at)),
                ];
            }
        }

        return  $this->JsonResponse($data);
    }

    //我的用户-订单列表(展示近10天)
    public function getOrderList(Request $request)
    {
        $mer_id = 4; //$request->user()->merchant_id;
        $user_id = $request->user_id ?? 0;
        if (!$user_id) {
            return $this->JsonResponse('', '参数错误', 201);
        }

        $daysAgo = date('Y-m-d H:i:s', strtotime("-10 days"));
        $list = DB::table("order_divide_record as odr")
            ->select(DB::raw('odr.order_id, o.order_status,o.created_at'))
            ->leftJoin('li_order_info as o', 'odr.order_id', '=', 'o.id')
            //->whereDate('odr.created_at', '>', $daysAgo)
            ->where(['odr.sh_type' => 3, 'odr.um_id' => $mer_id, 'odr.user_id' => $user_id])
            ->limit(100)
            ->get()
            ->toArray();
        foreach ($list as $key => $item) {
            $ogRows = DB::table('li_order_goods')->where('order_id', $item->order_id)
                ->select(DB::raw('goods_name,goods_number,goods_price,goods_img,goods_attr'))
                ->get()
                ->toArray();
            $order_goods = [];
            foreach ($ogRows as $key => $valObj) {
                $tmp = [];
                $tmp['goods_name'] = $valObj->goods_name;
                $tmp['goods_number'] = $valObj->goods_number;
                $tmp['goods_attr'] = $valObj->goods_attr;
                $tmp['goods_price'] = $valObj->goods_price;
                $tmp['goods_img'] = $valObj->goods_img ? togetherFilePath($valObj->goods_img) : '';
                array_push($order_goods, $tmp);
            }
            $list[$key]->status_txt = OrderInfo::STATUS_OPTIONS[$list[$key]->order_status];
            $list[$key]->og = $order_goods;
        }

        return  $this->JsonResponse($list);
    }
}