|
@@ -20,7 +20,7 @@ use app\api\model\Member;
|
|
|
class Order extends Api
|
|
|
{
|
|
|
//无需登录的接口
|
|
|
- protected $noNeedLogin = ['order_notify_url','express_list'];//都需要登录
|
|
|
+ protected $noNeedLogin = ['order_notify_url','express_list','order_cancel_all'];//都需要登录
|
|
|
/**
|
|
|
* 提交订单
|
|
|
*
|
|
@@ -107,7 +107,6 @@ class Order extends Api
|
|
|
|
|
|
if (!empty($address_id)){
|
|
|
$get_address=Address::where('id',$address_id)->find();
|
|
|
-
|
|
|
$insert['address_name']=$get_address['name'];//姓名
|
|
|
$insert['address_phone']=$get_address['mobile'];//电话
|
|
|
$insert['address_address']=$get_address['province']. ' '.$get_address['city'].' '.$get_address['city'].' '.$get_address['address'];//详细地址
|
|
@@ -154,6 +153,10 @@ class Order extends Api
|
|
|
if (!empty($is_seckill)){//如果是秒杀商品
|
|
|
StoreSeckill::where('id',$seckill['id'])->setDec('stock',$total_num);
|
|
|
StoreSeckill::where('id',$seckill['id'])->setInc('sales',$total_num);
|
|
|
+ }else{
|
|
|
+ //-库存
|
|
|
+ StoreProduct::where('id',$store_id)->setDec('stock',$total_num);
|
|
|
+ StoreProduct::where('id',$store_id)->setInc('sales',$total_num);
|
|
|
}
|
|
|
$this->result('下单成功',['prepay_id'=>$arr['prepay_id'],'order_id'=>$bid],1);
|
|
|
}else{
|
|
@@ -416,11 +419,20 @@ class Order extends Api
|
|
|
$where['is_system_del']=0;
|
|
|
$where['status']=['in',['-2','0','3','4','9']];
|
|
|
$get_order=StoreOrder::where($where)
|
|
|
- ->field('id')
|
|
|
+ ->field('id,status,is_seckill,total_num,store_product_id')
|
|
|
->find();
|
|
|
if (empty($get_order)){
|
|
|
$this->result('此订单不能进行删除操作');
|
|
|
}
|
|
|
+ if ($get_order['status']=='0'){
|
|
|
+ if (!empty($get_order['is_seckill'])){
|
|
|
+ StoreSeckill::where('id',$get_order['is_seckill'])->setDec('sales',$get_order['total_num']);
|
|
|
+ StoreSeckill::where('id',$get_order['is_seckill'])->setInc('stock',$get_order['total_num']);
|
|
|
+ }else{
|
|
|
+ StoreProduct::where('id',$get_order['store_product_id'])->setInc('stock',$get_order['total_num']);
|
|
|
+ StoreProduct::where('id',$get_order['store_product_id'])->setDec('sales',$get_order['total_num']);
|
|
|
+ }
|
|
|
+ }
|
|
|
$update_status=StoreOrder::where('id',$id)->update(['is_del'=>1]);
|
|
|
$this->result('success',$get_order,1);
|
|
|
}
|
|
@@ -443,7 +455,7 @@ class Order extends Api
|
|
|
$where['is_system_del']=0;
|
|
|
$where['status']=['in',['0']];
|
|
|
$get_order=StoreOrder::where($where)
|
|
|
- ->field('id,is_seckill,total_num')
|
|
|
+ ->field('id,is_seckill,total_num,store_product_id')
|
|
|
->find();
|
|
|
if (empty($get_order)){
|
|
|
$this->result('此订单不能取消');
|
|
@@ -451,11 +463,51 @@ class Order extends Api
|
|
|
if (!empty($get_order['is_seckill'])){
|
|
|
StoreSeckill::where('id',$get_order['is_seckill'])->setDec('sales',$get_order['total_num']);
|
|
|
StoreSeckill::where('id',$get_order['is_seckill'])->setInc('stock',$get_order['total_num']);
|
|
|
+ }else{
|
|
|
+ StoreProduct::where('id',$get_order['store_product_id'])->setInc('stock',$get_order['total_num']);
|
|
|
+ StoreProduct::where('id',$get_order['store_product_id'])->setDec('sales',$get_order['total_num']);
|
|
|
}
|
|
|
$update_status=StoreOrder::where('id',$id)->update(['status'=>9]);
|
|
|
$this->result('success',$get_order,1);
|
|
|
}
|
|
|
/**
|
|
|
+ * 订单取消定时任务
|
|
|
+ * @ApiTitle (订单取消定时)
|
|
|
+ * @ApiSummary (订单取消定时)
|
|
|
+ * @ApiMethod (POST)
|
|
|
+ * @ApiHeaders (name="user-token", type="string", required=true, description="请求的Token")
|
|
|
+ * @ApiRoute (/api/order/order_cancel)
|
|
|
+ * @ApiParams (name="user_id", type="int", required=true, description="用户user_id")
|
|
|
+ * @ApiParams (name="order_id", type="int", required=true, description="订单编号 id")
|
|
|
+ */
|
|
|
+ public function order_cancel_all(){
|
|
|
+
|
|
|
+ $where['is_del']=0;
|
|
|
+ $where['is_system_del']=0;
|
|
|
+
|
|
|
+ $time=time()-15*60;
|
|
|
+
|
|
|
+ $where['add_time']=['LT',$time];
|
|
|
+ $where['status']=['in',['0']];
|
|
|
+ $get_order=StoreOrder::where($where)
|
|
|
+ ->field('id,is_seckill,total_num,store_product_id')
|
|
|
+ ->select();
|
|
|
+
|
|
|
+ if (!empty($get_order)){
|
|
|
+ foreach ($get_order as $k=>$v){
|
|
|
+ if (!empty($v['is_seckill'])){
|
|
|
+ StoreSeckill::where('id',$v['is_seckill'])->setDec('sales',$v['total_num']);
|
|
|
+ StoreSeckill::where('id',$v['is_seckill'])->setInc('stock',$v['total_num']);
|
|
|
+ }else{
|
|
|
+ StoreProduct::where('id',$v['store_product_id'])->setInc('stock',$v['total_num']);
|
|
|
+ StoreProduct::where('id',$v['store_product_id'])->setDec('sales',$v['total_num']);
|
|
|
+ }
|
|
|
+ $update_status=StoreOrder::where('id',$v['id'])->update(['status'=>9]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $this->result('success',1,1);
|
|
|
+ }
|
|
|
+ /**
|
|
|
* 订单确认收货
|
|
|
* @ApiTitle (订单确认收货)
|
|
|
* @ApiSummary (订单确认收货)
|
|
@@ -501,38 +553,39 @@ class Order extends Api
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- $pay_price=$pay_price-$one_commission-$two_commission;
|
|
|
- if ($get_order['total_price']>($one_commission+$two_commission)){
|
|
|
- if (!empty($one_commission)){
|
|
|
- Member::where('mid',$get_user['spread_mid'])->setInc('brokerage_price',$one_commission);
|
|
|
- Member::where('mid',$get_user['spread_mid'])->setInc('now_money',$one_commission);
|
|
|
- $insert_m['mid']=$get_user['spread_mid'];
|
|
|
- $insert_m['link_id']=$id;
|
|
|
- $insert_m['pm']='1';
|
|
|
- $insert_m['title']='佣金';
|
|
|
- $insert_m['type']='2';
|
|
|
- $insert_m['number']=$one_commission;
|
|
|
- $insert_m['add_time']=time();
|
|
|
- $insert_m['status']='1';
|
|
|
- MemberBill::insert($insert_m);
|
|
|
- }
|
|
|
- if (!empty($two_commission)){
|
|
|
- Member::where('mid',$get_user2['spread_mid'])->setInc('brokerage_price',$two_commission);
|
|
|
- Member::where('mid',$get_user2['spread_mid'])->setInc('now_money',$two_commission);
|
|
|
- $insert_m['mid']=$get_user2['spread_mid'];
|
|
|
- $insert_m['link_id']=$id;
|
|
|
- $insert_m['pm']='1';
|
|
|
- $insert_m['title']='佣金';
|
|
|
- $insert_m['type']='2';
|
|
|
- $insert_m['number']=$two_commission;
|
|
|
- $insert_m['add_time']=time();
|
|
|
- $insert_m['status']='1';
|
|
|
- MemberBill::insert($insert_m);
|
|
|
+ $pay_price=$pay_price-$one_commission-$two_commission;
|
|
|
+ if ($get_order['total_price']>($one_commission+$two_commission)){
|
|
|
+ if (!empty($one_commission)){
|
|
|
+ Member::where('mid',$get_user['spread_mid'])->setInc('brokerage_price',$one_commission);
|
|
|
+ Member::where('mid',$get_user['spread_mid'])->setInc('now_money',$one_commission);
|
|
|
+ $insert_m['mid']=$get_user['spread_mid'];
|
|
|
+ $insert_m['link_id']=$id;
|
|
|
+ $insert_m['pm']='1';
|
|
|
+ $insert_m['title']='佣金';
|
|
|
+ $insert_m['type']='2';
|
|
|
+ $insert_m['number']=$one_commission;
|
|
|
+ $insert_m['add_time']=time();
|
|
|
+ $insert_m['status']='1';
|
|
|
+ MemberBill::insert($insert_m);
|
|
|
+ }
|
|
|
+ if (!empty($two_commission)){
|
|
|
+ Member::where('mid',$get_user2['spread_mid'])->setInc('brokerage_price',$two_commission);
|
|
|
+ Member::where('mid',$get_user2['spread_mid'])->setInc('now_money',$two_commission);
|
|
|
+ $insert_m['mid']=$get_user2['spread_mid'];
|
|
|
+ $insert_m['link_id']=$id;
|
|
|
+ $insert_m['pm']='1';
|
|
|
+ $insert_m['title']='佣金';
|
|
|
+ $insert_m['type']='2';
|
|
|
+ $insert_m['number']=$two_commission;
|
|
|
+ $insert_m['add_time']=time();
|
|
|
+ $insert_m['status']='1';
|
|
|
+ MemberBill::insert($insert_m);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
ShopUser::where('id',$get_order['suser_id'])->setInc('order_price',$pay_price);
|
|
|
ShopUser::where('id',$get_order['suser_id'])->setInc('balance',$pay_price);
|
|
|
// ShopUser::where('id',$get_order['suser_id'])->setInc('order_num');
|
|
@@ -743,45 +796,42 @@ class Order extends Api
|
|
|
if (!empty($get_product['one_commission'])){
|
|
|
$one_commission=floor($get_product['one_commission']*$get_order['total_price']);
|
|
|
$one_commission=$one_commission/100;
|
|
|
-
|
|
|
}
|
|
|
if (!empty($get_product['two_commission'])){
|
|
|
$get_user2=Member::where('mid',$get_user['spread_mid'])->field('spread_mid,mid')->find();
|
|
|
if (!empty($get_user2['spread_mid'])){
|
|
|
$two_commission=floor($get_product['two_commission']*$get_order['total_price']);
|
|
|
$two_commission=$two_commission/100;
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- $pay_price=$pay_price-$one_commission-$two_commission;
|
|
|
- if ($get_order['total_price']>($one_commission+$two_commission)){
|
|
|
- if (!empty($one_commission)){
|
|
|
- Member::where('mid',$get_user['spread_mid'])->setInc('brokerage_price',$one_commission);
|
|
|
- Member::where('mid',$get_user['spread_mid'])->setInc('now_money',$one_commission);
|
|
|
- $insert_m['mid']=$get_user['spread_mid'];
|
|
|
- $insert_m['link_id']=$get_order['id'];
|
|
|
- $insert_m['pm']='1';
|
|
|
- $insert_m['title']='佣金';
|
|
|
- $insert_m['type']='2';
|
|
|
- $insert_m['number']=$one_commission;
|
|
|
- $insert_m['add_time']=time();
|
|
|
- $insert_m['status']='1';
|
|
|
- MemberBill::insert($insert_m);
|
|
|
- }
|
|
|
- if (!empty($two_commission)){
|
|
|
- Member::where('mid',$get_user2['spread_mid'])->setInc('brokerage_price',$two_commission);
|
|
|
- Member::where('mid',$get_user2['spread_mid'])->setInc('now_money',$two_commission);
|
|
|
- $insert_m['mid']=$get_user2['spread_mid'];
|
|
|
- $insert_m['link_id']=$get_order['id'];
|
|
|
- $insert_m['pm']='1';
|
|
|
- $insert_m['title']='佣金';
|
|
|
- $insert_m['type']='2';
|
|
|
- $insert_m['number']=$two_commission;
|
|
|
- $insert_m['add_time']=time();
|
|
|
- $insert_m['status']='1';
|
|
|
- MemberBill::insert($insert_m);
|
|
|
+ if ($get_order['total_price']>($one_commission+$two_commission)){
|
|
|
+ if (!empty($one_commission)){
|
|
|
+ Member::where('mid',$get_user['spread_mid'])->setInc('brokerage_price',$one_commission);
|
|
|
+ Member::where('mid',$get_user['spread_mid'])->setInc('now_money',$one_commission);
|
|
|
+ $insert_m['mid']=$get_user['spread_mid'];
|
|
|
+ $insert_m['link_id']=$get_order['id'];
|
|
|
+ $insert_m['pm']='1';
|
|
|
+ $insert_m['title']='佣金';
|
|
|
+ $insert_m['type']='2';
|
|
|
+ $insert_m['number']=$one_commission;
|
|
|
+ $insert_m['add_time']=time();
|
|
|
+ $insert_m['status']='1';
|
|
|
+ MemberBill::insert($insert_m);
|
|
|
+ }
|
|
|
+ if (!empty($two_commission)){
|
|
|
+ Member::where('mid',$get_user2['spread_mid'])->setInc('brokerage_price',$two_commission);
|
|
|
+ Member::where('mid',$get_user2['spread_mid'])->setInc('now_money',$two_commission);
|
|
|
+ $insert_m['mid']=$get_user2['spread_mid'];
|
|
|
+ $insert_m['link_id']=$get_order['id'];
|
|
|
+ $insert_m['pm']='1';
|
|
|
+ $insert_m['title']='佣金';
|
|
|
+ $insert_m['type']='2';
|
|
|
+ $insert_m['number']=$two_commission;
|
|
|
+ $insert_m['add_time']=time();
|
|
|
+ $insert_m['status']='1';
|
|
|
+ MemberBill::insert($insert_m);
|
|
|
+ }
|
|
|
+ $pay_price=$pay_price-$one_commission-$two_commission;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -793,17 +843,13 @@ class Order extends Api
|
|
|
$status=1;
|
|
|
StoreOrder::where('order_id',$out_trade_no)->update(['status'=>$status,'pay_time'=>time()]);
|
|
|
}
|
|
|
-
|
|
|
ShopUser::where('id',$get_order['suser_id'])->setInc('order_num');
|
|
|
- if (empty($get_order['is_seckill'])){
|
|
|
- StoreProduct::where('id',$get_order['store_product_id'])->setDec('stock',$get_order['total_num']);
|
|
|
- StoreProduct::where('id',$get_order['store_product_id'])->setInc('sales',$get_order['total_num']);
|
|
|
- }
|
|
|
// StoreProduct::where(['id'=>$get_order['store_product_id']])->setInc('sales'); // 原数值加一
|
|
|
// StoreProduct::where(['id'=>$get_order['store_product_id']])->setDec('stock'); // 原数值减一\
|
|
|
ShopUser::commit();
|
|
|
StoreOrder::commit();
|
|
|
- StoreProduct::commit();
|
|
|
+ MemberBill::commit();
|
|
|
+ // StoreProduct::commit();
|
|
|
echo '<xml>
|
|
|
<return_code><![CDATA[SUCCESS]]></return_code>
|
|
|
<return_msg><![CDATA[OK]]></return_msg>
|
|
@@ -814,8 +860,11 @@ class Order extends Api
|
|
|
|
|
|
dump($e->getMessage());
|
|
|
// 回滚事务
|
|
|
+
|
|
|
+ ShopUser::rollback();
|
|
|
StoreOrder::rollback();
|
|
|
- StoreProduct::rollback();
|
|
|
+ MemberBill::rollback();
|
|
|
+ // StoreProduct::rollback();
|
|
|
}
|
|
|
}else{
|
|
|
echo '<xml>
|