Authored by 郭成尧

Merge remote-tracking branch 'remotes/origin/feature/backGoodsOptzmtn' into release/4.7

... ... @@ -31,7 +31,7 @@ class Yohobuy
// const SERVICE_NOTIFY = 'http://service.yoho.cn/';
// 测试环境 */
const API_URL = 'http://testapi.yoho.cn:28078/'; // 'http://192.168.102.205:8080/gateway/'
const API_URL = 'http://devapi.yoho.cn:28078/'; // 'http://192.168.102.205:8080/gateway/' devapi.yoho.cn:58078 testapi.yoho.cn:28078
const SERVICE_URL = 'http://testservice.yoho.cn:28077/';
const YOHOBUY_URL = 'http://www.yohobuy.com/';
const API_OLD = 'http://test2.open.yohobuy.com/';
... ...
... ... @@ -129,7 +129,7 @@ class ReturnsData
* @param $isChange
* @return mixed
*/
public static function setExpressNumber($id, $expressId, $expressNumber,$uid, $expressCompany, $isChange)
public static function setExpressNumber($id, $expressId, $expressNumber, $uid, $expressCompany, $isChange)
{
$param = array();
$param = Yohobuy::param();
... ... @@ -140,7 +140,7 @@ class ReturnsData
$param['uid'] = $uid;
$param['express_company'] = $expressCompany;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::post(yohobuy::API_URL, $param);
}
... ... @@ -236,6 +236,39 @@ class ReturnsData
return Yohobuy::post(yohobuy::API_URL, $param);
}
/**
* 取消退货申请
* @param $id
* @param $uid
* @return mixed
*/
public static function cancelRefund($id, $uid)
{
$param = Yohobuy::param();
$param['method'] = 'app.refund.cancel';
$param['id'] = $id;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::post(yohobuy::API_URL, $param);
}
/**
* 取消换货申请
* @param $id
* @param $uid
* @return mixed
*/
public static function cancelChange($id, $uid)
{
$param = Yohobuy::param();
$param['method'] = 'app.change.cancel';
$param['id'] = $id;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
return Yohobuy::post(yohobuy::API_URL, $param);
}
/**
* 获取换货方式
* @param $uid
... ...
... ... @@ -56,7 +56,7 @@
{{> home/pager}}
</div>
{{> home/help-us}}
{{!> home/help-us}}
</div>
{{/ meOrders}}
</div>
... ...
... ... @@ -13,7 +13,8 @@
{{# exchange}}
<div class="return-prompt">
换货须知:<br>
<p>自您签收商品7日内可以退货,15日内可以换货,在商品不影响二次销售的情况下(包括产品吊牌和外包装),YOHO!有货将为您办理退换货服务,请在网站提交"退换货"申请。<span>特别提醒:非质量问题的退换货,来回运费由您承担。寄回商品时需垫付运费,到付件无法签收。</span>换货后VIP积分累计时间重新计算,以您收到换货订单后15个工作日累加,如有疑问,请致电客服电话:400-889-9646。</p>
<p>自您签收商品7日内可以退货,15日内可以换货,在商品不影响二次销售的情况下(包括产品吊牌和外包装),YOHO!有货将为您办理退换货服务,请在网站提交"退换货"申请。<span>特别提醒:非质量问题的退换货,来回运费由您承担。寄回商品时需垫付运费,到付件无法签收。</span>换货后VIP积分累计时间重新计算,以您收到换货订单后15个工作日累加,如有疑问,请联系 <a
href="http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=620092&configID=149091&jid=8732423409&info=" target="_blank"><i class="icon-onlineservice"></i> 在线客服</a></p>
{{# tips}}
{{> home/return-tips}}
{{/ tips}}
... ... @@ -43,6 +44,15 @@
<td class="return-goods-info">
<a href="{{href}}">{{name}}</a>
<span>颜色:{{color}} 尺码:{{size}}</span>
{{#if specialNoticeBo}}
<div class="special-tip">
<span>{{specialNoticeBo.title}} <i class="doubt"></i></span>
<div class="special-content">
<span>{{specialNoticeBo.remark}}</span>
<i class="arrow"></i>
</div>
</div>
{{/if}}
</td>
{{#if banMsg}}
... ... @@ -79,7 +89,7 @@
<option value="0">请选择换货原因</option>
{{#with exchange}}
{{# reason}}
<option value="{{id}}">{{name}}</option>
<option value="{{id}}" {{#if inactive}}disabled{{/if}}>{{name}}</option>
{{/ reason}}
{{/with}}
</select>
... ... @@ -135,7 +145,8 @@
{{# refund}}
<div class="return-prompt">
退货须知:<br>
<p>自您签收商品7日内可以退货,15日内可以换货,在商品不影响二次销售的情况下(包括产品吊牌和外包装),YOHO!有货将为您办理退换货服务,请在网站提交"退换货"申请。如您退货之后无法满足购买时参加的活动条件,请您将赠品同时申请退货。<span>特别提醒:非质量问题的退换货,来回运费由您承担,寄回商品时需垫付运费,到付件无法签收,如有疑问,请致电客服电话:400-889-9646。</span></p>
<p>自您签收商品7日内可以退货,15日内可以换货,在商品不影响二次销售的情况下(包括产品吊牌和外包装),YOHO!有货将为您办理退换货服务,请在网站提交"退换货"申请。如您退货之后无法满足购买时参加的活动条件,请您将赠品同时申请退货。<span>特别提醒:非质量问题的退换货,来回运费由您承担,寄回商品时需垫付运费,到付件无法签收,如有疑问,请联系 <a
href="http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=620092&configID=149091&jid=8732423409&info=" target="_blank"><i class="icon-onlineservice"></i> 在线客服</a> </span></p>
{{# tips}}
{{> home/returns-tips}}
{{/ tips}}
... ... @@ -164,6 +175,15 @@
<td class="return-goods-info">
<a href="{{href}}">{{name}}</a>
<span>颜色:{{color}} 尺码:{{size}}</span>
{{#if specialNoticeBo}}
<div class="special-tip">
<span>{{specialNoticeBo.title}} <i class="doubt"></i></span>
<div class="special-content">
<span>{{specialNoticeBo.remark}}</span>
<i class="arrow"></i>
</div>
</div>
{{/if}}
</td>
<td class="refund-price">
{{price}}
... ... @@ -253,7 +273,7 @@
</div>
</div>
</div>
{{> home/help-us}}
{{!> home/help-us}}
</div>
{{/ returns}}
</div>
... ...
... ... @@ -21,6 +21,11 @@
{{/ statusList}}
</ul>
</div>
{{#if canCancelUrl}}
<div class="cancel-return">
如果您不想退货了,您可以 <a href="javascript:;" data-id="{{returnId}}" class="cancel-trigger" data-url="{{canCancelUrl}}">取消申请</a>
</div>
{{/if}}
<div class="detail-container">
{{# express}}
<h2>请填写寄回快递单号,以便我们查询</h2>
... ... @@ -79,7 +84,7 @@
</div>
{{/ detail}}
</div>
{{> home/help-us}}
{{!> home/help-us}}
</div>
{{/ returns}}
</div>
... ...
... ... @@ -65,8 +65,9 @@
<div class="return-status">
{{returnStatus}}
</div>
<div class="operation">
<a class="op-item" href="{{moreHref}}" target="_blank">查看详情</a>
<div class="operation {{#if canCancelUrl}}cancel-return{{/if}}">
{{#if canCancelUrl}}<a class="op-item cancel-trigger" href="javascript:;" data-id="{{returnId}}" data-url="{{canCancelUrl}}">取消申请</a>{{/if}}
<a class="op-item" href="{{moreHref}}" target="_blank">查看详情</a>
</div>
</div>
</div>
... ... @@ -77,7 +78,7 @@
{{> home/pager}}
</div>
{{> home/help-us}}
{{!> home/help-us}}
</div>
{{/ returns}}
</div>
... ...
... ... @@ -33,7 +33,7 @@
</a>
<div class="text-info">
{{#if refundStatus}}
<span class="had-refund">已退换</span>
<a href="{{goRefundUrl}}"><span class="had-refund">已退换</span></a>
{{/if}}
<a class="name" href="{{href}}" target="_blank">{{name}}</a>
<span class="color-size">
... ...
... ... @@ -44,6 +44,19 @@ if (defaultPhone) {
$exchange.find('input[name="phone"]').val(disPhone);
}
$goodsTable.on('mouseenter mouseleave', '.doubt', function(e) {
var $this = $(this);
var $tipwrapper = $this.parents('.special-tip');
var $tipcontent = $tipwrapper.find('.special-content');
var width = $tipwrapper.find('> span').width();
if(e.type === 'mouseenter'){
$tipcontent.css({left: width+10,zIndex:1}).show();
}else if(e.type ==='mouseleave'){
$tipcontent.css({zIndxex:0}).hide();
}
});
function syncRefundMode(code) {
$.ajax({
type: 'POST',
... ...
... ... @@ -4,7 +4,9 @@
* @date: 2016/2/26
*/
var $ = require('yoho.jquery');
var $ = require('yoho.jquery'),
Handlebars = require('yoho.handlebars'),
dialog = require('../common/dialog');
var $returnState = $('.visual-return-state li'),
$detail = $('.detail-container'),
... ... @@ -20,6 +22,10 @@ var returnId = $('#return-id').val(),
expList = {},
isChange = false;
var Dialog = dialog.Dialog,
active,
cancelApplyDialog = '<p class="message-title"><i class="{{messageIcon}}"></i>{{messageTitle}}</p><p class="message-summary">{{messageSummary}}</p>';;
function syncExpressInfo() {
expCompany = expList[expId] ? expList[expId] : '';
$expressViewBox.html(expCompany + ' 快递单号:' + expNumber);
... ... @@ -74,6 +80,49 @@ function sendExpressCode() {
});
}
function cancelApply(id, url) {
var template = Handlebars.compile(cancelApplyDialog);
var html = template({messageIcon: 'icon-warn', messageTitle: '取消申请', messageSummary: '您确定要请取消申请吗?'});
var options = {
mask: true,
btns: [
{
id: 'cancel-sure',
name: '确定',
btnClass: ['cancel-sure'],
cb: function() {
$.ajax({
type: 'POST',
url: url,
data: {
id: id
}
}).then(function(data) {
active.close();
if (data.code === 200) {
location.reload();
} else {
new dialog.Alert(data.message).show();
}
});
}
},
{
id: 'cancel-no',
name: '取消',
btnClass: ['cancel-no'],
cb: function() {
active.close();
}
}
],
content: html,
className: 'cancel-dialog'
};
return new Dialog(options);
}
if ($detail.parent().hasClass('exchange-detail')) {
isChange = true;
}
... ... @@ -92,4 +141,9 @@ $('#modify').click(function() {
$('#submit-btn').click(function() {
sendExpressCode();
});
\ No newline at end of file
});
$('.cancel-return').on('click', '.cancel-trigger', function() {
active = cancelApply($(this).data('id'), $(this).data('url'));
active.show();
})
\ No newline at end of file
... ...
... ... @@ -40,6 +40,14 @@
margin-bottom: 15px;
}
}
.icon-onlineservice{
display: inline-block;
width: 16px;
height: 16px;
margin-left: 10px;
background: resolve(home/onlineservice.png) no-repeat;
vertical-align: text-bottom;
}
}
h2 {
height: 21px;
... ... @@ -91,6 +99,39 @@
color: #999;
}
}
.special-tip{
position:relative;
span {
color: #3a3a3a;
}
.doubt{
display: inline-block;
margin-left: 5px;
width: 14px;
height: 14px;
background:resolve(home/return-doubt.png) no-repeat;
vertical-align: text-bottom;
}
.special-content{
display:none;
position: absolute;
top:0;
width: 280px;
padding: 10px 15px;
border: 1px solid #3a3a3a;
background: #fff;
color: #3a3a3a;
word-break: break-word;
i.arrow{
position: absolute;
top: 5px;
left: -7px;
width: 7px;
height: 12px;
background: resolve(home/return-arrow.png) no-repeat;
}
}
}
.exchange-choose-wrap {
width: 185px;
border: 1px solid #e6e6e6;
... ...
... ... @@ -30,6 +30,22 @@
background: resolve(/home/detail-act.png) no-repeat top center
}
}
.cancel-return{
height: 26px;
margin: 0 10px;
padding-top: 10px;
padding-left: 10px;
line-height: 26px;
border-top: 1px solid #e0e0e0;
a{
display: inline-block;
padding: 0 10px;
margin-left: 15px;
color: #fff;
background: #3a3a3a;
text-align: center;
}
}
.detail-container {
padding: 10px;
... ...
... ... @@ -60,4 +60,64 @@
}
}
}
\ No newline at end of file
}
.cancel-dialog{
width: 350px;
background: #fff;
padding: 20px 30px 35px 30px;
.message-title{
margin-top: 40px;
margin-bottom: 27px;
font-size: 24px;
font-weight: 700;
}
.message-summary{
width: 250px;
margin: 0 auto 22px;
font-size: 14px;
word-wrap: break-word;
line-height: 20px;
color: #444;
}
.btns {
padding: 15px 30px 0;
text-align: center;
.btn {
height: 35px;
font-size: 15px;
line-height: 35px;
}
.cancel-sure {
width: 130px;
color: #fff;
background: #000;
border: none;
}
.cancel-no {
margin-left: 30px;
background: #fff;
color: #000;
border-color: #000;
width: 126px;
}
}
.close{
top: 15px;
right: 15px;
.iconfont{
font-size: 30px;
}
}
.icon-warn{
display: inline-block;
margin-right: 10px;
background: resolve(/home/icon-warn.png) no-repeat;
width: 30px;
height: 30px;
vertical-align: -6px;
}
}
... ...
... ... @@ -69,6 +69,7 @@ class OrderModel
$goods[$gokey]['count'] = $buyNum;
$refundStatus = ($refundNum > 0) ? true : false; //只要发生一件退换,退换过的标记
$goods[$gokey]['refundStatus'] = $refundStatus;
$goods[$gokey]['goRefundUrl'] = Helpers::url('/home/returns');
$refundFlag[] = (($buyNum == $refundNum) && $refundNum > 0) ? 'finished' : 'unfinished'; //某一件商品全部退换结束
$goods[$gokey]['arrivalDate'] = $goval['expect_arrival_time'];
$goodsTagName = self::getGoodsTag($orderV['attribute'], $goval['goods_type']);
... ...
... ... @@ -34,25 +34,32 @@ class ReturnsModel
if (isset($returnsData['code']) && $returnsData['code'] == 200 && !empty($returnsData['data']['list'])) {
//设置分页
$pager = self::setPager($returnsData['data']['page'], $returnsData['data']['total'], $returnsData['data']['total_page'], $limit);
foreach($returnsData['data']['list'] as $key => $value){
foreach ($returnsData['data']['list'] as $key => $value) {
$param = array(
'id' => $value['id']
);
$list[$key]['returnId'] = $value['id'];
$list[$key]['orderNum'] = $value['order_code'];
$list[$key]['orderTime'] = str_replace('-','/',$value['order_create_time']);
$list[$key]['orderTime'] = str_replace('-', '/', $value['order_create_time']);
$list[$key]['returnTime'] = $value['create_time'];
if ($value['refund_type'] == 1) {
if ($value['refund_type'] == 1) { // tar note 160624 终止退货
$list[$key]['isChange'] = false;
$uri = '/home/returns/refundDetail';
}elseif ($value['refund_type'] == 2) {
if ($value['canCancel'] === 'Y') {
$list[$key]['canCancelUrl'] = Helpers::url('/home/returns/cancelRefund');
}
} elseif ($value['refund_type'] == 2) { // tar note 160624 终止换货
$list[$key]['isChange'] = true;
$uri = '/home/returns/exchangeDetail';
if ($value['canCancel'] === 'Y') {
$list[$key]['canCancelUrl'] = Helpers::url('/home/returns/cancelChange');
}
}
$list[$key]['returnStatus'] = $value['status_name'];
$param = array(
'id' => $value['id']
);
$list[$key]['moreHref'] = helpers::url($uri,$param);
$list[$key]['moreHref'] = helpers::url($uri, $param);
$list[$key]['goods'] = self::getGoodsData($value['goods']);
}
}else{
} else {
$list = array(
'empty' => '您没有退/换货订单'
);
... ... @@ -62,8 +69,8 @@ class ReturnsModel
$path = UserModel::getCenterCrumb('退货/换货');
$leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid);
$data = array(
'path'=>$path,
'homeNav'=>$leftNav,
'path' => $path,
'homeNav' => $leftNav,
'orders' => $list,
'userThumb' => UserModel::getUserHeadImg($uid),
'pager' => $pager
... ... @@ -97,13 +104,17 @@ class ReturnsModel
$detail['express']['number'] = isset($res['notice']['express_number']) ? $res['notice']['express_number'] : '';
$detail['express']['id'] = isset($res['notice']['express_id']) ? $res['notice']['express_id'] : '';
}
foreach($res['statusList'] as $key=>$value){
$detail['statusList'][$key]['act'] = ($value['act' ] == 'Y') ? true : false;
foreach ($res['statusList'] as $key => $value) {
$detail['statusList'][$key]['act'] = ($value['act'] == 'Y') ? true : false;
$detail['statusList'][$key]['name'] = $value['name'];
}
$detail['goods'] = self::getDetailGoods($res['goods_list']);
$detail['expressList'] = self::getExpressCompany();
}else{
if ($res['canCancel'] === 'Y') {
$detail['canCancelUrl'] = Helpers::url('/home/returns/cancelChange');
}
} else {
return false;
}
... ... @@ -111,10 +122,10 @@ class ReturnsModel
$path = UserModel::getCenterCrumb('退货/换货');
$leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid);
$data = array(
'path'=>$path,
'homeNav'=>$leftNav,
'path' => $path,
'homeNav' => $leftNav,
'userThumb' => UserModel::getUserHeadImg($uid),
'detail'=>$detail
'detail' => $detail
);
return $data;
... ... @@ -145,7 +156,7 @@ class ReturnsModel
$detail['express']['company'] = isset($res['notice']['express_company']) ? $res['notice']['express_company'] : '';
$detail['express']['number'] = isset($res['notice']['express_number']) ? $res['notice']['express_number'] : '';
}
foreach($res['statusList'] as $key=>$value){
foreach ($res['statusList'] as $key => $value) {
$detail['statusList'][$key]['act'] = ($value['act'] == 'Y') ? true : false;
$detail['statusList'][$key]['name'] = $value['name'];
}
... ... @@ -153,17 +164,21 @@ class ReturnsModel
$detail['backMode'] = isset($res['return_amount_mode_name']) ? $res['return_amount_mode_name'] : '';
$detail['goods'] = self::getDetailGoods($res['goods_list']);
$detail['expressList'] = self::getExpressCompany();
}else{
if ($res['canCancel'] === 'Y') {
$detail['canCancelUrl'] = Helpers::url('/home/returns/cancelRefund');
}
} else {
return false;
}
//面包屑-左侧导航
$path = UserModel::getCenterCrumb('退货/换货');
$leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid);
$data = array(
'path'=>$path,
'homeNav'=>$leftNav,
'path' => $path,
'homeNav' => $leftNav,
'userThumb' => UserModel::getUserHeadImg($uid),
'detail'=>$detail
'detail' => $detail
);
return $data;
... ... @@ -184,7 +199,7 @@ class ReturnsModel
$cnAlphabet = $value['cn_alphabet'];
}
$result[$key]['href'] = Helpers::getUrlBySkc($value['product_id'], $value['goods_id'], $cnAlphabet);
$result[$key]['thumb'] = Helpers::getImageUrl($value['goods_image'],60,60);
$result[$key]['thumb'] = Helpers::getImageUrl($value['goods_image'], 60, 60);
$result[$key]['name'] = $value['product_name'];
$result[$key]['color'] = $value['color_name'];
$result[$key]['size'] = $value['size_name'];
... ... @@ -241,7 +256,7 @@ class ReturnsModel
$expressList = ReturnsData::getExpressCompany();
if (isset($expressList['code']) && $expressList['code'] == 200) {
$result = array_values($expressList['data']);
foreach($result as $key=>$value){
foreach ($result as $key => $value) {
$res = array_merge_recursive($res, $value);
}
}
... ... @@ -260,9 +275,9 @@ class ReturnsModel
* @param $isChange
* @return mixed
*/
public static function setExpressNumber($id, $expressId, $expressNumber,$uid, $expressCompany, $isChange)
public static function setExpressNumber($id, $expressId, $expressNumber, $uid, $expressCompany, $isChange)
{
$data = ReturnsData::setExpressNumber($id, $expressId, $expressNumber,$uid, $expressCompany, $isChange);
$data = ReturnsData::setExpressNumber($id, $expressId, $expressNumber, $uid, $expressCompany, $isChange);
return $data;
}
... ... @@ -282,13 +297,13 @@ class ReturnsModel
//调用接口成功,封装数据
if (isset($data['code']) && $data['code'] == 200 && isset($data['data']['goods_list']) && !empty($data['data']['goods_list'])) {
$amount = '';
foreach($data['data']['goods_list'] as $key=>$value){
foreach ($data['data']['goods_list'] as $key => $value) {
$cnAlphabet = '';
if (!empty($value['cn_alphabet'])) {
$cnAlphabet = $value['cn_alphabet'];
}
$result['goods'][$key]['href'] = Helpers::getUrlBySkc($value['product_id'], $value['goods_id'], $cnAlphabet);
$result['goods'][$key]['thumb'] = Helpers::getImageUrl($value['goods_image'],60,60);
$result['goods'][$key]['thumb'] = Helpers::getImageUrl($value['goods_image'], 60, 60);
$result['goods'][$key]['name'] = $value['product_name'];
$result['goods'][$key]['color'] = $value['color_name'];
$result['goods'][$key]['size'] = $value['size_name'];
... ... @@ -306,12 +321,25 @@ class ReturnsModel
}
$result['orderCode'] = $orderCode;
$result['reason'] = $data['data']['return_reason'];
// tar note 对数组做处理,为不显示的添加 inactive
if (isset($data['data']['special_exchange_reason'])) {
foreach ($result['reason'] as $key => $item) {
if (!in_array($item, $data['data']['special_exchange_reason'])) {
$result['reason'][$key]['inactive'] = true;
}
}
}
// 对原因排序
asort($result['reason']);
//计算相关支付细节
$result['amount'] = $amount - $data['data']['yoho_coin_num'] - $data['data']['coupon_amount'];
$result['yohoCoin'] = $data['data']['yoho_coin_num'];
$result['coupon'] = $data['data']['coupon_amount'];
$result['cash'] = $amount;
foreach($data['data']['return_amount_mode'] as &$value){
foreach ($data['data']['return_amount_mode'] as &$value) {
if ($value['is_default'] == 'Y') {
$value['default'] = true;
}
... ... @@ -324,8 +352,8 @@ class ReturnsModel
$leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid);
$pager = array();
$data = array(
'path'=>$path,
'homeNav'=>$leftNav,
'path' => $path,
'homeNav' => $leftNav,
'refund' => $result,
'pager' => $pager
);
... ... @@ -349,13 +377,13 @@ class ReturnsModel
$productSkn = array();
//数据获取成功,封装数据
if (isset($data['code']) && $data['code'] == 200 && isset($data['data']) && !empty($data['data'])) {
foreach ($data['data']['goods_list'] as $key=>$value) {
foreach ($data['data']['goods_list'] as $key => $value) {
$cnAlphabet = '';
if (!empty($value['cn_alphabet'])) {
$cnAlphabet = $value['cn_alphabet'];
}
$result['goods'][$key]['href'] = Helpers::getUrlBySkc($value['product_id'], $value['goods_id'], $cnAlphabet);
$result['goods'][$key]['thumb'] = Helpers::getImageUrl($value['goods_image'],60,60);
$result['goods'][$key]['thumb'] = Helpers::getImageUrl($value['goods_image'], 60, 60);
$result['goods'][$key]['name'] = $value['product_name'];
$result['goods'][$key]['color'] = $value['color_name'];
$result['goods'][$key]['size'] = $value['size_name'];
... ... @@ -364,6 +392,12 @@ class ReturnsModel
$result['goods'][$key]['skc'] = $value['product_skc'];
$result['goods'][$key]['sku'] = $value['product_sku'];
$result['goods'][$key]['goods_type_id'] = $value['goods_type_id'];
// tar note 为每个特殊商品都添加标识
if ($value['is_limit_skn'] === 'Y') {
$result['goods'][$key]['specialNoticeBo'] = $data['data']['specialNoticeBo'];
}
//给前端标识出鞋类
if ($value['hasShoes']) {
$result['tips']['footwear'] = true;
... ... @@ -371,6 +405,19 @@ class ReturnsModel
$productSkn[] += $value['product_skn'];
}
$result['reason'] = $data['data']['exchange_reason'];
// tar note 对数组做处理,为不显示的添加 inactive
if (isset($data['data']['special_exchange_reason'])) {
foreach ($result['reason'] as $key => $item) {
if (!in_array($item, $data['data']['special_exchange_reason'])) {
$result['reason'][$key]['inactive'] = true;
}
}
}
// 对原因排序
asort($result['reason']);
$result['orderCode'] = $orderCode;
//换货地址相关数据(邮编为可空参数)
... ... @@ -393,8 +440,8 @@ class ReturnsModel
foreach ($product as $key => $value) {//遍历得到每件商品
$num = '0';//初始化每件商品的库存为0
foreach ($value['goods_list'] as $k=>$v) {//遍历商品得到每个颜色
foreach ($v['size_list'] as $k1=>$v1) {//遍历颜色得到每个尺码
foreach ($value['goods_list'] as $k => $v) {//遍历商品得到每个颜色
foreach ($v['size_list'] as $k1 => $v1) {//遍历颜色得到每个尺码
$num += $v1['storage_number'];//将商品颜色对应尺码下的每个商品的库存相加
if ($v1['storage_number'] > 0) {//当某个尺码下有库存时,将该颜色及其对应的尺码加入该商品选项下
$result['goods'][$key]['colorSize'][$k]['color'] = $v['color_name'];
... ... @@ -412,14 +459,14 @@ class ReturnsModel
$result['goods'][$key]['banMsg'] = '库存不足不能换货';
}
}
//面包屑-左侧导航
$path = UserModel::getCenterCrumb('退货/换货');
$leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid);
$pager = array();
$data = array(
'path'=>$path,
'homeNav'=>$leftNav,
'path' => $path,
'homeNav' => $leftNav,
'exchange' => $result,
'pager' => $pager
);
... ... @@ -435,7 +482,7 @@ class ReturnsModel
*/
public static function getSizeList($sizeList)
{
foreach ($sizeList as $key=>$value) {
foreach ($sizeList as $key => $value) {
if ($value['storage_number'] <= 0) {
unset($sizeList[$key]);
}
... ... @@ -498,7 +545,7 @@ class ReturnsModel
//调取接口查询订单详情
$order = OrderData::viewOrderData($orderCode, $uid, '');
if (empty($order)) {
return array('code'=>403,'message'=>'没有找到该订单');
return array('code' => 403, 'message' => '没有找到该订单');
}
// //订单7天后不能退款
// if (isset($order['code']) && $order['code'] == 200) {
... ... @@ -538,7 +585,7 @@ class ReturnsModel
//调取接口查询订单详情
$order = OrderData::viewOrderData($orderCode, $uid, '');
if (empty($order)) {
return array('code'=>403,'message'=>'没有找到该订单');
return array('code' => 403, 'message' => '没有找到该订单');
}
// //订单15天后不能换货
// if (isset($order['code']) && $order['code'] == 200) {
... ... @@ -573,8 +620,8 @@ class ReturnsModel
$path = UserModel::getCenterCrumb('退货/换货');
$leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid);
$data = array(
'path'=>$path,
'homeNav'=>$leftNav,
'path' => $path,
'homeNav' => $leftNav,
'save' => array(
'type' => '退货',
'ordersHref' => Helpers::url('/home/orders'),
... ... @@ -603,8 +650,8 @@ class ReturnsModel
$path = UserModel::getCenterCrumb('退货/换货');
$leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid);
$data = array(
'path'=>$path,
'homeNav'=>$leftNav,
'path' => $path,
'homeNav' => $leftNav,
'save' => array(
'type' => '换货',
'ordersHref' => Helpers::url('/home/orders'),
... ...
... ... @@ -2,6 +2,7 @@
use Action\WebAction;
use Home\ReturnsModel;
use WebPlugin\Helpers;
use LibModels\Web\Home\ReturnsData;
class ReturnsController extends WebAction
{
... ... @@ -53,7 +54,7 @@ class ReturnsController extends WebAction
{
/* 判断是不是AJAX请求 */
if (!$this->isAjax()) {
return;
return;
}
$areaCode = $this->post('areaCode');
//获取必要参数
... ... @@ -82,14 +83,14 @@ class ReturnsController extends WebAction
$uid = $this->getUid();
$goods = $this->post('goods');
$payment = $this->post('payment');
if (empty($orderCode) || $orderCode<1 || empty($goods) || empty($payment)) {
$this->echoJson(array('code'=>203,'message'=>'非法提交'));
if (empty($orderCode) || $orderCode < 1 || empty($goods) || empty($payment)) {
$this->echoJson(array('code' => 203, 'message' => '非法提交'));
}
//调用模型提交退货申请
$res = ReturnsModel::saveRefund($orderCode, $uid, $goods, $payment);
//退货申请成功,返回前端相应格式,并返回退货成功页跳转地址
if (isset($res['code']) && $res['code'] == 200) {
$successUrl = Helpers::url('/home/returns/refundSuccess', array('orderCode'=>$orderCode));
$successUrl = Helpers::url('/home/returns/refundSuccess', array('orderCode' => $orderCode));
$res['data']['refer'] = $successUrl;
}
$this->echoJson($res);
... ... @@ -117,8 +118,8 @@ class ReturnsController extends WebAction
$deliveryType = $this->post('deliveryType');
//判断参数合法性
if (empty($orderCode) || $orderCode<1 || empty($goods) || empty($deliveryType) || empty($consigneeName) || empty($areaCode) || empty($address) || empty($mobile)) {
$this->echoJson(array('code'=>203,'message'=>'非法提交'));
if (empty($orderCode) || $orderCode < 1 || empty($goods) || empty($deliveryType) || empty($consigneeName) || empty($areaCode) || empty($address) || empty($mobile)) {
$this->echoJson(array('code' => 203, 'message' => '非法提交'));
return;
}
//调用模型提交换货申请
... ... @@ -126,7 +127,7 @@ class ReturnsController extends WebAction
//换货成功,返回前端相应格式,并返回换货成功页跳转链接
if (isset($res['code']) && $res['code'] == '200') {
$successUrl = Helpers::url('/home/returns/exchangeSuccess', array('orderCode'=>$orderCode));
$successUrl = Helpers::url('/home/returns/exchangeSuccess', array('orderCode' => $orderCode));
$res['data']['refer'] = $successUrl;
}
... ... @@ -204,6 +205,7 @@ class ReturnsController extends WebAction
//头部导航
$channel = Helpers::getChannelNameByCookie();
$this->setWebNavHeader($channel);
$this->_view->display('returns-detail', array('meReturnsPage' => true, 'returns' => $data));
}
... ... @@ -224,6 +226,7 @@ class ReturnsController extends WebAction
//头部导航
$channel = Helpers::getChannelNameByCookie();
$this->setWebNavHeader($channel);
$this->_view->display('returns-detail', array('meReturnsPage' => true, 'returns' => $data));
}
... ... @@ -246,11 +249,11 @@ class ReturnsController extends WebAction
$expressNumber = $this->post('expressNumber');
$uid = $this->getUid();
$expressCompany = $this->post('expressCompany');
$res = array('code'=>201,'message'=>'请求失败');
$res = array('code' => 201, 'message' => '请求失败');
if (!isset($id) || !isset($expressId) || !isset($expressNumber) || !isset($uid) || !isset($expressCompany) || !isset($isChange)) {
return $res;
}
$res = ReturnsModel::setExpressNumber($id, $expressId, $expressNumber,$uid, $expressCompany, $isChange);
$res = ReturnsModel::setExpressNumber($id, $expressId, $expressNumber, $uid, $expressCompany, $isChange);
$this->echoJson($res);
}
... ... @@ -263,7 +266,7 @@ class ReturnsController extends WebAction
{
//判断是否登录,未登录则退出
if (!$this->getUid()) {
$this->echoJson(array('code'=>'400','message'=>'请登录'));
$this->echoJson(array('code' => '400', 'message' => '请登录'));
exit;
}
$result = ReturnsModel::saveRefundImg('fileData');
... ... @@ -271,7 +274,35 @@ class ReturnsController extends WebAction
$this->echoJson($result);
}
/**
* 取消退货申请
*/
public function cancelRefundAction()
{
if (!$this->isAjax()) {
return;
}
$orderId = $this->post('id');
$uid = $this->getUid();
$result = ReturnsData::cancelRefund($orderId, $uid);
$this->echoJson($result);
}
/**
* 取消换货申请
*/
public function cancelChangeAction()
{
if (!$this->isAjax()) {
return;
}
$orderId = $this->post('id');
$uid = $this->getUid();
$result = ReturnsData::cancelChange($orderId, $uid);
$this->echoJson($result);
}
/**
* 个人中心-根据商品skn,颜色,尺码返回商品的sku,goodsId(待用)
... ...