提交 dafd7a8e 编写于 作者: D devil_gong

订单售后

上级 cf7ecfa1
......@@ -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);
}
}
?>
\ No newline at end of file
......@@ -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);
}
}
?>
\ No newline at end of file
......@@ -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;
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册