<?php

namespace app\mobile\logic;

use app\model\AddrModel;
use app\model\CommonModel;
use app\model\CompanyGoodModel;
use app\model\GoodModel;
use app\model\GroupModel;
use app\model\InventoryExchangeModel;
use app\model\OrderModel;
use think\Exception;
use think\facade\Db;
use think\response\Json;

class ExchangeLogic extends BaseLogic
{

    //商品列表
    public static function goodList(array $data = []): Json
    {
        $db = CompanyGoodModel::alias('a')
            ->leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal)
            ->leftJoin('inventory_exchange c', 'c.account_id=' . self::$aid . ' AND c.good_id=a.good_id')
            ->where(['a.is_del' => CommonModel::$del_normal, 'a.group_id' => self::$group_id, 'b.type' => GoodModel::$type_exchange]);

        $count = $db->count('a.id');

        $list = $db
            ->field('a.id,a.code,a.good_id,b.good_cover_img,b.good_name,b.moq,b.step,c.inventory')
            ->page($data['page'], $data['size'])
            ->order(['a.is_top' => 'desc', 'a.weight' => 'desc', 'a.id' => 'desc'])
            ->select()
            ->toArray();

        return json_show(CommonModel::$success, '获取兑换商品列表成功', ['count' => $count, 'list' => $list]);

    }

    //商品详情
    public static function goodInfo(string $code = ''): Json
    {
        $rs = CompanyGoodModel::alias('a')
            ->field('a.id,a.code,a.good_id,b.good_cover_img,b.good_code,b.good_name,b.moq,b.step,b.good_banner_img,b.good_img,b.good_param,b.status,c.inventory,d.unit')
            ->leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal)
            ->leftJoin('inventory_exchange c', 'c.account_id=' . self::$aid . ' AND c.good_id=a.good_id')
            ->leftJoin('unit d', 'd.id=b.unit_id AND d.is_del=' . CommonModel::$del_normal)
            ->where(['a.is_del' => CommonModel::$del_normal, 'a.code' => $code])
            ->withAttr('good_param', function ($val) {
                return json_decode($val, true);
            })
            ->withAttr('good_img', function ($val) {
                return explode(',', $val);
            })->withAttr('good_banner_img', function ($val) {
                return explode(',', $val);
            })
            ->findOrEmpty()
            ->toArray();

        return json_show(CommonModel::$success, '获取兑换商品详情成功', $rs);

    }



}