/**
* 取消结算
* @param $balanceId
*/
public static function cancelBalance($balanceId,$userId){
$balanceId = intval($balanceId);
$connection = Yii::$app->db->beginTransaction();
try {
$sql = "SELECT * FROM commission_balance_order where id={$balanceId} for update";
$order = Yii::$app->db->createCommand($sql)->queryOne();
if(empty($order)){
$connection->rollBack();
return ["status"=>400,"msg"=>"订单不存在"] ;
}
if($order['channel_user_id']!=$userId){
$connection->rollBack();
return ["status"=>400,"msg"=>"请不要乱作"] ;
}
if($order['status']!=ConstantService::BALANCE_STATUS_WAIT_VERIFY && $order['status']!=ConstantService::BALANCE_STATUS_NOT_PASS){
$connection->rollBack();
return ["status"=>400,"msg"=>"待审核或审核不通过才允许取消结算"] ;
}
$updRs = CommissionBalanceOrder::updateAll(["status"=>ConstantService::BALANCE_STATUS_CANCEL,"update_time"=>date("Y-m-d H:i:s")],["id"=>$balanceId,"channel_user_id"=>$userId]);
if($updRs){
$connection->commit() ;
return ["status"=>200,"msg"=>"订单取消成功"] ;
}else{
$connection->rollBack();
return ["status"=>400,"msg"=>"订单取消失败"] ;
}
} catch (\Exception $e) {
$logArr = [
"id" => $balanceId ,
"userId" => $userId ,
"e" => $e
] ;
BaseToolService::error($logArr,"cancel_balance_union_errror") ;
$connection->rollBack();
return ["status"=>400,"msg"=>"订单取消异常,请稍后再试"] ;
}
}
try{
$sqlProcedure = "CALL `p_order_create`(:in_status,:in_user_id, :in_commission_detail_id, :in_order_number, @out_status, @out_remark) ";
$cmd = Yii::$app->db->createCommand($sqlProcedure);
$cmd->bindParam(':in_status',$status);
$cmd->bindParam(':in_user_id',$userId);
$cmd->bindParam(':in_commission_detail_id',$commissionDetailId);
$cmd->bindParam(':in_order_number',$orderNum);
$res = $cmd->execute();
$s = Yii::$app->db->createCommand("SELECT @out_status AS `out_status`, @out_remark AS `out_remark`");
$ret = $s->queryOne();
$logArr = [
"sqlProcedure" => $sqlProcedure ,
"in_user_id" => $userId ,
"in_commission_detail_id" => $commissionDetailId ,
"in_order_number" => $orderNum ,
"out_status" => empty($ret['out_status'])?'':$ret['out_status'] ,
"out_remark" => empty($ret['out_remark'])?'':$ret['out_remark'] ,
] ;
BaseToolService::info($logArr,"call p_order_create_union_info") ;
if($ret['out_status'] == 1){
$success = $success + 1;
}else {
BaseToolService::error($logArr,"call p_order_create_union_errror") ;
$fail = $fail + 1;
}
}catch (\Exception $e){
$logArr = [
"sqlProcedure" => $sqlProcedure ,
"in_user_id" => $userId ,
"in_commission_detail_id" => $commissionDetailId ,
"in_order_number" => $orderNum ,
"msg" => "调用p_order_create异常" ,
"exception" => $e
] ;
BaseToolService::error($logArr,"call p_order_create_union_errror") ;
$fail = $fail + 1;
}