Browse Source

退单接口初始化

master
Lemon 6 years ago
parent
commit
e6ba220d8a
  1. 4
      app/Controller/OrderController.php
  2. 7
      app/Model/CouponUserUse.php
  3. 37
      app/Service/CouponService.php
  4. 2
      app/Service/CouponServiceInterface.php
  5. 11
      app/Service/OrderService.php
  6. 2
      app/Service/OrderServiceInterface.php
  7. 1
      config/routes.php

4
app/Controller/OrderController.php

@ -102,8 +102,8 @@ class OrderController extends BaseController
* 用户取消订单 * 用户取消订单
*/ */
public function onlineCancel(){ public function onlineCancel(){
$globalOrderId = $this->request->input('global_order_id');
return $this->success($this->orderService->onlineCancel($globalOrderId));
$OrderId = $this->request->input('order_id');
return $this->success($this->orderService->onlineCancel($OrderId));
} }
} }

7
app/Model/CouponUserUse.php

@ -6,5 +6,12 @@ namespace App\Model;
class CouponUserUse extends Model class CouponUserUse extends Model
{ {
// 正常使用
const COUPON_USE_STATE_USED = 1;
// 退回用户
const COUPON_USE_STATE_CANCEL = 2;
public $timestamps = false;
protected $table = 'ims_system_coupon_user_use'; protected $table = 'ims_system_coupon_user_use';
} }

37
app/Service/CouponService.php

@ -7,6 +7,7 @@ use Hyperf\DbConnection\Db;
use App\Model\CouponUserRecType; use App\Model\CouponUserRecType;
use App\Model\Coupon; use App\Model\Coupon;
use App\Model\CouponRec; use App\Model\CouponRec;
use App\Model\CouponUserUse;
use Hyperf\Utils\ApplicationContext; use Hyperf\Utils\ApplicationContext;
use App\TaskWorker\SSDBTask; use App\TaskWorker\SSDBTask;
use App\Constants\SsdbKeysPrefix; use App\Constants\SsdbKeysPrefix;
@ -220,4 +221,40 @@ class CouponService implements CouponServiceInterface
return $setRes&&$expireRes; return $setRes&&$expireRes;
} }
/**
* 取消订单返券
* @param $order_id
* @return bool
*/
public function refundOrderCoupons($order_id,$user_id){
$coupon = CouponUserUse::where([
['order_main_id','=',$order_id],
['status','=',CouponUserUse::COUPON_USE_STATE_USED],
])
->select('id','user_receive_id','number')
->first();
// 返回用户优惠券数量并更新状态
$res = Db::update("UPDATE ims_system_coupon_user_receive SET number_remain=number_remain+{$coupon->number}, status=IF(number=number_remain,0,1), update_time=".time().""
." WHERE id={$coupon->user_receive_id} AND number>=(number_remain+{$coupon->number})");
// 更新使用记录状态为已退回
CouponUserUse::where([
['id','=',$coupon->id],
['status','=',CouponUserUse::COUPON_USE_STATE_USED],
])
->update([
'status' => CouponUserUse::COUPON_USE_STATE_CANCEL,
'return_time' => time(),
'update_time' => time(),
]);
//删除当日 redis 使用记录缓存
$redis = ApplicationContext::getContainer()->get(Redis::class);
$remRes = $redis->sRem(
'coupon_'.date('Ymd').'_used_'.$user_id,
$coupon->system_coupon_id
);
return $res;
}
} }

2
app/Service/CouponServiceInterface.php

@ -27,4 +27,6 @@ interface CouponServiceInterface
*/ */
public function getOrderCanUseCoupons($orderAmount, $marketId, $userId, $fields=[], $type=1, $storeTypeIds=[0]); public function getOrderCanUseCoupons($orderAmount, $marketId, $userId, $fields=[], $type=1, $storeTypeIds=[0]);
public function refundOrderCoupons($order_id,$user_id);
} }

11
app/Service/OrderService.php

@ -704,8 +704,14 @@ class OrderService implements OrderServiceInterface
/** /**
* @inheritDoc * @inheritDoc
*/ */
public function onlineCancel($global_order_id){
public function onlineCancel($order_id){
$order_main = OrderMain::where('id',$order_id)
->select('global_order_id','user_id')
->first();
OrderMain::where('id',$order_id)
->update(['state' => OrderMain::ORDER_STATE_CANCEL]);
$res = $this->couponService->refundOrderCoupons($order_id,$order_main->user_id);
return $res;
} }
/** /**
* @inheritDoc * @inheritDoc
@ -713,4 +719,5 @@ class OrderService implements OrderServiceInterface
public function onlineRefund($global_order_id){ public function onlineRefund($global_order_id){
return 123; return 123;
} }
} }

2
app/Service/OrderServiceInterface.php

@ -53,7 +53,7 @@ interface OrderServiceInterface
* @param $global_order_id * @param $global_order_id
* @return mixed * @return mixed
*/ */
public function onlineCancel($global_order_id);
public function onlineCancel($order_id);
/** /**
* 线上订单退款 * 线上订单退款

1
config/routes.php

@ -50,6 +50,7 @@ Router::addGroup('/v1/',function (){
//订单相关 //订单相关
Router::post('Order/addOnline', 'App\Controller\OrderController@addOnlineOrder'); Router::post('Order/addOnline', 'App\Controller\OrderController@addOnlineOrder');
Router::post('Order/addOffline', 'App\Controller\OrderController@addOfflineOrder'); Router::post('Order/addOffline', 'App\Controller\OrderController@addOfflineOrder');
Router::post('Order/onlineCancel', 'App\Controller\OrderController@onlineCancel');
//小程序支付相关 //小程序支付相关
Router::post('wxminipay/online', 'App\Controller\PaymentController@wxminiPayOnline'); Router::post('wxminipay/online', 'App\Controller\PaymentController@wxminiPayOnline');

Loading…
Cancel
Save