408 lines
22 KiB
PHP
Executable File
408 lines
22 KiB
PHP
Executable File
<?php
|
||
namespace wstmart\common\model;
|
||
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;
|
||
set_time_limit(0);
|
||
$sm = Model('common/SysSummary');
|
||
$sysData= $sm->getInfo('toPayFast,toPaySlow');
|
||
//获取代快付值
|
||
$toPayFast = $sysData['toPayFast'];
|
||
$HistoryToPayFast = $sysData['toPayFast'];
|
||
//今日代快付释放值
|
||
$payFast = round($toPayFast * (dataConf('fastPayDayScale')*0.01),5);
|
||
//获取代慢付值
|
||
$toPaySlow = $sysData['toPaySlow'];
|
||
$HistoryToPaySlow = $sysData['toPaySlow'];
|
||
$m = Model('common/Table');
|
||
$m->setTable('user_vouchers_summary');
|
||
$HistoryVouchersSummarySum = $m->getSum(['isDisabled'=>0],'expectedProductNum+expectedCouponsNum');
|
||
//今日付慢付释放值
|
||
$paySlow = round($toPaySlow * (dataConf('slowPayDayScale')*0.01),5);
|
||
//应释放总额
|
||
$toPaySum = $payFast + $paySlow;
|
||
$LOG .= <<<TXT
|
||
---当前代快付值:{$HistoryToPayFast}
|
||
1、代快付释放值:{$payFast}
|
||
---当前代慢付值:{$HistoryToPaySlow}
|
||
2、代慢付释放值:{$paySlow}
|
||
5、释放总额:{$toPaySum}
|
||
|
||
TXT;
|
||
Db::startTrans();
|
||
try{
|
||
$m = Model('common/Table');
|
||
$m->setTable('user_vouchers_summary');
|
||
$where['isDisabled'] = 0;
|
||
//总购物股
|
||
$allPreProduct = $m->getSum($where,'expectedProductNum');
|
||
//总预获优惠券
|
||
$allPreCoupons = $m->getSum($where,'expectedCouponsNum');
|
||
//最大释放总额 预代付值 * 比例
|
||
$maxPayNum = ($allPreProduct + $allPreCoupons) * (dataConf('couponsMaxGiveSacle')*0.01);
|
||
$LOG .= "3、最大释放总额:{$maxPayNum}".PHP_EOL;
|
||
$LOG .= "4、转换前预代付值:".($allPreProduct + $allPreCoupons).PHP_EOL;
|
||
if($toPaySum > $maxPayNum){
|
||
//加入代慢付值
|
||
$LOG .= "6、成立".PHP_EOL;
|
||
$addPaySlow = round($toPaySum - $maxPayNum,5);
|
||
$LOG .= "6、代慢付增加:{$addPaySlow}【应释放总额大于最大释放总额】".PHP_EOL;
|
||
$sm->addSysSummary(0,$addPaySlow,1,'应释放总额大于最大释放总额');
|
||
}
|
||
//扣减系统释放值
|
||
if ($paySlow < 0) $paySlow = 0;
|
||
if ($payFast < 0) $payFast = 0;
|
||
$minusSysNum = $payFast+$paySlow;
|
||
$LOG .= "---系统扣除:快:{$payFast};慢:{$paySlow}【扣减系统释放值】".PHP_EOL;
|
||
$sm->addSysSummary($payFast,$paySlow,2,'扣减系统释放值');
|
||
//取最小值作为总释放额
|
||
$payNum = min($maxPayNum,$toPaySum);
|
||
if($payNum==0) return;
|
||
//每人应释放数
|
||
$personNum = $payNum / ($allPreProduct + $allPreCoupons);
|
||
$LOG .= "8、计算基数1:{$personNum}".PHP_EOL;
|
||
//将所有未释放的的isGive设为0
|
||
//获取今日0点时间戳
|
||
$today = strtotime(date("Y-m-d"),time());
|
||
$m->updateInfo('giveDate < '.$today,['isGive'=>0]);
|
||
$list = $m->getList(['isDisabled'=>0,'isGive'=>0],'
|
||
id,
|
||
userId,
|
||
expectedProductNum,
|
||
expectedCouponsNum,
|
||
alreadyProductNum,
|
||
alreadyCouponsNum,
|
||
giveDay
|
||
');
|
||
$time = time();
|
||
$LOG .= "=============开始循环=============".PHP_EOL;
|
||
foreach ($list as &$v) {
|
||
if ($v['userId'] == 0) continue;
|
||
$LOG .= "===========当前用户#【{$v['userId']}】==========".PHP_EOL;
|
||
$LOG .= "当前用户预获优惠券:{$v['expectedCouponsNum']};购物股:{$v['expectedProductNum']}".PHP_EOL;
|
||
unset($data);
|
||
$minNumer = 15;
|
||
//都小于15不统计,直接加入代慢付
|
||
// 原:当购户“预获优惠券”、“购物股”的值同时≤15元时,所获“已获优惠券”、“已获产品券”转入代快付值
|
||
// 改为:当购户“预获优惠券”、“购物股”的值同时≤15元时,所获“已获优惠券”、“已获产品券”转入代慢付值
|
||
$couponsScale = dataConf('hasCoupousScale');//优惠券比例
|
||
$productScale = 100 - $couponsScale;//产品券比例
|
||
if($v['expectedProductNum'] <= $minNumer && $v['expectedCouponsNum'] <= $minNumer){
|
||
$LOG .= "9、预获优惠券:{$v['expectedCouponsNum']};购物股:{$v['expectedProductNum']},均小于15".PHP_EOL;
|
||
$toSlowNum = round($personNum * ($v['expectedProductNum'] + $v['expectedCouponsNum']),5);
|
||
$LOG .= "9、退回系统慢值:{$toSlowNum}".PHP_EOL;
|
||
$sm->addSysSummary(0,$toSlowNum,1,'用户ID['.$v['userId'].']双预获券都小于15/日转换退回');
|
||
$LOG .= "=========当前用户#【{$v['userId']}】结束========".PHP_EOL;
|
||
continue;
|
||
}else if($v['expectedProductNum'] <= $minNumer){//购物股小于15;
|
||
$LOG .= "10、购物股:{$v['expectedProductNum']}小于15".PHP_EOL;
|
||
$personAlreadyProductNum = 0;
|
||
$personAlreadyCouponsNum = $personNum * ($v['expectedProductNum'] + $v['expectedCouponsNum']);
|
||
$LOG .= "10、用户需要获得的已获产品券:{$personAlreadyProductNum}".PHP_EOL;
|
||
$LOG .= "10、用户需要获得的已获优惠券:{$personAlreadyCouponsNum}".PHP_EOL;
|
||
}else if($v['expectedCouponsNum'] <= $minNumer){//预获优惠券小于15
|
||
$LOG .= "11、预获优惠券:{$v['expectedCouponsNum']}小于15".PHP_EOL;
|
||
$personAlreadyCouponsNum = 0;
|
||
$personAlreadyProductNum = $personNum * ($v['expectedProductNum'] + $v['expectedCouponsNum']);
|
||
$LOG .= "11、用户需要获得的已获产品券:{$personAlreadyProductNum}".PHP_EOL;
|
||
$LOG .= "11、用户需要获得的已获优惠券:{$personAlreadyCouponsNum}".PHP_EOL;
|
||
}else{//都大于15
|
||
$LOG .= "---优惠券比例:{$couponsScale}".PHP_EOL;
|
||
$LOG .= "---产品券比例:{$productScale}".PHP_EOL;
|
||
$personAlreadyProductNum = $personNum * ($v['expectedProductNum'] + $v['expectedCouponsNum']) * ($productScale*0.01);
|
||
$personAlreadyCouponsNum = $personNum * ($v['expectedProductNum'] + $v['expectedCouponsNum']) * ($couponsScale*0.01);
|
||
$LOG .= "8.1、用户需要获得的已获产品券:{$personAlreadyProductNum}".PHP_EOL;
|
||
$LOG .= "8.2、用户需要获得的已获优惠券:{$personAlreadyCouponsNum}".PHP_EOL;
|
||
}
|
||
//都小于就算了
|
||
if($v['expectedProductNum'] < $personAlreadyProductNum && $v['expectedCouponsNum'] < $personAlreadyCouponsNum){
|
||
$LOG .= "12、用户需要获得的已获产品券:{$personAlreadyProductNum} < 购物股:{$v['expectedProductNum']}".PHP_EOL;
|
||
$LOG .= "12、用户需要获得的已获优惠券:{$personAlreadyCouponsNum} < 预获优惠券:{$v['expectedCouponsNum']}".PHP_EOL;
|
||
$personAlreadyProductNum = 0;
|
||
$personAlreadyCouponsNum = 0;
|
||
$LOG .= "---用户需要获得的已获产品券:{$personAlreadyProductNum}".PHP_EOL;
|
||
$LOG .= "---用户需要获得的已获优惠券:{$personAlreadyCouponsNum}".PHP_EOL;
|
||
}
|
||
//实际有购物股小于应给值
|
||
if($v['expectedProductNum'] < $personAlreadyProductNum){
|
||
$LOG .= "13、用户需要获得的已获产品券:{$personAlreadyProductNum} < 购物股:{$v['expectedProductNum']}".PHP_EOL;
|
||
$personAlreadyCouponsNum += $personAlreadyProductNum;
|
||
$personAlreadyProductNum = 0;
|
||
$LOG .= "---用户需要获得的已获产品券:{$personAlreadyProductNum}".PHP_EOL;
|
||
$LOG .= "---用户需要获得的已获优惠券:{$personAlreadyCouponsNum}".PHP_EOL;
|
||
}
|
||
//实际有预获优惠券小于应给值
|
||
if($v['expectedCouponsNum'] < $personAlreadyCouponsNum){
|
||
$LOG .= "14、用户需要获得的已获优惠券:{$personAlreadyCouponsNum} < 预获优惠券:{$v['expectedCouponsNum']}".PHP_EOL;
|
||
$personAlreadyProductNum += $personAlreadyCouponsNum;
|
||
$personAlreadyCouponsNum = 0;
|
||
$LOG .= "---用户需要获得的已获产品券:{$personAlreadyProductNum}".PHP_EOL;
|
||
$LOG .= "---用户需要获得的已获优惠券:{$personAlreadyCouponsNum}".PHP_EOL;
|
||
}
|
||
|
||
$LOG .= "最终:用户需要获得的已获产品券:{$personAlreadyProductNum}".PHP_EOL;
|
||
$LOG .= "最终:用户需要获得的已获优惠券:{$personAlreadyCouponsNum}".PHP_EOL;
|
||
|
||
if($personAlreadyProductNum >= 0.01){
|
||
|
||
$LOG .= "用户扣购物股:{$personAlreadyProductNum}【购物股日转换所扣】".PHP_EOL;
|
||
$this->insertVouchersNotice($v['userId'],0,$personAlreadyProductNum,0,$desc='购物股日转换所扣',0,0);//购物股减
|
||
//加入变动记录,最后一位//1产品券2优惠券3旺旺券4现金券
|
||
$LOG .= "用户加已获产品券:{$personAlreadyProductNum}【日转换所得】".PHP_EOL;
|
||
$this->insertAlreadyVouchersNotice($v['userId'],0,$personAlreadyProductNum,0,'日转换所得',1,1);
|
||
// Model('common/LogMoneys')->addMoneyLog(0,$v['userId'],0,2,'购物股日转换所得',1,$personAlreadyProductNum,'dayPay',1);
|
||
$data['alreadyProductNum'] = $v['alreadyProductNum'] + $personAlreadyProductNum;//已获产品券加
|
||
}
|
||
if($personAlreadyCouponsNum >= 0.01){
|
||
$LOG .= "用户扣预获优惠券:{$personAlreadyCouponsNum}【预获优惠券日转换所扣】".PHP_EOL;
|
||
$this->insertVouchersNotice($v['userId'],0,0,$personAlreadyCouponsNum,$desc='预获优惠券日转换所扣',0,0);//预获优惠券减
|
||
//加入变动记录,最后一位//1产品券2优惠券3旺旺券4现金券
|
||
$LOG .= "用户加已获优惠券:{$personAlreadyCouponsNum}【预获优惠券日转换所得】".PHP_EOL;
|
||
$this->insertAlreadyVouchersNotice($v['userId'],0,0,$personAlreadyCouponsNum,'预获优惠券日转换所得',1,1);
|
||
// Model('common/LogMoneys')->addMoneyLog(0,$v['userId'],0,2,'预获优惠券日转换所得',1,$personAlreadyCouponsNum,'dayPay',2);
|
||
$data['alreadyCouponsNum'] = $v['alreadyCouponsNum'] + $personAlreadyCouponsNum;//已获优惠券加
|
||
}
|
||
$data['isGive'] = 1;
|
||
$data['giveDate'] = $time;
|
||
$data['giveDay'] = $v['giveDay'] + 1;
|
||
Db::name('user_vouchers_summary')->where(['id'=>$v['id']])->update($data);
|
||
$LOG .= "=========当前用户#【{$v['userId']}】结束========".PHP_EOL;
|
||
}
|
||
Db::commit();
|
||
$LOG .= "=============循环结束=============".PHP_EOL;
|
||
|
||
$sm = Model('common/SysSummary');
|
||
$sysData= $sm->getInfo('toPayFast,toPaySlow');
|
||
$toPayFast = $sysData['toPayFast'];
|
||
$toPaySlow = $sysData['toPaySlow'];
|
||
$m = Model('common/Table');
|
||
$m->setTable('user_vouchers_summary');
|
||
$vouchersSummarySum = $m->getSum(['isDisabled'=>0],'expectedProductNum+expectedCouponsNum');
|
||
$deltaFast = $HistoryToPayFast - $toPayFast;
|
||
$deltaSlow = $HistoryToPaySlow - $toPaySlow;
|
||
$deltaConv = $HistoryVouchersSummarySum - $vouchersSummarySum;
|
||
$unConv = $deltaFast + $deltaSlow - $deltaConv;
|
||
$LOG .= <<<TXT
|
||
---当前代快付值:{$toPayFast}
|
||
---当前代慢付值:{$toPaySlow}
|
||
18、转换后预代付值:{$vouchersSummarySum}
|
||
19、预代付值差值:{$deltaConv}
|
||
---代快付值差值:{$deltaFast}
|
||
---代慢付值差值:{$deltaSlow}
|
||
---未转换值:{$unConv}
|
||
|
||
TXT;
|
||
|
||
if ($unConv > 0) $sm->addSysSummary(0, $unConv, 1, "加入系统未转换值");
|
||
|
||
\think\Log::write($LOG);
|
||
\think\Log::write(<<<TEXT
|
||
系统未转换值调试内容:
|
||
hpf={$HistoryToPayFast}
|
||
hps={$HistoryToPaySlow}
|
||
hvs={$HistoryVouchersSummarySum}
|
||
tpf={$toPayFast}
|
||
tps={$toPaySlow}
|
||
pf={$payFast}
|
||
ps={$paySlow}
|
||
vs={$vouchersSummarySum}
|
||
ms={$minusSysNum}
|
||
df={$deltaFast}
|
||
ds={$deltaSlow}
|
||
dc={$deltaConv}
|
||
uc={$unConv}
|
||
TEXT
|
||
);
|
||
return WSTReturn("ok", 1);
|
||
}catch (\Exception $e) {
|
||
dump($e);
|
||
Db::rollback();errLog($e);
|
||
return WSTReturn($e->getMessage(),-1);
|
||
}
|
||
}
|
||
/**
|
||
* 插入已获会员券值记录
|
||
* @param [type] $userId [会员ID]
|
||
* @param [type] $orderId [订单ID]
|
||
* @param integer $expectedProductNum [购物股]
|
||
* @param integer $expectedCouponsNum [预获优惠券]
|
||
* @param string $desc [备注]
|
||
* @param string $isAdd [1增加0扣除]
|
||
* @return [type] [description]
|
||
*/
|
||
public function insertAlreadyVouchersNotice($userId,$orderId,$alreadyProductNum=0,$alreadyCouponsNum=0,$desc='',$isAdd=1,$isShow=1){
|
||
//插入详细表
|
||
$m = Model('common/Table');
|
||
$m->setTable('log_moneys');
|
||
if($alreadyProductNum>0){
|
||
$m->insertInfo(['targetType'=>0,'targetId'=>$userId, 'dataId'=>$orderId,'dataSrc'=>1,'money'=>$alreadyProductNum,'moneyName'=>1,'remark'=>$desc,'moneyType'=>$isAdd,'payType'=>'qlgpay','createTime'=>date('Y/m/d H:i:s')]);
|
||
}
|
||
if($alreadyCouponsNum>0){
|
||
$m->insertInfo(['targetType'=>0,'targetId'=>$userId, 'dataId'=>$orderId,'dataSrc'=>1,'money'=>$alreadyCouponsNum,'moneyName'=>2,'remark'=>$desc,'moneyType'=>$isAdd,'payType'=>'qlgpay','createTime'=>date('Y/m/d H:i:s')]);
|
||
}
|
||
//插入或更新详细表
|
||
$m->setTable('users');
|
||
$summaryInfo = $m->getInfo(['userId'=>$userId],'userId,productNum,couponsNum');
|
||
if(1 == $isAdd){
|
||
$data['productNum'] = $summaryInfo['productNum'] + $alreadyProductNum;
|
||
$data['couponsNum'] = $summaryInfo['couponsNum'] + $alreadyCouponsNum;
|
||
}else{
|
||
$data['productNum'] = $summaryInfo['productNum'] - $alreadyProductNum;
|
||
$data['couponsNum'] = $summaryInfo['couponsNum'] - $alreadyCouponsNum;
|
||
}
|
||
$m->updateInfo(['userId'=>$userId],$data);
|
||
}
|
||
|
||
/**
|
||
* 插入已获会员券值记录
|
||
* @param [type] $userId [会员ID]
|
||
* @param [type] $orderId [订单ID]
|
||
* @param integer $expectedProductNum [购物股]
|
||
* @param integer $expectedCouponsNum [预获优惠券]
|
||
* @param string $desc [备注]
|
||
* @param string $isAdd [1增加0扣除]
|
||
* @return [type] [description]
|
||
*/
|
||
public function insertHelpSaleNotice($userId,$orderId,$helpSaleNum=0,$desc='',$isAdd=1,$isShow=1){
|
||
//插入详细表
|
||
$m = Model('common/Table');
|
||
$m->setTable('user_help_get_notice');
|
||
$m->insertInfo(['userId'=>$userId,'orderId'=>$orderId,'helpGet'=>$helpSaleNum,'remark'=>$desc,'isAdd'=>$isAdd,'isShow'=>$isShow,'createTime'=>time()]);
|
||
|
||
|
||
|
||
$m = Model('common/Table');
|
||
$m->setTable('user_vouchers_summary');
|
||
if($summaryInfo = $m->getInfo(['userId'=>$userId],'id,helpSaleNum')){
|
||
if(1 == $isAdd){
|
||
$data['helpSaleNum'] = $summaryInfo['helpSaleNum'] + $helpSaleNum;
|
||
}else{
|
||
$data['helpSaleNum'] = $summaryInfo['helpSaleNum'] - $helpSaleNum;
|
||
}
|
||
$m->updateInfo(['id'=>$summaryInfo['id']],$data);
|
||
}else{
|
||
if(0 == $isAdd){
|
||
$helpSaleNum *= -1;
|
||
}
|
||
$data = compact('userId','helpSaleNum');
|
||
$m->insertInfo($data);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 插入会员券值记录
|
||
* @param [type] $userId [会员ID]
|
||
* @param [type] $orderId [订单ID]
|
||
* @param integer $expectedProductNum [购物股]
|
||
* @param integer $expectedCouponsNum [预获优惠券]
|
||
* @param string $desc [备注]
|
||
* @param string $isAdd [1增加0扣除]
|
||
* @return [type] [description]
|
||
*/
|
||
public function insertVouchersNotice($userId,$orderId,$expectedProductNum=0,$expectedCouponsNum=0,$desc='',$isAdd=1,$isShow=1){
|
||
//插入详细表
|
||
$m = Model('common/Table');
|
||
$m->setTable('user_vouchers_notice');
|
||
$m->insertInfo(['userId'=>$userId,'orderId'=>$orderId,'expectedProductNum'=>$expectedProductNum,'expectedCouponsNum'=>$expectedCouponsNum,'remark'=>$desc,'moneyType'=>$isAdd,'isShow'=>$isShow,'createTime'=>time()]);
|
||
//插入或更新详细表
|
||
$m->setTable('user_vouchers_summary');
|
||
if($summaryInfo = $m->getInfo(['userId'=>$userId],'id,expectedProductNum,expectedCouponsNum')){
|
||
if(1 == $isAdd){
|
||
$data['expectedProductNum'] = $summaryInfo['expectedProductNum'] + $expectedProductNum;
|
||
$data['expectedCouponsNum'] = $summaryInfo['expectedCouponsNum'] + $expectedCouponsNum;
|
||
}else{
|
||
$data['expectedProductNum'] = $summaryInfo['expectedProductNum'] - $expectedProductNum;
|
||
$data['expectedCouponsNum'] = $summaryInfo['expectedCouponsNum'] - $expectedCouponsNum;
|
||
}
|
||
$m->updateInfo(['id'=>$summaryInfo['id']],$data);
|
||
}else{
|
||
if(0 == $isAdd){
|
||
$expectedProductNum *= -1;
|
||
$expectedCouponsNum *= -1;
|
||
}
|
||
$data = compact('userId','expectedProductNum','expectedCouponsNum');
|
||
$data['alreadyProductNum'] = 0;
|
||
$data['alreadyCouponsNum'] = 0;
|
||
$data['isGive'] = 1;
|
||
$data['giveDate'] = time();
|
||
$data['giveDay'] = 0;
|
||
$m->insertInfo($data);
|
||
}
|
||
}
|
||
}
|