假如我现在有这样一个需求,在网站后台可以添加修改会员等级,每个等级有积分限制。然后不管添加或修改或者删除的时候,都要保证不管多少积分都只能在一个等级积分范围内。可能这样有点绕。举个例子吧。
如下有A,B,C,D四个等级,
A等级的积分是0-500,
B等级的积分是500-1000,
C等级的积分是1000-2000,
D等级的积分是2000-999999999
(假设最高等级积分是999999999)。
添加A等级时,数据库里积分范围应该是 0-999999999,
添加B等级的时候应该有两条数据,首先把A等级的最大值修改为500,然后再添加B等级,积分范围是500-999999999
添加C的时候,同样的有两步,先把B的最大值改为1000,然后再添加C,以此类推
......
如果此时要添加一条最小值为800的等级,那么先找到最小值比800小按最小值倒序排列的第一条。就是B等级,然后把B的最大值改为800,然后再找到后面那一条,就是C,把C的最小值改为800.
直接代码吧
添加时
//获取离该分数最近的最大值
$last_level = $this->model->where(array('shop_id' => $shop_id, 'max_commission >' => $commission,'type'=>0,'is_delete'=>0))->order_by('max_