|
@@ -7,6 +7,7 @@ use app\admin\validate\coupon\CouponValidate;
|
|
|
use app\admin\validate\device\DeviceValidate;
|
|
|
use app\admin\validate\order\OrderExpressValidate;
|
|
|
use app\admin\validate\order\OrderValidate;
|
|
|
+use app\common\payment\Tlpay;
|
|
|
use app\controller\Curd;
|
|
|
use app\model\Appointment;
|
|
|
use app\model\ClientConfig;
|
|
@@ -20,6 +21,7 @@ use app\model\MemberBenefit;
|
|
|
use app\model\MemberRole;
|
|
|
use app\model\Order;
|
|
|
use app\model\OrderExpress;
|
|
|
+use app\model\OrderReturn;
|
|
|
use app\model\OrderSheet;
|
|
|
use app\model\PayDetail;
|
|
|
use app\model\Premises;
|
|
@@ -27,11 +29,13 @@ use app\model\Supplier;
|
|
|
use app\model\SysDept;
|
|
|
use app\model\SysSerial;
|
|
|
use app\model\SysUser;
|
|
|
+use Payment\Common\PayException;
|
|
|
use support\Db;
|
|
|
use support\exception\BusinessException;
|
|
|
use support\Redis;
|
|
|
use support\Request;
|
|
|
use support\Response;
|
|
|
+use function Qiniu\Http\Middleware\compose;
|
|
|
|
|
|
class WholeController extends Curd
|
|
|
{
|
|
@@ -142,10 +146,10 @@ class WholeController extends Curd
|
|
|
$orderId = $request->get('order_id');
|
|
|
$orderSheet = OrderSheet::with([
|
|
|
'member' => function ($query) {
|
|
|
- $query->select('member_id', 'member_mobile','member_is_owner','join_member_role_id');
|
|
|
+ $query->select('member_id', 'member_mobile', 'member_is_owner', 'join_member_role_id');
|
|
|
},
|
|
|
'goods' => function ($query) {
|
|
|
- $query->select('goods_id', 'goods_name', 'goods_cover', 'goods_market_price', 'goods_sales_price', 'goods_classify','goods_if_express');
|
|
|
+ $query->select('goods_id', 'goods_name', 'goods_cover', 'goods_market_price', 'goods_sales_price', 'goods_classify', 'goods_if_express');
|
|
|
},
|
|
|
'memberInfo',
|
|
|
'cert',
|
|
@@ -251,8 +255,8 @@ class WholeController extends Curd
|
|
|
}
|
|
|
}
|
|
|
$item['member']['level'] = '普通用户';
|
|
|
- if (!empty($item['member']['join_member_role_id'])){
|
|
|
- $item['member']['level'] = MemberRole::where('member_role_id',$item['member']['join_member_role_id'])->value('member_role_name');
|
|
|
+ if (!empty($item['member']['join_member_role_id'])) {
|
|
|
+ $item['member']['level'] = MemberRole::where('member_role_id', $item['member']['join_member_role_id'])->value('member_role_name');
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -702,7 +706,7 @@ class WholeController extends Curd
|
|
|
$redis->sadd($key, $params['order_id']);
|
|
|
|
|
|
$model = OrderExpress::where('join_express_order_id', $params['order_id'])->first();
|
|
|
- if(!$model){
|
|
|
+ if (!$model) {
|
|
|
$model = new OrderExpress();
|
|
|
// $sheet = OrderSheet::where('join_sheet_order_id', $request->post('order_id'))
|
|
|
// ->select('join_sheet_goods_id')
|
|
@@ -712,7 +716,7 @@ class WholeController extends Curd
|
|
|
// $address = ClientConfig::where('client_config_id',$extendJson['address_id'])->first();
|
|
|
// $params['']
|
|
|
// }
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -929,4 +933,68 @@ class WholeController extends Curd
|
|
|
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ public function doRefund(Request $request)
|
|
|
+ {
|
|
|
+ $returnId = $request->post('return_id', '');
|
|
|
+ $amount = $request->post('amount', 0);
|
|
|
+ if (!$returnId || !$amount) {
|
|
|
+ return json_fail('参数异常');
|
|
|
+ }
|
|
|
+
|
|
|
+ $return = OrderReturn::where('join_return_order_id', $returnId)
|
|
|
+ ->first();
|
|
|
+ if (!$return) {
|
|
|
+ return json_fail("退款订单异常");
|
|
|
+ }
|
|
|
+
|
|
|
+ $order = Order::where('order_id', $return->join_return_order_id)->first();
|
|
|
+ if (!$order) {
|
|
|
+ return json_fail("订单异常");
|
|
|
+ }
|
|
|
+ if ($amount > $order->order_amount_pay) {
|
|
|
+ return json_fail('退款金额不能超过订单金额');
|
|
|
+ }
|
|
|
+
|
|
|
+ $payDetail = PayDetail::where('join_pay_order_id', $order->order_groupby)->first();
|
|
|
+ if (!$payDetail) {
|
|
|
+ return json_fail("支付信息异常异常");
|
|
|
+ }
|
|
|
+ $responseJson = [];
|
|
|
+ if (!empty($payDetail->pay_json_response)) {
|
|
|
+ $responseJson = json_decode($payDetail->pay_json_response, true);
|
|
|
+ if (!isset($responseJson['trxid'])) {
|
|
|
+ return json_fail("支付信息异常异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $data = [
|
|
|
+ 'randomstr' => random_string(32),
|
|
|
+ 'reqsn' => $return->join_return_order_id,
|
|
|
+ 'oldtrxid' => $responseJson['trxid'],
|
|
|
+ 'trxamt' => $amount * 100,
|
|
|
+
|
|
|
+ ];
|
|
|
+
|
|
|
+ try {
|
|
|
+ Db::beginTransaction();
|
|
|
+ $tlpay = new Tlpay();
|
|
|
+ $return = $tlpay->refund($data);
|
|
|
+
|
|
|
+ Db::commit();
|
|
|
+
|
|
|
+ _syslog("退款", "发起退款", $return, $data);
|
|
|
+ return json_success("退款成功");
|
|
|
+ } catch (PayException $e) {
|
|
|
+ Db::rollBack();
|
|
|
+
|
|
|
+ _syslog("退款", "发起退款", $e->getMessage(), $data);
|
|
|
+ return json_fail("发起退款失败");
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ Db::rollBack();
|
|
|
+
|
|
|
+ _syslog("退款", "发起退款", $e->getMessage(), $data);
|
|
|
+ return json_fail("数据更新失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|