Orderaftersale.php 7.3 KB
Newer Older
D
devil_gong 已提交
1 2 3 4
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
D
2.0  
Devil 已提交
5
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
D
devil_gong 已提交
6
// +----------------------------------------------------------------------
D
2.0  
Devil 已提交
7
// | Licensed ( https://opensource.org/licenses/mit-license.php )
D
devil_gong 已提交
8 9 10 11 12 13
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\index\controller;

use app\service\OrderAftersaleService;
D
devil_gong 已提交
14
use app\service\SeoService;
D
Devil 已提交
15
use app\service\ResourcesService;
D
devil_gong 已提交
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

/**
 * 订单售后
 * @author   Devil
 * @blog     http://gong.gg/
 * @version  0.0.1
 * @datetime 2016-12-01T21:51:08+0800
 */
class Orderaftersale extends Common
{
    /**
     * 构造方法
     * @author   Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2018-11-30
     * @desc    description
     */
    public function __construct()
    {
        parent::__construct();

        // 是否登录
        $this->IsLogin();
    }

    /**
D
devil 已提交
43
     * 列表
D
devil_gong 已提交
44 45 46 47 48 49 50 51
     * @author   Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2018-09-28
     * @desc    description
     */
    public function Index()
    {
D
devil 已提交
52 53
        // 总数
        $total = OrderAftersaleService::OrderAftersaleTotal($this->form_where);
D
devil_gong 已提交
54 55

        // 分页
D
devil 已提交
56 57 58 59 60 61 62
        $page_params = [
            'number'    =>  $this->page_size,
            'total'     =>  $total,
            'where'     =>  $this->data_request,
            'page'      =>  $this->page,
            'url'       =>  MyUrl('index/orderaftersale/index'),
        ];
D
devil_gong 已提交
63 64
        $page = new \base\Page($page_params);

D
devil 已提交
65 66 67 68 69
        // 获取数据列表
        $data_params = [
            'where'         => $this->form_where,
            'm'             => $page->GetPageStarNumber(),
            'n'             => $this->page_size,
70
            'order_by'      => $this->form_order_by['data'],
D
devil 已提交
71 72 73
            'is_public'     => 0,
        ];
        $ret = OrderAftersaleService::OrderAftersaleList($data_params);
D
devil_gong 已提交
74

D
devil_gong 已提交
75
        // 浏览器名称
D
Devil 已提交
76
        MyViewAssign('home_seo_site_title', SeoService::BrowserSeoTitle('订单售后', 1));
D
devil_gong 已提交
77

D
devil 已提交
78
        // 基础参数赋值
D
Devil 已提交
79 80 81 82
        MyViewAssign('params', $this->data_request);
        MyViewAssign('page_html', $page->GetPageHtml());
        MyViewAssign('data_list', $ret['data']);
        return MyView();
D
devil_gong 已提交
83 84 85
    }

