## 积分过期使用方法
```
// 使用积分
function usePoint($relation_guid,$pay_point){
if(intval($pay_point)<0) return ['code'=>201,'msg'=>'使用积分不能为负'];
# 获取用户可用积分(id,可用积分数)
$where = "status=1 and point>0 and relation_guid='$relation_guid'";
$change_point = \think\Db::name('point_change')
->where($where)
->order('id ASC')
->field('id,(point-use_point) as remain_point')
->select();
if(!$change_point) return ['code'=>201,'msg'=>'暂无可用积分'];
# end-获取用户可用积分(id,可用积分数)
# 得到此次兑换需要的id值
$sum_point = 0;
$idA = [];
foreach ($change_point as $k=>$v){
$sum_point += $v['remain_point'];
$idA[] = $v['id'];
if($sum_point>=$pay_point){
$sum_point;
break;
}
}
if($sum_point<$pay_point) return ['code'=>202,'msg'=>'您的积分不够啦'];
# end-得到此次兑换需要的id值
# 改变积分变化表中的‘status’值 && 'use_point'积分值
if($sum_point==$pay_point){
$idA = array_chunk($idA,300); // 控制IN子查询传入的参数数量,减轻数据库压力
foreach ($idA as $v){
$idS = implode(',',$v);
\think\Db::name('point_change')->where("id in ($idS)")->update(['status'=>2]);
}
return 1;
}else{
# 剩余积分总和大于需支付积分
$end_id = array_pop($idA); // 删除最后一个数组
并获取最后一个数组的值
$remain_point = $sum_point-$pay_point; // 数组最后一位剩余积分 = 总积分 - 支付积分
$endPoint = \think\Db::name('point_change')->where('id',$end_id)->value('point');
$use_point = $endPoint-$remain_point; // 计算已使用积分
if (!$idA) return \think\Db::name('point_change')->where('id',$end_id)->update(['use_point'=>$use_point]);
# 控制IN子查询传入的参数数量,减轻数据库压力
$idA = array_chunk($idA,300);
foreach ($idA as $v){
$idS = implode(',',$v);
\think\Db::name('point_change')->where("id in ($idS)")->update(['status'=>2]);
}
# end-控制IN子查询传入的参数数量,减轻数据库压力
return \think\Db::name('point_change')->where('id',$end_id)->update(['use_point'=>$use_point]);
}
# end-改变积分变化表中的‘status’值 && 'use_point'积分值
}
```