订单售后
parent
cf7ecfa139
commit
dafd7a8e5a
|
|
@ -156,6 +156,8 @@ class Orderaftersale extends Common
|
|||
}
|
||||
|
||||
$params = input();
|
||||
$params['creator'] = $this->admin['id'];
|
||||
$params['creator_name'] = $this->admin['username'];
|
||||
return OrderAftersaleService::AftersaleRefuse($params);
|
||||
}
|
||||
|
||||
|
|
@ -176,7 +178,31 @@ class Orderaftersale extends Common
|
|||
}
|
||||
|
||||
$params = input();
|
||||
$params['creator'] = $this->admin['id'];
|
||||
$params['creator_name'] = $this->admin['username'];
|
||||
return OrderAftersaleService::AftersaleCancel($params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-09-30
|
||||
* @desc description
|
||||
*/
|
||||
public function Delete()
|
||||
{
|
||||
// 是否ajax请求
|
||||
if(!IS_AJAX)
|
||||
{
|
||||
return $this->error('非法访问');
|
||||
}
|
||||
|
||||
$params = input();
|
||||
$params['creator'] = $this->admin['id'];
|
||||
$params['creator_name'] = $this->admin['username'];
|
||||
return OrderAftersaleService::AftersaleDelete($params);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -81,7 +81,7 @@
|
|||
<th class="am-hide-sm-only">凭证</th>
|
||||
<th class="am-hide-sm-only">状态</th>
|
||||
<th class="am-hide-sm-only">快递信息</th>
|
||||
<th>更多</th>
|
||||
<th class="row-more">更多</th>
|
||||
<th class="row-operation">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -150,7 +150,7 @@
|
|||
<span class="am-badge am-badge-success am-margin-top-xs">{{$v.refundment_text}}</span>
|
||||
{{/if}}
|
||||
{{if $v['status'] eq 4 and !empty($v['refuse_reason'])}}
|
||||
<span class="am-badge am-badge-danger am-margin-top-xs">{{$v.refuse_reason}}</span>
|
||||
<span class="am-text-danger">{{$v.refuse_reason}}</span>
|
||||
{{/if}}
|
||||
</td>
|
||||
<td class="am-hide-sm-only">
|
||||
|
|
@ -236,10 +236,9 @@
|
|||
{{if $v['status'] eq 3 and !empty($v['refundment_text'])}}
|
||||
<span class="am-badge am-badge-success am-margin-top-xs">{{$v.refundment_text}}</span>
|
||||
{{/if}}
|
||||
{{if $v['status'] eq 4 and !empty($v['refuse_reason'])}}
|
||||
<span class="am-badge am-badge-danger am-margin-top-xs">{{$v.refuse_reason}}</span>
|
||||
{{/if}}
|
||||
</dd>
|
||||
<dt>拒绝原因</dt>
|
||||
<dd class="am-text-danger">{{$v.refuse_reason}}</dd>
|
||||
|
||||
<dt>快递信息</dt>
|
||||
<dd>
|
||||
|
|
|
|||
|
|
@ -215,7 +215,7 @@
|
|||
</div>
|
||||
<div class="am-cf am-padding-vertical-xs">
|
||||
<span>拒绝原因:</span>
|
||||
<span>{{$new_aftersale_data.refuse_reason}}</span>
|
||||
<span class="am-text-danger">{{$new_aftersale_data.refuse_reason}}</span>
|
||||
</div>
|
||||
<div class="am-cf am-padding-vertical-xs">
|
||||
<span>申请时间:</span>
|
||||
|
|
@ -274,10 +274,10 @@
|
|||
<div class="am-u-md-6 voucher-container">
|
||||
<div class="am-panel am-panel-default">
|
||||
<div class="am-panel-hd">凭证</div>
|
||||
<div class="am-panel-bd">
|
||||
<div class="am-panel-bd am-cf">
|
||||
{{if !empty($new_aftersale_data['images'])}}
|
||||
{{foreach $new_aftersale_data.images as $img}}
|
||||
<a href="{{$img}}" target="_blank">
|
||||
<a href="{{$img}}" target="_blank" class="am-fl am-margin-right-xs">
|
||||
<img src="{{$img}}" class="am-img-thumbnail am-block" width="80" height="80" />
|
||||
</a>
|
||||
{{/foreach}}
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@
|
|||
<span class="am-badge am-badge-success am-margin-top-xs">{{$v.refundment_text}}</span>
|
||||
{{/if}}
|
||||
{{if $v['status'] eq 4 and !empty($v['refuse_reason'])}}
|
||||
<span class="am-badge am-badge-danger am-margin-top-xs">{{$v.refuse_reason}}</span>
|
||||
<span class="am-text-danger">{{$v.refuse_reason}}</span>
|
||||
{{/if}}
|
||||
</td>
|
||||
<td class="am-hide-sm-only">
|
||||
|
|
@ -169,7 +169,7 @@
|
|||
{{if $v['status'] eq 1 and $v['type'] eq 1}}
|
||||
<a href="{{:MyUrl('index/orderaftersale/aftersale', ['id'=>$v['order_id'], 'gid'=>$v['goods_id']])}}" target="_blank" class="am-btn am-btn-secondary am-btn-xs am-radius am-icon-send am-btn-block"> 发货</a>
|
||||
{{/if}}
|
||||
{{if !in_array($v['status'], [3,4,5])}}
|
||||
{{if !in_array($v['status'], [3,5])}}
|
||||
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius am-icon-paint-brush am-btn-block submit-ajax submit-cancel" data-url="{{:MyUrl('index/orderaftersale/cancel')}}" data-id="{{$v.id}}" data-view="reload"> 取消</button>
|
||||
{{/if}}
|
||||
<a href="{{:MyUrl('index/orderaftersale/aftersale', ['oid'=>$v['order_id'], 'did'=>$v['order_detail_id']])}}" target="_blank" class="am-btn am-btn-default am-btn-xs am-radius am-icon-cubes am-btn-block"> 详情</a>
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ class OrderAftersaleService
|
|||
$history_price = PriceNumberFormat(Db::name('OrderAftersale')->where($where)->sum('price'));
|
||||
if($price+$history_price > $order['data']['pay_price'])
|
||||
{
|
||||
return DataReturn('退款金额大于支付金额[ 历史退款 '.$history_price.' ]', -1);
|
||||
return DataReturn('退款金额大于支付金额[ 历史退款'.$history_price.'元, 订单金额'.$order['data']['pay_price'].'元 ]', -1);
|
||||
}
|
||||
|
||||
// 退货数量
|
||||
|
|
@ -189,7 +189,7 @@ class OrderAftersaleService
|
|||
{
|
||||
if($number+$history_number > $order['data']['items']['buy_number'])
|
||||
{
|
||||
return DataReturn('退货数量大于购买数量[ 历史退货数量 '.$history_number.' ]', -1);
|
||||
return DataReturn('退货数量大于购买数量[ 历史退货数量 '.$history_number.', 订单商品数量 '.$order['data']['items']['buy_number'].' ]', -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -683,7 +683,7 @@ class OrderAftersaleService
|
|||
$history_price = PriceNumberFormat(Db::name('OrderAftersale')->where($where)->sum('price'));
|
||||
if($aftersale['price']+$history_price > $order['data']['pay_price'])
|
||||
{
|
||||
return DataReturn('退款金额大于支付金额[ 历史退款 '.$history_price.' ]', -1);
|
||||
return DataReturn('退款金额大于支付金额[ 历史退款'.$history_price.'元, 订单金额'.$order['data']['pay_price'].'元 ]', -1);
|
||||
}
|
||||
|
||||
// 历史退货数量
|
||||
|
|
@ -693,7 +693,7 @@ class OrderAftersaleService
|
|||
{
|
||||
if($aftersale['number']+$history_number > $order['data']['items']['buy_number'])
|
||||
{
|
||||
return DataReturn('退货数量大于购买数量[ 历史退货数量 '.$history_number.' ]', -1);
|
||||
return DataReturn('退货数量大于购买数量[ 历史退货数量 '.$history_number.', 订单商品数量 '.$order['data']['items']['buy_number'].' ]', -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -964,7 +964,99 @@ class OrderAftersaleService
|
|||
*/
|
||||
public static function AftersaleRefuse($params = [])
|
||||
{
|
||||
return DataReturn('开发中', -10);
|
||||
// 请求参数
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'id',
|
||||
'error_msg' => '操作id有误',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
'key_name' => 'refuse_reason',
|
||||
'checked_data' => '2,230',
|
||||
'error_msg' => '拒绝原因格式 2~230 个字符',
|
||||
],
|
||||
];
|
||||
$ret = ParamsChecked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return DataReturn($ret, -1);
|
||||
}
|
||||
|
||||
// 售后订单
|
||||
$aftersale = Db::name('OrderAftersale')->where(['id' => intval($params['id'])])->find();
|
||||
if(empty($aftersale))
|
||||
{
|
||||
return DataReturn('数据不存在或已删除', -1);
|
||||
}
|
||||
|
||||
// 状态校验
|
||||
if(!in_array($aftersale['status'], [0,2]))
|
||||
{
|
||||
$status_list = lang('common_order_aftersale_status_list');
|
||||
return DataReturn('状态不可操作['.$status_list[$aftersale['status']]['name'].']', -1);
|
||||
}
|
||||
|
||||
// 更新操作
|
||||
$data = [
|
||||
'status' => 4,
|
||||
'refuse_reason' => $params['refuse_reason'],
|
||||
'audit_time' => time(),
|
||||
'upd_time' => time(),
|
||||
];
|
||||
if(Db::name('OrderAftersale')->where(['id' => intval($params['id'])])->update($data))
|
||||
{
|
||||
return DataReturn('拒绝成功', 0);
|
||||
}
|
||||
return DataReturn('拒绝失败', -100);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2019-05-27
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function AftersaleDelete($params = [])
|
||||
{
|
||||
// 请求参数
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'id',
|
||||
'error_msg' => '操作id有误',
|
||||
],
|
||||
];
|
||||
$ret = ParamsChecked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return DataReturn($ret, -1);
|
||||
}
|
||||
|
||||
// 售后订单
|
||||
$aftersale = Db::name('OrderAftersale')->where(['id' => intval($params['id'])])->find();
|
||||
if(empty($aftersale))
|
||||
{
|
||||
return DataReturn('数据不存在或已删除', -1);
|
||||
}
|
||||
|
||||
// 状态校验
|
||||
if(!in_array($aftersale['status'], [4,5]))
|
||||
{
|
||||
$status_list = lang('common_order_aftersale_status_list');
|
||||
return DataReturn('状态不可操作['.$status_list[$aftersale['status']]['name'].']', -1);
|
||||
}
|
||||
|
||||
// 删除操作
|
||||
if(Db::name('OrderAftersale')->where(['id' => intval($params['id'])])->delete())
|
||||
{
|
||||
return DataReturn('删除成功', 0);
|
||||
}
|
||||
return DataReturn('删除失败', -100);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -636,18 +636,13 @@ class Weixin
|
|||
|
||||
if($use_cert == true)
|
||||
{
|
||||
//设置证书
|
||||
//使用证书:cert 与 key 分别属于两个.pem文件
|
||||
$apiclient = $this->GetApiclientFile();
|
||||
$options[CURLOPT_SSLCERTTYPE] = 'PEM';
|
||||
$options[CURLOPT_SSLCERT] = $apiclient['cert'];
|
||||
$options[CURLOPT_SSLKEYTYPE] = 'PEM';
|
||||
$options[CURLOPT_SSLKEY] = $apiclient['key'];
|
||||
|
||||
//设置证书
|
||||
//使用证书:cert 与 key 分别属于两个.pem文件
|
||||
// $options[CURLOPT_SSLCERTTYPE] = 'PEM';
|
||||
// $options[CURLOPT_SSLCERT] = ROOT.'cert/apiclient_cert.pem';
|
||||
// $options[CURLOPT_SSLKEYTYPE] = 'PEM';
|
||||
// $options[CURLOPT_SSLKEY] = ROOT.'cert/apiclient_key.pem';
|
||||
}
|
||||
|
||||
$ch = curl_init($url);
|
||||
|
|
|
|||
|
|
@ -33,11 +33,12 @@
|
|||
.content-right table.am-table tr .row-user-info { width: 20%; }
|
||||
.content-right table.am-table tr .row-goods { width: 20%; }
|
||||
.content-right table.am-table tr .row-apply { width: 25%; }
|
||||
.content-right table.am-table tr .row-more { width: 80px; }
|
||||
.content-right table.am-table tr .row-operation { width: 85px; }
|
||||
}
|
||||
@media only screen and (max-width:640px) {
|
||||
.content-right table.am-table tr .row-apply { width: 50%; }
|
||||
.content-right table.am-table tr .row-operation { width: 75px; }
|
||||
.content-right table.am-table tr .row-operation, .content-right table.am-table tr .row-more { width: 75px; }
|
||||
}
|
||||
|
||||
.content-right table.am-table .am-slider {
|
||||
|
|
|
|||
|
|
@ -169,7 +169,14 @@ form.form-validation .number-container .am-input-group-label {
|
|||
/**
|
||||
* 详情信息
|
||||
*/
|
||||
@media only screen and (min-width:460px) {
|
||||
.user-content-body .detail .am-u-md-6 .am-panel {
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
}
|
||||
.user-content-body .detail .am-u-md-6 .am-panel-bd {
|
||||
padding: 10px;
|
||||
}
|
||||
@media only screen and (min-width:641px) {
|
||||
.user-content-body .apply-container {
|
||||
padding-left: 0;
|
||||
padding-right: 10px;
|
||||
|
|
@ -179,15 +186,8 @@ form.form-validation .number-container .am-input-group-label {
|
|||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
@media only screen and (max-width:460px) {
|
||||
@media only screen and (max-width:641px) {
|
||||
.user-content-body .detail .am-u-md-6 {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
.user-content-body .detail .am-u-md-6 .am-panel {
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
}
|
||||
.user-content-body .detail .am-u-md-6 .am-panel-bd {
|
||||
padding: 10px;
|
||||
}
|
||||
Loading…
Reference in New Issue