Commit 4543a86e authored by christ's avatar christ

goods

parent c910b4ed
...@@ -25,6 +25,9 @@ class OrderConst { ...@@ -25,6 +25,9 @@ class OrderConst {
const express='快递配送'; const express='快递配送';
const complete="已完成"; const complete="已完成";
const close="已关闭"; const close="已关闭";
const platformStateVerify='待审核';
const platformStateAgree='同意';
const platformStateRefuse='拒绝';
const platformAudit="平台审核"; const platformAudit="平台审核";
const platFormAgree="平台同意"; const platFormAgree="平台同意";
...@@ -50,7 +53,14 @@ class OrderConst { ...@@ -50,7 +53,14 @@ class OrderConst {
//详情 //详情
const unpayDetailMessage="10分钟后交易自动关闭"; const unpayDetailMessage="10分钟后交易自动关闭";
const payCancelDetailMessage="10分钟可取消订单"; const payCancelDetailMessage="10分钟可取消订单";
//商家售后状态
const sellerStateVerify='待审核';
const sellerStateAgree='同意';
const sellerStateRefuse='不同意';
//商家售后状态
const platStateVerify='待审核';
const platStateAgree='同意';
const platStateRefuse='不同意';
//店铺详细文案 //店铺详细文案
const storeWaiteConfirm='请尽快确认订单'; const storeWaiteConfirm='请尽快确认订单';
const storeWaiteSend='请尽快发货'; const storeWaiteSend='请尽快发货';
......
...@@ -702,6 +702,7 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -702,6 +702,7 @@ class RefundServiceModel extends \Business\AbstractModel
$orderCommons = $orderCommonDao->getAllByOrderIds($orderIds, $orderCommonDao->orderCommonField); $orderCommons = $orderCommonDao->getAllByOrderIds($orderIds, $orderCommonDao->orderCommonField);
$orderCommons=$orderDao->convertOrder($orderCommons,'orderId'); $orderCommons=$orderDao->convertOrder($orderCommons,'orderId');
foreach ($refundMerge as &$value) { foreach ($refundMerge as &$value) {
$value['sellerStateName']=$refundReturnDao->getSellerStateName($value['sellerState']);
$value['stateName'] = $refundReturnDao->getRefundTextStatus($value,true); $value['stateName'] = $refundReturnDao->getRefundTextStatus($value,true);
/*$value['blId'] = isset($value['blId']) ? (!is_null($value['blId']) ? $value['blId'] : ApiConst::zero) : ApiConst::zero; /*$value['blId'] = isset($value['blId']) ? (!is_null($value['blId']) ? $value['blId'] : ApiConst::zero) : ApiConst::zero;
$value['canPlatformIn'] = $refundReturnDao->isPlatformIn($value) ? ApiConst::one : ApiConst::zero; $value['canPlatformIn'] = $refundReturnDao->isPlatformIn($value) ? ApiConst::one : ApiConst::zero;
...@@ -725,7 +726,13 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -725,7 +726,13 @@ class RefundServiceModel extends \Business\AbstractModel
}else{ }else{
$value['deliveryman']=new \stdClass(); $value['deliveryman']=new \stdClass();
} }
$value['goodsGroup']=!empty($goodGroup)?$goodGroup:[]; if(!empty($goodGroup)){
$value['goodsGroup']=$goodGroup;
}else{
$value['goodsGroup']=[];
$value['goodsOriginPrice']=$goodsDao->getOriginPriceByGoodsGroup($value['goodsGroup']);
}
if ($value['refundType'] == ApiConst::refundTypeGoods) { if ($value['refundType'] == ApiConst::refundTypeGoods) {
if($value['refundShippingType']==ApiConst::bySeller){ if($value['refundShippingType']==ApiConst::bySeller){
$value['reciverInfo']=$orderCommonDao->getReciverInfo($value['reciverInfo']); $value['reciverInfo']=$orderCommonDao->getReciverInfo($value['reciverInfo']);
......
...@@ -474,6 +474,14 @@ class GoodsModel extends \DAO\AbstractModel { ...@@ -474,6 +474,14 @@ class GoodsModel extends \DAO\AbstractModel {
} }
return $orderGoodses; return $orderGoodses;
} }
public function getOriginPriceByGoodsGroup($goodsGroup){
$goodsOriginPrice=ApiConst::zero;
foreach( $goodsGroup as $goodsG){
$goodsOriginPrice+= $goodsG['num']*$goodsG['goodsPrice'];
}
return $goodsOriginPrice;
}
//ccw //ccw
public function convert($goodses,$extentField=false,$refundOrders=false){ public function convert($goodses,$extentField=false,$refundOrders=false){
if($refundOrders){ if($refundOrders){
......
...@@ -14,7 +14,8 @@ use Our\ImageUtil; ...@@ -14,7 +14,8 @@ use Our\ImageUtil;
use Our\OrderConst; use Our\OrderConst;
use Payment\Alipay; use Payment\Alipay;
class RefundReturnModel extends \DAO\AbstractModel { class RefundReturnModel extends \DAO\AbstractModel
{
public $errorCode; public $errorCode;
/** /**
...@@ -23,56 +24,65 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -23,56 +24,65 @@ class RefundReturnModel extends \DAO\AbstractModel {
* @var string * @var string
*/ */
protected $_tableName = 'han_refund_return'; protected $_tableName = 'han_refund_return';
public $refundDetailField='is_platform_in as isPlatformIn,seller_state as sellerState,platform_state as platformState,refund_id as refundId,order_id as orderId,store_id as storeId,order_goods_id as orderGoodsId'; public $refundDetailField = 'is_platform_in as isPlatformIn,seller_state as sellerState,platform_state as platformState,refund_id as refundId,order_id as orderId,store_id as storeId,order_goods_id as orderGoodsId';
public $refundReturnField="seller_state,refund_state,is_platform_in,platform_state"; public $refundReturnField = "seller_state,refund_state,is_platform_in,platform_state";
private $sumField="order_id as orderId,buyer_id as buyerId,store_id as storeId,goods_num as goodsNum,refund_amount as refundAmount,is_suc_refund as isSucRefund,gmt_update as gmtUpdate"; private $sumField = "order_id as orderId,buyer_id as buyerId,store_id as storeId,goods_num as goodsNum,refund_amount as refundAmount,is_suc_refund as isSucRefund,gmt_update as gmtUpdate";
private $sumRefundAmount=" sum(refund_amount) as sumRefundAmont"; private $sumRefundAmount = " sum(refund_amount) as sumRefundAmont";
/** /**
* 主键 * 主键
* *
* @var string * @var string
*/ */
protected $_primaryKey = 'refund_id'; protected $_primaryKey = 'refund_id';
public $errorMessage=''; public $errorMessage = '';
public function init(){
public function init()
{
} }
public function getCount($where){
public function getCount($where)
{
$this->setDb(); $this->setDb();
return $this->db->from($this->_tableName)->where($where)->fetchNum(); return $this->db->from($this->_tableName)->where($where)->fetchNum();
} }
public function getAll($where,$field,$db=DbNameConst::salveDBConnectName){ public function getAll($where, $field, $db = DbNameConst::salveDBConnectName)
{
$this->setDb($db); $this->setDb($db);
$list = $this->db->select($field)->from($this->_tableName)->where($where)->fetchAll(); $list = $this->db->select($field)->from($this->_tableName)->where($where)->fetchAll();
return $list; return $list;
} }
public function getRefundSuccessMoneyByStoreId($storeId,$beginTime=false,$endTime=false){ public function getRefundSuccessMoneyByStoreId($storeId, $beginTime = false, $endTime = false)
{
$this->setDb($this->dbName); $this->setDb($this->dbName);
if($beginTime){ if ($beginTime) {
$where=\Our\Common::format(" store_id={0} and is_suc_refund={1} and gmt_update between {2} and {3}",$storeId,ApiConst::refundSuccess,$beginTime,$endTime); $where = \Our\Common::format(" store_id={0} and is_suc_refund={1} and gmt_update between {2} and {3}", $storeId, ApiConst::refundSuccess, $beginTime, $endTime);
}else{ } else {
$where=\Our\Common::format(" store_id={0} and is_suc_refund={1}",$storeId,ApiConst::refundSuccess); $where = \Our\Common::format(" store_id={0} and is_suc_refund={1}", $storeId, ApiConst::refundSuccess);
} }
$res=$this->db->from($this->_tableName)->select($this->sumRefundAmount)->where($where)->fetchValue(); $res = $this->db->from($this->_tableName)->select($this->sumRefundAmount)->where($where)->fetchValue();
return !empty($res)?$res:ApiConst::zero; return !empty($res) ? $res : ApiConst::zero;
} }
public function getRefundSuccessMoneyByStoreIdAndMemberId($storeId,$buyerId){
public function getRefundSuccessMoneyByStoreIdAndMemberId($storeId, $buyerId)
{
$this->setDb($this->dbName); $this->setDb($this->dbName);
if(is_array($storeId)){ if (is_array($storeId)) {
$storeId=implode(',',$storeId); $storeId = implode(',', $storeId);
} }
if(is_array($buyerId)){ if (is_array($buyerId)) {
$buyerId=implode(',',$buyerId); $buyerId = implode(',', $buyerId);
} }
$where=\Our\Common::format(" store_id in({0}) and buyer_id in({1}) and is_suc_refund={2}",$storeId,$buyerId,ApiConst::refundSuccess); $where = \Our\Common::format(" store_id in({0}) and buyer_id in({1}) and is_suc_refund={2}", $storeId, $buyerId, ApiConst::refundSuccess);
$res=$this->db->from($this->_tableName)->where($where)->select(" buyer_id as buyerId,store_id as storeId,(SUM(refund_amount)) AS refundTotal")->group('buyer_id')->group('store_id')->fetchAll(); $res = $this->db->from($this->_tableName)->where($where)->select(" buyer_id as buyerId,store_id as storeId,(SUM(refund_amount)) AS refundTotal")->group('buyer_id')->group('store_id')->fetchAll();
return !empty($res)?$res:[]; return !empty($res) ? $res : [];
} }
/** /**
* 更新数据 * 更新数据
* @param $data * @param $data
...@@ -84,175 +94,215 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -84,175 +94,215 @@ 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; {
$updateData['express_id']=$data['expressId']; $where[$this->_primaryKey] = $refundId;
$updateData['invoice_no']=$data['invoiceNo']; $updateData['express_id'] = $data['expressId'];
$updateData['address_id']=$data['addressId']; $updateData['invoice_no'] = $data['invoiceNo'];
$updateData['goods_state']=ApiConst::goodsStateWaitRecieve; $updateData['address_id'] = $data['addressId'];
$updateData['ship_time']=TIMESTAMP; $updateData['goods_state'] = ApiConst::goodsStateWaitRecieve;
return $this->update($where,$updateData); $updateData['ship_time'] = TIMESTAMP;
return $this->update($where, $updateData);
} }
//检查是否可以添加退货物流信息 //检查是否可以添加退货物流信息
public function checkIsAddReturnShipping($refundReturn){ public function checkIsAddReturnShipping($refundReturn)
$isReturn=TRUE; {
if($refundReturn['sellerState']!=ApiConst::refundSellerAgree){ $isReturn = TRUE;
$this->errorCode=CodeConfigModel::notReturnAgree; if ($refundReturn['sellerState'] != ApiConst::refundSellerAgree) {
$isReturn=FALSE; $this->errorCode = CodeConfigModel::notReturnAgree;
$isReturn = FALSE;
} }
if($refundReturn['refundType']!=ApiConst::refundTypeGoods){ if ($refundReturn['refundType'] != ApiConst::refundTypeGoods) {
$this->errorCode=CodeConfigModel::isNotReturn; $this->errorCode = CodeConfigModel::isNotReturn;
$isReturn=FALSE; $isReturn = FALSE;
} }
if($refundReturn['refundShippingType']!=ApiConst::express){ if ($refundReturn['refundShippingType'] != ApiConst::express) {
$this->errorCode=CodeConfigModel::isNotExpressType; $this->errorCode = CodeConfigModel::isNotExpressType;
$isReturn=FALSE; $isReturn = FALSE;
} }
if($refundReturn['expressId']>ApiConst::zero){ if ($refundReturn['expressId'] > ApiConst::zero) {
$this->errorCode=CodeConfigModel::isNotExpressType; $this->errorCode = CodeConfigModel::isNotExpressType;
$isReturn=FALSE; $isReturn = FALSE;
} }
return $isReturn; return $isReturn;
} }
/** /**
* 申请平台介入 * 申请平台介入
* @param $data * @param $data
* @param $where * @param $where
* @return mixed * @return mixed
*/ */
public function updateStatusByBuyerIdAndRefundId($buyerId,$refundId,$applyMessage) public function updateStatusByBuyerIdAndRefundId($buyerId, $refundId, $applyMessage)
{ {
$where['refund_id'] = $refundId; $where['refund_id'] = $refundId;
$where['buyer_id'] = $buyerId; $where['buyer_id'] = $buyerId;
$data['is_platform_in']=ApiConst::platIn; $data['is_platform_in'] = ApiConst::platIn;
$data['refund_state']=ApiConst::platProccess; $data['refund_state'] = ApiConst::platProccess;
$data['platform_in_reason']=$applyMessage; $data['platform_in_reason'] = $applyMessage;
return $this->update($where, $data); return $this->update($where, $data);
} }
/** /**
* 获取单条数据 * 获取单条数据
* @param $where * @param $where
* @return array * @return array
*/ */
public function find($where,$field='*') public function find($where, $field = '*')
{ {
$this->setDb($this->dbName); $this->setDb($this->dbName);
$data = $this->db->from($this->_tableName)->select($field)->where($where)->fetchOne(); $data = $this->db->from($this->_tableName)->select($field)->where($where)->fetchOne();
return $data; return $data;
} }
public function findByRefundId($refundId,$field='*') public function findByRefundId($refundId, $field = '*')
{ {
$where['refund_id'] = $refundId; $where['refund_id'] = $refundId;
return $this->find($where,$field); return $this->find($where, $field);
} }
public function findByMemberIdAndRefundId($memberId,$refundId,$field='*'){ public function findByMemberIdAndRefundId($memberId, $refundId, $field = '*')
$where['buyer_id']=$memberId; {
$where['refund_id']=$refundId; $where['buyer_id'] = $memberId;
return $this->find($where,$field); $where['refund_id'] = $refundId;
return $this->find($where, $field);
} }
public function getAllByOrderIds($orderIds,$field='*'){ public function getAllByOrderIds($orderIds, $field = '*')
if(is_array($orderIds)){ {
$where=Common::format(" order_id in {0}",implode(',',$orderIds)); if (is_array($orderIds)) {
}else{ $where = Common::format(" order_id in {0}", implode(',', $orderIds));
$where['order_id']=$orderIds; } else {
$where['order_id'] = $orderIds;
} }
return $this->getAll($where,$field); return $this->getAll($where, $field);
} }
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['refundType'] == ApiConst::refundTypeGoods) {
if($returnRefund['isSucRefund']==ApiConst::refundSuccess){ if ($returnRefund['isSucRefund'] == ApiConst::refundSuccess) {
return OrderConst::alreadyReufndMoney; return OrderConst::alreadyReufndMoney;
} }
if($returnRefund['goodsState']==ApiConst::goodsStateUnRecieve){ if ($returnRefund['goodsState'] == ApiConst::goodsStateUnRecieve) {
return OrderConst::goodsStateUnRecieve; return OrderConst::goodsStateUnRecieve;
} }
if($returnRefund['goodsState']==ApiConst::goodsStateRecieved){ if ($returnRefund['goodsState'] == ApiConst::goodsStateRecieved) {
return OrderConst::goodsStateRecieved; return OrderConst::goodsStateRecieved;
} }
if($returnRefund['returnType']==ApiConst::returnTypeNotReturn){ if ($returnRefund['returnType'] == ApiConst::returnTypeNotReturn) {
return OrderConst::sellerAgreeReturn; return OrderConst::sellerAgreeReturn;
} }
if($returnRefund['returnType']==ApiConst::returnTypeMustReturn){ if ($returnRefund['returnType'] == ApiConst::returnTypeMustReturn) {
return OrderConst::waitSellerRecieve; return OrderConst::waitSellerRecieve;
} }
} }
} }
if($returnRefund['sellerState']==ApiConst::refundSellerRefuse){ if ($returnRefund['sellerState'] == ApiConst::refundSellerRefuse) {
if($returnRefund['isSucRefund']==ApiConst::refundSuccess){ if ($returnRefund['isSucRefund'] == ApiConst::refundSuccess) {
return OrderConst::alreadyReufndMoney; return OrderConst::alreadyReufndMoney;
} }
if($returnRefund['platformState']==ApiConst::platAgree){ if ($returnRefund['platformState'] == ApiConst::platAgree) {
return OrderConst::platFormAgree; return OrderConst::platFormAgree;
} }
if($returnRefund['platformState']==ApiConst::platRefuse){ if ($returnRefund['platformState'] == ApiConst::platRefuse) {
return OrderConst::platFormRefuse; return OrderConst::platFormRefuse;
} }
if($returnRefund['isPlatformIn']==ApiConst::platIn){ if ($returnRefund['isPlatformIn'] == ApiConst::platIn) {
return OrderConst::platFromProccess; return OrderConst::platFromProccess;
} }
if($returnRefund['refundType']==ApiConst::refundTypeMoney){ if ($returnRefund['refundType'] == ApiConst::refundTypeMoney) {
return OrderConst::sellerRefuse; return OrderConst::sellerRefuse;
} }
if($returnRefund['refundType']==ApiConst::refundTypeGoods){ if ($returnRefund['refundType'] == ApiConst::refundTypeGoods) {
return OrderConst::sellerRefuseGoods; return OrderConst::sellerRefuseGoods;
} }
} }
// }else{
// return OrderConst::refoundSuccess;
// }
return ''; return '';
} }
public function getRefundTextStatus($refundReturn,$isSeller=false){ public function getSellerStateName($sellerState)
$refundText=''; {
switch($refundReturn['sellerState']){ $sellerStateName = OrderConst::sellerStateVerify;
case ApiConst::refundSellerVerify:$refundText=OrderConst::waitVerify;break; if ($sellerState == ApiConst::refundSellerAgree) {
default: $refundText=$this->getStatusExtent($refundReturn,$isSeller);break; $sellerStateName = OrderConst::sellerStateAgree;
}
if($sellerState==ApiConst::refundSellerRefuse){
$sellerStateName = OrderConst::sellerStateRefuse;
}
return $sellerStateName;
}
public function getPlatformStateName($platState)
{
$platStateName = OrderConst::platformStateVerify;
if ($platState == ApiConst::refundPlatformAgree) {
$platStateName = OrderConst::platformStateAgree;
}
if($platState==ApiConst::refundPlatformRefuse){
$platStateName = OrderConst::platformStateRefuse;
}
return $platStateName;
}
public function getRefundTextStatus($refundReturn, $isSeller = false)
{
$refundText = '';
switch ($refundReturn['sellerState']) {
case ApiConst::refundSellerVerify:
$refundText = OrderConst::waitVerify;
break;
default:
$refundText = $this->getStatusExtent($refundReturn, $isSeller);
break;
} }
return $refundText; return $refundText;
} }
public function getStatusText($orderId){
$where['order_id']=$orderId; public function getStatusText($orderId)
$refundReturn= $this->db->from($this->_tableName)->select($this->refundReturnField)->where($where)->fetchOne(); {
$where['order_id'] = $orderId;
$refundReturn = $this->db->from($this->_tableName)->select($this->refundReturnField)->where($where)->fetchOne();
return $this->getRefundTextStatus($refundReturn); return $this->getRefundTextStatus($refundReturn);
} }
/** /**
* 根据退货退款订单详情获取是否可申请平台介入 * 根据退货退款订单详情获取是否可申请平台介入
* *
* @param * @param
* @return array * @return array
*/ */
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;
} }
} }
/** /**
* 根据订单状态判断是否可以退款退货 * 根据订单状态判断是否可以退款退货
* *
* @param * @param
* @return array * @return array
*/ */
public function isReturn($order) { public function isReturn($order)
{
$refund = FALSE;//默认不允许退款退货 $refund = FALSE;//默认不允许退款退货
$orderState = $order['orderState'];//订单状态 $orderState = $order['orderState'];//订单状态
ApiConst::orderStateWaitRecieve;//30:已发货 ApiConst::orderStateWaitRecieve;//30:已发货
...@@ -263,26 +313,26 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -263,26 +313,26 @@ class RefundReturnModel extends \DAO\AbstractModel {
$payment_code = $order['paymentCode'];//支付方式 $payment_code = $order['paymentCode'];//支付方式
if ($payment_code != 'offline') {//货到付款订单在没确认收货前不能退款退货 if ($payment_code != 'offline') {//货到付款订单在没确认收货前不能退款退货
$refund = TRUE; $refund = TRUE;
}else{ } else {
ErrorModel::throwException(CodeConfigModel::returnErrorAfterPay); ErrorModel::throwException(CodeConfigModel::returnErrorAfterPay);
} }
break; break;
//已收货 //已收货
case ApiConst::orderStateComplete: case ApiConst::orderStateComplete:
if($order['shippingType']==ApiConst::express){ if ($order['shippingType'] == ApiConst::express) {
$order_refund=ApiConst::canRefundDay; $order_refund = ApiConst::canRefundDay;
}else{ } else {
$order_refund=ApiConst::byselfRfundDay; $order_refund = ApiConst::byselfRfundDay;
} }
if($order['delayTime']>ApiConst::zero){ if ($order['delayTime'] > ApiConst::zero) {
$delay_time = $order['delayTime']+60*60*24*$order_refund; $delay_time = $order['delayTime'] + 60 * 60 * 24 * $order_refund;
}else{ } else {
$delay_time = $order['gmtUpdate']+60*60*24*$order_refund; $delay_time = $order['gmtUpdate'] + 60 * 60 * 24 * $order_refund;
} }
if ($delay_time > TIMESTAMP) { if ($delay_time > TIMESTAMP) {
$refund = TRUE; $refund = TRUE;
}else{ } else {
ErrorModel::throwException(CodeConfigModel::returnBeyondTimeError); ErrorModel::throwException(CodeConfigModel::returnBeyondTimeError);
} }
...@@ -294,28 +344,32 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -294,28 +344,32 @@ class RefundReturnModel extends \DAO\AbstractModel {
return $refund; return $refund;
} }
/** /**
* 退款退货申请编号 * 退款退货申请编号
* *
* @param * @param
* @return array * @return array
*/ */
public function getRefundsn($store_id) { public function getRefundsn($store_id)
$result = mt_rand(100,999).substr(100+$store_id,-3).date('ymdHis'); {
$result = mt_rand(100, 999) . substr(100 + $store_id, -3) . date('ymdHis');
return $result; return $result;
} }
/** /**
* 退款退货申请编号 * 退款退货申请编号
* *
* @param * @param
* @return array * @return array
*/ */
public function getRefundPics($pics){ public function getRefundPics($pics)
$picsRes=array(); {
if($pics){ $picsRes = array();
foreach($pics as $pic){ if ($pics) {
$readFile=\Our\Common::getStaticFile($pic,ImageConst::refund); foreach ($pics as $pic) {
array_push($picsRes,$readFile); $readFile = \Our\Common::getStaticFile($pic, ImageConst::refund);
array_push($picsRes, $readFile);
} }
} }
return $picsRes; return $picsRes;
...@@ -326,7 +380,8 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -326,7 +380,8 @@ class RefundReturnModel extends \DAO\AbstractModel {
* 店铺退款 * 店铺退款
* @param $orderInfo 订单信息 * @param $orderInfo 订单信息
*/ */
public function storeRefund($orderInfo){ public function storeRefund($orderInfo)
{
$param['refundOrderNo'] = !empty($orderInfo['refund_order_no']) ? $orderInfo['refund_order_no'] : $this->getRefundsn($orderInfo['store_id']); $param['refundOrderNo'] = !empty($orderInfo['refund_order_no']) ? $orderInfo['refund_order_no'] : $this->getRefundsn($orderInfo['store_id']);
//这个有可能多次退款的时候要变 //这个有可能多次退款的时候要变
$param['outTradeNo'] = $orderInfo['pay_sn']; $param['outTradeNo'] = $orderInfo['pay_sn'];
...@@ -334,9 +389,9 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -334,9 +389,9 @@ class RefundReturnModel extends \DAO\AbstractModel {
$param['refundFee'] = $orderInfo['refund_amount'];//退款金额 $param['refundFee'] = $orderInfo['refund_amount'];//退款金额
$param['storeId'] = $orderInfo['store_id']; $param['storeId'] = $orderInfo['store_id'];
$param['buyerId'] = $orderInfo['buyer_id']; $param['buyerId'] = $orderInfo['buyer_id'];
if(CURRENTVERSION==\Our\NameConst::versionOne&&in_array(intval($orderInfo['payment_type']),array(ApiConst::wxAppPayType,ApiConst::wxProgram))){ if (CURRENTVERSION == \Our\NameConst::versionOne && in_array(intval($orderInfo['payment_type']), array(ApiConst::wxAppPayType, ApiConst::wxProgram))) {
$mchIdArray = \DAO\StoreModel::getInstance()->getStoreWxMchId($param['storeId']); $mchIdArray = \DAO\StoreModel::getInstance()->getStoreWxMchId($param['storeId']);
if($mchIdArray['errorCode']>0){ if ($mchIdArray['errorCode'] > 0) {
$this->errorMessage = '微信支付商户错误或者签名错误'; $this->errorMessage = '微信支付商户错误或者签名错误';
return false; return false;
} }
...@@ -346,9 +401,9 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -346,9 +401,9 @@ class RefundReturnModel extends \DAO\AbstractModel {
$wxpay = \Payment\WxPay::getInstance(); $wxpay = \Payment\WxPay::getInstance();
unset($param['subMchId']); unset($param['subMchId']);
$refund_return = $wxpay->refund($param); $refund_return = $wxpay->refund($param);
$this->errorMessage= "微信返回:".json_encode($refund_return); $this->errorMessage = "微信返回:" . json_encode($refund_return);
if (!($refund_return['return_code'] == 'SUCCESS' && $refund_return['result_code'] == 'SUCCESS')) { if (!($refund_return['return_code'] == 'SUCCESS' && $refund_return['result_code'] == 'SUCCESS')) {
$this->errorMessage=date('Y-m-d').'微信退款操作执行失败!'.$orderInfo['order_id']."\r\n"; $this->errorMessage = date('Y-m-d') . '微信退款操作执行失败!' . $orderInfo['order_id'] . "\r\n";
return false; return false;
} }
} else if (intval($orderInfo['payment_type']) == ApiConst::alipay) { } else if (intval($orderInfo['payment_type']) == ApiConst::alipay) {
...@@ -362,12 +417,12 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -362,12 +417,12 @@ class RefundReturnModel extends \DAO\AbstractModel {
$this->errorMessage = date('Y-m-d') . '支付宝退款操作执行失败:' . $orderInfo['order_id'] . "\r\n"; $this->errorMessage = date('Y-m-d') . '支付宝退款操作执行失败:' . $orderInfo['order_id'] . "\r\n";
return false; return false;
} }
}else if(intval($orderInfo['payment_type']) == ApiConst::wxProgram){ } else if (intval($orderInfo['payment_type']) == ApiConst::wxProgram) {
$wxpay = \Payment\WxPay::getInstance(); $wxpay = \Payment\WxPay::getInstance();
$refund_return = $wxpay->refund($param); $refund_return = $wxpay->refund($param);
$this->errorMessage= "微信小程序返回:".json_encode($refund_return); $this->errorMessage = "微信小程序返回:" . json_encode($refund_return);
if (!($refund_return['return_code'] == 'SUCCESS' && $refund_return['result_code'] == 'SUCCESS')) { if (!($refund_return['return_code'] == 'SUCCESS' && $refund_return['result_code'] == 'SUCCESS')) {
$this->errorMessage=date('Y-m-d').'微信退款操作执行失败!'.$orderInfo['order_id']."\r\n"; $this->errorMessage = date('Y-m-d') . '微信退款操作执行失败!' . $orderInfo['order_id'] . "\r\n";
return false; return false;
} }
} }
...@@ -379,18 +434,19 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -379,18 +434,19 @@ class RefundReturnModel extends \DAO\AbstractModel {
* @param $orderInfo * @param $orderInfo
* @return bool * @return bool
*/ */
public function refundMoney($orderInfo){ public function refundMoney($orderInfo)
{
$param['refundOrderNo'] = !empty($orderInfo['refundOrderNo'])?$orderInfo['refundOrderNo']:$this->getRefundsn($orderInfo['storeId']); $param['refundOrderNo'] = !empty($orderInfo['refundOrderNo']) ? $orderInfo['refundOrderNo'] : $this->getRefundsn($orderInfo['storeId']);
//这个有可能多次退款的时候要变 //这个有可能多次退款的时候要变
$param['outTradeNo'] = $orderInfo['paySn']; $param['outTradeNo'] = $orderInfo['paySn'];
$param['totalFee'] = $orderInfo['orderAmount']; $param['totalFee'] = $orderInfo['orderAmount'];
$param['refundFee'] = $orderInfo['orderAmount'];//全额退款 $param['refundFee'] = $orderInfo['orderAmount'];//全额退款
$param['storeId']=$orderInfo['storeId']; $param['storeId'] = $orderInfo['storeId'];
$param['buyerId']=$orderInfo['buyerId']; $param['buyerId'] = $orderInfo['buyerId'];
if(CURRENTVERSION==\Our\NameConst::versionOne&&in_array(intval($orderInfo['paymentType']),array(\Our\ApiConst::wxAppPayType,\Our\ApiConst::wxProgram))){ if (CURRENTVERSION == \Our\NameConst::versionOne && in_array(intval($orderInfo['paymentType']), array(\Our\ApiConst::wxAppPayType, \Our\ApiConst::wxProgram))) {
$mchIdArray = \DAO\StoreModel::getInstance()->getStoreWxMchId($param['storeId']); $mchIdArray = \DAO\StoreModel::getInstance()->getStoreWxMchId($param['storeId']);
if($mchIdArray['errorCode']>0){ if ($mchIdArray['errorCode'] > 0) {
$this->errorMessage = '微信支付商户错误或者签名错误'; $this->errorMessage = '微信支付商户错误或者签名错误';
return false; return false;
} }
...@@ -400,9 +456,9 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -400,9 +456,9 @@ class RefundReturnModel extends \DAO\AbstractModel {
$wxpay = \Payment\WxPay::getInstance(); $wxpay = \Payment\WxPay::getInstance();
unset($param['subMchId']); unset($param['subMchId']);
$refund_return = $wxpay->refund($param); $refund_return = $wxpay->refund($param);
$this->errorMessage= "微信返回:".json_encode($refund_return); $this->errorMessage = "微信返回:" . json_encode($refund_return);
if (!($refund_return['return_code'] == 'SUCCESS' && $refund_return['result_code'] == 'SUCCESS')) { if (!($refund_return['return_code'] == 'SUCCESS' && $refund_return['result_code'] == 'SUCCESS')) {
$this->errorMessage=date('Y-m-d').'微信退款操作执行失败!'.$orderInfo['orderId']."\r\n"; $this->errorMessage = date('Y-m-d') . '微信退款操作执行失败!' . $orderInfo['orderId'] . "\r\n";
return false; return false;
} }
} else if (intval($orderInfo['paymentType']) == ApiConst::alipay) { } else if (intval($orderInfo['paymentType']) == ApiConst::alipay) {
...@@ -416,12 +472,12 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -416,12 +472,12 @@ class RefundReturnModel extends \DAO\AbstractModel {
$this->errorMessage = date('Y-m-d') . '支付宝退款操作执行失败:' . $orderInfo['orderId'] . "\r\n"; $this->errorMessage = date('Y-m-d') . '支付宝退款操作执行失败:' . $orderInfo['orderId'] . "\r\n";
return false; return false;
} }
}else if(intval($orderInfo['paymentType']) == ApiConst::wxProgram){ } else if (intval($orderInfo['paymentType']) == ApiConst::wxProgram) {
$wxpay = \Payment\WxLitePay::getInstance(); $wxpay = \Payment\WxLitePay::getInstance();
$refund_return = $wxpay->refund($param); $refund_return = $wxpay->refund($param);
if (!($refund_return['return_code'] == 'SUCCESS' && $refund_return['result_code'] == 'SUCCESS')) { if (!($refund_return['return_code'] == 'SUCCESS' && $refund_return['result_code'] == 'SUCCESS')) {
$this->errorMessage=date('Y-m-d').'微信退款操作执行失败!'.$orderInfo['orderId']."\r\n"; $this->errorMessage = date('Y-m-d') . '微信退款操作执行失败!' . $orderInfo['orderId'] . "\r\n";
return false; return false;
} }
} }
...@@ -435,7 +491,8 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -435,7 +491,8 @@ class RefundReturnModel extends \DAO\AbstractModel {
* @param $data * @param $data
* @return bool * @return bool
*/ */
public function editRefundReturn($condition, $data) { public function editRefundReturn($condition, $data)
{
if (empty($condition)) { if (empty($condition)) {
return false; return false;
} }
...@@ -447,13 +504,15 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -447,13 +504,15 @@ class RefundReturnModel extends \DAO\AbstractModel {
return false; return false;
} }
} }
/** /**
* 增加退款退货 * 增加退款退货
* *
* @param * @param
* @return int * @return int
*/ */
public function addRefundReturn($refund_array, $order = array(), $goods = array()) { public function addRefundReturn($refund_array, $order = array(), $goods = array())
{
$this->setDb($this->dbName); $this->setDb($this->dbName);
if (!empty($order) && is_array($order)) { if (!empty($order) && is_array($order)) {
$refund_array['order_id'] = $order['orderId']; $refund_array['order_id'] = $order['orderId'];
...@@ -471,10 +530,10 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -471,10 +530,10 @@ class RefundReturnModel extends \DAO\AbstractModel {
$refund_array['commis_rate'] = $goods['commisRate']; $refund_array['commis_rate'] = $goods['commisRate'];
$refund_array['goods_image'] = $goods['goodsImage']; $refund_array['goods_image'] = $goods['goodsImage'];
} }
if($refund_array['goods_id']==ApiConst::zero){ if ($refund_array['goods_id'] == ApiConst::zero) {
ErrorModel::throwException(CodeConfigModel::commonError); ErrorModel::throwException(CodeConfigModel::commonError);
} }
if(!isset($refund_array['refund_sn'])|| !$refund_array['refund_sn']){ if (!isset($refund_array['refund_sn']) || !$refund_array['refund_sn']) {
$refund_array['refund_sn'] = $this->getRefundsn($order['storeId']); $refund_array['refund_sn'] = $this->getRefundsn($order['storeId']);
} }
$refund_id = $this->db->insert($this->_tableName)->rows($refund_array)->execute(); $refund_id = $this->db->insert($this->_tableName)->rows($refund_array)->execute();
...@@ -496,10 +555,11 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -496,10 +555,11 @@ class RefundReturnModel extends \DAO\AbstractModel {
return $refund_id; return $refund_id;
} }
//删除订单详情缓存 //删除订单详情缓存
public function deleteFindByOrderIdCache($refundId) public function deleteFindByOrderIdCache($refundId)
{ {
return \Our\RedisHelper::delCachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$this, 'findByRefundId'), array(),array($refundId)); return \Our\RedisHelper::delCachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$this, 'findByRefundId'), array(), array($refundId));
} }
//删除订单列表缓存 //删除订单列表缓存
...@@ -509,12 +569,12 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -509,12 +569,12 @@ class RefundReturnModel extends \DAO\AbstractModel {
} }
//删除订单缓存 //删除订单缓存
public function deleteRefundCache($memberId, $refundId=false) public function deleteRefundCache($memberId, $refundId = false)
{ {
if(!empty($memberId)){ if (!empty($memberId)) {
$this->deleteGetListByMemberId($memberId); $this->deleteGetListByMemberId($memberId);
} }
if(!empty($refundId)){ if (!empty($refundId)) {
$this->deleteFindByOrderIdCache($refundId); $this->deleteFindByOrderIdCache($refundId);
} }
} }
...@@ -538,27 +598,30 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -538,27 +598,30 @@ class RefundReturnModel extends \DAO\AbstractModel {
* *
* @var \DAO\getList * @var \DAO\getList
*/ */
public function getList($where, $field, $pageIndex=ApiConst::zero, $pageSize=ApiConst::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);
if(is_array($where)){ if (is_array($where)) {
$where = $this->db->getSqlWhereByArray($where); $where = $this->db->getSqlWhereByArray($where);
} }
$refunds = $this->lists($where, $order, $field, $pageIndex, $pageSize); $refunds = $this->lists($where, $order, $field, $pageIndex, $pageSize);
return $refunds ? $refunds : array(); return $refunds ? $refunds : array();
} }
//根据传过来的退款类型获取退款类型 //根据传过来的退款类型获取退款类型
public function getRefundTypeByType($refundType){ public function getRefundTypeByType($refundType)
$returnType=ApiConst::refundTypeGoods; {
if ($refundType!= ApiConst::refundTypeGoods) { $returnType = ApiConst::refundTypeGoods;
if ($refundType != ApiConst::refundTypeGoods) {
$returnType = ApiConst::refundTypeMoney; $returnType = ApiConst::refundTypeMoney;
} }
return $returnType; return $returnType;
} }
public function getRefundOperateState($operate,$refund_info,$order_info = null) { public function getRefundOperateState($operate, $refund_info, $order_info = null)
{
if (!is_array($refund_info) || empty($refund_info)) return false; if (!is_array($refund_info) || empty($refund_info)) return false;
switch ($operate){ switch ($operate) {
//选择配送员 //选择配送员
case 'select_deliveryman': 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)); $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));
...@@ -569,15 +632,15 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -569,15 +632,15 @@ class RefundReturnModel extends \DAO\AbstractModel {
//修改退款金额/处理 //修改退款金额/处理
break; break;
case 'change_refund': case 'change_refund':
$state = ($refund_info['seller_state']==1); $state = ($refund_info['seller_state'] == 1);
break; break;
//退货 //退货
case 'return_goods': case 'return_goods':
$state = ($refund_info['seller_state']==1 && $refund_info['refund_type']==2); $state = ($refund_info['seller_state'] == 1 && $refund_info['refund_type'] == 2);
break; break;
//退款 //退款
case 'return_money': case 'return_money':
$state = ($refund_info['seller_state']==1 && $refund_info['refund_type']==1); $state = ($refund_info['seller_state'] == 1 && $refund_info['refund_type'] == 1);
break; break;
//修改收货时间 //修改收货时间
case 'change_time': case 'change_time':
...@@ -589,23 +652,27 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -589,23 +652,27 @@ class RefundReturnModel extends \DAO\AbstractModel {
break; break;
//标记为已退款 //标记为已退款
case 'mark': 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)) ; $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; break;
} }
return $state; 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);
$res=$this->lists($where,array('gmt_update'=>'asc'),$this->sumField,$pageIndex,$pageSize); $res = $this->lists($where, array('gmt_update' => 'asc'), $this->sumField, $pageIndex, $pageSize);
return $res['list']?$res:false; return $res['list'] ? $res : false;
} }
/** /**
*获得退货退款列表 *获得退货退款列表
* *
* @var \DAO\getList * @var \DAO\getList
*/ */
public function updateRefundShipping(){ public function updateRefundShipping()
{
} }
...@@ -621,7 +688,7 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -621,7 +688,7 @@ class RefundReturnModel extends \DAO\AbstractModel {
* 单例模式获取类实例 * 单例模式获取类实例
* *
*/ */
public static function getInstance($dbName=DbNameConst::salveDBConnectName) public static function getInstance($dbName = DbNameConst::salveDBConnectName)
{ {
if (!(self::$_instance instanceof self)) { if (!(self::$_instance instanceof self)) {
self::$_instance = new self($dbName); self::$_instance = new self($dbName);
...@@ -631,40 +698,45 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -631,40 +698,45 @@ class RefundReturnModel extends \DAO\AbstractModel {
} }
/** /**
* @param $storeId * @param $storeId
* @param $orderState * @param $orderState
* @return mixed 待处理 * @return mixed 待处理
*/ */
public function getCountByRefundState($storeId){ public function getCountByRefundState($storeId)
$where=$this->getProccessOrderBySeller($storeId); {
$count=$this->getCountByWhere($where); $where = $this->getProccessOrderBySeller($storeId);
$count = $this->getCountByWhere($where);
return $count; return $count;
} }
//获得售后待处理订单条件 //获得售后待处理订单条件
public function getProccessOrderBySeller($id){ public function getProccessOrderBySeller($id)
$where['store_id']=$id; {
$where['seller_state']=ApiConst::refundSellerVerify; $where['store_id'] = $id;
$where['seller_state'] = ApiConst::refundSellerVerify;
return $where; return $where;
} }
//获得售后待收货订单条件 //获得售后待收货订单条件
public function getReturnWaitReceive($id){ public function getReturnWaitReceive($id)
$where['store_id']=$id; {
$where['refund_type']=ApiConst::refundTypeGoods; $where['store_id'] = $id;
$where['return_type']=ApiConst::returnTypeMustReturn; $where['refund_type'] = ApiConst::refundTypeGoods;
$where['goods_state']=ApiConst::goodsStateWaitRecieve; $where['return_type'] = ApiConst::returnTypeMustReturn;
$where['goods_state'] = ApiConst::goodsStateWaitRecieve;
return $where; return $where;
} }
/** /**
* @param $storeId * @param $storeId
* @param $orderState * @param $orderState
* @return mixed 待收货 * @return mixed 待收货
*/ */
public function getCountByRefundType($storeId){ public function getCountByRefundType($storeId)
$where=$this->getReturnWaitReceive($storeId); {
$count=$this->getCountByWhere($where); $where = $this->getReturnWaitReceive($storeId);
$count = $this->getCountByWhere($where);
return $count; return $count;
} }
......
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