|
@@ -8,6 +8,7 @@ use App\Http\Requests\Api\Orders as Request;
|
|
use App\Models\Business;
|
|
use App\Models\Business;
|
|
use App\Models\CustomAddr;
|
|
use App\Models\CustomAddr;
|
|
use App\Models\CustomCoupon;
|
|
use App\Models\CustomCoupon;
|
|
|
|
+use App\Models\CustomScore;
|
|
use App\Models\OrdersAddr;
|
|
use App\Models\OrdersAddr;
|
|
use App\Models\OrdersProduct;
|
|
use App\Models\OrdersProduct;
|
|
use App\Models\ShopCart;
|
|
use App\Models\ShopCart;
|
|
@@ -28,13 +29,13 @@ class Orders extends Api{
|
|
* @param string $buyer_number 需要下单的数量
|
|
* @param string $buyer_number 需要下单的数量
|
|
*
|
|
*
|
|
* */
|
|
* */
|
|
- public function create(Request $request,Model $Model,OrdersAddr $OrdersAddr,OrdersProduct $OrdersProduct,Product $Product,ProductSkus $ProductSkus,CustomCoupon $CustomCoupon,ShopCart $ShopCart,CustomAddr $CustomAddr){
|
|
|
|
|
|
+ public function create(Request $request,Model $Model,OrdersAddr $OrdersAddr,OrdersProduct $OrdersProduct,Product $Product,ProductSkus $ProductSkus,CustomCoupon $CustomCoupon,ShopCart $ShopCart,CustomAddr $CustomAddr,CustomScore $CustomScore){
|
|
// 接口验签
|
|
// 接口验签
|
|
// $this->verify_sign();
|
|
// $this->verify_sign();
|
|
// 验证参数
|
|
// 验证参数
|
|
$request->scene('create')->validate();
|
|
$request->scene('create')->validate();
|
|
// 检查登录
|
|
// 检查登录
|
|
- $uid = $this->checkLogin();
|
|
|
|
|
|
+ $uid = 2;//$this->checkLogin();
|
|
// 接收参数
|
|
// 接收参数
|
|
$isCart = request('is_cart',0);
|
|
$isCart = request('is_cart',0);
|
|
$productList = request('product_list','[]');
|
|
$productList = request('product_list','[]');
|
|
@@ -162,6 +163,8 @@ class Orders extends Api{
|
|
}
|
|
}
|
|
// 成交总价
|
|
// 成交总价
|
|
$order['pay_total'] = $order['pay_total'] - $order['coupon_total'];
|
|
$order['pay_total'] = $order['pay_total'] - $order['coupon_total'];
|
|
|
|
+ // 赠送积分
|
|
|
|
+ $order['order_score'] = (config('order_score_send',0) && floor( $order['pay_total'] * 1 ) > 0 ) ? floor( $order['pay_total'] * 1 ) : 0;
|
|
// 成交总价
|
|
// 成交总价
|
|
$order['custom_uid'] = $uid;
|
|
$order['custom_uid'] = $uid;
|
|
// 重组
|
|
// 重组
|
|
@@ -203,7 +206,7 @@ class Orders extends Api{
|
|
// 写入子表
|
|
// 写入子表
|
|
$result = $OrdersProduct->query()->insert($productList);
|
|
$result = $OrdersProduct->query()->insert($productList);
|
|
// 如果扣减失败
|
|
// 如果扣减失败
|
|
- if( !$result ) {
|
|
|
|
|
|
+ if( !$result ) {
|
|
// 回退数据
|
|
// 回退数据
|
|
DB::rollBack();
|
|
DB::rollBack();
|
|
// 提示信息
|
|
// 提示信息
|
|
@@ -220,6 +223,8 @@ class Orders extends Api{
|
|
// 提示信息
|
|
// 提示信息
|
|
return json_send(['code'=>'error','msg'=>'下单失败','data'=>['error'=>'地址写入失败']]);
|
|
return json_send(['code'=>'error','msg'=>'下单失败','data'=>['error'=>'地址写入失败']]);
|
|
}
|
|
}
|
|
|
|
+ // 赠送积分
|
|
|
|
+ if( $order['order_score'] > 0 ) $CustomScore->trade($order['custom_uid'],$orderId,$order['order_score'],5,1);
|
|
// 如果使用了优惠券
|
|
// 如果使用了优惠券
|
|
if( $usedCoupon ) $CustomCoupon->edit($usedCoupon,['status'=>1,'order_id'=>$orderId]);
|
|
if( $usedCoupon ) $CustomCoupon->edit($usedCoupon,['status'=>1,'order_id'=>$orderId]);
|
|
// 购物车
|
|
// 购物车
|
|
@@ -367,26 +372,55 @@ class Orders extends Api{
|
|
* 取消
|
|
* 取消
|
|
*
|
|
*
|
|
* */
|
|
* */
|
|
- public function cancel( Request $request, Model $Model,OrdersProduct $OrdersProduct){
|
|
|
|
|
|
+ public function cancel( Request $request, Model $Model,OrdersProduct $OrdersProduct,CustomScore $CustomScore){
|
|
// 验证参数
|
|
// 验证参数
|
|
$request->scene('cancel')->validate();
|
|
$request->scene('cancel')->validate();
|
|
|
|
+ // 检查登录
|
|
|
|
+ $uid = $this->checkLogin();
|
|
// 接收参数
|
|
// 接收参数
|
|
$id = request('id',0);
|
|
$id = request('id',0);
|
|
$status = 4;
|
|
$status = 4;
|
|
// 获取产品和数量
|
|
// 获取产品和数量
|
|
- $oldData = $Model->query()->find($id);
|
|
|
|
|
|
+ $oldData = $Model->query()->where([['id','=',$id],['custom_uid','=',$uid]])->first($id,['id','order_score','custom_uid']);
|
|
// 如果用户不存在
|
|
// 如果用户不存在
|
|
if( !$oldData ) return json_send(['code'=>'error','msg'=>'订单不存在']);
|
|
if( !$oldData ) return json_send(['code'=>'error','msg'=>'订单不存在']);
|
|
- // 查询数据
|
|
|
|
- $result = $Model->edit($id,['status'=>$status]);
|
|
|
|
- // 提示新增失败
|
|
|
|
- if( !$result ) return json_send(['code'=>'error','msg'=>'取消失败']);
|
|
|
|
- // 查询数据
|
|
|
|
- $result = $OrdersProduct->query()->where([['order_id','=',$id]])->update(['status'=>$status,'update_time'=>time()]);
|
|
|
|
- // 提示新增失败
|
|
|
|
- if( !$result ) return json_send(['code'=>'error','msg'=>'取消失败']);
|
|
|
|
- // 告知结果
|
|
|
|
- return json_send(['code'=>'success','msg'=>'取消成功','path'=>'']);
|
|
|
|
|
|
+ // 组合数据,写入订单表,子表
|
|
|
|
+ DB::beginTransaction();
|
|
|
|
+ try{
|
|
|
|
+ // 查询数据
|
|
|
|
+ $result = $Model->edit($id,['status'=>$status]);
|
|
|
|
+ // 提示新增失败
|
|
|
|
+ if( !$result ) {
|
|
|
|
+ // 回退数据
|
|
|
|
+ DB::rollBack();
|
|
|
|
+ // 提示信息
|
|
|
|
+ return json_send(['code'=>'error','msg'=>'取消失败']);
|
|
|
|
+ }
|
|
|
|
+ // 查询数据
|
|
|
|
+ $result = $OrdersProduct->query()->where([['order_id','=',$id]])->update(['status'=>$status,'update_time'=>time()]);
|
|
|
|
+ // 提示新增失败
|
|
|
|
+ if( !$result ) {
|
|
|
|
+ // 回退数据
|
|
|
|
+ DB::rollBack();
|
|
|
|
+ // 提示信息
|
|
|
|
+ return json_send(['code'=>'error','msg'=>'取消失败']);
|
|
|
|
+ }
|
|
|
|
+ // 如果取消订单
|
|
|
|
+ if( $status == 4 ) {
|
|
|
|
+ // 赠送积分
|
|
|
|
+ if( $oldData['order_score'] > 0 ) $CustomScore->trade($oldData['custom_uid'],$oldData['id'],($oldData['order_score']*-1),6,1);
|
|
|
|
+ }
|
|
|
|
+ // 提交数据
|
|
|
|
+ DB::commit();
|
|
|
|
+ // 告知结果
|
|
|
|
+ return json_send(['code'=>'success','msg'=>'取消成功','path'=>'']);
|
|
|
|
+ // 返回结果
|
|
|
|
+ } catch (\Throwable $th) {
|
|
|
|
+ // 回退数据
|
|
|
|
+ DB::rollBack();
|
|
|
|
+ // 下单失败提示
|
|
|
|
+ return json_send(['code'=>'error','msg'=>'取消失败','data'=>['error'=>$th->getMessage().$th->getLine()]]);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|