Commit 6bab2773 authored by christ's avatar christ

refund

parent 6f257773
...@@ -241,7 +241,7 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -241,7 +241,7 @@ class RefundServiceModel extends \Business\AbstractModel
* 退货审核页 * 退货审核页
* *
*/ */
public function returnGoods($storeId,$refundId,$sellerState,$refundAmount,$sellerMessage,$isGiveUp=ApiConst::zero) { public function returnGoods($storeId,$refundId,$sellerState,$refundAmount,$sellerMessage,$orderAlreadyRefundAmount,$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);
$orderGoodsDao=\DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName); $orderGoodsDao=\DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName);
...@@ -260,6 +260,8 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -260,6 +260,8 @@ class RefundServiceModel extends \Business\AbstractModel
} }
$orderDao->setDb(DbNameConst::masterDBConnectName); $orderDao->setDb(DbNameConst::masterDBConnectName);
$orderDao->db->doTransaction(); $orderDao->db->doTransaction();
$orderData['refund_amount']=$orderAlreadyRefundAmount;
$orderDao->updateByOrderId($orderData,$return['order_id']);
$order_info=$orderDao->findByOrderId($return['order_id']); $order_info=$orderDao->findByOrderId($return['order_id']);
$refund_array = array(); $refund_array = array();
$refund_array['seller_time'] = TIMESTAMP; $refund_array['seller_time'] = TIMESTAMP;
...@@ -424,12 +426,13 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -424,12 +426,13 @@ class RefundServiceModel extends \Business\AbstractModel
//获取订单 //获取订单
$order_id = $refund['order_id']; $order_id = $refund['order_id'];
$order_info = $orderDao->find( array('order_id'=>$order_id)); $order_info = $orderDao->find( array('order_id'=>$order_id));
$alreadyRefund=$order_info['refund_amount']-$refundAmount; $alreadyRefund=$order_info['refund_amount']-$refund['refund_amount'];
if(($order_info['order_amount']-$alreadyRefund)<$refundAmount){ if(($order_info['order_amount']-$alreadyRefund)<$refundAmount){
ErrorModel::throwException(CodeConfigModel::beyongRefundAmount); ErrorModel::throwException(CodeConfigModel::beyongRefundAmount);
} }
$orderAlreadyRefundAmount=$alreadyRefund+$refundAmount;
if($refund['refund_type']==ApiConst::refundTypeGoods){ if($refund['refund_type']==ApiConst::refundTypeGoods){
if($this->returnGoods($storeId,$refundId,$seller_state,$refundAmount,$text,$isGiveUp)){ if($this->returnGoods($storeId,$refundId,$seller_state,$refundAmount,$text,$orderAlreadyRefundAmount,$isGiveUp)){
$refundReturnDao->deleteRefundCache($refund['buyer_id'], $refund['refund_id']); $refundReturnDao->deleteRefundCache($refund['buyer_id'], $refund['refund_id']);
$orderDao->deleteOrderCache($refund['buyer_id'],$refund['order_id'],$refund['store_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'])); \Our\RedisHelper::delCachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$refundReturnDao, 'getList'), array(), array($refund['store_id']));
...@@ -449,14 +452,15 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -449,14 +452,15 @@ class RefundServiceModel extends \Business\AbstractModel
$orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName); $orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$orderData['refund_amount']=$refundAmount;
$orderDao->updateByOrderId($orderData,$order_id);
$refund_array = array(); $refund_array = array();
$refund_array['seller_time'] = time(); $refund_array['seller_time'] = time();
$refund_array['seller_state'] = $seller_state;//卖家处理状态:1为待审核,2为同意,3为不同意 $refund_array['seller_state'] = $seller_state;//卖家处理状态:1为待审核,2为同意,3为不同意
$refund_array['seller_message'] = $text; $refund_array['seller_message'] = $text;
$refund_array['refund_amount'] = $refundAmount; $refund_array['refund_amount'] = $refundAmount;
$refundReturnDao->db->doTransaction(); $refundReturnDao->db->doTransaction();
$orderData['refund_amount']=$orderAlreadyRefundAmount;
$orderDao->updateByOrderId($orderData,$order_id);
if($seller_state!=2){ //拒绝退款 if($seller_state!=2){ //拒绝退款
$result= $orderGoodsDao->update(array('rec_id'=>$refund['order_goods_id']), array('is_refund'=>0, 'refund_state_name'=>'卖家拒绝退款', 'gmt_update'=>TIMESTAMP)); $result= $orderGoodsDao->update(array('rec_id'=>$refund['order_goods_id']), array('is_refund'=>0, 'refund_state_name'=>'卖家拒绝退款', 'gmt_update'=>TIMESTAMP));
......
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