zhaojs
2023-07-31 8dcfae4fff98fbbb19ff46bd9750f25bc56801a9
application/api/logic/ActivityInfo.php
@@ -4,6 +4,10 @@
use app\common\logic\Basic as BasicLogic;
use think\console\output\descriptor\Console;
use think\Db;
use app\common\model\User as ModelUser;
use app\api\logic\SettlementRecord as LogicSettlementRecord;
use app\api\logic\UserBrowse as LogicUserBrowse;
class ActivityInfo extends BasicLogic
{
@@ -79,27 +83,35 @@
        try{
             //查询进行中的招募活动
            $nowTime= date("Y-m-d H:i:s",  time());
            $actList=Db::query('select id from t_activity_manage where act_status=1 and start_time<=? and end_time>=? and act_type=0 limit 1',[$nowTime,$nowTime]);
            $actList=Db::query('select id,end_time from t_activity_manage where act_status=1 and start_time<=? and end_time>=? and act_type=0 limit 1',[$nowTime,$nowTime]);
            if(empty($actList))
            {//没有进行中的活动,不用处理
                return true;
            }
            //查询是否参加了招募活动
            $recruitid=$actList[0]['id'].'u'.$userid;
            $actReinfo=Db::query('select id from t_recruit_act where id=? and settlement_status=0',[$recruitid]);
            $actReinfo=Db::query('select id,create_time from t_recruit_act where id=? and user_t=0 and settlement_status=0',[$recruitid]);
            if(empty($actReinfo))
            {//没有参加活动,不用处理
                return true;
            }
            //获取已邀请人数
            $actEndTime=strtotime($actList[0]['end_time']);//活动结束时间
            $yqCount=Db::query('select count(DISTINCT(login_deviceid)) as count from t_user where invitation_id=? and status=? and invite_bind_time>=? and invite_bind_time<=?',[$userid,'normal',$actReinfo[0]['create_time'],$actEndTime]);
           $count=0;
           if(!empty($yqCount))
           {
            $count=$yqCount[0]['count'];
           }
            //增加count
            $countres=Db::execute('update t_recruit_act set recruit_count=recruit_count+1 where id=?',[$recruitid]);
            $countres=Db::execute('update t_recruit_act set recruit_count=? where id=?',[$count,$recruitid]);
            return $countres==1;
        }
        catch(\Exception $e)
        {
        }
    }
    /**
@@ -111,9 +123,19 @@
        $count=Db::query('select recruit_count from t_recruit_act where id=?',[$recruitid]);
        if(empty($count))
        {
            return 0;
            return [
                'membercount'=>0,
                'award'=>0
            ];
        }
        return $count[0]['recruit_count'];
        //获取金额信息
        $actList=Db::query('select * from t_activity_manage where id=? and count_status=0 and act_type=0 and act_status=1',[$actid]);
        $rewardRule=json_decode($actList[0]['act_json']);
        $award=$this->stepAllRule($rewardRule->rule,$count[0]['recruit_count']);
        return [
            'membercount'=>$count[0]['recruit_count'],
            'award'=>$award
        ];
    }
    /**
@@ -121,7 +143,7 @@
     */
    public function getRankingList($actid,$userid)
    {
        $rList=Db::query('   SELECT a.id,a.nickname,a.avatar,b.recruit_count from t_recruit_act b left join t_user a on a.id =b.user_id where b.act_id=? and b.recruit_count>0 order by b.recruit_count desc limit 7',[$actid]);
        $rList=Db::query('SELECT a.id,a.nickname,a.avatar,b.recruit_count from t_recruit_act b left join t_user a on a.id =b.user_id where b.act_id=? and b.recruit_count>0 order by b.recruit_count desc limit 7',[$actid]);
        if(empty($rList))
        {
            return [];
@@ -159,9 +181,11 @@
            $rewardRule=json_decode($act['act_json']);
            foreach($cusList as $cus)
            {//循环参与活动的会员
                $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]);
                $tradeId=$act['id'].'u'.$cus['user_id'];
                $yqCount=Db::query('select count(DISTINCT(login_deviceid)) as count from t_user where invitation_id=? and status=? and invite_bind_time>=? and invite_bind_time<=?',[$cus['user_id'],'normal',$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;
                }
                //计算应得金额
@@ -176,20 +200,23 @@
                }
                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'].'u'.$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()]);
                //计算订单收益
                $title = $act['act_name'].'-活动奖励结算';
                ModelUser::money('inc',$price,$cus['user_id'],$title);
                LogicSettlementRecord::writeLog('jtk',$price,$cus['user_id'],$title);
                $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,tk_status,tk_earning_time,pub_share_fee)values(?,?,?,?,1,?,?,?,?,?,?,?,?,?,?,?)',[$tradeId,$tradeId,$cus['user_id'],$cus['user_id'],$price,$price,$act['act_name'].'-活动奖励',$act['id'],1,date("Y-m-d H:i:s",  time()),time(),time(),3,time(),$price]);
                if($tradeRes==1)
                {//修改计算状态
                    Db::execute('update t_recruit_act set settlement_status=?,settlement_time=? where id=?',[1, date("Y-m-d H:i:s",  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);
@@ -229,4 +256,22 @@
        return $maxReward;
    }
    /**
     * 自定义弹窗-0元购
     */
    public function popupcus_freebuy($userInfo)
    {
        $LogicUserBrowse = new LogicUserBrowse();
        $res = $LogicUserBrowse->checkIsFirstFree($userInfo->id);
        if($res === false)
        {
            return false;
        }
        if(empty($res))
        {
            return true;
        }
        return false;
    }
}