zhaojs
2023-07-12 24ce6333c316a498be1632a1ec7a3991e149baf4
application/api/logic/ActivityInfo.php
@@ -156,38 +156,43 @@
                continue;
            }
            //活动规则
            $rewardRule=json_encode($act['act_json']);
            $rewardRule=json_decode($act['act_json']);
            foreach($cusList as $cus)
            {//循环参与活动的会员
                $tradeId=$act['id'].'u'.$cus['user_id'];
                $yqCount=Db::query('select count(1) as count from t_user where invitation_id=? and invite_bind_time>=? and invite_bind_time<=?',[$cus['user_id'],$cus['create_time'],$actEndTime]);
                if(empty($yqCount))
                {
                    Db::execute('update t_recruit_act set settlement_status=?,settlement_time=?,act_count=0,act_award=0 where id=?',[1, date("Y-m-d H:i:s",  time()),$tradeId]);
                    continue;
                }
                //计算应得金额
                $price=0;
                switch($rewardRule['act_type'])
                switch($rewardRule->act_type)
                {
                    case 'step_all'://阶梯完成后赠送
                        $this->stepAllRule($rewardRule['rule'],$yqCount['count']);
                        $price=$this->stepAllRule($rewardRule->rule,$yqCount[0]['count']);
                        break;
                    default:
                        continue;
                    break;
                        break;
                }
                if($price<=0)
                {
                    Db::execute('update t_recruit_act set settlement_status=?,settlement_time=?,act_count=?,act_award=0 where id=?',[1, date("Y-m-d H:i:s",  time()),$yqCount[0]['count'],$tradeId]);
                    continue;
                }
                $tradeId=$act['id'].$cus['user_id'];
                //插入聚推客的订单
                $tradeHas=Db::query('select id from t_jtk_union_order_commission where trade_parent_id=?',[$tradeId]);
                if(!empty($tradeHas))
                {//已经有订单
                    continue;
                }
                $tradeRes=Db::execute('insert into t_jtk_union_order_commission (trade_parent_id,trade_id,member_id,buy_member_id,is_own,alipay_total_price,pub_share_pre_fee,item_title,item_id,is_settle,tb_paid_time,create_time,update_time)values(?,?,?,?,1,?,?,?,?,?,?,?,?)',[$tradeId,$tradeId,$cus['user_id'],$cus['user_id'],$price,$price,$act['act_name'].'-活动奖励',$act['id'],0,time(),time(),time()]);
                $tradeRes=Db::execute('insert into t_jtk_union_order_commission (trade_parent_id,trade_id,member_id,buy_member_id,is_own,alipay_total_price,pub_share_pre_fee,item_title,item_id,is_settle,tb_paid_time,create_time,update_time)values(?,?,?,?,1,?,?,?,?,?,?,?,?)',[$tradeId,$tradeId,$cus['user_id'],$cus['user_id'],$price,$price,$act['act_name'].'-活动奖励',$act['id'],0,date("Y-m-d H:i:s",  time()),time(),time()]);
                if($tradeRes==1)
                {//修改计算状态
                    Db::execute('update t_recruit_act set settlement_status=?,settlement_time=? where id=?',[1,time(),$tradeId]);
                    Db::execute('update t_recruit_act set settlement_status=?,settlement_time=?,act_count=?,act_award=? where id=?',[1, date("Y-m-d H:i:s",  time()),$yqCount[0]['count'],$price,$tradeId]);
                }
            }
            $this->run_UpdateActCount($act['id'],2);
@@ -212,7 +217,19 @@
     */
    public function stepAllRule($rule,$yqCount)
    {
        $currentStep=$rule->where('c_count','<=',$yqCount)->max('c_count');
        $maxReward=0;
        foreach($rule as $r_item)
        {
            if($r_item->c_count>$yqCount)
            {
                continue;
            }
            if($maxReward<$r_item->reward)
            {
                $maxReward=$r_item->reward;
            }
        }
        return $maxReward;
    }
}