From b611d01d5d5b448976c80e27cce4c5ce42783136 Mon Sep 17 00:00:00 2001 From: zhaojs <349234519@qq.com> Date: 星期二, 18 七月 2023 14:51:10 +0800 Subject: [PATCH] no message --- application/api/logic/ActivityInfo.php | 74 ++++++++++++++++++++++++++++++------- 1 files changed, 60 insertions(+), 14 deletions(-) diff --git a/application/api/logic/ActivityInfo.php b/application/api/logic/ActivityInfo.php index 0fcac64..2cce4c7 100644 --- a/application/api/logic/ActivityInfo.php +++ b/application/api/logic/ActivityInfo.php @@ -4,6 +4,8 @@ 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; class ActivityInfo extends BasicLogic { @@ -99,7 +101,6 @@ { } - } /** @@ -111,9 +112,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 +132,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 []; @@ -155,32 +166,46 @@ $this->run_UpdateActCount($act['id'],2); continue; } + //娲诲姩瑙勫垯 + $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; } //璁$畻搴斿緱閲戦 $price=0; - // - // - // - - - - $tradeId=$act['id'].$cus['user_id']; + switch($rewardRule->act_type) + { + case 'step_all'://闃舵瀹屾垚鍚庤禒閫� + $price=$this->stepAllRule($rewardRule->rule,$yqCount[0]['count']); + break; + default: + 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; + } //鎻掑叆鑱氭帹瀹㈢殑璁㈠崟 $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,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); @@ -199,4 +224,25 @@ } } + /** + * step_all瑙勫垯 + * + */ + public function stepAllRule($rule,$yqCount) + { + $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; + } + } \ No newline at end of file -- Gitblit v1.9.3