级差奖

**

  • 级差奖
    *@ApiMethod (POST)
  • $price 价格 $user_id 价格
    */
 function _range($price,$user_id)
{
    $user = Db::name('user')->where('id',$user_id)->find();
    $path = Db::name('user')->where('id',$user['id'])->value('path');
    $path = array_reverse(explode(',',$path));
    $rate = [
        '1'=>Db::name('config')->where('id',78)->value('value'),
        '2'=>Db::name('config')->where('id',79)->value('value'),
        '3'=>Db::name('config')->where('id',80)->value('value'),
        '4'=>Db::name('config')->where('id',81)->value('value'),
        '5'=>Db::name('config')->where('id',82)->value('value')
    ];
    $first = 0;//第一次拿奖励
    $user_level = $user['four_level'];
    Db::startTrans();
    try {
        foreach ($path as $k=>$v){
            $parent_level = Db::name('user')->where('id',$path[$k])->value('four_level');
            $money = Db::name('user')->where('id',$path[$k])->value('money');
          
            if ($parent_level > $user_level){
                if ($first == 0){
                    $rate_1 =  $rate[$parent_level];
                }else{
                    $rate_1 = $rate[$parent_level] - $rate[$user_level];
                }
                $reward = $price * $rate_1;
                Db::name('user')->where('id',$path[$k])->setInc('money',$reward);
                $money_log = [
                    'user_id'=>$path[$k],
                    'number'=>$reward,
                    'before'=>$money,
                    'after'=>$money + $reward,
                    'type'=>'range_01',
                    'create_time'=>time()
                ];
                Db::name('money_log')->insert($money_log);

                $user_level = $parent_level;
                $first = 1;
            }
        }
        Db::commit();
        // $this->success('成功');
    } catch (\Exception $e) {
        Db::rollback();
        // $this->error($e->getMessage());
    }
}

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值