From fc35332d22cf4e6fd45b16d125a2ab3aba6e78b6 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Wed, 16 Dec 2020 20:41:03 +0800 Subject: [PATCH] caifen --- hyhproject/app/controller/Index.php | 5 +- hyhproject/common/model/UserVouchers.php | 123 +++++++++++++---------- 2 files changed, 74 insertions(+), 54 deletions(-) diff --git a/hyhproject/app/controller/Index.php b/hyhproject/app/controller/Index.php index aa29927..d9aebed 100755 --- a/hyhproject/app/controller/Index.php +++ b/hyhproject/app/controller/Index.php @@ -17,7 +17,10 @@ class Index extends Base{ * @return [type] [description] */ public function startGiveVouchers(){ - Model('UserVouchers')->startGiveVouchers(); + return Model('UserVouchers')->startGiveVouchers(); + } + public function startRevokeVouchers(){ + return Model('UserVouchers')->startRevokeVouchers(); } /** * 首页 diff --git a/hyhproject/common/model/UserVouchers.php b/hyhproject/common/model/UserVouchers.php index ee5e437..ff25450 100755 --- a/hyhproject/common/model/UserVouchers.php +++ b/hyhproject/common/model/UserVouchers.php @@ -6,9 +6,78 @@ use think\Db; * 券数据 */ class UserVouchers extends Base{ + public function startRevokeVouchers(){ + $LOG = "=========================================".PHP_EOL; +// if('127.0.0.1' != $ip = request()->ip(0) ) return $ip; + set_time_limit(0); + $m = Model('common/Table'); + $m->setTable('user_vouchers_summary'); + Db::startTrans(); + try{ + $m = Model('common/Table'); + $m->setTable('user_vouchers_summary'); + if(1 == date('j')){ + //每月损耗 + $monthScale = round((100-dataConf('couponsNextMonthInitSacle'))*0.01,5); + $giveList = $m->getList([],'id, userId, expectedProductNum, expectedCouponsNum'); + foreach ($giveList as &$g) { + if($g['expectedProductNum'] > 0){ + $decNum = $g['expectedProductNum'] * $monthScale; + $this->insertVouchersNotice($g['userId'],0,$decNum,0,$desc='预获产品券月损耗所扣',0,1); + } + if($g['expectedCouponsNum'] > 0){ + $decNum = $g['expectedCouponsNum'] * $monthScale; + $this->insertVouchersNotice($g['userId'],0,0,$decNum,$desc='预获优惠券月损耗所扣',0,1); + } + } + } + // 每次所得值(费、税前)同时扣减“助购预获”值和“预获产品券”值,直至减为负数为止,负数部分按每天0.1%耗损。 + // A、当“助购预获”值为负数时,每天0.1%耗损在“预获产品券”值扣减。 + // B、当“预获产品券”值为负数时,每天0.1%耗损在“预获优惠券”值扣减。 + // C、当“助购预获”值和“预获产品券”值同为负数时,每天0.1%耗损在“预获优惠券”值同时扣减。 + $data = Db::name('user_vouchers_summary')->whereOr(["helpSaleNum"=>["lt", 0]])->whereOr(["expectedProductNum"=>["lt", 0]])->select(); + $LOG .= "=============开始循环=============".PHP_EOL; + foreach ($data as $_each){ + if ($_each['userId'] == 0) continue; + $LOG .= "===========当前用户#【{$_each['userId']}】==========".PHP_EOL; + $LOG .= "当前用户预获优惠券:{$_each['expectedCouponsNum']};预获产品券:{$_each['expectedProductNum']};助购券值:{$_each["helpSaleNum"]}".PHP_EOL; + if($_each["expectedProductNum"]<0){ + $LOG .= "17.1、成立".PHP_EOL; + $count = abs((float)$_each["expectedProductNum"]); + $LOG .= "17.1、负数值:{$count}".PHP_EOL; + if($_each["helpSaleNum"] < 0) { + $LOG .= "17.2、成立".PHP_EOL; + $count += abs((float)$_each["helpSaleNum"]); + $LOG .= "17.2、负数值:{$count}".PHP_EOL; + } + $val = $count*((float)dataConf("deductionRateWhennegPreCoupons")/100); + $LOG .= "17.3、:扣除预获优惠券:{$val}【助购券负值预获优惠券日损耗所扣】".PHP_EOL; + model('common/UserVouchers')->insertVouchersNotice($_each["userId"], 0, 0, $val, + "助购券负值预获优惠券日损耗所扣", 0); + }else{ + $LOG .= "17.4、成立".PHP_EOL; + $count = abs((float)$_each["helpSaleNum"]); + $LOG .= "17.4、负数值:{$count}".PHP_EOL; + $val = $count*((float)dataConf("deductionRateWhennegPreCoupons")/100); + $LOG .= "17.5、:扣除预获优惠券:{$val}【助购券负值预获优惠券日损耗所扣】".PHP_EOL; + model('common/UserVouchers')->insertVouchersNotice($_each["userId"], 0, $val, + 0, "助购券负值预获产品券日损耗所扣", 0); + } + $LOG .= "=========当前用户#【{$_each['userId']}】结束========".PHP_EOL; + } + $LOG .= "=============循环结束=============".PHP_EOL; + Db::commit(); + \think\Log::write($LOG); + return WSTReturn("ok", 1); + }catch (\Exception $e) { + dump($e); + Db::rollback();errLog($e); + return WSTReturn($e->getMessage(),-1); + } + } public function startGiveVouchers(){ $LOG = "=========================================".PHP_EOL; - if('127.0.0.1' != $ip = request()->ip(0) ) return $ip; +// if('127.0.0.1' != $ip = request()->ip(0) ) return $ip; set_time_limit(0); $sm = Model('common/SysSummary'); $sysData= $sm->getInfo('toPayFast,toPaySlow'); @@ -39,21 +108,6 @@ TXT; try{ $m = Model('common/Table'); $m->setTable('user_vouchers_summary'); - if(1 == date('j')){ - //每月损耗 - $monthScale = round((100-dataConf('couponsNextMonthInitSacle'))*0.01,5); - $giveList = $m->getList([],'id, userId, expectedProductNum, expectedCouponsNum'); - foreach ($giveList as &$g) { - if($g['expectedProductNum'] > 0){ - $decNum = $g['expectedProductNum'] * $monthScale; - $this->insertVouchersNotice($g['userId'],0,$decNum,0,$desc='预获产品券月损耗所扣',0,1); - } - if($g['expectedCouponsNum'] > 0){ - $decNum = $g['expectedCouponsNum'] * $monthScale; - $this->insertVouchersNotice($g['userId'],0,0,$decNum,$desc='预获优惠券月损耗所扣',0,1); - } - } - } $where['isDisabled'] = 0; //总预获产品券 $allPreProduct = $m->getSum($where,'expectedProductNum'); @@ -216,43 +270,6 @@ TXT; if ($unConv > 0) $sm->addSysSummary(0, $unConv, 1, "加入系统未转换值"); - Db::startTrans(); - // 每次所得值(费、税前)同时扣减“助购预获”值和“预获产品券”值,直至减为负数为止,负数部分按每天0.1%耗损。 - // A、当“助购预获”值为负数时,每天0.1%耗损在“预获产品券”值扣减。 - // B、当“预获产品券”值为负数时,每天0.1%耗损在“预获优惠券”值扣减。 - // C、当“助购预获”值和“预获产品券”值同为负数时,每天0.1%耗损在“预获优惠券”值同时扣减。 - $data = Db::name('user_vouchers_summary')->whereOr(["helpSaleNum"=>["lt", 0]])->whereOr(["expectedProductNum"=>["lt", 0]])->select(); - $LOG .= "=============开始循环=============".PHP_EOL; - foreach ($data as $_each){ - if ($_each['userId'] == 0) continue; - $LOG .= "===========当前用户#【{$_each['userId']}】==========".PHP_EOL; - $LOG .= "当前用户预获优惠券:{$_each['expectedCouponsNum']};预获产品券:{$_each['expectedProductNum']};助购券值:{$_each["helpSaleNum"]}".PHP_EOL; - if($_each["expectedProductNum"]<0){ - $LOG .= "17.1、成立".PHP_EOL; - $count = abs((float)$_each["expectedProductNum"]); - $LOG .= "17.1、负数值:{$count}".PHP_EOL; - if($_each["helpSaleNum"] < 0) { - $LOG .= "17.2、成立".PHP_EOL; - $count += abs((float)$_each["helpSaleNum"]); - $LOG .= "17.2、负数值:{$count}".PHP_EOL; - } - $val = $count*((float)dataConf("deductionRateWhennegPreCoupons")/100); - $LOG .= "17.3、:扣除预获优惠券:{$val}【助购券负值预获优惠券日损耗所扣】".PHP_EOL; - model('common/UserVouchers')->insertVouchersNotice($_each["userId"], 0, 0, $val, - "助购券负值预获优惠券日损耗所扣", 0); - }else{ - $LOG .= "17.4、成立".PHP_EOL; - $count = abs((float)$_each["helpSaleNum"]); - $LOG .= "17.4、负数值:{$count}".PHP_EOL; - $val = $count*((float)dataConf("deductionRateWhennegPreCoupons")/100); - $LOG .= "17.5、:扣除预获优惠券:{$val}【助购券负值预获优惠券日损耗所扣】".PHP_EOL; - model('common/UserVouchers')->insertVouchersNotice($_each["userId"], 0, $val, - 0, "助购券负值预获产品券日损耗所扣", 0); - } - $LOG .= "=========当前用户#【{$v['userId']}】结束========".PHP_EOL; - } - $LOG .= "=============循环结束=============".PHP_EOL; - Db::commit(); \think\Log::write($LOG); \think\Log::write(<<