<?php
// +----------------------------------------------------------------------
// | Niucloud-mall 企业快速开发的多应用管理平台
// +----------------------------------------------------------------------
// | 官方网址:https://www.niucloud.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------

use app\api\middleware\ApiChannel;
use app\api\middleware\ApiCheckToken;
use app\api\middleware\ApiLog;
use think\facade\Route;


/**
 * 商城系统
 */
Route::group('mall', function() {

    /***************************************************** 商品 ****************************************************/

    // 获取商品列表
    Route::get('goods/pages', 'addon\mall\app\api\controller\goods\Goods@pages');

    // 获取店铺商品列表
    Route::get('goods_shop/pages', 'addon\mall\app\api\controller\goods\Goods@shopPages');

    // 获取选择优惠券可用商品列表
    Route::get('goods_coupon/pages', 'addon\mall\app\api\controller\goods\Goods@couponGoodsPages');

    // 获取商品详情
    Route::get('goods/detail', 'addon\mall\app\api\controller\goods\Goods@detail');

    // 获取商品详情
    Route::get('goods/sku/:sku_id', 'addon\mall\app\api\controller\goods\Goods@sku');

    // 获取商品分类配置
    Route::get('goods/category/config', 'addon\mall\app\api\controller\goods\GoodsCategory@getGoodsCategoryConfig');

    // 获取商品分类树结构
    Route::get('goods/category/tree', 'addon\mall\app\api\controller\goods\GoodsCategory@tree');

    // 获取商品分类列表
    Route::get('goods/category/list', 'addon\mall\app\api\controller\goods\GoodsCategory@lists');

    // 获取商品列表供组件调用
    Route::get('goods/components', 'addon\mall\app\api\controller\goods\Goods@components');

    // 获取商品服务列表
    Route::get('goods/service', 'addon\mall\app\api\controller\goods\GoodsService@all');

    // 获取店铺推荐商品列表
    Route::get('goods/recommend/:site_id', 'addon\mall\app\api\controller\goods\Goods@recommendList');

    // 获取推荐商品列表
    Route::get('goods/recommend', 'addon\mall\app\api\controller\goods\Goods@recommend');

    /***************************************************** 评价 ****************************************************/
    // 获取 评价设置
    Route::get('goods/evaluate/config', 'addon\mall\app\api\controller\Config@evaluate');
    // 获取 评价列表
    Route::get('goods/evaluate', 'addon\mall\app\api\controller\goods\Evaluate@pages');
    // 获取 评价列表
    Route::get('goods/evaluate/list', 'addon\mall\app\api\controller\goods\Evaluate@lists');
    // 获取 评价数量
    Route::get('goods/evaluate/count', 'addon\mall\app\api\controller\goods\Evaluate@count');
    // 获取 评价详情(评价)
    Route::get('goods/evaluate/:id', 'addon\mall\app\api\controller\goods\Evaluate@info');
    // 添加 商品评价
    Route::post('goods/evaluate', 'addon\mall\app\api\controller\goods\Evaluate@add');
    // 评价 (订单页)
    Route::get('order/evaluate/:id', 'addon\mall\app\api\controller\goods\Evaluate@getEvaluate');

    /***************************************************** 优惠券 ****************************************************/
    // 获取优惠券列表
    Route::get('coupon', 'addon\mall\app\api\controller\marketing\Coupon@lists');
    // 获取商品详情优惠券列表
    Route::get('goods_coupon', 'addon\mall\app\api\controller\marketing\Coupon@goodsDetailCouponLists');

    // 获取优惠券列表供组件调用
    Route::get('coupon/components', 'addon\mall\app\api\controller\marketing\Coupon@components');

    Route::get('coupon/components_of_mall', 'addon\mall\app\api\controller\marketing\Coupon@componentsOfMall');

    //详情
    Route::get('coupon/:id', 'addon\mall\app\api\controller\marketing\Coupon@detail');

    // 优惠券二维码
    Route::get('coupon/qrcode/:id', 'addon\mall\app\api\controller\marketing\Coupon@qrcode');

    //优惠券类型
    Route::get('coupon_type', 'addon\mall\app\api\controller\marketing\Coupon@getCouponType');

    Route::get('config/invoice', 'addon\mall\app\api\controller\Config@invoice');

    //电脑端楼层
    Route::get('web/floor', 'addon\mall\app\api\controller\web\Floor@lists');

})->middleware(ApiChannel::class)
    ->middleware(ApiCheckToken::class)//false表示不验证登录
    ->middleware(ApiLog::class);


