终极提交~

This commit is contained in:
Jerry Yan 2019-10-27 20:15:29 +08:00
parent df11660e6a
commit 4131f1ac50
17 changed files with 588 additions and 118 deletions

View File

@ -68,7 +68,7 @@ class Orders extends Base{
//添加对接人员查询 mark 20180514
$page = $this->alias('o')->join('__USERS__ u','o.userId=u.userId','left')->join('__SHOPS__ s','o.shopId=s.shopId','left')->join('__SHOP_EXTRAS__ se','o.shopId=se.shopId','left')->where($where)
->field('o.orderId,o.orderNo,u.loginName,s.shopName,s.shopId,s.userId shopUserId,s.shopQQ,s.shopWangWang,o.goodsMoney,o.totalMoney,o.realTotalMoney,
o.orderStatus,o.userName,o.payable,o.deliverType,o.productNum,o.couponsNum,o.wangNum,o.moneyNum,o.productHandlingFee,o.productTaxFee,o.couponsHandlingFee,o.couponsTaxFee,payType,payFrom,o.orderStatus,orderSrc,o.createTime,o.orderCode,se.investmentStaff')
o.orderStatus,o.userName,o.payable,o.deliverType,o.goodsType,o.helpUserId,o.productNum,o.couponsNum,o.wangNum,o.moneyNum,o.productHandlingFee,o.productTaxFee,o.couponsHandlingFee,o.couponsTaxFee,payType,payFrom,o.orderStatus,orderSrc,o.createTime,o.orderCode,se.investmentStaff')
->order($order)
->paginate(input('limit/d'))->toArray();
if(count($page['Rows'])>0){
@ -79,6 +79,12 @@ class Orders extends Base{
$page['Rows'][$key]['shopLoginName'] = "".$shopUserInfo['loginName']."";
$page['Rows'][$key]['payType'] = WSTLangPayType($v['payType']);
$page['Rows'][$key]['deliverType'] = WSTLangDeliverType($v['deliverType']==1);
if($v["helpUserId"]!=0){
$page['Rows'][$key]['helpUser']=Db::name('users')->where('userId','=',$v["helpUserId"])
->field("userName")->find();
}else{
$page['Rows'][$key]['helpUser']=["userName"=>''];
}
$page['Rows'][$key]['status'] = WSTLangOrderStatus($v['orderStatus']);
$page['Rows'][$key]['orderCodeTitle'] = WSTOrderCodeTitle($v['orderCode']);
}
@ -257,6 +263,10 @@ class Orders extends Base{
//获取订单信息
$orders['log'] = Db::name('log_orders')->where('orderId',$orderId)->order('logId asc')->select();
//获取订单商品
if($orders["helpUserId"]!=0){
$orders["helpUser"]=Db::name('users')->where('userId','=',$orders["helpUserId"])
->field("userName")->find();
}
$orders['goods'] = Db::name('order_goods')->where('orderId',$orderId)->order('id asc')->select();
$orders['userCertificate'] = Db::name('order_certificate')->where(['orderId'=>$orderId,'isShop'=>0])->order('id desc')->select();
//$orders['shopCertificate'] = Db::name('order_certificate')->where(['orderId'=>$orderId,'isShop'=>1])->order('id desc')->select();

View File

@ -220,7 +220,39 @@
{/if}
<!-- 发票信息 -->
{if $object['goodsType']==3}
<!-- 退款信息 -->
<div class='order-box'>
<div class='box-head'>助购信息</div>
<table class='wst-form'>
<tr>
<th width='100'>助购人:</th>
<td>{$object['helpUser']['userName']}</td>
</tr>
<tr>
<th width='100'>助购层级:</th>
<td>{$object['helpUserLevel']}</td>
</tr>
</table>
</div>
{/if}
<!-- 发票信息 -->
<div class='order-box'>

View File

@ -114,32 +114,61 @@ class Orders extends Base{
$flag = -1;
$type = input('param.type');
$status = [];
switch ($type) {
case 'waitPay':
$status=[-2];
break;
case 'waitDeliver':
$status=[0];
break;
case 'waitReceive':
$status=[1];
break;
case 'waitAppraise':
$status=[2];
$flag=0;
break;
case 'finish':
$status=[2];
break;
case 'abnormal': // 退款/拒收 与取消合并
$status=[-1,-3];
break;
default:
$status=[-5,-4,-3,-2,-1,0,1,2];
break;
}
$m = new M();
$rs = $m->userOrdersByPage($status,$flag);
$m = new M();
if(strpos($type, "zg")===0){
switch ($type) {
case 'zgwaitPay':
$status=[-2];
break;
case 'zgwaitDeliver':
$status=[0];
break;
case 'zgwaitReceive':
$status=[1];
break;
case 'zgwaitAppraise':
$status=[2];
$flag=0;
break;
case 'zgfinish':
$status=[2];
break;
case 'zgabnormal': // 退款/拒收 与取消合并
$status=[-1,-3];
break;
case 'zgall':
default:
$status=[-5,-4,-3,-2,-1,0,1,2];
break;
}
$rs = $m->userZgOrdersByPage($status,$flag);
}else{
switch ($type) {
case 'waitPay':
$status=[-2];
break;
case 'waitDeliver':
$status=[0];
break;
case 'waitReceive':
$status=[1];
break;
case 'waitAppraise':
$status=[2];
$flag=0;
break;
case 'finish':
$status=[2];
break;
case 'abnormal': // 退款/拒收 与取消合并
$status=[-1,-3];
break;
default:
$status=[-5,-4,-3,-2,-1,0,1,2];
break;
}
$rs = $m->userOrdersByPage($status,$flag);
}
foreach($rs['Rows'] as $k=>$v){
if(!empty($v['list'])){
foreach($v['list'] as $k1=>$v1){
@ -152,6 +181,17 @@ class Orders extends Base{
exit(jsonReturn('',1,$rs));
}
public function confirmHelpSale(){
$m = new M();
$id = (int)input('orderId');
exit(jsonReturn('',1,$m->confirmHelpSale($id)));
}
public function cancelHelpSale(){
$m = new M();
$id = (int)input('orderId');
exit(jsonReturn('',1,$m->cancelHelpSale($id)));
}
/**
* 订单详情
*/

View File

@ -14,6 +14,14 @@ class Shopping extends Base{
public function getHelpCarousel(){
$m = new M();
exit(json_encode($m->getHelpCarousel()));
}
/**
* 获取助微吧轮播
* @return [type] [description]
*/
public function getHelpShopCarousel(){
$m = new M();
exit(json_encode($m->getHelpShopCarousel()));
}
/**
* 搜索助微吧商品列表

View File

@ -2,6 +2,7 @@
namespace wstmart\app\controller;
use think\Db;
use wstmart\app\model\Users;
use wstmart\common\model\UserLevel as UL;
use wstmart\common\model\UserTrees as UT;
@ -30,7 +31,7 @@ class UserLevel extends Base
public function index()
{
$userId = get_my_id();
$User = UT::getMyLevel($userId);
$User = UT::realGetMyChildren($userId, [$userId]);
return $User;
}
@ -45,24 +46,28 @@ class UserLevel extends Base
public function TreeList()
{
$userId = get_my_id();
$count = UL::where(['uid' => $userId])->group("level")->count();
$treeArr = [];
$newLevel = 1;
$goodsType = 3;
$min = Db::name('orders')->where(compact('userId','goodsType'))->min('helpUserLevel');
if(0 == $min){$min = 1;}
$max = Db::name('orders')->where(compact('userId','goodsType'))->max('helpUserLevel');
$newLevel = 0;
do {
if ($newLevel > 10) break;
$treeArr[$newLevel]['level'] = UT::$level[$newLevel];
$ptree = UT::where(['uid' => $userId])->find();// 找到我的层级
$userId = $ptree->pid;// 上级uid
if ($userId == 0) $userId = 1;// 上级uid
$plevel = UL::where(['uid' => $userId, 'level' => $newLevel])->find();// 查看上级是否有权限助购
if ($plevel) {// 如果有,则使用上级信息
$newLevel++;
$userId = UT::getUpperId($userId);// 找到我的层级
if ($userId == null) $userId = 1;// 上级uid
if (($newLevel >= $min) && UT::checkUserCanDisplay($userId)) {// 如果有,则使用上级信息
if($newLevel>10){
$treeArr[$newLevel]['level'] = "".$newLevel."";
}else{
$treeArr[$newLevel]['level'] = UT::$level[$newLevel];
}
$treeArr[$newLevel]['level_id'] = $newLevel;
$treeArr[$newLevel]['userId'] = $userId;
$user = Users::where(['userId' => $plevel->uid])->find();
$treeArr[$newLevel]['userName'] = $user->userName ?: $user->loginName;
$newLevel++;
}
// 如果没有,则递归查询上级信息
} while ($newLevel < ($count + 2));
$treeArr[$newLevel]['userName'] = '';
}else{$newLevel--;}
if ($userId <= 1)break;
} while (($newLevel <= $max) && ($newLevel <= (int)dataConf("helpSaleMaxLevel")));
// pd($treeArr);
return $treeArr;
}

View File

@ -228,7 +228,8 @@ class Users extends Base{
$userId = $this->getUserId();
$m = Model('common/Table');
$m->setTable('user_vouchers_summary');
$data = $m->getInfo(['userId'=>$userId],'expectedProductNum,expectedCouponsNum');
$data = $m->getInfo(['userId'=>$userId],'expectedProductNum,expectedCouponsNum,alreadyProductNum,alreadyCouponsNum');
$data = $m->getInfo(['userId'=>$userId],'expectedProductNum,expectedCouponsNum,alreadyProductNum,alreadyCouponsNum');
$m->setTable('shops');
$shopIds = $m->getColumn(['status'=>1,'userId'=>$userId],'shopId');
if($shopIds){

View File

@ -57,10 +57,23 @@ class Uservouchers extends Base{
$m->setTable('shops');
$shopIds = $m->getColumn(['status'=>1,'userId'=>$userId],'shopId');
$m->setTable('log_moneys');
$list = db('log_moneys')->where("((targetType = 0 AND targetId = $userId ) OR (targetType = 1 AND targetId IN (".implode(',',$shopIds) ."))) AND moneyName = $vouchersType AND dataFlag=1")->field('money num,remark,moneyType,createTime')->order('id DESC')->paginate(input('pageSize/d',10))->toArray();
$list = db('log_moneys')->where("((targetType = 0 AND targetId = $userId ) OR (targetType = 1 AND targetId IN ('".implode("','",$shopIds) ."'))) AND moneyName = $vouchersType AND dataFlag=1")->field('money num,remark,moneyType,createTime')->order('id DESC')->paginate(input('pageSize/d',10))->toArray();
//dump(db()->_sql());
// $list = $m->getSelect(['targetType'=>0,'targetId'=>$userId,'moneyName'=>$vouchersType,'dataFlag'=>1],'money num,remark,moneyType,createTime','id DESC');
}
exit(jsonReturn('',1,$list));
}
public function getHelpGet(){
$m = Model('common/Table');
$userId = $this->getUserId();
$list = [];
$m->setTable('user_help_get_notice');
$list = $m->getSelect(['userId'=>$userId,'isShow'=>1],'helpGet,remark,isAdd,createTime','id DESC');
if(!empty($list['Rows'])){
foreach ($list['Rows'] as &$v) {
$v['createTime'] = date('Y-m-d H:i:s',$v['createTime']);
}
}
exit(jsonReturn('',1,$list));
}
}

View File

@ -204,7 +204,7 @@ class Carts extends Base{
->join('__SHOPS__ s','s.shopId=g.shopId','left')
->join('__GOODS_SPECS__ gs','c.goodsSpecId=gs.id','left')
->where($where)
->field('c.goodsSpecId,c.cartId,s.userId,s.shopId,s.shopName,g.goodsId,s.shopQQ,shopWangWang,g.goodsName,g.shopPrice,g.goodsStock,g.isSpec,gs.specPrice,gs.specStock,g.goodsImg,c.isCheck,gs.specIds,c.cartNum,g.goodsCatId,g.freight,g.isFreeShipping,gs.initNum,gs.whslePrice,g.marketPrice')
->field('c.goodsSpecId,c.goodsType,c.cartId,s.userId,s.shopId,s.shopName,g.goodsId,s.shopQQ,shopWangWang,g.goodsName,g.shopPrice,g.goodsStock,g.isSpec,gs.specPrice,gs.specStock,g.goodsImg,c.isCheck,gs.specIds,c.cartNum,g.goodsCatId,g.freight,g.isFreeShipping,gs.initNum,gs.whslePrice,g.marketPrice')
->select();//添加返回起批量和批发价 mark hsf 20171117
//dump($rs);die;
$carts = [];

View File

@ -282,12 +282,21 @@ class Orders extends Base{
}
if(empty($carts['carts']))return WSTReturn("请选择要购买的商品");
$carts['ect_pay'] = isset($carts['ect_pay']) ? (int)$carts['ect_pay'] : 0;
$carts['goodsType'] = isset($carts['goodsType']) ? $carts['goodsType'] : 0;
$carts['goodsType'] = isset($carts['goodsType']) ? $carts['goodsType'] : 1;
if(1 == $carts['ect_pay'] || (isset($carts['is_seckilling']) && $carts['is_seckilling'] == 1) || (isset($carts['promotion_goods']) && $carts['promotion_goods'] == 1)){//不可抵用惠宝
$isUseScore=0;
$useScore=0;
}
$from = (int)input('post.from');
if(3 == $from){
$carts['goodsType'] = $from;
$helpUserId = (int)input('post.helpUserId');//助购用户ID
$helpLevel = (int)input('post.helpLevel');//助购用户ID
if($helpUserId<=0){
return WSTReturn("请选择助购用户");
}
if($helpUserId == $userId && $userId!=1){$helpLevel=0;}
}
$pay_code = input('payCode');
//$carts['ect_pay']=0;
// if($carts['ect_pay'] == 1 && $pay_code !='ect'){
@ -382,6 +391,8 @@ class Orders extends Base{
//计算运费和总金额
$order['deliverType'] = $deliverType;
$order['deliverMoney']=0;
$order['helpUserId']=isset($helpUserId)?$helpUserId:0;//助购用户,只有助购的时候有
$order['helpUserLevel']=isset($helpLevel)?$helpLevel:0;//助购用户,只有助购的时候有
if($shopOrder['isFreeShipping']){
$order['deliverMoney'] = 0;
}else{
@ -1016,7 +1027,84 @@ class Orders extends Base{
}
return WSTReturn('操作失败',-1);
}
/**
/**
* 助购吧获取用户订单列表
*/
public function userZgOrdersByPage($orderStatus, $isAppraise = -1, $uId=0){
$userId = ($uId==0)?(int)session('WST_USER.userId'):$uId;
$orderNo = input('post.orderNo');
$shopName = input('post.shopName');
$isRefund = (int)input('post.isRefund',-1);
$where = ['o.userId'=>$userId,'o.dataFlag'=>1];
if(is_array($orderStatus)){
$where['orderStatus'] = ['in',$orderStatus];
}else{
$where['orderStatus'] = $orderStatus;
}
if($isAppraise!=-1)$where['isAppraise'] = $isAppraise;
if($orderNo!=''){
$where['o.orderNo'] = ['like',"%$orderNo%"];
}
if($shopName != ''){
$where['s.shopName'] = ['like',"%$shopName%"];
}
if(in_array($isRefund,[0,1])){
$where['isRefund'] = $isRefund;
}
$where["o.goodsType"]=3;
$page = $this->alias('o')->join('__SHOPS__ s','o.shopId=s.shopId','left')
->join('__ORDER_COMPLAINS__ oc','oc.orderId=o.orderId','left')
->join('__ORDERS_ECT__ ore','ore.orderId=o.orderId','left')
->join('__ORDER_REFUNDS__ orf','orf.orderId=o.orderId and orf.refundStatus!=-1','left')
->where($where)
->field('ore.orderEctNum,o.pay_name,ore.ectPrice,o.orderRemarks,o.noticeDeliver,o.orderId,o.orderNo,o.shopConfirm,s.shopName,s.shopId,s.shopQQ,s.phone,s.shopWangWang,o.goodsMoney,o.totalMoney,o.realTotalMoney,
o.orderStatus,o.deliverType,o.helpUserId,o.helpUserLevel,o.goodsType,deliverMoney,isPay,payType,payFrom,o.orderStatus,needPay,isAppraise,isRefund,orderSrc,o.createTime,o.useScore,oc.complainId,orf.id refundId,o.orderCode')
->order('o.createTime', 'desc')
->paginate(input('pagesize/d'))->toArray();
if(count($page['Rows'])>0){
$orderIds = [];
foreach ($page['Rows'] as $v){
$orderIds[] = $v['orderId'];
}
$goods = Db::name('order_goods')->where('orderId','in',$orderIds)->select();
$goodsMap = [];
foreach ($goods as $v){
$v['goodsSpecNames'] = str_replace('@@_@@','、',$v['goodsSpecNames']);
$v['marketPrice'] = Db::name('goods')->where(['goodsId'=>$v['goodsId']])->value('marketPrice');//添加返回市场价 mark hsf 20180112
$goodsMap[$v['orderId']][] = $v;
}
foreach ($page['Rows'] as $key => $v){
$page['Rows'][$key]['allowRefund'] = 0;
//只要是已支付的,并且没有申请退款的,都可以申请退款操作
if($v['isPay']==1 && $v['refundId']==''){
$page['Rows'][$key]['allowRefund'] = 1;
}
if($v["helpUserId"]!=0){
$page['Rows'][$key]['helpUser']=Db::name('users')->where('userId','=',$v["helpUserId"])
->field("userName")->find();
}else{
$page['Rows'][$key]['helpUser']=["userName"=>''];
}
//货到付款中使用了惠宝支付的也可以申请退款
if($v['payType']==0 && $v['refundId']=='' && $v['useScore']>0){
$page['Rows'][$key]['allowRefund'] = 1;
}
$page['Rows'][$key]['list'] = $goodsMap[$v['orderId']];
$page['Rows'][$key]['isComplain'] = 1;
if(($v['complainId']=='') && ($v['payType']==0 || ($v['payType']==1 && $v['orderStatus']!=-2))){
$page['Rows'][$key]['isComplain'] = '';
}
$page['Rows'][$key]['payTypeName'] = WSTLangPayType($v['payType']);
$page['Rows'][$key]['deliverType'] = WSTLangDeliverType($v['deliverType']==1);
$page['Rows'][$key]['status'] = WSTLangOrderStatus($v['orderStatus']);
$page['Rows'][$key]['orderCodeTitle'] = WSTOrderCodeTitle($v['orderCode']);
}
hook('afterQueryUserOrders',['page'=>&$page]);
}
return $page;
}
/**
* 获取用户订单列表
*/
public function userOrdersByPage($orderStatus, $isAppraise = -1, $uId=0){
@ -1047,7 +1135,7 @@ class Orders extends Base{
->join('__ORDER_REFUNDS__ orf','orf.orderId=o.orderId and orf.refundStatus!=-1','left')
->where($where)
->field('ore.orderEctNum,o.pay_name,ore.ectPrice,o.orderRemarks,o.noticeDeliver,o.orderId,o.orderNo,o.shopConfirm,s.shopName,s.shopId,s.shopQQ,s.phone,s.shopWangWang,o.goodsMoney,o.totalMoney,o.realTotalMoney,
o.orderStatus,o.deliverType,deliverMoney,isPay,payType,payFrom,o.orderStatus,needPay,isAppraise,isRefund,orderSrc,o.createTime,o.useScore,oc.complainId,orf.id refundId,o.orderCode')
o.orderStatus,o.deliverType,o.helpUserId,o.helpUserLevel,o.goodsType,deliverMoney,isPay,payType,payFrom,o.orderStatus,needPay,isAppraise,isRefund,orderSrc,o.createTime,o.useScore,oc.complainId,orf.id refundId,o.orderCode')
->order('o.createTime', 'desc')
->paginate(input('pagesize/d'))->toArray();
if(count($page['Rows'])>0){
@ -1068,6 +1156,7 @@ class Orders extends Base{
if($v['isPay']==1 && $v['refundId']==''){
$page['Rows'][$key]['allowRefund'] = 1;
}
$page['Rows'][$key]['helpUser']=["userName"=>''];
//货到付款中使用了惠宝支付的也可以申请退款
if($v['payType']==0 && $v['refundId']=='' && $v['useScore']>0){
$page['Rows'][$key]['allowRefund'] = 1;
@ -1081,7 +1170,6 @@ class Orders extends Base{
$page['Rows'][$key]['deliverType'] = WSTLangDeliverType($v['deliverType']==1);
$page['Rows'][$key]['status'] = WSTLangOrderStatus($v['orderStatus']);
$page['Rows'][$key]['orderCodeTitle'] = WSTOrderCodeTitle($v['orderCode']);
}
hook('afterQueryUserOrders',['page'=>&$page]);
}
@ -1346,7 +1434,7 @@ class Orders extends Base{
}
$order = $this->alias('o')->join('__SHOPS__ s','o.shopId=s.shopId','left')
->where(['o.userId'=>$userId,'o.orderId'=>$orderId,'o.orderStatus'=>1])
->field('o.orderId,o.orderNo,o.payType,s.userId,s.shopId,o.orderScore,o.payFrom,o.realTotalMoney,o.goodsType,commissionFee')->find();
->field('o.orderId,o.orderNo,o.helpUserId,o.helpUserLevel,o.payType,s.userId,s.shopId,o.orderScore,o.payFrom,o.goodsMoney,o.realTotalMoney,o.goodsType,commissionFee')->find();
if(!empty($order)){
Db::startTrans();
try{
@ -1372,9 +1460,9 @@ class Orders extends Base{
model('common/Settlements')->speedySettlement($orderId);
}
}
$m = Model('common/Table');
$userInfo = getUserInfo(['userId'=>$userId],'userName,userType,buyHelpMoney,helpMaxSaleMoney');
if (2 == $order['goodsType']){//助微吧购物
$m = Model('common/Table');
$userInfo = getUserInfo(['userId'=>$userId],'userType,buyHelpMoney,helpMaxSaleMoney');
if (1 == $userInfo['userType']){//是商户购物
//加助微吧购物金额
$m->setTable('users');
@ -1406,7 +1494,91 @@ class Orders extends Base{
}else{
$m->insertInfo(['userId'=>$userId,'ectNum'=>$order['realTotalMoney'],'ectType'=>1,'dataRemarks'=>'购户购物']);
}
}
}
elseif (3 == $order['goodsType']){//助购吧购物
// 计算 SUM(商品*优惠率) 的值
$calBaseNum = Db::table("__ORDERS__ o")->join("__ORDER_GOODS__ g", "g.orderId=o.orderId", 'inner')
->where(['o.userId'=>$userId,'o.orderId'=>$orderId])
->sum('g.goodsPrice*g.discountRate*0.01');
// foreach ($orderGoods as $orderGood) {
// // 在不考虑数据库变更的情况下,这两个值都是存储的数字类型,所以不做特殊处理
// $calBaseNum += (float)$orderGood['goodsPrice'] * (float)$orderGood['discountRate'] / 100;
// }
$sm = Model('common/SysSummary');
// step 2 商户支付优惠款给平台10000×0.4=4000
// 10.15添加 优惠款 全额进入 代快付值
$sm->addSysSummary($calBaseNum,0,1);
$vm = new UserVouchers();
// step 4 平台送商户的推荐人当消费超过限制值时10000×0.4×0.5×0.5=1000“预获产品券”。
// 当消费低于限制值时10000×0.4×0.5×0.2=400“预获产品券”。
$uUserId = UserTrees::getUpperId($order["userId"]);
if($uUserId == null){$uUserId = 1;}
$data = Db::query('SELECT count(`goodsMoney`) as `total` FROM `hyh_orders` WHERE DATE_FORMAT(`createTime`,"%Y%m%d")=DATE_FORMAT(DATE_SUB(now(),INTERVAL 1 day),"%Y%m%d") and `userId`="'.$uUserId.'"');
// 因为count一定会有数据所以不判断了
if($data[0]["total"]<=dataConf("refPreProductYdGTMoney")){
$vm->insertVouchersNotice($uUserId, $orderId,$calBaseNum*((float)dataConf('helpSaleCouponsCalBase')/100)*((float)dataConf("refPreProductNoInSaleScale")/100),
0,'交易订单【'.$order['orderNo'].'】推荐商户所得',1);
}else{
$vm->insertVouchersNotice($uUserId, $orderId,$calBaseNum*((float)dataConf('helpSaleCouponsCalBase')/100)*((float)dataConf("refPreProductYesInSaleScale ")/100),
0,'交易订单【'.$order['orderNo'].'】推荐商户所得',1);
}
// step 5 平台送自己10000×N“助购预获”
// 10000“预获产品券”
// 10000×0.4×0.5×0.5=1000“预获优惠券”。
$vm->insertHelpSaleNotice($userId, $orderId, $order['goodsMoney']*((int)$order["helpUserLevel"])*(float)dataConf("helpSaleCalBase"),
'交易订单【'.$order['orderNo'].'】购户购物所得', 1);
$vm->insertVouchersNotice($userId, $orderId, $order['goodsMoney'], $calBaseNum*((float)dataConf('helpSaleCouponsCalBase')/100)*(1-((float)dataConf("helpSaleChildrenGet")/100)),
'您的订单编号'.$order['orderNo'].'完成添加',1);
// step 6 平台送自己的推荐人当消费超过限制值时10000×0.4×0.5×0.5=1000“预获产品券”
// 当消费低于限制值时10000×0.4×0.5×0.2=400“预获产品券”。
$uUserId = UserTrees::getUpperId($userId);
if($uUserId === null){$uUserId = 1;}
$data = Db::query('SELECT count(`goodsMoney`) as `total` FROM `hyh_orders` WHERE DATE_FORMAT(`createTime`,"%Y%m%d")=DATE_FORMAT(DATE_SUB(now(),INTERVAL 1 day),"%Y%m%d") and `userId`="'.$uUserId.'"');
// 因为count一定会有数据所以不判断了
if($data[0]["total"]<=dataConf("refPreProductYdGTMoney")){
$vm->insertVouchersNotice($uUserId, $orderId,$calBaseNum*((float)dataConf('helpSaleCouponsCalBase')/100)*((float)dataConf("refPreProductNoInSaleScale")/100),
0,'交易订单【'.$order['orderNo'].'】推荐购户所得',1);
}else{
$vm->insertVouchersNotice($uUserId, $orderId,$calBaseNum*((float)dataConf('helpSaleCouponsCalBase')/100)*((float)dataConf("refPreProductYesInSaleScale ")/100),
0,'交易订单【'.$order['orderNo'].'】推荐购户所得',1);
}
// step 7 平台送自己的被推荐人10000×0.4×0.5×0.5÷5=200“预获产品券”。
$childes = DB::table("hyh_user_trees")->where(["pid"=>$userId])->field("uid")->select();
foreach ($childes as $child){
$vm->insertVouchersNotice($child['uid'], $orderId,
$calBaseNum*((float)dataConf('helpSaleCouponsCalBase')/100)*((float)dataConf("helpSaleChildrenGet")/100)/sizeof($childes), 0,
'交易订单【'.$order['orderNo'].'】被推荐所得',1);
}
// step 8 平台送自己的上第N层扣减“助购预获”、“预获产品券”各10000×0.4×0.5=2000
// 同时添加10000×0.4×0.5=2000“已获产品券”。
if((int)$order["helpUserLevel"]!==0){
$vm->insertHelpSaleNotice($order["helpUserId"], $orderId, $calBaseNum*((float)dataConf('helpSaleCouponsCalBase')/100),
'预获助购转换所扣', 0);
$sm->addSysSummary($calBaseNum*((float)dataConf('helpSaleCouponsCalBase')/100),0,2);
$vm->insertVouchersNotice($order['helpUserId'], $orderId, $calBaseNum*((float)dataConf('helpSaleCouponsCalBase')/100), 0,
'预获产品券转换所扣',0);
$vm->insertAlreadyVouchersNotice($order['helpUserId'], $orderId, $calBaseNum*((float)dataConf('helpSaleCouponsCalBase')/100), 0,
'预获产品券转换所得',1);
}else{
$vm->insertHelpSaleNotice($order["helpUserId"], $orderId, 0,
'预获产品券转换所扣', 0);
}
// 10.15添加:助购户的 助购预获 减少的同时 代快付值等额减少
Db::name("orders")->where(compact('orderId'))->update([
"helpGetCount"=>$order['goodsMoney']*((int)$order["helpUserLevel"])*(float)dataConf("helpSaleCalBase"),
"helpGetCount2"=>$calBaseNum*((float)dataConf('helpSaleCouponsCalBase')/100),
]);
}
//新增订单日志
$logOrder = [];
$logOrder['orderId'] = $orderId;
@ -1458,10 +1630,15 @@ class Orders extends Base{
}
Db::commit();
return WSTReturn('操作成功',1);
}
}else{
// 避免多次事物重叠
Db::rollback();
return WSTReturn('操作失败',-1);
}
}catch (\Exception $e) {
Db::rollback();errLog($e);
// dump($e);
Db::rollback();
dump($e);die();
errLog($e);
return WSTReturn('操作失败',-1);
}
}
@ -3022,8 +3199,8 @@ class Orders extends Base{
//产品券
$buyerMaxProductScale = $this->round(dataConf('buyerMaxProductScale')*0.01,2);
$pay['maxProduct'] = $this->round($needPay * $buyerMaxProductScale,2);//最大可用产品券
$pay['productHandlingFee'] = $this->round(dataConf('useHasProductHandlingFee')*0.01,2);//产品券手续费
$pay['productTaxFee'] = $this->round(dataConf('useHasProductTaxFee')*0.01,2);//产品券税费
$pay['productHandlingFee'] = $this->round(dataConf('useHasHandlingFee')*0.01,2);//产品券手续费
$pay['productTaxFee'] = $this->round(dataConf('useHasTaxFee')*0.01,2);//产品券税费
//获取最大可用券值
//$allProductNum = $this->getMaxNum($pay['maxProduct'],(1-$pay['productHandlingFee']-$pay['productTaxFee'] ));
$allProductNum = $this->round($pay['maxProduct'] + ($pay['maxProduct'] / (1 - $pay['productHandlingFee'] - $pay['productTaxFee'])) * ($pay['productHandlingFee']+ $pay['productTaxFee']),2);
@ -3039,8 +3216,8 @@ class Orders extends Base{
$pay['product']['useProductTaxFee'] = $this->round($pay['product']['useProduct'] * $pay['productTaxFee'],2);
$pay['product']['useProductOk'] = $this->round($pay['product']['useProduct'] - $pay['product']['useProductHandlingFee'] - $pay['product']['useProductTaxFee'],3);
//优惠券
$pay['coupousHandlingFee'] = $this->round(dataConf('useHasCoupousHandlingFee')*0.01,2);//优惠券手续费
$pay['coupousTaxFee'] = $this->round(dataConf('useHasCoupousTaxFee')*0.01,2);//优惠券税费
$pay['coupousHandlingFee'] = $this->round(dataConf('useHasHandlingFee')*0.01,2);//优惠券手续费
$pay['coupousTaxFee'] = $this->round(dataConf('useHasTaxFee')*0.01,2);//优惠券税费
$pay['maxCoupons'] = $this->round($needPay - $pay['product']['useProductOk'],2) ;//最大可用其他券,优惠券+旺旺券+现金券
//获取最大可用券值
//$allCouponsNum = $this->getMaxNum($pay['maxCoupons'],(1-$pay['coupousHandlingFee']-$pay['coupousTaxFee'] ));

View File

@ -42,10 +42,10 @@ class Settlements extends Base
$buyerPreProductNum = round(($totalMoney + $order->deliverMoney)* (dataConf('buyerPreProductInProductScale')*0.01),2);//1
$buyerPreCoupousNum = round($discountMoney * (dataConf('buyerPreCoupousInSaleScale')*0.01),2);//2
$buyerPreProductNum += round($order->productHandlingFee * (dataConf('buyerPreProductInHandlingFeeScale')*0.01),2);//3
$buyerPreProductNum += round($order->productTaxFee * (dataConf('buyerPreProductInTaxFeeScale')*0.01),2);//4
$buyerPreProductNum += round($order->couponsHandlingFee * (dataConf('buyerPreProductInProductHandlingFeeScale')*0.01),2);//5
$buyerPreProductNum += round($order->couponsTaxFee * (dataConf('buyerPreProductInProductTaxFeeScale')*0.01),2);//6
// $buyerPreProductNum += round($order->productHandlingFee * (dataConf('buyerPreProductInHandlingFeeScale')*0.01),2);//3
// $buyerPreProductNum += round($order->productTaxFee * (dataConf('buyerPreProductInTaxFeeScale')*0.01),2);//4
// $buyerPreProductNum += round($order->couponsHandlingFee * (dataConf('buyerPreProductInProductHandlingFeeScale')*0.01),2);//5
// $buyerPreProductNum += round($order->couponsTaxFee * (dataConf('buyerPreProductInProductTaxFeeScale')*0.01),2);//6
if($buyerPreProductNum >= 0.01 || $buyerPreCoupousNum>=0.01){
Model('common/UserVouchers')->insertVouchersNotice($order->userId,$orderId,$buyerPreProductNum,$buyerPreCoupousNum,'交易订单【'.$order->orderNo.'】购户购物所得');
}
@ -60,7 +60,17 @@ class Settlements extends Base
$sellerPreProductNum = round($discountMoney * (dataConf('sellerPreProductInProductScale')*0.01),2);//1
$sellerPreCoupousNum = round($discountMoney * (dataConf('sellerPreCoupousInSaleScale')*0.01),2);//2
if($sellerPreProductNum >= 0.01 || $sellerPreCoupousNum>=0.01){
Model('common/UserVouchers')->insertVouchersNotice($shops['userId'],$orderId,$sellerPreProductNum,$sellerPreCoupousNum,'交易订单【'.$order->orderNo.'】商户售物所得');
if(3 != $order->goodsType){
// step 3 平台送商户10000×0.4=4000“预获产品券”
// 10000×0.4=4000“预获优惠券”
$calBaseNum = Db::table("__ORDERS__ o")->join("__ORDER_GOODS__ g", "g.orderId=o.orderId", 'inner')
->where(['o.orderId'=>$orderId])
->sum('g.goodsPrice*g.discountRate*0.01');
Model('common/UserVouchers')->insertVouchersNotice($order['userId'], $orderId, $calBaseNum, $calBaseNum,
'交易订单【'.$order->orderNo.'】商户售物所得',1);
}else{
Model('common/UserVouchers')->insertVouchersNotice($shops['userId'],$orderId,$sellerPreProductNum,$sellerPreCoupousNum,'交易订单【'.$order->orderNo.'】商户售物所得');
}
}
@ -138,9 +148,8 @@ class Settlements extends Base
// 2推荐人获得预获产品券时限上日有消费10元为优惠款的25% refPreProductNoInSaleScale
$m->setTable('user_trees');
$pid = $m->getField(['uid'=>$shops['userId']],'pid');
if($pid && $pInfo = getUserInfo(['userId'=>$pid,'dataFlag'=>1,'userStatus'=>1],'userId')){//有推荐人并且推荐人状态正常
if($pid && $pInfo = getUserInfo(['userId'=>$pid,'dataFlag'=>1,'userStatus'=>1],'userId') && 3 != $order->goodsType){//有推荐人并且推荐人状态正常
$yesterdayBuyMoney = Model('common/Orders')->getYesterdayBuyMoney($pid,'realTotalMoney');
$refProductMoney = 0;
if($yesterdayBuyMoney >= dataConf('refPreProductYdGTMoney')){//大于设定值
$refProductMoney = round($discountMoney * (dataConf('refPreProductYesInSaleScale')*0.01),2);//1
}else{

View File

@ -45,7 +45,7 @@ class Shopping extends Base{
}
return WSTReturn('',1,$rs);
}
/**
/**
* 获取列表
*/
public function searchHelpGoods($goodsCatIds = []){
@ -87,6 +87,13 @@ class Shopping extends Base{
public function getHelpCarousel(){
return WSTReturn('',1,listAds('ads-qlghelp',6,86400));
}
/**
* 获取助购吧轮播
* @return [type] [description]
*/
public function getHelpShopCarousel(){
return WSTReturn('',1,listAds('ads-qlghelpshop',6,86400));
}
/**
* 获取逛商铺商铺列表
@ -158,9 +165,11 @@ class Shopping extends Base{
$scale = 0;
if(1 == $type){
$scale = dataConf('discountRateGtToShopping');
}else{
}elseif(2 == $type){
$scale = dataConf('discountRateGtToHelp');
}
}else{
$scale = dataConf('discountRateGtToHelpShopping');
}
$cacheData = cache('QLG_SHOPPING_GOODS_'.$type.'_'.$page);
if($cacheData)return $cacheData;
$rs = Db::name('goods')
@ -181,11 +190,13 @@ class Shopping extends Base{
$where['g.goodsStatus'] = 1;
$where['g.isSale'] = 1;
$scale = 0;
if(1 == $type){
$scale = dataConf('discountRateGtToShopping');
}else{
$scale = dataConf('discountRateGtToHelp');
}
if(1 == $type){
$scale = dataConf('discountRateGtToShopping');
}elseif(2 == $type){
$scale = dataConf('discountRateGtToHelp');
}else{
$scale = dataConf('discountRateGtToHelpShopping');
}
$rs = Db::name('shops')->alias('s')
->join('__GOODS__ g','s.shopId=g.shopId','inner')
->field($field)

View File

@ -451,11 +451,14 @@ class Shops extends Base{
/**
* 获取店铺首页商品列表
*/
public function getShopIndexGoodsList($shopId=0,$field='*',$order='goodsId DESC'){
public function getShopIndexGoodsList($shopId=0,$field='*',$order='goodsId DESC', $from=0){
$shopId = empty($shopId) ? (int)input('post.shopId') : $shopId;
$from = empty($from) ? (int)input('post.from_id', 0) : $from;
$m = new TM();
$m->setTable('goods');
$rs = $m->getSelect(['shopId'=>$shopId,'isSale'=>1,'goodsStatus'=>1,'dataFlag'=>1],$field,$order);
$where = ['shopId'=>$shopId,'isSale'=>1,'goodsStatus'=>1,'dataFlag'=>1];
if($from==3){$where['discountRate'] = [">=", dataConf('discountRateGtToHelpShopping')];}
$rs = $m->getSelect($where,$field,$order);
foreach ($rs['Rows'] as &$v) {
$v['goodsImg'] = WSTImg($v['goodsImg'],3);
}

View File

@ -1,6 +1,8 @@
<?php
namespace wstmart\common\model;
use think\Db;
/**
*
*/
@ -21,6 +23,56 @@ class UserTrees extends Base
return $this->where($where)->field($field)->find();
}
public static function getUpperId($userId){
$data = self::where(["uid"=>$userId])->find();
return (null == $data)?$data:$data->pid;
}
public static function realGetMyChildren($myUserId, $users, $level = 1, &$data = []){
$inUser = implode("','",$users);
$_childes = self::where("pid in('$inUser')")->select();
$nextUsers = [];
foreach ($_childes as $_child){$nextUsers[] = $_child["uid"];}
$data[$level-1]["count"]=sizeof($_childes);
$data[$level-1]["total"]=self::realGetUsersHelpSaleNum($myUserId, $level);
if($level <= 10){$data[$level-1]["level"]=self::$level[$level];}
else{$data[$level-1]["level"]="".$level."";}
$data[$level-1]["level_no"]=$level;
return $level < (int)dataConf("helpSaleMaxLevel") ? self::realGetMyChildren($myUserId, $nextUsers, ++$level, $data) : $data;
}
public static function checkUserCanDisplay($userId){
if($userId == 1)return true;
$data = Db::name("user_vouchers_summary")->where(compact('userId'))->find();
if($data===null){$userHelpGet=0;}
else{$userHelpGet = (float)$data['helpSaleNum'];}
return ($userHelpGet >= 0);
}
public static function realGetUsersHelpSaleNum($fromUsers, $level){
$count = DB::table("hyh_orders")->where("userId='$fromUsers' and helpUserLevel='$level' and orderStatus=2")->sum("helpGetCount");
$count -= DB::table("hyh_orders")->where("helpUserId='$fromUsers' and helpUserLevel='$level' and orderStatus=2")->sum("helpGetCount2");
return round($count, 2);
}
public static function realGetLevelsDownBetween($fromUser, $toUser, $level=0){
if($level === 0 && $fromUser == $toUser)return 0;
if(!is_array($fromUser))$fromUser=[$fromUser];
if(sizeof($fromUser)==0)return 0;
if(is_array($toUser))$toUser=$toUser[0];
$inUser = implode("','",$fromUser);
$_childes = self::where("pid in('$inUser')")->select();
$nextUsers = [];
foreach ($_childes as $_child){$nextUsers[] = $_child["uid"];}
return in_array($toUser, $nextUsers) ? ++$level : self::realGetLevelsDownBetween($nextUsers, $toUser, ++$level);
}
public static function realGetLevelsBetween($fromUser, $toUser, $level=0){
if($level === 0 && $fromUser == $toUser)return 0;
$parent = self::where("uid = '$fromUser'")->find();
$nextUsers = $parent->value("pid");
return $nextUsers != null ? ($nextUsers == $toUser ? ++$level : self::realGetLevelsBetween($nextUsers, $toUser, ++$level)) : $level;
}
/**
* getMyLevel
* @RequestMapping("getMyLevel")
@ -49,7 +101,7 @@ class UserTrees extends Base
$levelArr[$level]['total'] = 0;
$level++;
if ($level <= 10) {
if ($level <= (int)dataConf("helpSaleMaxLevel")) {
return self::getMyLevel(implode(',', $ids), $level, $levelArr);
} else {
return self::getMyProductNum($levelArr);
@ -79,8 +131,14 @@ class UserTrees extends Base
if(!$ids){
$ids = 0;
}
$levelArr[$key]['total'] += \wstmart\app\model\Users::where("userId in($ids)")->sum("productNum");
$levelArr[$key]['level'] = self::$level[$key];
// Fix Injection
$levelArr[$key]['total'] = DB::table("hyh_user_vouchers_summary")->where("userId in('$ids')")->sum("helpSaleNum");
if($key>10){
$levelArr[$key]['level'] = "".$key."";
}else{
$levelArr[$key]['level'] = self::$level[$key];
}
$levelArr[$key]['level_id'] = $key;
}
return $levelArr;
}

View File

@ -128,7 +128,27 @@ class UserVouchers extends Base{
$data['giveDay'] = $v['giveDay'] + 1;
$m->updateInfo(['id'=>$v['id']],$data);
}
Db::commit();
// 每次所得值费、税前同时扣减“助购预获”值和“预获产品券”值直至减为负数为止负数部分按每天0.1%耗损。
// A、当“助购预获”值为负数时每天0.1%耗损在“预获产品券”值扣减。
// B、当“预获产品券”值为负数时每天0.1%耗损在“预获优惠券”值扣减。
// C、当“助购预获”值和“预获产品券”值同为负数时每天0.1%耗损在“预获优惠券”值同时扣减。
$vm = Model('common/Table');
$vm->setTable('user_vouchers_summary');
$data = $vm->whereOr(["helpSaleNum"=>["lt", 0]])->whereOr(["expectedProductNum"=>["lt", 0]])->select();
foreach ($data as $_each){
if($_each["expectedProductNum"]<0){
$count = (float)$_each["expectedProductNum"];
if($_each["helpSaleNum"] < 0)$count+=(float)$_each["helpSaleNum"];
$this->insertVouchersNotice($_each["userId"], 0, 0, $count*((float)dataConf("deductionRateWhennegPreCoupons")/100),
"预获产品券为负,每天耗损预获优惠券", 0);
}else{
$count = (float)$_each["helpSaleNum"];
$this->insertVouchersNotice($_each["userId"], 0, $count*((float)dataConf("deductionRateWhennegPreCoupons")/100),
0, "助购预获为负,每天耗损预获产品券", 0);
}
}
Db::commit();
return WSTReturn("ok", 1);
}catch (\Exception $e) {
dump($e);
@ -136,6 +156,87 @@ class UserVouchers extends Base{
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,'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,'dataSrc'=>1,'money'=>$alreadyProductNum,'moneyName'=>2,'remark'=>$desc,'moneyType'=>$isAdd,'payType'=>'qlgpay','createTime'=>date('Y/m/d H:i:s')]);
}
//插入或更新详细表
$m->setTable('user_vouchers_summary');
if($summaryInfo = $m->getInfo(['userId'=>$userId],'id,alreadyProductNum,alreadyCouponsNum')){
if(1 == $isAdd){
$data['alreadyProductNum'] = $summaryInfo['alreadyProductNum'] + $alreadyProductNum;
$data['alreadyCouponsNum'] = $summaryInfo['alreadyCouponsNum'] + $alreadyCouponsNum;
}else{
$data['alreadyProductNum'] = $summaryInfo['alreadyProductNum'] - $alreadyProductNum;
$data['alreadyCouponsNum'] = $summaryInfo['alreadyCouponsNum'] - $alreadyCouponsNum;
}
$m->updateInfo(['id'=>$summaryInfo['id']],$data);
}else{
if(0 == $isAdd){
$alreadyProductNum *= -1;
$alreadyCouponsNum *= -1;
}
$data = compact('userId','alreadyProductNum','alreadyCouponsNum');
$data['isGive'] = 1;
$data['giveDate'] = time();
$data['giveDay'] = 0;
$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 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]
@ -147,33 +248,33 @@ class UserVouchers extends Base{
* @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);
}
//插入详细表
$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);
}
}
}

View File

@ -17,6 +17,8 @@ class Users extends Base{
$pInfo = getUserInfo(['userId'=>$pid],'trueName,userPhone,userLevel,userStatus');
if($pInfo)
$rs['pInfo'] = ['trueName'=>$pInfo['trueName'],'userPhone'=>$pInfo['userPhone'],'userLevel'=>$this->getUserLevelName($pInfo['userLevel']),'userStatus'=>$this->getUserStatusName($pInfo['userStatus'])];
else
$rs['pInfo'] = ['trueName'=>'无上级账号','userPhone'=>'','userLevel'=>'','userStatus'=>$this->getUserStatusName($pInfo['userStatus'])];
}
$rs['lockUserCount'] = Db::name('users u')
->join('user_trees t','u.userId=t.uid')

View File

@ -14,14 +14,14 @@ class Index extends Base{
//产品券
$buyerMaxProductScale = round(dataConf('buyerMaxProductScale')*0.01,2);
$pay['maxProduct'] = $pay['needPay'] * $buyerMaxProductScale;//最大可用产品券
$pay['productHandlingFee'] = round(dataConf('useHasProductHandlingFee')*0.01,2);//产品券手续费
$pay['productTaxFee'] = round(dataConf('useHasProductTaxFee')*0.01,2);//产品券税费
$pay['productHandlingFee'] = round(dataConf('useHasHandlingFee')*0.01,2);//产品券手续费
$pay['productTaxFee'] = round(dataConf('useHasTaxFee')*0.01,2);//产品券税费
$pay['maxAllProduct'] = $this->getMaxNum($pay['maxProduct'],(1-$pay['productHandlingFee']-$pay['productTaxFee'] ));//加上手续费,税费最多扣除产品券
//优惠券
$pay['maxCoupons'] = $pay['needPay'] - $pay['maxProduct'] ;//最大可用其他券,优惠券+旺旺券+现金券
$pay['coupousHandlingFee'] = round(dataConf('useHasCoupousHandlingFee')*0.01,2);//优惠券手续费
$pay['coupousTaxFee'] = round(dataConf('useHasCoupousTaxFee')*0.01,2);//优惠券税费
$pay['coupousHandlingFee'] = round(dataConf('useHasHandlingFee')*0.01,2);//优惠券手续费
$pay['coupousTaxFee'] = round(dataConf('useHasTaxFee')*0.01,2);//优惠券税费
$pay['maxAllCoupons'] = $this->getMaxNum($pay['maxCoupons'],(1-$pay['coupousHandlingFee']-$pay['coupousTaxFee'] ));//加上手续费,税费最多扣除优惠券
$pay['money']['useMoney'] = 0;

View File

@ -131,8 +131,8 @@ class File extends SplFileObject
*/
public function getMime()
{
$finfo = finfo_open(FILEINFO_MIME_TYPE);
return finfo_file($finfo, $this->filename);
$finfo = \finfo_open(FILEINFO_MIME_TYPE);
return \finfo_file($finfo, $this->filename);
}
/**