|
@@ -18,6 +18,8 @@ class Hexiao extends Api
|
|
|
//order_no:2024090466d7c9d5abb1c1
|
|
|
public function order_info()
|
|
|
{
|
|
|
+ if($this->auth->group_id != 3){$this->error('你是不是来错地方了?');}
|
|
|
+
|
|
|
$code = input('code','');
|
|
|
if(strpos($code,'order_hexiao_no|') !== 0){
|
|
|
$this->error('识别不到的订单');
|
|
@@ -122,36 +124,68 @@ class Hexiao extends Api
|
|
|
|
|
|
//完成核销动作
|
|
|
public function hexiao(){
|
|
|
+ if($this->auth->group_id != 3){$this->error('你是不是来错地方了?');}
|
|
|
// $order_id = input('order_id', 0);
|
|
|
// $order_id = \addons\unishop\extend\Hashids::decodeHex($order_id);
|
|
|
$out_trade_no = input('out_trade_no','');
|
|
|
|
|
|
- $orderModel = new \addons\unishop\model\Order();
|
|
|
- $order = $orderModel->where(['out_trade_no' => $out_trade_no])->find();
|
|
|
+ Db::startTrans();
|
|
|
+ $order = Db::name('unishop_order')->where(['out_trade_no' => $out_trade_no])->lock(true)->find();
|
|
|
|
|
|
if (!$order) {
|
|
|
+ Db::rollback();
|
|
|
$this->error('不存在的订单');
|
|
|
}
|
|
|
|
|
|
if($order['status'] != 1){
|
|
|
+ Db::rollback();
|
|
|
$this->error('非正常的订单');
|
|
|
}
|
|
|
if($order['have_paid'] == 0){
|
|
|
+ Db::rollback();
|
|
|
$this->error('未支付的订单');
|
|
|
}
|
|
|
if($order['have_received'] != 0){
|
|
|
+ Db::rollback();
|
|
|
$this->error('该订单已核销');
|
|
|
}
|
|
|
|
|
|
+ $update = [
|
|
|
+ 'have_received' => time(),
|
|
|
+ 'hexiao_uid' => $this->auth->id,
|
|
|
+ ];
|
|
|
+ $order_rs = Db::name('unishop_order')->where('id',$order['id'])->update($update);
|
|
|
+ if($order_rs === false){
|
|
|
+ Db::rollback();
|
|
|
+ $this->error('核销失败');
|
|
|
+ }
|
|
|
+
|
|
|
+ //给推广人结算
|
|
|
+ if($order['intro_uid']){
|
|
|
+
|
|
|
+ $bili = config('site.unishop_order_hexiao_bili');
|
|
|
|
|
|
- $order->have_received = time();
|
|
|
- $order->hexiao_uid = $this->auth->id;
|
|
|
- $order->save();
|
|
|
+ $money = bcdiv(bcmul($order['total_price'],$bili,2),100,2);
|
|
|
+
|
|
|
+ if($money > 0){
|
|
|
+ $rs_wallet = model('Wallet')->lockChangeAccountRemain($order['intro_uid'],'money',$money,10,'推广订单:'.$out_trade_no,'unishop_order',$order['id']);
|
|
|
+ if($rs_wallet['status']===false)
|
|
|
+ {
|
|
|
+ Db::rollback();
|
|
|
+ $this->error($rs_wallet['msg']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ Db::commit();
|
|
|
$this->success('核销成功');
|
|
|
}
|
|
|
|
|
|
//核销记录
|
|
|
public function order_list(){
|
|
|
+ if($this->auth->group_id != 3){$this->error('你是不是来错地方了?');}
|
|
|
+
|
|
|
$orderModel = new \addons\unishop\model\Order();
|
|
|
|
|
|
$condition = [
|