/**生成红包的函数*/ |
function getRandMoney( $totalMoney , $totalPeople =2, $miniMoney =1){ |
|
$randRemainMoney = $totalMoney - $totalPeople * $miniMoney ; //剩余需要随机的钱数 |
return _getRandMoney( $randRemainMoney , $totalPeople , $miniMoney ); |
} |
|
/**红包生成的逻辑代码*/ |
function _getRandMoney( $totalMoney , $totalPeople , $miniMoney ){ |
|
$returnMessage = array ( 'status' =>1, 'data' =>NULL); |
if ( $totalMoney > 0){ |
$returnMessage [ 'data' ] = _randMoney( $totalMoney , $totalPeople , $miniMoney ); |
} elseif ( $totalMoney == 0){ |
$returnMessage [ 'data' ] = array_fill (0, $totalPeople , 1); |
} else { |
$returnMessage [ 'status' ] = -1; |
$returnMessage [ 'data' ] = '参数传递有误,生成红包失败' ; |
} |
|
return $returnMessage ; |
} |
|
/*参数无误,开始生成对应的红包金额*/ |
function _randMoney( $totalMoney , $totalPeople , $miniMoney ){ |
|
$data = array_fill (0, $totalPeople , $miniMoney ); |
if ( $totalPeople > 1){ |
foreach ( $data as $k => $v ){ |
if ( $k == $totalPeople -1){ |
$data [ $k ] = $totalMoney + $v ; |
break ; |
} else { |
if ( $totalMoney == 0) break ; |
$randMoney = rand(0, $totalMoney ); |
$totalMoney -= $randMoney ; |
$data [ $k ] = $randMoney + $v ; |
} |
} |
} |
return $data ; |
} |