This commit is contained in:
Jerry Yan 2020-12-16 20:41:03 +08:00
parent 03b7bca65f
commit fc35332d22
2 changed files with 74 additions and 54 deletions

View File

@ -17,7 +17,10 @@ class Index extends Base{
* @return [type] [description] * @return [type] [description]
*/ */
public function startGiveVouchers(){ public function startGiveVouchers(){
Model('UserVouchers')->startGiveVouchers(); return Model('UserVouchers')->startGiveVouchers();
}
public function startRevokeVouchers(){
return Model('UserVouchers')->startRevokeVouchers();
} }
/** /**
* 首页 * 首页

View File

@ -6,9 +6,78 @@ use think\Db;
* 券数据 * 券数据
*/ */
class UserVouchers extends Base{ 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(){ public function startGiveVouchers(){
$LOG = "=========================================".PHP_EOL; $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); set_time_limit(0);
$sm = Model('common/SysSummary'); $sm = Model('common/SysSummary');
$sysData= $sm->getInfo('toPayFast,toPaySlow'); $sysData= $sm->getInfo('toPayFast,toPaySlow');
@ -39,21 +108,6 @@ TXT;
try{ try{
$m = Model('common/Table'); $m = Model('common/Table');
$m->setTable('user_vouchers_summary'); $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; $where['isDisabled'] = 0;
//总预获产品券 //总预获产品券
$allPreProduct = $m->getSum($where,'expectedProductNum'); $allPreProduct = $m->getSum($where,'expectedProductNum');
@ -216,43 +270,6 @@ TXT;
if ($unConv > 0) $sm->addSysSummary(0, $unConv, 1, "加入系统未转换值"); 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($LOG);
\think\Log::write(<<<TEXT \think\Log::write(<<<TEXT
系统未转换值调试内容: 系统未转换值调试内容: