|  | @@ -107,8 +107,8 @@ class Plantask extends Controller
 | 
	
		
			
				|  |  |          echo '成功'.count($order_list);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    //总代奖励
 | 
	
		
			
				|  |  |      //自动结算10日前订单,每分钟运行
 | 
	
		
			
				|  |  | +    //初次结算
 | 
	
		
			
				|  |  |      public function auto_jiesuan_order(){
 | 
	
		
			
				|  |  |          $nowtime = time();
 | 
	
		
			
				|  |  |          /*$toweek  = date('w',$nowtime);
 | 
	
	
		
			
				|  | @@ -126,6 +126,7 @@ class Plantask extends Controller
 | 
	
		
			
				|  |  |              'status'      => 1,
 | 
	
		
			
				|  |  |              'have_paid'   => ['lt',$tendays_ago],
 | 
	
		
			
				|  |  |              'jiesuantime' => 0,
 | 
	
		
			
				|  |  | +            'jiesuan_times' => 0,
 | 
	
		
			
				|  |  |          ];
 | 
	
		
			
				|  |  |          $order_list = Db::name('unishop_order')->where($order_map)->where('have_paid','gt',0)->order('id asc')->lock(true)->limit(10)->select();
 | 
	
		
			
				|  |  |          if(empty($order_list)){
 | 
	
	
		
			
				|  | @@ -160,7 +161,7 @@ class Plantask extends Controller
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              //标记为结算
 | 
	
		
			
				|  |  | -            $jiesuan = Db::name('unishop_order')->where('id',$order['id'])->update(['jiesuantime'=>$nowtime]);
 | 
	
		
			
				|  |  | +            $jiesuan = Db::name('unishop_order')->where('id',$order['id'])->update(['jiesuantime'=>$nowtime,'jiesuan_times'=>1]);
 | 
	
		
			
				|  |  |              if($jiesuan === false){
 | 
	
		
			
				|  |  |                  echo '修改状态失败';
 | 
	
		
			
				|  |  |                  Db::rollback();
 | 
	
	
		
			
				|  | @@ -182,6 +183,70 @@ class Plantask extends Controller
 | 
	
		
			
				|  |  |          echo '成功'.count($order_list);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    //订单每10日结算一次,第2-N次
 | 
	
		
			
				|  |  | +    public function auto_jiesuan_order_times(){
 | 
	
		
			
				|  |  | +        $nowtime = time();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        $tendays_ago = jiesuan_tendays_ago();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //
 | 
	
		
			
				|  |  | +        Db::startTrans();
 | 
	
		
			
				|  |  | +        $order_map = [
 | 
	
		
			
				|  |  | +            'status'      => 1,
 | 
	
		
			
				|  |  | +            'have_paid'   => ['gt',0],
 | 
	
		
			
				|  |  | +            'jiesuantime' => ['lt',$tendays_ago],
 | 
	
		
			
				|  |  | +            'jiesuan_times' => ['gt',0],
 | 
	
		
			
				|  |  | +        ];
 | 
	
		
			
				|  |  | +        $order_list = Db::name('unishop_order')->where($order_map)->order('id asc')->lock(true)->limit(10)->select();
 | 
	
		
			
				|  |  | +        if(empty($order_list)){
 | 
	
		
			
				|  |  | +            echo '没有数据';
 | 
	
		
			
				|  |  | +            Db::rollback();
 | 
	
		
			
				|  |  | +            exit;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        foreach($order_list as $key => $order){
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            $new_times = $order['jiesuan_times'] + 1;
 | 
	
		
			
				|  |  | +            //买家得到收益,两个数据同步加
 | 
	
		
			
				|  |  | +            if($order['order_shouyi'] > 0){
 | 
	
		
			
				|  |  | +                $shouyi = bcsub($order['order_shouyi'],$order['order_benjin']);  //总收益 - 本金 = 可提现收益
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                $remark = $new_times.'次收益:'.$shouyi;
 | 
	
		
			
				|  |  | +                if($shouyi > 0){
 | 
	
		
			
				|  |  | +                    $rs_wallet = model('wallet')->lockChangeAccountRemain($order['user_id'],'score',$shouyi,50,$remark,'unishop_order',$order['id'],$order['user_id']);
 | 
	
		
			
				|  |  | +                    if($rs_wallet['status'] === false){
 | 
	
		
			
				|  |  | +                        echo $rs_wallet['msg'];
 | 
	
		
			
				|  |  | +                        Db::rollback();
 | 
	
		
			
				|  |  | +                        exit;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    $rs_wallet = model('wallet')->lockChangeAccountRemain($order['user_id'],'shouyi',$shouyi,51,$remark,'unishop_order',$order['id'],$order['user_id']);
 | 
	
		
			
				|  |  | +                    if($rs_wallet['status'] === false){
 | 
	
		
			
				|  |  | +                        echo $rs_wallet['msg'];
 | 
	
		
			
				|  |  | +                        Db::rollback();
 | 
	
		
			
				|  |  | +                        exit;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            //标记为结算
 | 
	
		
			
				|  |  | +            $jiesuan = Db::name('unishop_order')->where('id',$order['id'])->update(['jiesuantime'=>$nowtime,'jiesuan_times'=>$new_times]);
 | 
	
		
			
				|  |  | +            if($jiesuan === false){
 | 
	
		
			
				|  |  | +                echo '修改状态失败';
 | 
	
		
			
				|  |  | +                Db::rollback();
 | 
	
		
			
				|  |  | +                exit;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            //循环结束
 | 
	
		
			
				|  |  | +            echo '完成'.$order['id'];
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        Db::commit();
 | 
	
		
			
				|  |  | +        echo '成功'.count($order_list);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }
 |