Commit f42dc8dc authored by liuyuzhen's avatar liuyuzhen

Merge branch 'master_dev' of git.shenbd.com:qm-develop/shenbd into lyz

parents 28a3530f 5c9eac71
...@@ -10,7 +10,7 @@ use Zend\Json\Server\Exception\ErrorException; ...@@ -10,7 +10,7 @@ use Zend\Json\Server\Exception\ErrorException;
class GoodsCommonServiceModel extends \Business\AbstractModel class GoodsCommonServiceModel extends \Business\AbstractModel
{ {
private $goodsStorageField = 'goods_id goodsId,goods_name goodsName,goods_verify goodsVerify,goods_state goodsState,goods_image goodsImage,goods_price goodsPrice,goods_storage goodsStorage,goods_spec goodsAttr'; private $goodsStorageField = 'goods_id goodsId,goods_name goodsName,goods_verify goodsVerify,goods_state goodsState,goods_image goodsImage,goods_price goodsPrice,goods_storage goodsStorage,goods_spec goodsAttr,goods_storage_alarm as goodsStorageAlarm';
private $setStorageType = array('add'=> 1, 'set'=>2); private $setStorageType = array('add'=> 1, 'set'=>2);
public function init() { public function init() {
......
...@@ -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;
...@@ -421,8 +423,16 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -421,8 +423,16 @@ 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);
//获取订单
$order_id = $refund['order_id'];
$order_info = $orderDao->find( array('order_id'=>$order_id));
$alreadyRefund=$order_info['refund_amount']-$refund['refund_amount'];
if(($order_info['order_amount']-$alreadyRefund)<$refundAmount){
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']));
...@@ -439,18 +449,18 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -439,18 +449,18 @@ class RefundServiceModel extends \Business\AbstractModel
ErrorModel::throwException(CodeConfigModel::alreadyExsitRefundGoods); 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); $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));
...@@ -1070,9 +1080,12 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -1070,9 +1080,12 @@ class RefundServiceModel extends \Business\AbstractModel
} }
if($allReadyGoodsCount==ApiConst::one){ if($allReadyGoodsCount==ApiConst::one){
$refundAmount=$refundAmount+$orderInfo['shippingFee']; $refundAmount=$refundAmount+$orderInfo['shippingFee'];
if($shippingFee && ($orderInfo['shippingType']==ApiConst::bySeller)){ if($shippingFee){
$refundAmount=$refundAmount-$orderInfo['shippingFee']; $refundAmount=$refundAmount-$orderInfo['shippingFee'];
} }
// if($shippingFee && ($orderInfo['shippingType']==ApiConst::bySeller)){
// $refundAmount=$refundAmount-$orderInfo['shippingFee'];
// }
} }
//修改后的优惠金额按比例退回 //修改后的优惠金额按比例退回
$discountAmount=$orderInfo['originAmount']- $orderInfo['orderAmount']; $discountAmount=$orderInfo['originAmount']- $orderInfo['orderAmount'];
...@@ -1080,7 +1093,9 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -1080,7 +1093,9 @@ class RefundServiceModel extends \Business\AbstractModel
if($discountAmount){ if($discountAmount){
$mustReduceAmount=$orderGoodsDao->getMustReduceAmount($allOrderGoods,$discountAmount,$orderGoodsConvert); $mustReduceAmount=$orderGoodsDao->getMustReduceAmount($allOrderGoods,$discountAmount,$orderGoodsConvert);
} }
if(!$orderInfo['couponId']){
$refundAmount=$refundAmount-$mustReduceAmount; $refundAmount=$refundAmount-$mustReduceAmount;
}
//配送订单配送费按比例收取 //配送订单配送费按比例收取
// if($orderInfo['shippingType']==ApiConst::bySeller){ // if($orderInfo['shippingType']==ApiConst::bySeller){
// $mustSheepingFee=ApiConst::zero; // $mustSheepingFee=ApiConst::zero;
......
...@@ -325,6 +325,7 @@ class CodeConfigModel ...@@ -325,6 +325,7 @@ class CodeConfigModel
const refundWriteError=300143; const refundWriteError=300143;
const beyondRecieverTime=300144; const beyondRecieverTime=300144;
const payTypeUpdateError = 30145; const payTypeUpdateError = 30145;
const beyongRefundAmount = 300146;
//店铺相关错误码 //店铺相关错误码
//商品分类 //商品分类
...@@ -832,6 +833,7 @@ class CodeConfigModel ...@@ -832,6 +833,7 @@ class CodeConfigModel
self::refundWriteError=>'退款表写入失败', self::refundWriteError=>'退款表写入失败',
self::beyondRecieverTime=>'设置收货时间不能早于当前时间', self::beyondRecieverTime=>'设置收货时间不能早于当前时间',
self::payTypeUpdateError=> '更新支付类型失败', self::payTypeUpdateError=> '更新支付类型失败',
self::beyongRefundAmount=>'退款金额不能超过可退款金额',
//销售员 //销售员
self::emptySaleGoodsId => '商品id不能为空', self::emptySaleGoodsId => '商品id不能为空',
self::emptySaleGoods => '销售商品不存在', self::emptySaleGoods => '销售商品不存在',
......
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