Commit 5472bac4 authored by christ's avatar christ

refund

parent 38e42329
...@@ -152,6 +152,9 @@ class DescribeConst ...@@ -152,6 +152,9 @@ class DescribeConst
const refund='退款'; const refund='退款';
const refundRetund='退货'; const refundRetund='退货';
const sellerRefuseReturn='卖家拒绝退货';
const sellerAgreeReturn='卖家同意退货';
//用户订单送达消息 //用户订单送达消息
const reacheRemindTitle='你的订单卖家已经送达'; const reacheRemindTitle='你的订单卖家已经送达';
const reacheRemindContent='你有新的订单号为{0}的订单已经已经送达'; const reacheRemindContent='你有新的订单号为{0}的订单已经已经送达';
......
...@@ -74,7 +74,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -74,7 +74,7 @@ class OrderServiceModel extends \Business\AbstractModel
$query2[] = array('match' => array('storeName' => $keyword)); $query2[] = array('match' => array('storeName' => $keyword));
$query2[] = array('match' => array('goodsName' => $keyword)); $query2[] = array('match' => array('goodsName' => $keyword));
$query2[] = array('match' => array('orderSn' => "$keyword")); $query2[] = array('match' => array('orderSn' => "$keyword"));
// $query2[] = array('wildcard' => array('orderSn' => "*{$keyword}*")); // $query2[] = array('wildcard' => array('orderSn' => "*{$keyword}*"));
$res1['must'][1]['bool']['should'] = $query2; $res1['must'][1]['bool']['should'] = $query2;
$allQuery['bool'] = $res1; $allQuery['bool'] = $res1;
// echo json_encode($allQuery);exit; // echo json_encode($allQuery);exit;
...@@ -267,7 +267,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -267,7 +267,7 @@ class OrderServiceModel extends \Business\AbstractModel
//商店相关信息 //商店相关信息
// $this->store=$storeDao->get($this->order['storeId']); // $this->store=$storeDao->get($this->order['storeId']);
// $this->store=Common::convertUnderline($this->store[0]); // $this->store=Common::convertUnderline($this->store[0]);
$this->store = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$storeDao, 'getInfoById'), array($this->order['storeId'], $storeDao->detailField), \Our\ApiConst::sevenDaySecond,array($this->order['storeId'])); $this->store = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$storeDao, 'getInfoById'), array($this->order['storeId'], $storeDao->detailField), \Our\ApiConst::sevenDaySecond,array($this->order['storeId']));
$returnData = $this->order; $returnData = $this->order;
//配送员信息 //配送员信息
$this->diliveryman = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$diliverymanDao, 'findById'), array($returnData['diliverymanId']), \Our\ApiConst::oneDaySecond); $this->diliveryman = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$diliverymanDao, 'findById'), array($returnData['diliverymanId']), \Our\ApiConst::oneDaySecond);
...@@ -302,7 +302,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -302,7 +302,7 @@ class OrderServiceModel extends \Business\AbstractModel
$returnData['storeMemberId']=$this->store['memberId']; $returnData['storeMemberId']=$this->store['memberId'];
$returnData['totalGoodsNum'] = $orderGoodsDao->getGoodsCount($this->orderGoodsList); $returnData['totalGoodsNum'] = $orderGoodsDao->getGoodsCount($this->orderGoodsList);
// $returnData['offlinePayway'] =$this->store['offlinePayway'] ? $this->store['offlinePayway'] : ''; // $returnData['offlinePayway'] =$this->store['offlinePayway'] ? $this->store['offlinePayway'] : '';
$this->address['address']=$orderCommonDao->convertReceiveAddress($this->address['address']); $this->address['address']=$orderCommonDao->convertReceiveAddress($this->address['address']);
$returnData['reciverInfo'] = $this->address; $returnData['reciverInfo'] = $this->address;
$returnData['reciverInfo']['mobPhone']=!empty($returnData['reciverInfo']['mobPhone'])?$returnData['reciverInfo']['mobPhone']:''; $returnData['reciverInfo']['mobPhone']=!empty($returnData['reciverInfo']['mobPhone'])?$returnData['reciverInfo']['mobPhone']:'';
...@@ -418,7 +418,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -418,7 +418,7 @@ class OrderServiceModel extends \Business\AbstractModel
'orderId'=>$order['order_id'])); 'orderId'=>$order['order_id']));
$push->addOneToClient($pushData); $push->addOneToClient($pushData);
$push->sendTcpMessage(); $push->sendTcpMessage();
// \Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>$type,'op'=>NameConst::reduce,'num'=>ApiConst::one,'params'=>array('c'=>'shopkeeper','m'=>'orderDetail','orderId'=>$order['orderId']))); // \Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>$type,'op'=>NameConst::reduce,'num'=>ApiConst::one,'params'=>array('c'=>'shopkeeper','m'=>'orderDetail','orderId'=>$order['orderId'])));
$orderDao->deleteOrderCache($memberId, $orderId, $order['store_id'],true,true); $orderDao->deleteOrderCache($memberId, $orderId, $order['store_id'],true,true);
$storeDao->deleteStoreCache($order['storeId'],$order['orderId']); $storeDao->deleteStoreCache($order['storeId'],$order['orderId']);
return true; return true;
...@@ -509,7 +509,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -509,7 +509,7 @@ class OrderServiceModel extends \Business\AbstractModel
'orderId'=>$order['orderId'])); 'orderId'=>$order['orderId']));
$push->addOneToClient($pushData); $push->addOneToClient($pushData);
$push->sendTcpMessage(); $push->sendTcpMessage();
// \Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>ApiConst::messageWaitReceive,'op'=>NameConst::add,'num'=>ApiConst::one,'params'=>array('c'=>'shopkeeper','m'=>'orderDetail','orderId'=>$order['orderId']))); // \Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>ApiConst::messageWaitReceive,'op'=>NameConst::add,'num'=>ApiConst::one,'params'=>array('c'=>'shopkeeper','m'=>'orderDetail','orderId'=>$order['orderId'])));
$push->sendTcpMessage(); $push->sendTcpMessage();
$messageService=\Business\Message\MessageServiceModel::getInstance(\Our\DbNameConst::masterDBConnectName); $messageService=\Business\Message\MessageServiceModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$messageService->addMessageCenterToDb(); $messageService->addMessageCenterToDb();
...@@ -570,7 +570,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -570,7 +570,7 @@ class OrderServiceModel extends \Business\AbstractModel
{ {
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName); $orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
$refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName); $refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName);
$orderGoodsDao=\DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName); $orderGoodsDao=\DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName);
// $orderGoods=$orderGoodsDao->getOrderGoodsByOrderIds($orderInfo['orderId']); // $orderGoods=$orderGoodsDao->getOrderGoodsByOrderIds($orderInfo['orderId']);
try { try {
$orderId = $orderInfo['orderId']; $orderId = $orderInfo['orderId'];
...@@ -644,7 +644,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -644,7 +644,7 @@ class OrderServiceModel extends \Business\AbstractModel
} catch (Exception $e) { } catch (Exception $e) {
throw new \Exception($e->getMessage(),$e->getCode()); throw new \Exception($e->getMessage(),$e->getCode());
} }
} }
...@@ -671,7 +671,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -671,7 +671,7 @@ class OrderServiceModel extends \Business\AbstractModel
$updateCommonData['order_message']=DescribeConst::cancelOrderMessage; $updateCommonData['order_message']=DescribeConst::cancelOrderMessage;
$res=$orderCommonDao->update(array('order_id'=>$order['orderId']),$updateCommonData); $res=$orderCommonDao->update(array('order_id'=>$order['orderId']),$updateCommonData);
if(!$update || !$res){ if(!$update || !$res){
echo '订单:'.$order['orderId'].'没取消成功!'; echo '订单:'.$order['orderId'].'没取消成功!';
} }
//$orderGoodsUpdateData['refund_state_name']='退款成功'; //$orderGoodsUpdateData['refund_state_name']='退款成功';
$orderGoodsUpdateData['is_refund']=1; $orderGoodsUpdateData['is_refund']=1;
...@@ -721,37 +721,37 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -721,37 +721,37 @@ class OrderServiceModel extends \Business\AbstractModel
$beginTime = $beginTime ? $beginTime : ApiConst::zero; $beginTime = $beginTime ? $beginTime : ApiConst::zero;
$endTime = TIMESTAMP - ApiConst::orderStateWaitConfirmBeyond; $endTime = TIMESTAMP - ApiConst::orderStateWaitConfirmBeyond;
$storeDao=\DAO\StoreModel::getInstance(); $storeDao=\DAO\StoreModel::getInstance();
// $beginTime=0; // $beginTime=0;
$orders = $orderDao->getMustCecelRecieveOrders($beginTime, $endTime, $orderDao->getOrderDetailField()); $orders = $orderDao->getMustCecelRecieveOrders($beginTime, $endTime, $orderDao->getOrderDetailField());
if (!empty($orders)) { if (!empty($orders)) {
foreach ($orders as $order) { foreach ($orders as $order) {
//更新订单信息 //更新订单信息
$updateData = array('order_state' => ApiConst::orderStateClose,'refund_amount'=>$order['orderAmount']); $updateData = array('order_state' => ApiConst::orderStateClose,'refund_amount'=>$order['orderAmount']);
$update = $orderDao->update(array('order_id' => $order['orderId']),$updateData); $update = $orderDao->update(array('order_id' => $order['orderId']),$updateData);
if($update){ if($update){
if ($order['paymentTime'] > ApiConst::zero && in_array($order['paymentType'], ArrayConst::orderPayTypeOnlines)) { if ($order['paymentTime'] > ApiConst::zero && in_array($order['paymentType'], ArrayConst::orderPayTypeOnlines)) {
$this->changeOrderStateCancelUnconditional($order); $this->changeOrderStateCancelUnconditional($order);
}
} }
$orderDao->deleteOrderCache($order['buyerId'],(string)$order['orderId'],$order['storeId'],true);
$storeDao->deleteStoreCache($order['storeId'],$order['orderId']);
$push=\Our\Push::getInstance();
$pushData=array('storeId'=>$order['store_id'],
'type'=>ApiConst::messageWaitReceive,
'waitReceiveCount'=>ApiConst::reduceOne,
'waitDeliveryCount'=>0,
'waitGetCount'=>0,
'orderCount'=>ApiConst::reduceOne,
'waitRefundProccessCount'=>ApiConst::zero,
'waitRefundReceiveCount'=>ApiConst::zero,
'refundCount'=>ApiConst::zero,
'alertCount'=>ApiConst::zero,
'params'=>array('c'=>'shopkeeper',
'm'=>'orderDetail',
'orderId'=>$order['order_id']));
$push->addOneToClient($pushData);
} }
$orderDao->deleteOrderCache($order['buyerId'],(string)$order['orderId'],$order['storeId'],true);
$storeDao->deleteStoreCache($order['storeId'],$order['orderId']);
$push=\Our\Push::getInstance();
$pushData=array('storeId'=>$order['storeId'],
'type'=>ApiConst::messageWaitReceive,
'waitReceiveCount'=>ApiConst::reduceOne,
'waitDeliveryCount'=>0,
'waitGetCount'=>0,
'orderCount'=>ApiConst::reduceOne,
'waitRefundProccessCount'=>ApiConst::zero,
'waitRefundReceiveCount'=>ApiConst::zero,
'refundCount'=>ApiConst::zero,
'alertCount'=>ApiConst::zero,
'params'=>array('c'=>'shopkeeper',
'm'=>'orderDetail',
'orderId'=>$order['orderId']));
$push->addOneToClient($pushData);
}
$orderIds = array_column($orders, 'orderId'); $orderIds = array_column($orders, 'orderId');
//更新商品库存 //更新商品库存
...@@ -867,8 +867,8 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -867,8 +867,8 @@ class OrderServiceModel extends \Business\AbstractModel
} }
$qmDeliveryLogList = $qmDeliveryLogDao->getListByDeliverymanIdAndTypeCache($diliverymanIds, $type, $pageIndex, $pageSize,array('get_time' => 'desc'),$memberId); $qmDeliveryLogList = $qmDeliveryLogDao->getListByDeliverymanIdAndTypeCache($diliverymanIds, $type, $pageIndex, $pageSize,array('get_time' => 'desc'),$memberId);
$orderIds = array_column($qmDeliveryLogList['list'], 'orderId'); $orderIds = array_column($qmDeliveryLogList['list'], 'orderId');
// echo json_encode($orderIds);exit; // echo json_encode($orderIds);exit;
// $where['delete_state'] = ApiConst::undeleteOrder; // $where['delete_state'] = ApiConst::undeleteOrder;
$orderIds=implode(',',$orderIds); $orderIds=implode(',',$orderIds);
...@@ -906,7 +906,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -906,7 +906,7 @@ class OrderServiceModel extends \Business\AbstractModel
$delivery['subAddress'] = isset($delivery['reciverInfo']['sub_address']) ? $delivery['reciverInfo']['sub_address'] : ''; $delivery['subAddress'] = isset($delivery['reciverInfo']['sub_address']) ? $delivery['reciverInfo']['sub_address'] : '';
$delivery['distributionFee']=$value['distributionFee']; $delivery['distributionFee']=$value['distributionFee'];
unset($delivery['goodsAmount']); unset($delivery['goodsAmount']);
// unset($delivery['orderState']); // unset($delivery['orderState']);
unset($delivery['refundState']); unset($delivery['refundState']);
unset($delivery['goodsAmount']); unset($delivery['goodsAmount']);
unset($delivery['reciverInfo']); unset($delivery['reciverInfo']);
...@@ -1029,11 +1029,11 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -1029,11 +1029,11 @@ class OrderServiceModel extends \Business\AbstractModel
$updateResult = $qmDeliverymanLogDao->updateStatusById($id); $updateResult = $qmDeliverymanLogDao->updateStatusById($id);
$orderDao = \DAO\Order\OrderModel::getInstance(); $orderDao = \DAO\Order\OrderModel::getInstance();
$order = $orderDao->findByOrderId($qmDeliveryManLog['orderId'], $orderDao->getOrderDetailField()); $order = $orderDao->findByOrderId($qmDeliveryManLog['orderId'], $orderDao->getOrderDetailField());
if ($updateResult) { if ($updateResult) {
$push = Push::getInstance(); $push = Push::getInstance();
$push->reacheRemind($order['buyerId'], $order['orderId'], $order['orderSn']); $push->reacheRemind($order['buyerId'], $order['orderId'], $order['orderSn']);
$push->sendTcpMessage(); $push->sendTcpMessage();
} }
$orderDao->deleteOrderCache($memberid, $qmDeliveryManLog['orderId'], $order['storeId'],true,true,true,$memberid); $orderDao->deleteOrderCache($memberid, $qmDeliveryManLog['orderId'], $order['storeId'],true,true,true,$memberid);
$qmDeliverymanLogDao->deleteOrderCache($memberid, $id); $qmDeliverymanLogDao->deleteOrderCache($memberid, $id);
return $updateResult; return $updateResult;
......
...@@ -191,7 +191,133 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -191,7 +191,133 @@ class RefundServiceModel extends \Business\AbstractModel
return false; return false;
} }
/**
* 退货审核页
*
*/
public function returnGoods($storeId,$refundId,$sellerState,$sellerMessage,$isGiveUp=ApiConst::zero) {
$refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName);
$orderDao=\DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
$orderGoodsDao=\DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$condition = array();
$condition['store_id'] = $storeId;
$condition['refund_id'] = $refundId;
$returnDetail=$refundReturnDao->findByRefundId($refundId);
if($returnDetail['store_id']!=$storeId){
ErrorModel::throwException(CodeConfigModel::notExistRefund);
}
$return = $returnDetail;
try {
$return_goods= $refundReturnDao->getRefundOperateState('return_goods',$return);
if(!$return_goods) {
ErrorModel::throwException(CodeConfigModel::wrongRefundState);
}
$order_info=$orderDao->findByOrderId($return['order_id'],$orderDao->getOrderDetailField());
$refund_array = array();
$refund_array['seller_time'] = TIMESTAMP;
$refund_array['seller_state'] =$sellerState;//卖家处理状态:1为待审核,2为同意,3为不同意
$refund_array['seller_message'] =$sellerMessage;
//如果卖家不同意退款回写is_refund
if ($refund_array['seller_state'] != '2'){
$orderGoodsUpdateData['is_refund']=ApiConst::zero;
$orderGoodsUpdateData['refund_state_name']=DescribeConst::sellerRefuseReturn;
$orderGoodsUpdateData['gmt_update']=TIMESTAMP;
$orderGoodsWhere['rec_id']=$return['order_goods_id'];
$result=$orderGoodsDao->update($orderGoodsWhere,$orderGoodsUpdateData);
if(!$result){
ErrorModel::throwException(CodeConfigModel::updateIsRefundFail);
}
if($return['refund_type']==ApiConst::refundTypeGoods && $return['return_type']){
$waitRefundReceiveCount=ApiConst::one;
$refundCount=ApiConst::zero;
}else{
$waitRefundReceiveCount=ApiConst::zero;
$refundCount=ApiConst::reduceOne;
}
$push=\Our\Push::getInstance();
$pushData=array('storeId'=>$order_info['storeId'],
'type'=>ApiConst::messageRefund,
'waitReceiveCount'=>ApiConst::zero,
'waitDeliveryCount'=>ApiConst::zero,
'waitGetCount'=>ApiConst::zero,
'orderCount'=>ApiConst::zero,
'waitRefundProccessCount'=>ApiConst::reduceOne,
'waitRefundReceiveCount'=>$waitRefundReceiveCount,
'refundCount'=>$refundCount,
'alertCount'=>ApiConst::zero,
'params'=>array('c'=>'shopkeeper',
'm'=>'orderDetail',
'refundId'=>$return['refund_id']));
$push->addOneToClient($pushData);
$push->sendTcpMessage();
}
if ($refund_array['seller_state'] == ApiConst::refundSellerAgree){
$orderGoodsUpdateData['refund_state_name']=DescribeConst::sellerAgreeReturn;
$orderGoodsUpdateData['gmt_update']=TIMESTAMP;
$orderGoodsWhere['rec_id']=$return['order_goods_id'];
$result=$orderGoodsDao->update($orderGoodsWhere,$orderGoodsUpdateData);
if(!$result){
ErrorModel::throwException(CodeConfigModel::updateRefundStateNameFail);
}
}
if ($refund_array['seller_state'] == '2' && !$isGiveUp) {
$refund_array['return_type'] = '2';//退货类型:1为不用退货,2为需要退货
$refund_array['goods_state']=2;
} elseif ($refund_array['seller_state'] == '3') {
$refund_array['refund_state'] = '3';//状态:1为处理中,2为待管理员处理,3为已完成
} else {
$refund_array['seller_state'] = '2';
$refund_array['refund_state'] = '2';
$refund_array['return_type'] = '1';//选择弃货
}
$state = $refundReturnDao->update($condition, $refund_array);
if ($state) {
$sellerLogDao=\DAO\SellerLogModel::getInstance(DbNameConst::masterDBConnectName);
$sellerLogDao->record('退货处理,退货编号:'.$return['refund_sn']);
$push=\Our\Push::getInstance();
$pushData=array('storeId'=>$order_info['storeId'],
'type'=>ApiConst::messageRefund,
'waitReceiveCount'=>ApiConst::zero,
'waitDeliveryCount'=>ApiConst::zero,
'waitGetCount'=>ApiConst::zero,
'orderCount'=>ApiConst::zero,
'waitRefundProccessCount'=>ApiConst::reduceOne,
'waitRefundReceiveCount'=>zero,
'refundCount'=>ApiConst::reduceOne,
'alertCount'=>ApiConst::zero,
'params'=>array('c'=>'shopkeeper',
'm'=>'orderDetail',
'refundId'=>$return['refund_id']));
$push->addOneToClient($pushData);
$push->sendTcpMessage();
return true;
} else {
throw new Exception('系统错误');
}
}catch (Exception $e) {
throw new \Exception($e->getMessage());
}
// Tpl::output('return',$return);
// $info['buyer'] = array();
// if(!empty($return['pic_info'])) {
// $info = unserialize($return['pic_info']);
// }
// Tpl::output('pic_list',$info['buyer']);
// $model_member = Model('member');
// $member = $model_member->getMemberInfoByID($return['buyer_id']);
// Tpl::output('member',$member);
// $condition = array();
// $condition['order_id'] = $return['order_id'];
// $model_refund->getRightOrderList($condition, $return['order_goods_id']);
// $deliveryman_list = Model('diliveryman')->getDiliverymanList(array('store_id'=>$_SESSION['store_id'],'is_del'=>0),'scores desc');
// Tpl::output('deliveryman_list',$deliveryman_list);
// Tpl::showpage('store_return_edit');
}
/** /**
* 退货退款处理 * 退货退款处理
* @param $storeId 店铺id * @param $storeId 店铺id
...@@ -199,7 +325,7 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -199,7 +325,7 @@ class RefundServiceModel extends \Business\AbstractModel
* @param $refundAmount 退款金额 * @param $refundAmount 退款金额
* @param string $text 退款消息 * @param string $text 退款消息
*/ */
public function refund($storeId, $sellerId, $sellerName, $refundId, $refundAmount = 0, $text = '', $seller_state = 2) public function refund($storeId, $sellerId, $sellerName, $refundId, $refundAmount = 0, $text = '', $seller_state = 2,$isGiveUp=ApiConst::zero)
{ {
$refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName); $refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName);
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName); $orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
...@@ -207,119 +333,135 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -207,119 +333,135 @@ class RefundServiceModel extends \Business\AbstractModel
$whereRefund['store_id']= $storeId; $whereRefund['store_id']= $storeId;
$whereRefund['refund_id']= $refundId; $whereRefund['refund_id']= $refundId;
$refund = $refundReturnDao->find($whereRefund); $refund = $refundReturnDao->find($whereRefund);
if(!$refund) { if($refund['refund_type']==ApiConst::refundTypeGoods){
ErrorModel::throwException(CodeConfigModel::notExistRefund); if($this->returnGoods($storeId,$refundId,$refund['sellerState'],$text,$isGiveUp)){
} $refundReturnDao->deleteRefundCache($refund['buyer_id'], $refund['refund_id']);
if($refund['seller_state']!=1) { $orderDao->deleteOrderCache($refund['buyer_id'],$refund['order_id'],$refund['store_id']);
ErrorModel::throwException(CodeConfigModel::alreadyExsitRefundGoods); \Our\RedisHelper::delCachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$refundReturnDao, 'getList'), array(), array($refund['store_id']));
} }
//获取订单 return true;
$order_id = $refund['order_id']; }else{
$order_info = $orderDao->find( array('order_id'=>$order_id));
$orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName); if(!$refund) {
$refund_array = array(); ErrorModel::throwException(CodeConfigModel::notExistRefund);
$refund_array['seller_time'] = time();
$refund_array['seller_state'] = $seller_state;//卖家处理状态:1为待审核,2为同意,3为不同意
$refund_array['seller_message'] = $text;
$refund_array['refund_amount'] = $refundAmount;
$refundReturnDao->db->doTransaction();
if($seller_state!=2){ //拒绝退款
$result= $orderGoodsDao->update(array('rec_id'=>$refund['order_goods_id']), array('is_refund'=>0, 'refund_state_name'=>'卖家拒绝退货', 'gmt_update'=>TIMESTAMP));
if(!$result){
$refundReturnDao->db->doRollback();
return false;
} }
if($order_info['refund_state']== 2) { if($refund['seller_state']!=1) {
$result = $orderDao->updateByOrderId(array('refund_state'=>1), $refund['order_id']); ErrorModel::throwException(CodeConfigModel::alreadyExsitRefundGoods);
}
//获取订单
$order_id = $refund['order_id'];
$order_info = $orderDao->find( array('order_id'=>$order_id));
$orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$refund_array = array();
$refund_array['seller_time'] = time();
$refund_array['seller_state'] = $seller_state;//卖家处理状态:1为待审核,2为同意,3为不同意
$refund_array['seller_message'] = $text;
$refund_array['refund_amount'] = $refundAmount;
$refundReturnDao->db->doTransaction();
if($seller_state!=2){ //拒绝退款
$result= $orderGoodsDao->update(array('rec_id'=>$refund['order_goods_id']), array('is_refund'=>0, 'refund_state_name'=>'卖家拒绝退货', 'gmt_update'=>TIMESTAMP));
if(!$result){ if(!$result){
$refundReturnDao->db->doRollback(); $refundReturnDao->db->doRollback();
return false; return false;
} }
if($order_info['refund_state']== 2) {
$result = $orderDao->updateByOrderId(array('refund_state'=>1), $refund['order_id']);
if(!$result){
$refundReturnDao->db->doRollback();
return false;
}
}
$refund_array['refund_state'] = '3'; //状态:1为处理中,2为待管理员处理,3为已完成
$state = $refundReturnDao->editRefundReturn($whereRefund, $refund_array);
if(!$state){
$refundReturnDao->db->doRollback();
return false;
}
//$this->recordSellerLog('退款处理,退款编号:'.$refund['refund_sn']); //待确认
//记录操作日志
$sellerLogDAO = \DAO\SellerLogModel::getInstance();
$sellerLogDAO->record('拒绝退款处理,退款编号:'.$refund['refund_sn'], array('seller_id'=>$sellerId, 'seller_name'=>$sellerName, 'store_id'=>$storeId));
$refundReturnDao->deleteRefundCache($refund['buyer_id'], $refund['refund_id']);
$orderDao->deleteOrderCache($refund['buyer_id'],$refund['order_id'],$refund['store_id']);
\Our\RedisHelper::delCachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$refundReturnDao, 'getList'), array(), array($refund['store_id']));
$refundReturnDao->db->doCommit();
return true;
} }
$refund_array['refund_state'] = '3'; //状态:1为处理中,2为待管理员处理,3为已完成
$state = $refundReturnDao->editRefundReturn($whereRefund, $refund_array); if($refundAmount > $refund['buyer_refund_amount']){
if(!$state){ //showDialog('退款金额不可大于本订单支付金额','','error');
$refundReturnDao->db->doRollback(); $refundReturnDao->db->doRollback();
return false; return false;
} }
//$this->recordSellerLog('退款处理,退款编号:'.$refund['refund_sn']); //待确认
//记录操作日志
$sellerLogDAO = \DAO\SellerLogModel::getInstance();
$sellerLogDAO->record('拒绝退款处理,退款编号:'.$refund['refund_sn'], array('seller_id'=>$sellerId, 'seller_name'=>$sellerName, 'store_id'=>$storeId));
$refundReturnDao->deleteRefundCache($refund['buyer_id'], $refund['refund_id']); //以下为同意退款流程
$orderDao->deleteOrderCache($refund['buyer_id'],$refund['order_id'],$refund['store_id']); if($order_info['order_state']==40){ //交易完成订单,退积分
\Our\RedisHelper::delCachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$refundReturnDao, 'getList'), array(), array($refund['store_id'])); $res = $this->edit_points($refund, $order_info);
$refundReturnDao->db->doCommit(); if(!$res){
return true; $refundReturnDao->db->doRollback();
} ErrorModel::throwException(CodeConfigModel::refundAddPointsLogError);
if($refundAmount > $refund['buyer_refund_amount']){ }
//showDialog('退款金额不可大于本订单支付金额','','error');
$refundReturnDao->db->doRollback();
return false;
}
//以下为同意退款流程
if($order_info['order_state']==40){ //交易完成订单,退积分
$res = $this->edit_points($refund, $order_info);
if(!$res){
$refundReturnDao->db->doRollback();
ErrorModel::throwException(CodeConfigModel::refundAddPointsLogError);
} }
} $refund_array['refund_state'] = '3'; //状态:1为处理中,2为待管理员处理,3为已完成
$refund_array['refund_state'] = '3'; //状态:1为处理中,2为待管理员处理,3为已完成
$state = $refundReturnDao->editRefundReturn($whereRefund, $refund_array); $state = $refundReturnDao->editRefundReturn($whereRefund, $refund_array);
if($state){ //退款记录成功 if($state){ //退款记录成功
//记录操作日志 //记录操作日志
$sellerLogDAO = \DAO\SellerLogModel::getInstance(); $sellerLogDAO = \DAO\SellerLogModel::getInstance();
$sellerLogDAO->record('同意退款处理,退款编号:'.$refund['refund_sn'], array('seller_id'=>$sellerId, 'seller_name'=>$sellerName, 'store_id'=>$storeId)); $sellerLogDAO->record('同意退款处理,退款编号:'.$refund['refund_sn'], array('seller_id'=>$sellerId, 'seller_name'=>$sellerName, 'store_id'=>$storeId));
// add by ky start // add by ky start
//检测该店铺是否开启直接退款功能 //检测该店铺是否开启直接退款功能
$storeDAO = \DAO\StoreModel::getInstance(); $storeDAO = \DAO\StoreModel::getInstance();
//店铺积分 //店铺积分
$is_direct_refund = $storeDAO->getInfoById($storeId, 'is_direct_refund', 'is_direct_refund'); $is_direct_refund = $storeDAO->getInfoById($storeId, 'is_direct_refund', 'is_direct_refund');
$orderGoodsDao->update(array('rec_id'=>$refund['order_goods_id']), array('refund_state_name'=>'卖家同意退款')); $orderGoodsDao->update(array('rec_id'=>$refund['order_goods_id']), array('refund_state_name'=>'卖家同意退款'));
if($is_direct_refund==1){ //支持直接退款 if($is_direct_refund==1){ //支持直接退款
//退款 检测该订单是否为线上支付 //退款 检测该订单是否为线上支付
$updateData = array('is_suc_refund'=>1,'gmt_update'=>TIMESTAMP); $updateData = array('is_suc_refund'=>1,'gmt_update'=>TIMESTAMP);
if($refund_array['refund_amount']>0){ if($refund_array['refund_amount']>0){
$payment_type = $order_info['payment_type']; $payment_type = $order_info['payment_type'];
if(!in_array($payment_type,array(0,2))){ if(!in_array($payment_type,array(0,2))){
$state = $refundReturnDao->storeRefund(array_merge($order_info, array('refund_order_no'=>$refund['order_sn'], 'refund_amount'=> $refund_array['refund_amount']))); $state = $refundReturnDao->storeRefund(array_merge($order_info, array('refund_order_no'=>$refund['order_sn'], 'refund_amount'=> $refund_array['refund_amount'])));
if (!$state) { if (!$state) {
//throw new Exception('更新订单信息失败'); //throw new Exception('更新订单信息失败');
$refundReturnDao->db->doRollback(); $refundReturnDao->db->doRollback();
return false; return false;
} }
if($payment_type==1) { //微信支付 if($payment_type==1) { //微信支付
$updateData = array('is_suc_refund'=>1,'gmt_update'=>TIMESTAMP,'seller_state'=>$refund_array['seller_state'],'refund_state'=>$refund_array['refund_state']); $updateData = array('is_suc_refund'=>1,'gmt_update'=>TIMESTAMP,'seller_state'=>$refund_array['seller_state'],'refund_state'=>$refund_array['refund_state']);
} else { } else {
$updateData = array('is_suc_refund'=>1,'gmt_update'=>TIMESTAMP); $updateData = array('is_suc_refund'=>1,'gmt_update'=>TIMESTAMP);
}
} }
} }
} $res=$refundReturnDao->update(array('refund_id'=>$refund['refund_id']), $updateData);
$res=$refundReturnDao->update(array('refund_id'=>$refund['refund_id']), $updateData); if(!$res){
if(!$res){ $refundReturnDao->db->doRollback();
$refundReturnDao->db->doRollback();
// showDialog('退款成功,退款表写入失败,请联系工作人员!',$reload,'error'); // showDialog('退款成功,退款表写入失败,请联系工作人员!',$reload,'error');
return false; return false;
} }
$result= $orderGoodsDao->update(array('rec_id'=>$refund['order_goods_id']), array('is_refund'=>1,'gmt_update'=>TIMESTAMP)); $result= $orderGoodsDao->update(array('rec_id'=>$refund['order_goods_id']), array('is_refund'=>1,'gmt_update'=>TIMESTAMP));
if(!$result){ if(!$result){
$refundReturnDao->db->doRollback(); $refundReturnDao->db->doRollback();
// showDialog('refund_state_name',$reload,'error'); // showDialog('refund_state_name',$reload,'error');
return false; return false;
}
} }
$refundReturnDao->db->doCommit();
$refundReturnDao->deleteRefundCache($refund['buyer_id'], $refund['refund_id']);
$orderDao->deleteOrderCache($refund['buyer_id'],$refund['order_id'],$refund['store_id']);
\Our\RedisHelper::delCachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$refundReturnDao, 'getList'), array(), array($refund['store_id']));
return true;
} }
$refundReturnDao->deleteRefundCache($refund['buyer_id'], $refund['refund_id']); $refundReturnDao->db->doRollback();
$orderDao->deleteOrderCache($refund['buyer_id'],$refund['order_id'],$refund['store_id']);
\Our\RedisHelper::delCachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$refundReturnDao, 'getList'), array(), array($refund['store_id']));
$refundReturnDao->db->doCommit();
return true;
} }
$refundReturnDao->db->doRollback();
return false; return false;
} }
...@@ -460,7 +602,7 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -460,7 +602,7 @@ class RefundServiceModel extends \Business\AbstractModel
$value['deliveryTimeEnd'] = $value['deliveryTime'] + ApiConst::arriveTimeRadius; $value['deliveryTimeEnd'] = $value['deliveryTime'] + ApiConst::arriveTimeRadius;
$value['goodsImage'] = ImageUtil::getGoodsImgUrl($value['goodsImage'], ApiConst::goodsSmallSize); $value['goodsImage'] = ImageUtil::getGoodsImgUrl($value['goodsImage'], ApiConst::goodsSmallSize);
$value['goodsAttr']=$goodsDao->getFormatGoodsAttr($value['goodsSpec']); $value['goodsAttr']=$goodsDao->getFormatGoodsAttr($value['goodsSpec']);
$extent=$orderDao->getClienOrderCommon($orders[$value['orderId']]); $extent=$orderDao->getClienOrderCommon($orders[$value['orderId']]);
$value=array_merge($value,$extent); $value=array_merge($value,$extent);
$goodGroup=unserialize($value['goodsGroup']); $goodGroup=unserialize($value['goodsGroup']);
$value['goodsGroup']=!empty($goodGroup)?$goodGroup:[]; $value['goodsGroup']=!empty($goodGroup)?$goodGroup:[];
...@@ -476,7 +618,7 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -476,7 +618,7 @@ class RefundServiceModel extends \Business\AbstractModel
$value['picInfo'] = $refundReturnDao->getRefundPics($value['picInfo']['buyer']); $value['picInfo'] = $refundReturnDao->getRefundPics($value['picInfo']['buyer']);
} }
unset($value['goodsSpec']); unset($value['goodsSpec']);
// unset($value['picInfo']); // unset($value['picInfo']);
} }
$returnData['refundReturns'] = $refundMerge; $returnData['refundReturns'] = $refundMerge;
$returnData['totalCount'] = $refundReturns['totalCount']; $returnData['totalCount'] = $refundReturns['totalCount'];
...@@ -677,7 +819,7 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -677,7 +819,7 @@ class RefundServiceModel extends \Business\AbstractModel
} }
$shippingTypes=array(); $shippingTypes=array();
array_push($shippingTypes,ArrayConst::refundShippingType[$orderInfo['shippingType']]); array_push($shippingTypes,ArrayConst::refundShippingType[$orderInfo['shippingType']]);
// $shippingTypes = ArrayConst::refundShippingType[$orderInfo['shippingType']]; // $shippingTypes = ArrayConst::refundShippingType[$orderInfo['shippingType']];
//获得订单商品 //获得订单商品
$orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance(); $orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance();
$orderGoodses = \Our\RedisHelper::cachedFunction(\Redis\Db5\RefundReasonRedisModel::getInstance(), array(&$orderGoodsDao, 'getOrderGoodsByOrderIds'), array($orderInfo['orderId'], $this->orderGoodsField), \Our\ApiConst::oneDaySecond); $orderGoodses = \Our\RedisHelper::cachedFunction(\Redis\Db5\RefundReasonRedisModel::getInstance(), array(&$orderGoodsDao, 'getOrderGoodsByOrderIds'), array($orderInfo['orderId'], $this->orderGoodsField), \Our\ApiConst::oneDaySecond);
...@@ -832,7 +974,7 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -832,7 +974,7 @@ class RefundServiceModel extends \Business\AbstractModel
$picArray['buyer']=array(); $picArray['buyer']=array();
if (!empty($refund['images'])) { if (!empty($refund['images'])) {
foreach($refund['images'] as $key=>$image){ foreach($refund['images'] as $key=>$image){
$ismuch= preg_match('/^(data:\s*image\/(\w+);base64,)/', $image, $result); $ismuch= preg_match('/^(data:\s*image\/(\w+);base64,)/', $image, $result);
if($ismuch){ if($ismuch){
$fileName=ImageUtil::uploadBase64Image($image,ImageConst::refund,ImageUtil::getFileName($memberId.$key)); $fileName=ImageUtil::uploadBase64Image($image,ImageConst::refund,ImageUtil::getFileName($memberId.$key));
$fileName=basename($fileName); $fileName=basename($fileName);
...@@ -841,7 +983,7 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -841,7 +983,7 @@ class RefundServiceModel extends \Business\AbstractModel
} }
array_push($picArray['buyer'],$fileName); array_push($picArray['buyer'],$fileName);
} }
// $picArray['buyer'] = $refund['images']; // $picArray['buyer'] = $refund['images'];
} else { } else {
$picArray['buyer'] = array(); $picArray['buyer'] = array();
} }
...@@ -971,7 +1113,7 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -971,7 +1113,7 @@ class RefundServiceModel extends \Business\AbstractModel
if($info['returnType']==ApiConst::returnTypeMustReturn){ if($info['returnType']==ApiConst::returnTypeMustReturn){
if(!$info['diliverymanId']){ if(!$info['diliverymanId']){
$info['diliveryman']=new \stdClass(); $info['diliveryman']=new \stdClass();
// $info['diliveryman']=ArrayConst::defaultDeliveryMan; // $info['diliveryman']=ArrayConst::defaultDeliveryMan;
}else{ }else{
$diliveryMan=$diliveryManDao->findById($info['diliverymanId']); $diliveryMan=$diliveryManDao->findById($info['diliverymanId']);
if(!empty($diliveryMan)){ if(!empty($diliveryMan)){
...@@ -1010,7 +1152,7 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -1010,7 +1152,7 @@ class RefundServiceModel extends \Business\AbstractModel
$orderGoodsDao=\DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName); $orderGoodsDao=\DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$where['buyer_id']=$buyerId; $where['buyer_id']=$buyerId;
$where['refund_id']=$refundId; $where['refund_id']=$refundId;
$res= $refundReturnDao->find($where,$refundReturnDao->refundDetailField); $res= $refundReturnDao->find($where,$refundReturnDao->refundDetailField);
if(isset($res['isPlatformIn']) && !empty($res['isPlatformIn'])){ if(isset($res['isPlatformIn']) && !empty($res['isPlatformIn'])){
ErrorModel::throwException(CodeConfigModel::platFormAreadyIn); ErrorModel::throwException(CodeConfigModel::platFormAreadyIn);
} }
......
...@@ -84,7 +84,7 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -84,7 +84,7 @@ class RefundReturnModel extends \DAO\AbstractModel {
$this->setDb(\Our\DbNameConst::masterDBConnectName); $this->setDb(\Our\DbNameConst::masterDBConnectName);
return $this->db->update($this->_tableName)->where($where)->rows($data)->execute(); return $this->db->update($this->_tableName)->where($where)->rows($data)->execute();
} }
//更新退货物流信息 //更新退货物流信息
public function updateReturnShippingByRefundId($refundId,$data){ public function updateReturnShippingByRefundId($refundId,$data){
$where[$this->_primaryKey]=$refundId; $where[$this->_primaryKey]=$refundId;
$updateData['express_id']=$data['expressId']; $updateData['express_id']=$data['expressId'];
...@@ -164,53 +164,53 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -164,53 +164,53 @@ class RefundReturnModel extends \DAO\AbstractModel {
} }
public function getStatusExtent($returnRefund,$isSeller=false){ public function getStatusExtent($returnRefund,$isSeller=false){
// if($returnRefund['refundState']!=ApiConst::refundCompleted){ // if($returnRefund['refundState']!=ApiConst::refundCompleted){
if($returnRefund['sellerState']==ApiConst::refundSellerAgree){ if($returnRefund['sellerState']==ApiConst::refundSellerAgree){
if($returnRefund['isSucRefund']==ApiConst::refundSuccess){ if($returnRefund['isSucRefund']==ApiConst::refundSuccess){
return OrderConst::alreadyReufndMoney; return OrderConst::alreadyReufndMoney;
} }
if($returnRefund['refundType']==ApiConst::refundTypeMoney){ if($returnRefund['refundType']==ApiConst::refundTypeMoney){
return OrderConst::sellerAgree; return OrderConst::sellerAgree;
}
if($returnRefund['refundType']==ApiConst::refundTypeGoods){
if($returnRefund['isSucRefund']==ApiConst::refundSuccess){
return OrderConst::alreadyReufndMoney;
}
if($returnRefund['goodsState']==ApiConst::goodsStateUnRecieve){
return OrderConst::goodsStateUnRecieve;
}
if($returnRefund['goodsState']==ApiConst::goodsStateRecieved){
return OrderConst::goodsStateRecieved;
}
if($returnRefund['returnType']==ApiConst::returnTypeNotReturn){
return OrderConst::sellerAgreeReturn;
}
if($returnRefund['returnType']==ApiConst::returnTypeMustReturn){
return OrderConst::waitSellerRecieve;
}
}
} }
if($returnRefund['sellerState']==ApiConst::refundSellerRefuse){ if($returnRefund['refundType']==ApiConst::refundTypeGoods){
if($returnRefund['isSucRefund']==ApiConst::refundSuccess){ if($returnRefund['isSucRefund']==ApiConst::refundSuccess){
return OrderConst::alreadyReufndMoney; return OrderConst::alreadyReufndMoney;
} }
if($returnRefund['platformState']==ApiConst::platAgree){ if($returnRefund['goodsState']==ApiConst::goodsStateUnRecieve){
return OrderConst::platFormAgree; return OrderConst::goodsStateUnRecieve;
} }
if($returnRefund['platformState']==ApiConst::platRefuse){ if($returnRefund['goodsState']==ApiConst::goodsStateRecieved){
return OrderConst::platFormRefuse; return OrderConst::goodsStateRecieved;
} }
if($returnRefund['isPlatformIn']==ApiConst::platIn){ if($returnRefund['returnType']==ApiConst::returnTypeNotReturn){
return OrderConst::platFromProccess; return OrderConst::sellerAgreeReturn;
} }
if($returnRefund['refundType']==ApiConst::refundTypeMoney){ if($returnRefund['returnType']==ApiConst::returnTypeMustReturn){
return OrderConst::sellerRefuse; return OrderConst::waitSellerRecieve;
} }
if($returnRefund['refundType']==ApiConst::refundTypeGoods){
return OrderConst::sellerRefuseGoods;
}
} }
}
if($returnRefund['sellerState']==ApiConst::refundSellerRefuse){
if($returnRefund['isSucRefund']==ApiConst::refundSuccess){
return OrderConst::alreadyReufndMoney;
}
if($returnRefund['platformState']==ApiConst::platAgree){
return OrderConst::platFormAgree;
}
if($returnRefund['platformState']==ApiConst::platRefuse){
return OrderConst::platFormRefuse;
}
if($returnRefund['isPlatformIn']==ApiConst::platIn){
return OrderConst::platFromProccess;
}
if($returnRefund['refundType']==ApiConst::refundTypeMoney){
return OrderConst::sellerRefuse;
}
if($returnRefund['refundType']==ApiConst::refundTypeGoods){
return OrderConst::sellerRefuseGoods;
}
}
// }else{ // }else{
// return OrderConst::refoundSuccess; // return OrderConst::refoundSuccess;
// } // }
...@@ -240,11 +240,11 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -240,11 +240,11 @@ class RefundReturnModel extends \DAO\AbstractModel {
*/ */
public function isPlatformIn($refundInfo){ public function isPlatformIn($refundInfo){
if(($refundInfo['isPlatformIn']==ApiConst::platNotIn && ($refundInfo['sellerState']==ApiConst::refundSellerRefuse) || $refundInfo['buyerRefundAmount']>$refundInfo['refundAmount'])){ if(($refundInfo['isPlatformIn']==ApiConst::platNotIn && ($refundInfo['sellerState']==ApiConst::refundSellerRefuse) || $refundInfo['buyerRefundAmount']>$refundInfo['refundAmount'])){
return TRUE; return TRUE;
}else{ }else{
return FALSE; return FALSE;
} }
} }
/** /**
* 根据订单状态判断是否可以退款退货 * 根据订单状态判断是否可以退款退货
...@@ -489,7 +489,7 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -489,7 +489,7 @@ class RefundReturnModel extends \DAO\AbstractModel {
'type' => $type, 'type' => $type,
'refund_sn' => $refund_array['refund_sn'] 'refund_sn' => $refund_array['refund_sn']
); );
// QueueClient::push('sendStoreMsg', $param); // QueueClient::push('sendStoreMsg', $param);
return $refund_id; return $refund_id;
} }
...@@ -515,12 +515,27 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -515,12 +515,27 @@ class RefundReturnModel extends \DAO\AbstractModel {
$this->deleteFindByOrderIdCache($refundId); $this->deleteFindByOrderIdCache($refundId);
} }
} }
// public function editOrderUnlock($order_id) {
// $order_id = intval($order_id);
// if ($order_id > 0) {
// $condition = array();
// $condition['order_id'] = $order_id;
// $condition['lock_state'] = array('egt','1');
// $data = array();
// $data['lock_state'] = array('exp','lock_state-1');
// $data['delay_time'] = time();
// $model_order =\DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
// $result = $model_order->update($condition,$data);
// return $result;
// }
// return false;
// }
/** /**
*获得退货退款列表 *获得退货退款列表
* *
* @var \DAO\getList * @var \DAO\getList
*/ */
public function getList($where, $field, $pageIndex, $pageSize, $order = array('add_time' => 'desc')) public function getList($where, $field, $pageIndex=ApiConst::zero, $pageSize=ApiConst::pageSize, $order = array('add_time' => 'desc'))
{ {
$this->setDb($this->dbName); $this->setDb($this->dbName);
$refunds = $this->lists($where, $order, $field, $pageIndex, $pageSize); $refunds = $this->lists($where, $order, $field, $pageIndex, $pageSize);
...@@ -535,6 +550,44 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -535,6 +550,44 @@ class RefundReturnModel extends \DAO\AbstractModel {
return $returnType; return $returnType;
} }
public function getRefundOperateState($operate,$refund_info,$order_info = null) {
if (!is_array($refund_info) || empty($refund_info)) return false;
switch ($operate){
//选择配送员
case 'select_deliveryman':
$state = ($refund_info['refund_shipping_type'] == 1 && $refund_info['return_type'] == 2 && $refund_info['goods_state'] == 2 && ($refund_info['seller_state'] == 2 || $refund_info['platform_state'] == 1));
break;
//收货
case 'take_delivery':
$state = ($refund_info['return_type'] == 2 && $refund_info['goods_state'] == 2 && ($refund_info['seller_state'] == 2 || $refund_info['platform_state'] == 1));
//修改退款金额/处理
break;
case 'change_refund':
$state = ($refund_info['seller_state']==1);
break;
//退货
case 'return_goods':
$state = ($refund_info['seller_state']==1 && $refund_info['refund_type']==2);
break;
//退款
case 'return_money':
$state = ($refund_info['seller_state']==1 && $refund_info['refund_type']==1);
break;
//修改收货时间
case 'change_time':
$state = (!$refund_info['receive_time'] && $refund_info['refund_shipping_type'] == 1 && $refund_info['return_type'] == 2 && $refund_info['goods_state'] == 2 && ($refund_info['seller_state'] == 2 || $refund_info['platform_state'] == 1));
break;
//原路退回
case 'return_origin':
$state = ($refund_info['refund_type'] == 1 || ($refund_info['refund_type'] == 2 && $refund_info['goods_state'] == 4)) && $refund_info['is_suc_refund'] == 0 && ($refund_info['seller_state'] == 2 || $refund_info['platform_state'] == 1) && ($order_info && $order_info['payment_type'] != 0 && $order_info['payment_type'] != 2);
break;
//标记为已退款
case 'mark':
$state = ($refund_info['refund_type'] == 1 || ($refund_info['refund_type'] == 2 && $refund_info['goods_state'] == 4)) && $refund_info['is_suc_refund'] == 0 && ($refund_info['seller_state'] == 2 || $refund_info['platform_state'] == 1) && ($order_info && ($order_info['payment_type'] == 0 ||$order_info['payment_type'] == 2)) ;
break;
}
return $state;
}
public function getMemberStoreStaticsByGmtUpdate($gmtUpdate,$pageIndex,$pageSize){ public function getMemberStoreStaticsByGmtUpdate($gmtUpdate,$pageIndex,$pageSize){
$this->setDb($this->dbName); $this->setDb($this->dbName);
$where =\Our\Common::format(' gmt_update>={0} and gmt_update<{1} and refund_state={2}',$gmtUpdate,TIMESTAMP,ApiConst::refundStateComplete); $where =\Our\Common::format(' gmt_update>={0} and gmt_update<{1} and refund_state={2}',$gmtUpdate,TIMESTAMP,ApiConst::refundStateComplete);
...@@ -594,6 +647,7 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -594,6 +647,7 @@ class RefundReturnModel extends \DAO\AbstractModel {
public function getReturnWaitReceive($id){ public function getReturnWaitReceive($id){
$where['store_id']=$id; $where['store_id']=$id;
$where['refund_type']=ApiConst::refundTypeGoods; $where['refund_type']=ApiConst::refundTypeGoods;
$where['return_type']=ApiConst::returnTypeMustReturn;
$where['goods_state']=ApiConst::goodsStateWaitRecieve; $where['goods_state']=ApiConst::goodsStateWaitRecieve;
return $where; return $where;
} }
......
...@@ -130,6 +130,7 @@ class CodeConfigModel ...@@ -130,6 +130,7 @@ class CodeConfigModel
const emptyScanStoreId = 40010; const emptyScanStoreId = 40010;
const emptyScanStoreInfo = 40011; const emptyScanStoreInfo = 40011;
const saveScanStoreInfoFailed = 40012; const saveScanStoreInfoFailed = 40012;
const storeNotOpen = 40013;
//购物车 //购物车
const wrongCartType = 50001; const wrongCartType = 50001;
...@@ -314,7 +315,9 @@ class CodeConfigModel ...@@ -314,7 +315,9 @@ class CodeConfigModel
const orderWxPayError = 30137; const orderWxPayError = 30137;
const orderWxPaySignError = 30138; const orderWxPaySignError = 30138;
const wrongRefundState=300139;
const updateIsRefundFail=300140;
const updateRefundStateNameFail=300141;
//店铺相关错误码 //店铺相关错误码
//商品分类 //商品分类
...@@ -549,6 +552,7 @@ class CodeConfigModel ...@@ -549,6 +552,7 @@ class CodeConfigModel
self::emptyScanStoreId => '扫码关注店铺ID为空', self::emptyScanStoreId => '扫码关注店铺ID为空',
self::emptyScanStoreInfo => '扫码关注店铺不存在', self::emptyScanStoreInfo => '扫码关注店铺不存在',
self::saveScanStoreInfoFailed => '扫码店铺保存失败', self::saveScanStoreInfoFailed => '扫码店铺保存失败',
self::storeNotOpen => '店铺还未配置开启',
//购物车相关 //购物车相关
self::wrongCartType => '加入购物车类型不能为空', self::wrongCartType => '加入购物车类型不能为空',
...@@ -809,6 +813,9 @@ class CodeConfigModel ...@@ -809,6 +813,9 @@ class CodeConfigModel
self::selfGoodsForStoreOrder => '店主不能购买自己的商品', self::selfGoodsForStoreOrder => '店主不能购买自己的商品',
self::orderWxPayError => '微信支付尚未开通', self::orderWxPayError => '微信支付尚未开通',
self::orderWxPaySignError => '微信支付签名错误', self::orderWxPaySignError => '微信支付签名错误',
self::wrongRefundState=>'订单状态有误',
self::updateIsRefundFail=>'更新is_refund失败',
self::updateRefundStateNameFail=>'更新order表refund_state_name失败',
//销售员 //销售员
self::emptySaleGoodsId => '商品id不能为空', self::emptySaleGoodsId => '商品id不能为空',
self::emptySaleGoods => '销售商品不存在', self::emptySaleGoods => '销售商品不存在',
......
...@@ -202,16 +202,16 @@ class ShopkeeperController extends \Our\Controller_AbstractClient { ...@@ -202,16 +202,16 @@ class ShopkeeperController extends \Our\Controller_AbstractClient {
* 查询配送员 * 查询配送员
* *
*/ */
public function searchDeliveryAction(){ public function searchDeliveryAction(){
$shopkeeperService=\Business\Store\ShopkeeperServiceModel::getInstance(); $shopkeeperService=\Business\Store\ShopkeeperServiceModel::getInstance();
$res=$shopkeeperService->getDiliveryMan($this->req['data']['mobile']); $res=$shopkeeperService->getDiliveryMan($this->req['data']['mobile']);
$res=$res?$res:new \stdClass(); $res=$res?$res:new \stdClass();
$this->success($res,\Our\DescribeConst::successMessage); $this->success($res,\Our\DescribeConst::successMessage);
} }
/** /**
* 单一属性商品库存预警 * 单一属性商品库存预警
* @author king * @author king
*/ */
public function warningAction(){ public function warningAction(){
$goodsCommonService = \Business\Goods\GoodsCommonServiceModel::getInstance(); $goodsCommonService = \Business\Goods\GoodsCommonServiceModel::getInstance();
$pageIndex=$this->getPageIndex(); $pageIndex=$this->getPageIndex();
...@@ -259,8 +259,13 @@ class ShopkeeperController extends \Our\Controller_AbstractClient { ...@@ -259,8 +259,13 @@ class ShopkeeperController extends \Our\Controller_AbstractClient {
$refundService=\Business\Order\RefundServiceModel::getInstance(); $refundService=\Business\Order\RefundServiceModel::getInstance();
$refundAmount = floatval($this->req['data']['refundAmount']); $refundAmount = floatval($this->req['data']['refundAmount']);
$text = trim($this->req['data']['text']); $text = trim($this->req['data']['text']);
$res = $refundService->refund($this->storeId, $this->sellerId, $this->sellerName, $refundId, $refundAmount, $text); $isGiveUp=$this->req['data']['isGiveUp']?$this->req['data']['isGiveUp']:\Our\ApiConst::zero;
$this->success($res); $res = $refundService->refund($this->storeId, $this->sellerId, $this->sellerName, $refundId, $refundAmount, $text,\Our\ApiConst::refundSellerAgree,$isGiveUp);
if($res){
$this->success('操作成功');
}
ErrorModel::throwException(CodeConfigModel::commonError);
} }
/** /**
...@@ -278,9 +283,9 @@ class ShopkeeperController extends \Our\Controller_AbstractClient { ...@@ -278,9 +283,9 @@ class ShopkeeperController extends \Our\Controller_AbstractClient {
} }
/** /**
* 确认收货 * 确认收货
* @throws Exception * @throws Exception
*/ */
public function confirmReceiveAction(){ public function confirmReceiveAction(){
$refundId= intval($this->req['data']['refundId']); $refundId= intval($this->req['data']['refundId']);
if(!$refundId) { if(!$refundId) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment