终极提交~
This commit is contained in:
parent
df11660e6a
commit
4131f1ac50
@ -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();
|
||||
|
@ -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'>
|
||||
|
||||
|
@ -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)));
|
||||
}
|
||||
/**
|
||||
* 订单详情
|
||||
*/
|
||||
|
@ -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()));
|
||||
}
|
||||
/**
|
||||
* 搜索助微吧商品列表
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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){
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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 = [];
|
||||
|
@ -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'] ));
|
||||
|
@ -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{
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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')
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user