    /**
D
devil 已提交
86
     * 详情
D
devil_gong 已提交
87 88 89 90 91 92
     * @author   Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2019-05-21
     * @desc    description
     */
D
devil 已提交
93
    public function Detail()
D
devil_gong 已提交
94 95
    {
        // 参数
D
devil 已提交
96 97
        $order_id = isset($this->data_request['oid']) ? intval($this->data_request['oid']) : 0;
        $order_detail_id = isset($this->data_request['did']) ? intval($this->data_request['did']) : 0;
D
devil_gong 已提交
98
        $ret = OrderAftersaleService::OrdferGoodsRow($order_id, $order_detail_id, $this->user['id']);
D
devil_gong 已提交
99 100
        if($ret['code'] == 0)
        {
D
Devil 已提交
101 102
            MyViewAssign('goods', $ret['data']['items']);
            MyViewAssign('order', $ret['data']);
D
devil_gong 已提交
103 104 105

            // 仅退款原因
            $return_only_money_reason = MyC('home_order_aftersale_return_only_money_reason');
D
Devil 已提交
106
            MyViewAssign('return_only_money_reason_list', empty($return_only_money_reason) ? [] : explode("\n", $return_only_money_reason));
D
devil_gong 已提交
107 108 109

            // 退款退货原因
            $return_money_goods_reason = MyC('home_order_aftersale_return_money_goods_reason');
D
Devil 已提交
110
            MyViewAssign('return_money_goods_reason_list', empty($return_money_goods_reason) ? [] : explode("\n", $return_money_goods_reason));
D
devil_gong 已提交
111 112 113 114 115 116

            // 获取当前订单商品售后最新的一条纪录
            $data_params = [
                'm'     => 0,
                'n'     => 1,
                'where' => [
D
devil_gong 已提交
117
                    ['order_detail_id', '=', $order_detail_id],
D
devil_gong 已提交
118 119 120 121
                    ['user_id', '=', $this->user['id']],
                ],
            ];
            $new_aftersale = OrderAftersaleService::OrderAftersaleList($data_params);
D
Devil 已提交
122 123 124 125 126 127 128
            if(!empty($new_aftersale['data'][0]))
            {
                $new_aftersale_data = $new_aftersale['data'][0];
                $new_aftersale_data['tips_msg'] = OrderAftersaleService::OrderAftersaleTipsMsg($new_aftersale_data);
            } else {
                $new_aftersale_data = [];
            }
D
Devil 已提交
129
            MyViewAssign('new_aftersale_data', $new_aftersale_data);
D
Devil 已提交
130 131

            // 进度
D
Devil 已提交
132
            MyViewAssign('step_data', OrderAftersaleService::OrderAftersaleStep($new_aftersale_data));
D
devil_gong 已提交
133

D
devil_gong 已提交
134 135
            // 可退款退货
            $returned = OrderAftersaleService::OrderAftersaleCalculation($order_id, $order_detail_id);
D
Devil 已提交
136
            MyViewAssign('returned_data', $returned['data']);
D
devil_gong 已提交
137

138 139
            // 退货地址
            $return_goods_address = OrderAftersaleService::OrderAftersaleReturnGoodsAddress($order_id);
D
Devil 已提交
140
            MyViewAssign('return_goods_address', $return_goods_address);
141

D
devil_gong 已提交
142
            // 静态数据
D
Devil 已提交
143
            MyViewAssign('common_order_aftersale_type_list', MyConst('common_order_aftersale_type_list'));
D
devil_gong 已提交
144

G
gongfuxiang 已提交
145
            // 编辑器文件存放地址
D
Devil 已提交
146
            MyViewAssign('editor_path_type', ResourcesService::EditorPathTypeValue(OrderAftersaleService::EditorAttachmentPathType($this->user['id'], $order_id, $order_detail_id)));
G
gongfuxiang 已提交
147

148
            // 浏览器名称
D
Devil 已提交
149
            MyViewAssign('home_seo_site_title', SeoService::BrowserSeoTitle('订单售后详情', 1));
150

D
devil 已提交
151
            // 订单售后搜索form key
D
Devil 已提交
152 153 154
            MyViewAssign('form_search_keywords_form_key', 'f0p');
            MyViewAssign('params', $this->data_request);
            return MyView();
D
devil_gong 已提交
155
        } else {
D
Devil 已提交
156 157
            MyViewAssign('msg', $ret['msg']);
            return MyView('public/tips_error');
D
devil_gong 已提交
158 159 160 161 162 163 164 165 166 167 168 169 170
        }
    }

    /**
     * 申请售后创建
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2019-05-23
     * @desc    description
     */
    public function Create()
    {
D
devil_gong 已提交
171 172 173
        // 是否ajax请求
        if(!IS_AJAX)
        {
D
Devil 已提交
174 175
            MyViewAssign('msg', '非法访问');
            return MyView('public/tips_error');
D
devil_gong 已提交
176 177
        }
        
D
devil 已提交
178
        $params = $this->data_request;
D
devil_gong 已提交
179 180 181 182 183 184 185 186 187 188 189 190 191 192
        $params['user'] = $this->user;
        return OrderAftersaleService::AftersaleCreate($params);
    }

    /**
     * 用户退货
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2019-05-23
     * @desc    description
     */
    public function Delivery()
    {
D
devil_gong 已提交
193 194 195
        // 是否ajax请求
        if(!IS_AJAX)
        {
D
Devil 已提交
196 197
            MyViewAssign('msg', '非法访问');
            return MyView('public/tips_error');
D
devil_gong 已提交
198 199
        }

D
devil 已提交
200
        $params = $this->data_request;
D
devil_gong 已提交
201 202 203 204 205 206 207 208 209 210 211 212 213 214
        $params['user'] = $this->user;
        return OrderAftersaleService::AftersaleDelivery($params);
    }

    /**
     * 订单取消
     * @author   Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2018-09-30
     * @desc    description
     */
    public function Cancel()
    {
D
devil_gong 已提交
215 216
        // 是否ajax请求
        if(!IS_AJAX)
D
devil_gong 已提交
217
        {
D
Devil 已提交
218 219
            MyViewAssign('msg', '非法访问');
            return MyView('public/tips_error');
D
devil_gong 已提交
220
        }
D
devil_gong 已提交
221

D
devil 已提交
222
        $params = $this->data_post;
D
devil_gong 已提交
223 224
        $params['user'] = $this->user;
        return OrderAftersaleService::AftersaleCancel($params);
D
devil_gong 已提交
225 226 227
    }
}
?>