Route::group('mall', function() {

    /***************************************************** 购物车 ****************************************************/

    // 添加购物车
    Route::post('cart', 'addon\mall\app\api\controller\cart\Cart@add');

    // 编辑购物车数量
    Route::put('cart', 'addon\mall\app\api\controller\cart\Cart@edit');

    // 购物车删除
    Route::put('cart/delete', 'addon\mall\app\api\controller\cart\Cart@del');

    // 清空购物车
    Route::delete('cart/clear', 'addon\mall\app\api\controller\cart\Cart@clear');

    // 购物车列表
    Route::get('cart', 'addon\mall\app\api\controller\cart\Cart@lists');

    // 购物车商品列表
    Route::get('cart/goods', 'addon\mall\app\api\controller\cart\Cart@goodsLists');

    // 购物车数量
    Route::get('cart/sum', 'addon\mall\app\api\controller\cart\Cart@sum');
    /***************************************************** 订单 ****************************************************/
    //列表
    Route::get('order', 'addon\mall\app\api\controller\order\Order@lists');

    //数量
    Route::get('order/num', 'addon\mall\app\api\controller\order\Order@getNum');

    //详情
    Route::get('order/:order_id', 'addon\mall\app\api\controller\order\Order@detail');

    //订单状态
    Route::get('order/status', 'addon\mall\app\api\controller\order\Order@orderStatus');

    //创建订单
    Route::post('order_create/create', 'addon\mall\app\api\controller\order\OrderCreate@create');
    //计算
    Route::get('order_create/calculate', 'addon\mall\app\api\controller\order\OrderCreate@calculate');
    //查询优惠券
    Route::get('order_create/coupon', 'addon\mall\app\api\controller\order\OrderCreate@getCoupon');
    //查询平台优惠券
    Route::get('order_create/platform_coupon', 'addon\mall\app\api\controller\order\OrderCreate@getPlatformCoupon');
    // 查询自提点
    Route::get('order_create/store', 'addon\mall\app\api\controller\order\OrderCreate@getStore');

    //获取订单确认数据
    Route::get('confirm', 'addon\mall\app\api\controller\order\OrderCreate@confirm');
    // 订单关闭
    Route::put('order/close/:id', 'addon\mall\app\api\controller\order\Order@orderClose');
    // 订单组关闭
    Route::put('order_group/close/:id', 'addon\mall\app\api\controller\order\OrderGroup@close');
    // 订单完成
    Route::put('order/finish/:id', 'addon\mall\app\api\controller\order\Order@orderFinish');
    //物流跟踪
    Route::get('order/logistics', 'addon\mall\app\api\controller\order\Order@getPackage');
    //添加优惠券
    Route::post('coupon', 'addon\mall\app\api\controller\marketing\Coupon@receive');
    //优惠券列表
    Route::get('member/coupon', 'addon\mall\app\api\controller\marketing\Coupon@memberCouponlists');
    //优惠券数量
    Route::get('member/coupon/count', 'addon\mall\app\api\controller\marketing\Coupon@memberCouponCount');
    //优惠券状态数量
    Route::get('member/coupon/status_count', 'addon\mall\app\api\controller\marketing\Coupon@memberCouponStatusCount');
    //商品收藏列表
    Route::get('goods/collect','addon\mall\app\api\controller\goods\GoodsCollect@getMemberGoodsCollectList');
    //商品添加收藏
    Route::post('goods/collect/:goods_id','addon\mall\app\api\controller\goods\GoodsCollect@addGoodsCollect');
    //商品取消收藏
    Route::delete('goods/collect/:goods_id','addon\mall\app\api\controller\goods\GoodsCollect@cancelGoodsCollect');
    //商品足迹添加
    Route::post('goods/browse','addon\mall\app\api\controller\goods\GoodsBrowse@addGoodsBrowse');
    //商品足迹删除
    Route::delete('goods/browse','addon\mall\app\api\controller\goods\GoodsBrowse@deleteGoodsBrowse');
    //商品足迹
    Route::get('goods/browse','addon\mall\app\api\controller\goods\GoodsBrowse@getMemberGoodsBrowseList');

    //订单维权 列表
    Route::get('order/refund', 'addon\mall\app\api\controller\refund\Refund@lists');
    //订单维权 详
    Route::get('order/refund/:order_refund_no', 'addon\mall\app\api\controller\refund\Refund@detail');
    // 申请维权
    Route::post('refund/apply', 'addon\mall\app\api\controller\refund\Refund@apply');
    // 修改退款申请
    Route::put('refund/:order_refund_no', 'addon\mall\app\api\controller\refund\Refund@edit');
    // 维权退货
    Route::post('refund/delivery/:order_refund_no', 'addon\mall\app\api\controller\refund\Refund@delivery');
    // 修改维权退货信息
    Route::put('refund/delivery/:order_refund_no', 'addon\mall\app\api\controller\refund\Refund@editDelivery');
    // 取消维权
    Route::put('refund/close/:order_refund_no', 'addon\mall\app\api\controller\refund\Refund@close');
    // 退款原因
    Route::get('refund/reason', 'addon\mall\app\api\controller\refund\Refund@getRefundReason');
    // 退款方式
    Route::get('order/refund/type', 'addon\mall\app\api\controller\refund\Refund@getRefundType');

    // 查询订单项可退款信息
    Route::get('refund/refund_data', 'addon\mall\app\api\controller\refund\Refund@getRefundData');
    // 查询订单项退款信息
    Route::get('refund/refund_data_by_no', 'addon\mall\app\api\controller\refund\Refund@getRefundDataByOrderRefundNo');

    //通过订单id获取订单组 列表
    Route::get('order_group/get_group_by_order/:order_id', 'addon\mall\app\api\controller\order\OrderGroup@getGroupByOrderId');

    // 发票列表
    Route::get('invoice', 'addon\mall\app\api\controller\order\Invoice@lists');
    // 发票详情
    Route::get('invoice/:id', 'addon\mall\app\api\controller\order\Invoice@info');
})->middleware(ApiChannel::class)
    ->middleware(ApiCheckToken::class, true)//表示验证登录
    ->middleware(ApiLog::class);