Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
my-yaf-project
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenchuanwen
my-yaf-project
Commits
5472bac4
Commit
5472bac4
authored
Nov 27, 2018
by
christ
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refund
parent
38e42329
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
417 additions
and
206 deletions
+417
-206
DescribeConst.php
application/library/Our/DescribeConst.php
+3
-0
OrderService.php
application/models/Business/Order/OrderService.php
+43
-43
RefundService.php
application/models/Business/Order/RefundService.php
+243
-101
RefundReturn.php
application/models/DAO/Order/RefundReturn.php
+100
-46
CodeConfig.php
application/models/Error/CodeConfig.php
+8
-1
Shopkeeper.php
application/modules/Client/controllers/Shopkeeper.php
+20
-15
No files found.
application/library/Our/DescribeConst.php
View file @
5472bac4
...
...
@@ -152,6 +152,9 @@ class DescribeConst
const
refund
=
'退款'
;
const
refundRetund
=
'退货'
;
const
sellerRefuseReturn
=
'卖家拒绝退货'
;
const
sellerAgreeReturn
=
'卖家同意退货'
;
//用户订单送达消息
const
reacheRemindTitle
=
'你的订单卖家已经送达'
;
const
reacheRemindContent
=
'你有新的订单号为{0}的订单已经已经送达'
;
...
...
application/models/Business/Order/OrderService.php
View file @
5472bac4
...
...
@@ -74,7 +74,7 @@ class OrderServiceModel extends \Business\AbstractModel
$query2
[]
=
array
(
'match'
=>
array
(
'storeName'
=>
$keyword
));
$query2
[]
=
array
(
'match'
=>
array
(
'goodsName'
=>
$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
;
$allQuery
[
'bool'
]
=
$res1
;
// echo json_encode($allQuery);exit;
...
...
@@ -267,7 +267,7 @@ class OrderServiceModel extends \Business\AbstractModel
//商店相关信息
// $this->store=$storeDao->get($this->order['storeId']);
// $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
;
//配送员信息
$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
$returnData
[
'storeMemberId'
]
=
$this
->
store
[
'memberId'
];
$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'
]);
$returnData
[
'reciverInfo'
]
=
$this
->
address
;
$returnData
[
'reciverInfo'
][
'mobPhone'
]
=!
empty
(
$returnData
[
'reciverInfo'
][
'mobPhone'
])
?
$returnData
[
'reciverInfo'
][
'mobPhone'
]
:
''
;
...
...
@@ -418,7 +418,7 @@ class OrderServiceModel extends \Business\AbstractModel
'orderId'
=>
$order
[
'order_id'
]));
$push
->
addOneToClient
(
$pushData
);
$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
);
$storeDao
->
deleteStoreCache
(
$order
[
'storeId'
],
$order
[
'orderId'
]);
return
true
;
...
...
@@ -509,7 +509,7 @@ class OrderServiceModel extends \Business\AbstractModel
'orderId'
=>
$order
[
'orderId'
]));
$push
->
addOneToClient
(
$pushData
);
$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
();
$messageService
=
\Business\Message\MessageServiceModel
::
getInstance
(
\Our\DbNameConst
::
masterDBConnectName
);
$messageService
->
addMessageCenterToDb
();
...
...
@@ -570,7 +570,7 @@ class OrderServiceModel extends \Business\AbstractModel
{
$orderDao
=
\DAO\Order\OrderModel
::
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']);
try
{
$orderId
=
$orderInfo
[
'orderId'
];
...
...
@@ -644,7 +644,7 @@ class OrderServiceModel extends \Business\AbstractModel
}
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
$updateCommonData
[
'order_message'
]
=
DescribeConst
::
cancelOrderMessage
;
$res
=
$orderCommonDao
->
update
(
array
(
'order_id'
=>
$order
[
'orderId'
]),
$updateCommonData
);
if
(
!
$update
||
!
$res
){
echo
'订单:'
.
$order
[
'orderId'
]
.
'没取消成功!'
;
echo
'订单:'
.
$order
[
'orderId'
]
.
'没取消成功!'
;
}
//$orderGoodsUpdateData['refund_state_name']='退款成功';
$orderGoodsUpdateData
[
'is_refund'
]
=
1
;
...
...
@@ -721,37 +721,37 @@ class OrderServiceModel extends \Business\AbstractModel
$beginTime
=
$beginTime
?
$beginTime
:
ApiConst
::
zero
;
$endTime
=
TIMESTAMP
-
ApiConst
::
orderStateWaitConfirmBeyond
;
$storeDao
=
\DAO\StoreModel
::
getInstance
();
// $beginTime=0;
// $beginTime=0;
$orders
=
$orderDao
->
getMustCecelRecieveOrders
(
$beginTime
,
$endTime
,
$orderDao
->
getOrderDetailField
());
if
(
!
empty
(
$orders
))
{
foreach
(
$orders
as
$order
)
{
//更新订单信息
$updateData
=
array
(
'order_state'
=>
ApiConst
::
orderStateClose
,
'refund_amount'
=>
$order
[
'orderAmount'
]);
$update
=
$orderDao
->
update
(
array
(
'order_id'
=>
$order
[
'orderId'
]),
$updateData
);
if
(
$update
){
if
(
$order
[
'paymentTime'
]
>
ApiConst
::
zero
&&
in_array
(
$order
[
'paymentType'
],
ArrayConst
::
orderPayTypeOnlines
))
{
$this
->
changeOrderStateCancelUnconditional
(
$order
);
}
foreach
(
$orders
as
$order
)
{
//更新订单信息
$updateData
=
array
(
'order_state'
=>
ApiConst
::
orderStateClose
,
'refund_amount'
=>
$order
[
'orderAmount'
]);
$update
=
$orderDao
->
update
(
array
(
'order_id'
=>
$order
[
'orderId'
]),
$updateData
);
if
(
$update
){
if
(
$order
[
'paymentTime'
]
>
ApiConst
::
zero
&&
in_array
(
$order
[
'paymentType'
],
ArrayConst
::
orderPayTypeOnlines
))
{
$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'
);
//更新商品库存
...
...
@@ -867,8 +867,8 @@ class OrderServiceModel extends \Business\AbstractModel
}
$qmDeliveryLogList
=
$qmDeliveryLogDao
->
getListByDeliverymanIdAndTypeCache
(
$diliverymanIds
,
$type
,
$pageIndex
,
$pageSize
,
array
(
'get_time'
=>
'desc'
),
$memberId
);
$orderIds
=
array_column
(
$qmDeliveryLogList
[
'list'
],
'orderId'
);
// echo json_encode($orderIds);exit;
// $where['delete_state'] = ApiConst::undeleteOrder;
// echo json_encode($orderIds);exit;
// $where['delete_state'] = ApiConst::undeleteOrder;
$orderIds
=
implode
(
','
,
$orderIds
);
...
...
@@ -906,7 +906,7 @@ class OrderServiceModel extends \Business\AbstractModel
$delivery
[
'subAddress'
]
=
isset
(
$delivery
[
'reciverInfo'
][
'sub_address'
])
?
$delivery
[
'reciverInfo'
][
'sub_address'
]
:
''
;
$delivery
[
'distributionFee'
]
=
$value
[
'distributionFee'
];
unset
(
$delivery
[
'goodsAmount'
]);
// unset($delivery['orderState']);
// unset($delivery['orderState']);
unset
(
$delivery
[
'refundState'
]);
unset
(
$delivery
[
'goodsAmount'
]);
unset
(
$delivery
[
'reciverInfo'
]);
...
...
@@ -1029,11 +1029,11 @@ class OrderServiceModel extends \Business\AbstractModel
$updateResult
=
$qmDeliverymanLogDao
->
updateStatusById
(
$id
);
$orderDao
=
\DAO\Order\OrderModel
::
getInstance
();
$order
=
$orderDao
->
findByOrderId
(
$qmDeliveryManLog
[
'orderId'
],
$orderDao
->
getOrderDetailField
());
if
(
$updateResult
)
{
$push
=
Push
::
getInstance
();
$push
->
reacheRemind
(
$order
[
'buyerId'
],
$order
[
'orderId'
],
$order
[
'orderSn'
]);
$push
->
sendTcpMessage
();
}
if
(
$updateResult
)
{
$push
=
Push
::
getInstance
();
$push
->
reacheRemind
(
$order
[
'buyerId'
],
$order
[
'orderId'
],
$order
[
'orderSn'
]);
$push
->
sendTcpMessage
();
}
$orderDao
->
deleteOrderCache
(
$memberid
,
$qmDeliveryManLog
[
'orderId'
],
$order
[
'storeId'
],
true
,
true
,
true
,
$memberid
);
$qmDeliverymanLogDao
->
deleteOrderCache
(
$memberid
,
$id
);
return
$updateResult
;
...
...
application/models/Business/Order/RefundService.php
View file @
5472bac4
...
...
@@ -191,7 +191,133 @@ class RefundServiceModel extends \Business\AbstractModel
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
...
...
@@ -199,7 +325,7 @@ class RefundServiceModel extends \Business\AbstractModel
* @param $refundAmount 退款金额
* @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
);
$orderDao
=
\DAO\Order\OrderModel
::
getInstance
(
DbNameConst
::
masterDBConnectName
);
...
...
@@ -207,119 +333,135 @@ class RefundServiceModel extends \Business\AbstractModel
$whereRefund
[
'store_id'
]
=
$storeId
;
$whereRefund
[
'refund_id'
]
=
$refundId
;
$refund
=
$refundReturnDao
->
find
(
$whereRefund
);
if
(
!
$refund
)
{
ErrorModel
::
throwException
(
CodeConfigModel
::
notExistRefund
);
}
if
(
$refund
[
'seller_state'
]
!=
1
)
{
ErrorModel
::
throwException
(
CodeConfigModel
::
alreadyExsitRefundGoods
);
}
//获取订单
$order_id
=
$refund
[
'order_id'
];
$order_info
=
$orderDao
->
find
(
array
(
'order_id'
=>
$order_id
));
if
(
$refund
[
'refund_type'
]
==
ApiConst
::
refundTypeGoods
){
if
(
$this
->
returnGoods
(
$storeId
,
$refundId
,
$refund
[
'sellerState'
],
$text
,
$isGiveUp
)){
$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
;
}
else
{
$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
){
$refundReturnDao
->
db
->
doRollback
();
return
false
;
if
(
!
$refund
)
{
ErrorModel
::
throwException
(
CodeConfigModel
::
notExistRefund
);
}
if
(
$order_info
[
'refund_state'
]
==
2
)
{
$result
=
$orderDao
->
updateByOrderId
(
array
(
'refund_state'
=>
1
),
$refund
[
'order_id'
]);
if
(
$refund
[
'seller_state'
]
!=
1
)
{
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
){
$refundReturnDao
->
db
->
doRollback
();
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
(
!
$state
){
if
(
$refundAmount
>
$refund
[
'buyer_refund_amount'
]){
//showDialog('退款金额不可大于本订单支付金额','','error');
$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
;
}
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
);
//以下为同意退款流程
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
);
if
(
$state
){
//退款记录成功
//记录操作日志
$sellerLogDAO
=
\DAO\SellerLogModel
::
getInstance
();
$sellerLogDAO
->
record
(
'同意退款处理,退款编号:'
.
$refund
[
'refund_sn'
],
array
(
'seller_id'
=>
$sellerId
,
'seller_name'
=>
$sellerName
,
'store_id'
=>
$storeId
));
// add by ky start
//检测该店铺是否开启直接退款功能
$storeDAO
=
\DAO\StoreModel
::
getInstance
();
//店铺积分
$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'
=>
'卖家同意退款'
));
if
(
$is_direct_refund
==
1
){
//支持直接退款
//退款 检测该订单是否为线上支付
$updateData
=
array
(
'is_suc_refund'
=>
1
,
'gmt_update'
=>
TIMESTAMP
);
if
(
$refund_array
[
'refund_amount'
]
>
0
){
$payment_type
=
$order_info
[
'payment_type'
];
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'
])));
if
(
!
$state
)
{
//throw new Exception('更新订单信息失败');
$refundReturnDao
->
db
->
doRollback
();
return
false
;
}
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'
]);
}
else
{
$updateData
=
array
(
'is_suc_refund'
=>
1
,
'gmt_update'
=>
TIMESTAMP
);
$state
=
$refundReturnDao
->
editRefundReturn
(
$whereRefund
,
$refund_array
);
if
(
$state
){
//退款记录成功
//记录操作日志
$sellerLogDAO
=
\DAO\SellerLogModel
::
getInstance
();
$sellerLogDAO
->
record
(
'同意退款处理,退款编号:'
.
$refund
[
'refund_sn'
],
array
(
'seller_id'
=>
$sellerId
,
'seller_name'
=>
$sellerName
,
'store_id'
=>
$storeId
));
// add by ky start
//检测该店铺是否开启直接退款功能
$storeDAO
=
\DAO\StoreModel
::
getInstance
();
//店铺积分
$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'
=>
'卖家同意退款'
));
if
(
$is_direct_refund
==
1
){
//支持直接退款
//退款 检测该订单是否为线上支付
$updateData
=
array
(
'is_suc_refund'
=>
1
,
'gmt_update'
=>
TIMESTAMP
);
if
(
$refund_array
[
'refund_amount'
]
>
0
){
$payment_type
=
$order_info
[
'payment_type'
];
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'
])));
if
(
!
$state
)
{
//throw new Exception('更新订单信息失败');
$refundReturnDao
->
db
->
doRollback
();
return
false
;
}
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'
]);
}
else
{
$updateData
=
array
(
'is_suc_refund'
=>
1
,
'gmt_update'
=>
TIMESTAMP
);
}
}
}
}
$res
=
$refundReturnDao
->
update
(
array
(
'refund_id'
=>
$refund
[
'refund_id'
]),
$updateData
);
if
(
!
$res
){
$refundReturnDao
->
db
->
doRollback
();
$res
=
$refundReturnDao
->
update
(
array
(
'refund_id'
=>
$refund
[
'refund_id'
]),
$updateData
);
if
(
!
$res
){
$refundReturnDao
->
db
->
doRollback
();
// showDialog('退款成功,退款表写入失败,请联系工作人员!',$reload,'error');
return
false
;
}
$result
=
$orderGoodsDao
->
update
(
array
(
'rec_id'
=>
$refund
[
'order_goods_id'
]),
array
(
'is_refund'
=>
1
,
'gmt_update'
=>
TIMESTAMP
));
if
(
!
$result
){
$refundReturnDao
->
db
->
doRollback
();
return
false
;
}
$result
=
$orderGoodsDao
->
update
(
array
(
'rec_id'
=>
$refund
[
'order_goods_id'
]),
array
(
'is_refund'
=>
1
,
'gmt_update'
=>
TIMESTAMP
));
if
(
!
$result
){
$refundReturnDao
->
db
->
doRollback
();
// 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'
]);
$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
();
}
$refundReturnDao
->
db
->
doRollback
();
return
false
;
}
...
...
@@ -460,7 +602,7 @@ class RefundServiceModel extends \Business\AbstractModel
$value
[
'deliveryTimeEnd'
]
=
$value
[
'deliveryTime'
]
+
ApiConst
::
arriveTimeRadius
;
$value
[
'goodsImage'
]
=
ImageUtil
::
getGoodsImgUrl
(
$value
[
'goodsImage'
],
ApiConst
::
goodsSmallSize
);
$value
[
'goodsAttr'
]
=
$goodsDao
->
getFormatGoodsAttr
(
$value
[
'goodsSpec'
]);
$extent
=
$orderDao
->
getClienOrderCommon
(
$orders
[
$value
[
'orderId'
]]);
$extent
=
$orderDao
->
getClienOrderCommon
(
$orders
[
$value
[
'orderId'
]]);
$value
=
array_merge
(
$value
,
$extent
);
$goodGroup
=
unserialize
(
$value
[
'goodsGroup'
]);
$value
[
'goodsGroup'
]
=!
empty
(
$goodGroup
)
?
$goodGroup
:
[];
...
...
@@ -476,7 +618,7 @@ class RefundServiceModel extends \Business\AbstractModel
$value
[
'picInfo'
]
=
$refundReturnDao
->
getRefundPics
(
$value
[
'picInfo'
][
'buyer'
]);
}
unset
(
$value
[
'goodsSpec'
]);
// unset($value['picInfo']);
// unset($value['picInfo']);
}
$returnData
[
'refundReturns'
]
=
$refundMerge
;
$returnData
[
'totalCount'
]
=
$refundReturns
[
'totalCount'
];
...
...
@@ -677,7 +819,7 @@ class RefundServiceModel extends \Business\AbstractModel
}
$shippingTypes
=
array
();
array_push
(
$shippingTypes
,
ArrayConst
::
refundShippingType
[
$orderInfo
[
'shippingType'
]]);
// $shippingTypes = ArrayConst::refundShippingType[$orderInfo['shippingType']];
// $shippingTypes = ArrayConst::refundShippingType[$orderInfo['shippingType']];
//获得订单商品
$orderGoodsDao
=
\DAO\Order\OrderGoodsModel
::
getInstance
();
$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
$picArray
[
'buyer'
]
=
array
();
if
(
!
empty
(
$refund
[
'images'
]))
{
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
){
$fileName
=
ImageUtil
::
uploadBase64Image
(
$image
,
ImageConst
::
refund
,
ImageUtil
::
getFileName
(
$memberId
.
$key
));
$fileName
=
basename
(
$fileName
);
...
...
@@ -841,7 +983,7 @@ class RefundServiceModel extends \Business\AbstractModel
}
array_push
(
$picArray
[
'buyer'
],
$fileName
);
}
// $picArray['buyer'] = $refund['images'];
// $picArray['buyer'] = $refund['images'];
}
else
{
$picArray
[
'buyer'
]
=
array
();
}
...
...
@@ -971,7 +1113,7 @@ class RefundServiceModel extends \Business\AbstractModel
if
(
$info
[
'returnType'
]
==
ApiConst
::
returnTypeMustReturn
){
if
(
!
$info
[
'diliverymanId'
]){
$info
[
'diliveryman'
]
=
new
\stdClass
();
// $info['diliveryman']=ArrayConst::defaultDeliveryMan;
// $info['diliveryman']=ArrayConst::defaultDeliveryMan;
}
else
{
$diliveryMan
=
$diliveryManDao
->
findById
(
$info
[
'diliverymanId'
]);
if
(
!
empty
(
$diliveryMan
)){
...
...
@@ -1010,7 +1152,7 @@ class RefundServiceModel extends \Business\AbstractModel
$orderGoodsDao
=
\DAO\Order\OrderGoodsModel
::
getInstance
(
DbNameConst
::
masterDBConnectName
);
$where
[
'buyer_id'
]
=
$buyerId
;
$where
[
'refund_id'
]
=
$refundId
;
$res
=
$refundReturnDao
->
find
(
$where
,
$refundReturnDao
->
refundDetailField
);
$res
=
$refundReturnDao
->
find
(
$where
,
$refundReturnDao
->
refundDetailField
);
if
(
isset
(
$res
[
'isPlatformIn'
])
&&
!
empty
(
$res
[
'isPlatformIn'
])){
ErrorModel
::
throwException
(
CodeConfigModel
::
platFormAreadyIn
);
}
...
...
application/models/DAO/Order/RefundReturn.php
View file @
5472bac4
...
...
@@ -84,7 +84,7 @@ class RefundReturnModel extends \DAO\AbstractModel {
$this
->
setDb
(
\Our\DbNameConst
::
masterDBConnectName
);
return
$this
->
db
->
update
(
$this
->
_tableName
)
->
where
(
$where
)
->
rows
(
$data
)
->
execute
();
}
//更新退货物流信息
//更新退货物流信息
public
function
updateReturnShippingByRefundId
(
$refundId
,
$data
){
$where
[
$this
->
_primaryKey
]
=
$refundId
;
$updateData
[
'express_id'
]
=
$data
[
'expressId'
];
...
...
@@ -164,53 +164,53 @@ class RefundReturnModel extends \DAO\AbstractModel {
}
public
function
getStatusExtent
(
$returnRefund
,
$isSeller
=
false
){
// if($returnRefund['refundState']!=ApiConst::refundCompleted){
if
(
$returnRefund
[
'sellerState'
]
==
ApiConst
::
refundSellerAgree
){
if
(
$returnRefund
[
'isSucRefund'
]
==
ApiConst
::
refundSuccess
){
return
OrderConst
::
alreadyReufndMoney
;
}
if
(
$returnRefund
[
'refundType'
]
==
ApiConst
::
refundTypeMoney
){
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['refundState']!=ApiConst::refundCompleted){
if
(
$returnRefund
[
'sellerState'
]
==
ApiConst
::
refundSellerAgree
){
if
(
$returnRefund
[
'isSucRefund'
]
==
ApiConst
::
refundSuccess
){
return
OrderConst
::
alreadyReufndMoney
;
}
if
(
$returnRefund
[
'refundType'
]
==
ApiConst
::
refundTypeMoney
){
return
OrderConst
::
sellerAgree
;
}
if
(
$returnRefund
[
'
sellerState'
]
==
ApiConst
::
refundSellerRefuse
){
if
(
$returnRefund
[
'
refundType'
]
==
ApiConst
::
refundTypeGoods
){
if
(
$returnRefund
[
'isSucRefund'
]
==
ApiConst
::
refundSuccess
){
return
OrderConst
::
alreadyReufndMoney
;
}
if
(
$returnRefund
[
'
platformState'
]
==
ApiConst
::
platAgre
e
){
return
OrderConst
::
platFormAgre
e
;
if
(
$returnRefund
[
'
goodsState'
]
==
ApiConst
::
goodsStateUnReciev
e
){
return
OrderConst
::
goodsStateUnReciev
e
;
}
if
(
$returnRefund
[
'
platformState'
]
==
ApiConst
::
platRefuse
){
return
OrderConst
::
platFormRefuse
;
if
(
$returnRefund
[
'
goodsState'
]
==
ApiConst
::
goodsStateRecieved
){
return
OrderConst
::
goodsStateRecieved
;
}
if
(
$returnRefund
[
'
isPlatformIn'
]
==
ApiConst
::
platI
n
){
return
OrderConst
::
platFromProccess
;
if
(
$returnRefund
[
'
returnType'
]
==
ApiConst
::
returnTypeNotRetur
n
){
return
OrderConst
::
sellerAgreeReturn
;
}
if
(
$returnRefund
[
're
fundType'
]
==
ApiConst
::
refundTypeMoney
){
return
OrderConst
::
sellerRefus
e
;
if
(
$returnRefund
[
're
turnType'
]
==
ApiConst
::
returnTypeMustReturn
){
return
OrderConst
::
waitSellerReciev
e
;
}
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{
// return OrderConst::refoundSuccess;
// }
...
...
@@ -240,11 +240,11 @@ class RefundReturnModel extends \DAO\AbstractModel {
*/
public
function
isPlatformIn
(
$refundInfo
){
if
((
$refundInfo
[
'isPlatformIn'
]
==
ApiConst
::
platNotIn
&&
(
$refundInfo
[
'sellerState'
]
==
ApiConst
::
refundSellerRefuse
)
||
$refundInfo
[
'buyerRefundAmount'
]
>
$refundInfo
[
'refundAmount'
])){
return
TRUE
;
}
else
{
return
FALSE
;
}
if
((
$refundInfo
[
'isPlatformIn'
]
==
ApiConst
::
platNotIn
&&
(
$refundInfo
[
'sellerState'
]
==
ApiConst
::
refundSellerRefuse
)
||
$refundInfo
[
'buyerRefundAmount'
]
>
$refundInfo
[
'refundAmount'
])){
return
TRUE
;
}
else
{
return
FALSE
;
}
}
/**
* 根据订单状态判断是否可以退款退货
...
...
@@ -489,7 +489,7 @@ class RefundReturnModel extends \DAO\AbstractModel {
'type'
=>
$type
,
'refund_sn'
=>
$refund_array
[
'refund_sn'
]
);
// QueueClient::push('sendStoreMsg', $param);
// QueueClient::push('sendStoreMsg', $param);
return
$refund_id
;
}
...
...
@@ -515,12 +515,27 @@ class RefundReturnModel extends \DAO\AbstractModel {
$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
*/
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
);
$refunds
=
$this
->
lists
(
$where
,
$order
,
$field
,
$pageIndex
,
$pageSize
);
...
...
@@ -535,6 +550,44 @@ class RefundReturnModel extends \DAO\AbstractModel {
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
){
$this
->
setDb
(
$this
->
dbName
);
$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 {
public
function
getReturnWaitReceive
(
$id
){
$where
[
'store_id'
]
=
$id
;
$where
[
'refund_type'
]
=
ApiConst
::
refundTypeGoods
;
$where
[
'return_type'
]
=
ApiConst
::
returnTypeMustReturn
;
$where
[
'goods_state'
]
=
ApiConst
::
goodsStateWaitRecieve
;
return
$where
;
}
...
...
application/models/Error/CodeConfig.php
View file @
5472bac4
...
...
@@ -130,6 +130,7 @@ class CodeConfigModel
const
emptyScanStoreId
=
40010
;
const
emptyScanStoreInfo
=
40011
;
const
saveScanStoreInfoFailed
=
40012
;
const
storeNotOpen
=
40013
;
//购物车
const
wrongCartType
=
50001
;
...
...
@@ -314,7 +315,9 @@ class CodeConfigModel
const
orderWxPayError
=
30137
;
const
orderWxPaySignError
=
30138
;
const
wrongRefundState
=
300139
;
const
updateIsRefundFail
=
300140
;
const
updateRefundStateNameFail
=
300141
;
//店铺相关错误码
//商品分类
...
...
@@ -549,6 +552,7 @@ class CodeConfigModel
self
::
emptyScanStoreId
=>
'扫码关注店铺ID为空'
,
self
::
emptyScanStoreInfo
=>
'扫码关注店铺不存在'
,
self
::
saveScanStoreInfoFailed
=>
'扫码店铺保存失败'
,
self
::
storeNotOpen
=>
'店铺还未配置开启'
,
//购物车相关
self
::
wrongCartType
=>
'加入购物车类型不能为空'
,
...
...
@@ -809,6 +813,9 @@ class CodeConfigModel
self
::
selfGoodsForStoreOrder
=>
'店主不能购买自己的商品'
,
self
::
orderWxPayError
=>
'微信支付尚未开通'
,
self
::
orderWxPaySignError
=>
'微信支付签名错误'
,
self
::
wrongRefundState
=>
'订单状态有误'
,
self
::
updateIsRefundFail
=>
'更新is_refund失败'
,
self
::
updateRefundStateNameFail
=>
'更新order表refund_state_name失败'
,
//销售员
self
::
emptySaleGoodsId
=>
'商品id不能为空'
,
self
::
emptySaleGoods
=>
'销售商品不存在'
,
...
...
application/modules/Client/controllers/Shopkeeper.php
View file @
5472bac4
...
...
@@ -202,16 +202,16 @@ class ShopkeeperController extends \Our\Controller_AbstractClient {
* 查询配送员
*
*/
public
function
searchDeliveryAction
(){
$shopkeeperService
=
\Business\Store\ShopkeeperServiceModel
::
getInstance
();
$res
=
$shopkeeperService
->
getDiliveryMan
(
$this
->
req
[
'data'
][
'mobile'
]);
$res
=
$res
?
$res
:
new
\stdClass
();
$this
->
success
(
$res
,
\Our\DescribeConst
::
successMessage
);
}
/**
* 单一属性商品库存预警
* @author king
*/
public
function
searchDeliveryAction
(){
$shopkeeperService
=
\Business\Store\ShopkeeperServiceModel
::
getInstance
();
$res
=
$shopkeeperService
->
getDiliveryMan
(
$this
->
req
[
'data'
][
'mobile'
]);
$res
=
$res
?
$res
:
new
\stdClass
();
$this
->
success
(
$res
,
\Our\DescribeConst
::
successMessage
);
}
/**
* 单一属性商品库存预警
* @author king
*/
public
function
warningAction
(){
$goodsCommonService
=
\Business\Goods\GoodsCommonServiceModel
::
getInstance
();
$pageIndex
=
$this
->
getPageIndex
();
...
...
@@ -259,8 +259,13 @@ class ShopkeeperController extends \Our\Controller_AbstractClient {
$refundService
=
\Business\Order\RefundServiceModel
::
getInstance
();
$refundAmount
=
floatval
(
$this
->
req
[
'data'
][
'refundAmount'
]);
$text
=
trim
(
$this
->
req
[
'data'
][
'text'
]);
$res
=
$refundService
->
refund
(
$this
->
storeId
,
$this
->
sellerId
,
$this
->
sellerName
,
$refundId
,
$refundAmount
,
$text
);
$this
->
success
(
$res
);
$isGiveUp
=
$this
->
req
[
'data'
][
'isGiveUp'
]
?
$this
->
req
[
'data'
][
'isGiveUp'
]
:
\Our\ApiConst
::
zero
;
$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 {
}
/**
* 确认收货
* @throws Exception
*/
* 确认收货
* @throws Exception
*/
public
function
confirmReceiveAction
(){
$refundId
=
intval
(
$this
->
req
[
'data'
][
'refundId'
]);
if
(
!
$refundId
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment