From 4131f1ac50b63318a09a96f91bbc0fb3fc5a03ae Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 27 Oct 2019 20:15:29 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=88=E6=9E=81=E6=8F=90=E4=BA=A4=EF=BD=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hyhproject/admin/model/Orders.php | 12 +- hyhproject/admin/view/orders/view.html | 34 +++- hyhproject/app/controller/Orders.php | 92 ++++++--- hyhproject/app/controller/Shopping.php | 8 + hyhproject/app/controller/UserLevel.php | 37 ++-- hyhproject/app/controller/Users.php | 3 +- hyhproject/app/controller/Uservouchers.php | 15 +- hyhproject/common/model/Carts.php | 2 +- hyhproject/common/model/Orders.php | 209 +++++++++++++++++++-- hyhproject/common/model/Settlements.php | 23 ++- hyhproject/common/model/Shopping.php | 27 ++- hyhproject/common/model/Shops.php | 7 +- hyhproject/common/model/UserTrees.php | 64 ++++++- hyhproject/common/model/UserVouchers.php | 159 +++++++++++++--- hyhproject/common/model/Users.php | 2 + hyhproject/home/controller/Index.php | 8 +- thinkphp/library/think/File.php | 4 +- 17 files changed, 588 insertions(+), 118 deletions(-) diff --git a/hyhproject/admin/model/Orders.php b/hyhproject/admin/model/Orders.php index cd75905..a35d505 100755 --- a/hyhproject/admin/model/Orders.php +++ b/hyhproject/admin/model/Orders.php @@ -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(); diff --git a/hyhproject/admin/view/orders/view.html b/hyhproject/admin/view/orders/view.html index cc54e2c..4e55018 100755 --- a/hyhproject/admin/view/orders/view.html +++ b/hyhproject/admin/view/orders/view.html @@ -220,7 +220,39 @@ {/if} - + + {if $object['goodsType']==3} + + + +
+ +
助购信息
+ + + + + + + + + + + + + + + + + + + +
助购人:{$object['helpUser']['userName']}
助购层级:{$object['helpUserLevel']}
+ +
+ + {/if} +
diff --git a/hyhproject/app/controller/Orders.php b/hyhproject/app/controller/Orders.php index 8acb05e..4e0b372 100755 --- a/hyhproject/app/controller/Orders.php +++ b/hyhproject/app/controller/Orders.php @@ -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))); + } /** * 订单详情 */ diff --git a/hyhproject/app/controller/Shopping.php b/hyhproject/app/controller/Shopping.php index c9f4b9c..83bab1d 100755 --- a/hyhproject/app/controller/Shopping.php +++ b/hyhproject/app/controller/Shopping.php @@ -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())); } /** * 搜索助微吧商品列表 diff --git a/hyhproject/app/controller/UserLevel.php b/hyhproject/app/controller/UserLevel.php index ae5b1f8..a436e5b 100644 --- a/hyhproject/app/controller/UserLevel.php +++ b/hyhproject/app/controller/UserLevel.php @@ -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; } diff --git a/hyhproject/app/controller/Users.php b/hyhproject/app/controller/Users.php index 28553d0..ef7ab09 100755 --- a/hyhproject/app/controller/Users.php +++ b/hyhproject/app/controller/Users.php @@ -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){ diff --git a/hyhproject/app/controller/Uservouchers.php b/hyhproject/app/controller/Uservouchers.php index d3de113..3957369 100755 --- a/hyhproject/app/controller/Uservouchers.php +++ b/hyhproject/app/controller/Uservouchers.php @@ -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)); + } } diff --git a/hyhproject/common/model/Carts.php b/hyhproject/common/model/Carts.php index 42d2f05..f2f25d4 100755 --- a/hyhproject/common/model/Carts.php +++ b/hyhproject/common/model/Carts.php @@ -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 = []; diff --git a/hyhproject/common/model/Orders.php b/hyhproject/common/model/Orders.php index b292cda..0826a7e 100755 --- a/hyhproject/common/model/Orders.php +++ b/hyhproject/common/model/Orders.php @@ -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'] )); diff --git a/hyhproject/common/model/Settlements.php b/hyhproject/common/model/Settlements.php index b08d251..e73c178 100755 --- a/hyhproject/common/model/Settlements.php +++ b/hyhproject/common/model/Settlements.php @@ -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{ diff --git a/hyhproject/common/model/Shopping.php b/hyhproject/common/model/Shopping.php index de31827..62fffbe 100755 --- a/hyhproject/common/model/Shopping.php +++ b/hyhproject/common/model/Shopping.php @@ -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) diff --git a/hyhproject/common/model/Shops.php b/hyhproject/common/model/Shops.php index 7cdb351..ec4edf3 100755 --- a/hyhproject/common/model/Shops.php +++ b/hyhproject/common/model/Shops.php @@ -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); } diff --git a/hyhproject/common/model/UserTrees.php b/hyhproject/common/model/UserTrees.php index 3328581..07e8407 100755 --- a/hyhproject/common/model/UserTrees.php +++ b/hyhproject/common/model/UserTrees.php @@ -1,6 +1,8 @@ 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; } diff --git a/hyhproject/common/model/UserVouchers.php b/hyhproject/common/model/UserVouchers.php index a2b2369..d2a5747 100755 --- a/hyhproject/common/model/UserVouchers.php +++ b/hyhproject/common/model/UserVouchers.php @@ -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); + } } } diff --git a/hyhproject/common/model/Users.php b/hyhproject/common/model/Users.php index edf202f..367dda4 100755 --- a/hyhproject/common/model/Users.php +++ b/hyhproject/common/model/Users.php @@ -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') diff --git a/hyhproject/home/controller/Index.php b/hyhproject/home/controller/Index.php index f63ec19..4540b25 100755 --- a/hyhproject/home/controller/Index.php +++ b/hyhproject/home/controller/Index.php @@ -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; diff --git a/thinkphp/library/think/File.php b/thinkphp/library/think/File.php index 8e606f7..2f86315 100755 --- a/thinkphp/library/think/File.php +++ b/thinkphp/library/think/File.php @@ -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); } /**