diff --git a/.gitignore b/.gitignore index 2a84055..353074f 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ /extend/miniprogram-ci/code/ /extend/miniprogram-ci/qrcode/ /addon/dividemoney-bak/ +/vendor diff --git a/addon/fenxiao/model/FenxiaoOrder.php b/addon/fenxiao/model/FenxiaoOrder.php index 0706bf3..4371c18 100644 --- a/addon/fenxiao/model/FenxiaoOrder.php +++ b/addon/fenxiao/model/FenxiaoOrder.php @@ -26,10 +26,10 @@ class FenxiaoOrder extends BaseModel //获取分销基础配置 $config_model = new Config(); $fenxiao_basic_config = $config_model->getFenxiaoBasicsConfig($order[ 'site_id' ])[ 'data' ][ 'value' ]; - $level_config = $fenxiao_basic_config[ 'level' ]; - if (empty($level_config)) return $this->success(); - //检测分销商上级关系 + if (!$fenxiao_basic_config['level']) return $this->success(); + // //检测分销商上级关系 $member_info = model("member")->getInfo([ [ 'member_id', '=', $order[ 'member_id' ] ] ], 'fenxiao_id,is_fenxiao,nickname,mobile'); + // 本人是分销商 触发购买指定商品升级 if($member_info['is_fenxiao'] == 1 && $member_info['fenxiao_id'] > 0){ event('FenxiaoUpgrade', [ @@ -38,11 +38,15 @@ class FenxiaoOrder extends BaseModel ]); $member_info = model("member")->getInfo([ [ 'member_id', '=', $order[ 'member_id' ] ] ], 'fenxiao_id,is_fenxiao,nickname,mobile'); } - //如果没有分销商直接返回不计算,没有考虑首次付款上下级绑定 + // //如果没有分销商直接返回不计算,没有考虑首次付款上下级绑定 if (empty($member_info)) return $this->success(); if ($member_info[ 'fenxiao_id' ] == 0) return $this->success(); $fenxiao_id = $member_info[ 'fenxiao_id' ]; - $fenxiao_info = model("fenxiao")->getInfo([ [ 'fenxiao_id', '=', $fenxiao_id ], [ 'is_delete', '=', 0 ] ]); + $field = 'f.fenxiao_id,f.fenxiao_name,f.member_id,f.level_id,f.parent,f.grand_parent,l.level_num'; + $join = [ + ['fenxiao_level l', 'f.level_id = l.level_id', 'right'] + ]; + $fenxiao_info = model("fenxiao")->getInfo([ [ 'f.fenxiao_id', '=', $fenxiao_id ], [ 'f.is_delete', '=', 0 ] ],$field,'f',$join); if (empty($fenxiao_info)) return $this->success(); // 如果购买人是分销商 并且未开启分销商自购 if ($member_info[ 'is_fenxiao' ] && $fenxiao_basic_config[ 'self_purchase_rebate' ] == 0) { @@ -50,145 +54,164 @@ class FenxiaoOrder extends BaseModel $fenxiao_info = model("fenxiao")->getInfo([ [ 'fenxiao_id', '=', $fenxiao_info[ 'parent' ] ], [ 'is_delete', '=', 0 ] ]); if (empty($fenxiao_info)) return $this->success(); } - //判断几级分销 - $parent_fenxiao_info = $level_config >= 2 ? model('fenxiao')->getInfo([ [ 'fenxiao_id', '=', $fenxiao_info[ 'parent' ] ], [ 'is_delete', '=', 0 ] ], 'fenxiao_id, fenxiao_name, status, parent') : []; - $grand_parent_fenxiao_info = $level_config >= 3 && !empty($parent_fenxiao_info[ 'parent' ]) ? model('fenxiao')->getInfo([ [ 'fenxiao_id', '=', $parent_fenxiao_info[ 'parent' ] ], [ 'is_delete', '=', 0 ] ], 'fenxiao_id, fenxiao_name, status') : []; + + // //判断几级分销 + dump($fenxiao_basic_config); + dump($fenxiao_info); + // $parent_fenxiao_info = $level_config >= 2 ? model('fenxiao')->getInfo([ [ 'fenxiao_id', '=', $fenxiao_info[ 'parent' ] ], [ 'is_delete', '=', 0 ] ], 'fenxiao_id, fenxiao_name, status, parent') : []; + // $grand_parent_fenxiao_info = $level_config >= 3 && !empty($parent_fenxiao_info[ 'parent' ]) ? model('fenxiao')->getInfo([ [ 'fenxiao_id', '=', $parent_fenxiao_info[ 'parent' ] ], [ 'is_delete', '=', 0 ] ], 'fenxiao_id, fenxiao_name, status') : []; $order_goods = model('order_goods')->getList([ [ 'order_id', '=', $order[ 'order_id' ] ], [ 'is_fenxiao', '=', 1 ] ], 'order_goods_id, goods_id, sku_id, sku_name, sku_image, sku_no, is_virtual, price, cost_price, num, goods_money, cost_money, delivery_no, delivery_status, real_goods_money'); if (empty($order_goods)) return $this->success(); model('fenxiao_order')->delete([ [ 'order_id', '=', $order[ 'order_id' ] ] ]); - //获取分销等级 - foreach ($order_goods as $k => $v) { - $v[ 'num' ] = numberFormat($v[ 'num' ]); - // 判断:是否开启分销 - if($order['order_from'] == 'cashier'){ - // 收银台订单 - $isOpenFenXiao = $fenxiao_basic_config['is_support_cashier'] ?? 0; - $fenXiaoType = 1; - }else{ - // 其他订单 - $goods_info = model('goods')->getInfo([['goods_id','=',$v['goods_id']]],'is_fenxiao, fenxiao_type'); - $isOpenFenXiao = $goods_info['is_fenxiao'] ?? 0; - $fenXiaoType = $goods_info[ 'fenxiao_type' ] ?? 1; - } - if($isOpenFenXiao != 1) continue; - // 配送规格 - $sku_info = model('goods_sku')->getInfo([ [ 'sku_id', '=', $v[ 'sku_id' ] ] ], 'fenxiao_price'); - if (!empty($sku_info) && $sku_info[ 'fenxiao_price' ] > 0) $v[ 'real_goods_money' ] = $sku_info[ 'fenxiao_price' ] * $v[ 'num' ]; - $commission = 0; - $commission_rate = 0; + foreach($order_goods as $k => $v){ + $goods_info = model('goods')->getInfo([['goods_id','=',$v['goods_id']]],'is_fenxiao, fenxiao_type'); $order_fenxiao_data = [ 'one_rate' => 0, 'one_commission' => 0, 'two_rate' => 0, 'two_commission' => 0, - 'three_rate' => 0, - ]; - if ($fenXiaoType == 2) { - // 自定义分销规则 - $fenxiao_level = model('fenxiao_goods_sku')->getInfo([ [ 'goods_id', '=', $v[ 'goods_id' ] ], [ 'sku_id', '=', $v[ 'sku_id' ] ], [ 'level_id', '=', $fenxiao_info[ 'level_id' ] ] ]); - if (empty($fenxiao_level)) continue; - if ($fenxiao_info[ 'status' ] == 1) { - if ($fenxiao_level[ 'one_rate' ] > 0) { - $commission_rate += $order_fenxiao_data[ 'one_rate' ] = $fenxiao_level[ 'one_rate' ]; - $commission += $order_fenxiao_data[ 'one_commission' ] = $fenxiao_level[ 'one_rate' ] * $v[ 'real_goods_money' ] / 100; - } else { - $commission_rate += $order_fenxiao_data[ 'one_rate' ] = round($fenxiao_level[ 'one_money' ] * $v[ 'num' ] / $v[ 'real_goods_money' ], 2); - $commission += $order_fenxiao_data[ 'one_commission' ] = $fenxiao_level[ 'one_money' ] * $v[ 'num' ]; - } - } - if (!empty($parent_fenxiao_info) && $parent_fenxiao_info[ 'status' ] == 1) { - if ($fenxiao_level[ 'two_rate' ] > 0) { - $commission_rate += $order_fenxiao_data[ 'two_rate' ] = $fenxiao_level[ 'two_rate' ]; - $commission += $order_fenxiao_data[ 'two_commission' ] = $fenxiao_level[ 'two_rate' ] * $v[ 'real_goods_money' ] / 100; - } else { - $commission_rate += $order_fenxiao_data[ 'two_rate' ] = round($fenxiao_level[ 'two_money' ] * $v[ 'num' ] / $v[ 'real_goods_money' ], 2); - $commission += $order_fenxiao_data[ 'two_commission' ] = $fenxiao_level[ 'two_money' ] * $v[ 'num' ]; - } - } - if (!empty($grand_parent_fenxiao_info) && $grand_parent_fenxiao_info[ 'status' ] == 1) { - if ($fenxiao_level[ 'three_rate' ] > 0) { - $commission_rate += $order_fenxiao_data[ 'three_rate' ] = $fenxiao_level[ 'three_rate' ]; - $commission += $order_fenxiao_data[ 'three_commission' ] = $fenxiao_level[ 'three_rate' ] * $v[ 'real_goods_money' ] / 100; - } else { - $commission_rate += $order_fenxiao_data[ 'three_rate' ] = round($fenxiao_level[ 'three_money' ] * $v[ 'num' ] / $v[ 'real_goods_money' ], 2); - $commission += $order_fenxiao_data[ 'three_commission' ] = $fenxiao_level[ 'three_money' ] * $v[ 'num' ]; - } - } - } else { - // 默认规则 - $fenxiao_level = model('fenxiao_level')->getInfo([ [ 'level_id', '=', $fenxiao_info[ 'level_id' ] ] ]); - if ($fenxiao_info[ 'status' ] == 1) { - if ($fenxiao_level[ 'one_rate' ] > 0) { - $commission_rate += $order_fenxiao_data[ 'one_rate' ] = $fenxiao_level[ 'one_rate' ]; - $commission += $order_fenxiao_data[ 'one_commission' ] = $fenxiao_level[ 'one_rate' ] * $v[ 'real_goods_money' ] / 100; - } else { - $order_fenxiao_data[ 'one_rate' ] = 0; - $order_fenxiao_data[ 'one_commission' ] = 0; - } - } - if (!empty($parent_fenxiao_info) && $parent_fenxiao_info[ 'status' ] == 1) { - if ($fenxiao_level[ 'two_rate' ] > 0) { - $commission_rate += $order_fenxiao_data[ 'two_rate' ] = $fenxiao_level[ 'two_rate' ]; - $commission += $order_fenxiao_data[ 'two_commission' ] = $fenxiao_level[ 'two_rate' ] * $v[ 'real_goods_money' ] / 100; - } else { - $order_fenxiao_data[ 'two_rate' ] = 0; - $order_fenxiao_data[ 'two_commission' ] = 0; - } - } - if (!empty($grand_parent_fenxiao_info) && $grand_parent_fenxiao_info[ 'status' ] == 1) { - if ($fenxiao_level[ 'three_rate' ] > 0) { - $commission_rate += $order_fenxiao_data[ 'three_rate' ] = $fenxiao_level[ 'three_rate' ]; - $commission += $order_fenxiao_data[ 'three_commission' ] = $fenxiao_level[ 'three_rate' ] * $v[ 'real_goods_money' ] / 100; - } else { - $order_fenxiao_data[ 'three_rate' ] = 0; - $order_fenxiao_data[ 'three_commission' ] = 0; - } - } - } - //启动分销 - $siteName = model('site')->getValue([ - ['site_id', '=', $order['site_id']] - ], 'site_name'); - $data = [ - 'order_id' => $order['order_id'], - 'order_no' => $order['order_no'], - 'order_goods_id' => $v['order_goods_id'], - 'site_id' => $order['site_id'], - 'site_name' => $siteName, - 'goods_id' => $v['goods_id'], - 'sku_id' => $v['sku_id'], - 'sku_name' => $v['sku_name'], - 'sku_image' => $v['sku_image'], - 'price' => $v['price'], - 'num' => $v['num'], - 'real_goods_money' => $order_goods[$k]['real_goods_money'], - 'member_id' => $order['member_id'], - 'member_name' => !empty($order['name']) ? $order['name'] : $member_info['nickname'], - 'member_mobile' => !empty($order['mobile']) ? $order['mobile'] : $member_info['mobile'], - 'full_address' => $order['full_address'].$order['address'], - 'commission' => $commission, - 'commission_rate' => $commission_rate, - 'one_fenxiao_id' => empty($fenxiao_info) ? 0 : $fenxiao_info['fenxiao_id'], - 'one_rate' => empty($order_fenxiao_data['one_rate']) ? 0 : $order_fenxiao_data['one_rate'], - 'one_commission' => empty($order_fenxiao_data['one_commission']) ? 0 : $order_fenxiao_data['one_commission'], - 'one_fenxiao_name' => empty($fenxiao_info) ? '' : $fenxiao_info['fenxiao_name'], - 'two_fenxiao_id' => empty($parent_fenxiao_info) ? 0 : $parent_fenxiao_info['fenxiao_id'], - 'two_rate' => empty($order_fenxiao_data['two_rate']) ? 0 : $order_fenxiao_data['two_rate'], - 'two_commission' => empty($order_fenxiao_data['two_commission']) ? 0 : $order_fenxiao_data['two_commission'], - 'two_fenxiao_name' => empty($parent_fenxiao_info) ? '' : $parent_fenxiao_info['fenxiao_name'], - 'three_fenxiao_id' => empty($grand_parent_fenxiao_info) ? '' : $grand_parent_fenxiao_info['fenxiao_id'], - 'three_rate' => empty($order_fenxiao_data['three_rate']) ? 0 : $order_fenxiao_data['three_rate'], - 'three_commission' => empty($order_fenxiao_data['three_commission']) ? 0 : $order_fenxiao_data['three_commission'], - 'three_fenxiao_name' => empty($grand_parent_fenxiao_info) ? '' : $grand_parent_fenxiao_info['fenxiao_name'], - 'create_time' => time() ]; + //参与了分销商品,有直推间推奖励 + if($goods_info['is_fenxiao']){ + $order_fenxiao_data = $this->getPushFenXiaoCommission($fenxiao_info,); + }else{ - model("fenxiao_order")->add($data); + } } - // 分销商检测升级 - event('FenxiaoUpgrade', [ - 'fenxiao_id' => $member_info[ 'fenxiao_id' ] - ]); + + // //获取分销等级 + // foreach ($order_goods as $k => $v) { + // $v[ 'num' ] = numberFormat($v[ 'num' ]); + // // 判断:是否开启分销 + // if($order['order_from'] == 'cashier'){ + // // 收银台订单 + // $isOpenFenXiao = $fenxiao_basic_config['is_support_cashier'] ?? 0; + // $fenXiaoType = 1; + // }else{ + // // 其他订单 + // $goods_info = model('goods')->getInfo([['goods_id','=',$v['goods_id']]],'is_fenxiao, fenxiao_type'); + // $isOpenFenXiao = $goods_info['is_fenxiao'] ?? 0; + // $fenXiaoType = $goods_info[ 'fenxiao_type' ] ?? 1; + // } + // if($isOpenFenXiao != 1) continue; + // // 配送规格 + // $sku_info = model('goods_sku')->getInfo([ [ 'sku_id', '=', $v[ 'sku_id' ] ] ], 'fenxiao_price'); + // if (!empty($sku_info) && $sku_info[ 'fenxiao_price' ] > 0) $v[ 'real_goods_money' ] = $sku_info[ 'fenxiao_price' ] * $v[ 'num' ]; + // $commission = 0; + // $commission_rate = 0; + // $order_fenxiao_data = [ + // 'one_rate' => 0, + // 'one_commission' => 0, + // 'two_rate' => 0, + // 'two_commission' => 0, + // 'three_rate' => 0, + // ]; + // if ($fenXiaoType == 2) { + // // 自定义分销规则 + // $fenxiao_level = model('fenxiao_goods_sku')->getInfo([ [ 'goods_id', '=', $v[ 'goods_id' ] ], [ 'sku_id', '=', $v[ 'sku_id' ] ], [ 'level_id', '=', $fenxiao_info[ 'level_id' ] ] ]); + // if (empty($fenxiao_level)) continue; + // if ($fenxiao_info[ 'status' ] == 1) { + // if ($fenxiao_level[ 'one_rate' ] > 0) { + // $commission_rate += $order_fenxiao_data[ 'one_rate' ] = $fenxiao_level[ 'one_rate' ]; + // $commission += $order_fenxiao_data[ 'one_commission' ] = $fenxiao_level[ 'one_rate' ] * $v[ 'real_goods_money' ] / 100; + // } else { + // $commission_rate += $order_fenxiao_data[ 'one_rate' ] = round($fenxiao_level[ 'one_money' ] * $v[ 'num' ] / $v[ 'real_goods_money' ], 2); + // $commission += $order_fenxiao_data[ 'one_commission' ] = $fenxiao_level[ 'one_money' ] * $v[ 'num' ]; + // } + // } + // if (!empty($parent_fenxiao_info) && $parent_fenxiao_info[ 'status' ] == 1) { + // if ($fenxiao_level[ 'two_rate' ] > 0) { + // $commission_rate += $order_fenxiao_data[ 'two_rate' ] = $fenxiao_level[ 'two_rate' ]; + // $commission += $order_fenxiao_data[ 'two_commission' ] = $fenxiao_level[ 'two_rate' ] * $v[ 'real_goods_money' ] / 100; + // } else { + // $commission_rate += $order_fenxiao_data[ 'two_rate' ] = round($fenxiao_level[ 'two_money' ] * $v[ 'num' ] / $v[ 'real_goods_money' ], 2); + // $commission += $order_fenxiao_data[ 'two_commission' ] = $fenxiao_level[ 'two_money' ] * $v[ 'num' ]; + // } + // } + // if (!empty($grand_parent_fenxiao_info) && $grand_parent_fenxiao_info[ 'status' ] == 1) { + // if ($fenxiao_level[ 'three_rate' ] > 0) { + // $commission_rate += $order_fenxiao_data[ 'three_rate' ] = $fenxiao_level[ 'three_rate' ]; + // $commission += $order_fenxiao_data[ 'three_commission' ] = $fenxiao_level[ 'three_rate' ] * $v[ 'real_goods_money' ] / 100; + // } else { + // $commission_rate += $order_fenxiao_data[ 'three_rate' ] = round($fenxiao_level[ 'three_money' ] * $v[ 'num' ] / $v[ 'real_goods_money' ], 2); + // $commission += $order_fenxiao_data[ 'three_commission' ] = $fenxiao_level[ 'three_money' ] * $v[ 'num' ]; + // } + // } + // } else { + // // 默认规则 + // $fenxiao_level = model('fenxiao_level')->getInfo([ [ 'level_id', '=', $fenxiao_info[ 'level_id' ] ] ]); + // if ($fenxiao_info[ 'status' ] == 1) { + // if ($fenxiao_level[ 'one_rate' ] > 0) { + // $commission_rate += $order_fenxiao_data[ 'one_rate' ] = $fenxiao_level[ 'one_rate' ]; + // $commission += $order_fenxiao_data[ 'one_commission' ] = $fenxiao_level[ 'one_rate' ] * $v[ 'real_goods_money' ] / 100; + // } else { + // $order_fenxiao_data[ 'one_rate' ] = 0; + // $order_fenxiao_data[ 'one_commission' ] = 0; + // } + // } + // if (!empty($parent_fenxiao_info) && $parent_fenxiao_info[ 'status' ] == 1) { + // if ($fenxiao_level[ 'two_rate' ] > 0) { + // $commission_rate += $order_fenxiao_data[ 'two_rate' ] = $fenxiao_level[ 'two_rate' ]; + // $commission += $order_fenxiao_data[ 'two_commission' ] = $fenxiao_level[ 'two_rate' ] * $v[ 'real_goods_money' ] / 100; + // } else { + // $order_fenxiao_data[ 'two_rate' ] = 0; + // $order_fenxiao_data[ 'two_commission' ] = 0; + // } + // } + // if (!empty($grand_parent_fenxiao_info) && $grand_parent_fenxiao_info[ 'status' ] == 1) { + // if ($fenxiao_level[ 'three_rate' ] > 0) { + // $commission_rate += $order_fenxiao_data[ 'three_rate' ] = $fenxiao_level[ 'three_rate' ]; + // $commission += $order_fenxiao_data[ 'three_commission' ] = $fenxiao_level[ 'three_rate' ] * $v[ 'real_goods_money' ] / 100; + // } else { + // $order_fenxiao_data[ 'three_rate' ] = 0; + // $order_fenxiao_data[ 'three_commission' ] = 0; + // } + // } + // } + // //启动分销 + // $siteName = model('site')->getValue([ + // ['site_id', '=', $order['site_id']] + // ], 'site_name'); + // $data = [ + // 'order_id' => $order['order_id'], + // 'order_no' => $order['order_no'], + // 'order_goods_id' => $v['order_goods_id'], + // 'site_id' => $order['site_id'], + // 'site_name' => $siteName, + // 'goods_id' => $v['goods_id'], + // 'sku_id' => $v['sku_id'], + // 'sku_name' => $v['sku_name'], + // 'sku_image' => $v['sku_image'], + // 'price' => $v['price'], + // 'num' => $v['num'], + // 'real_goods_money' => $order_goods[$k]['real_goods_money'], + // 'member_id' => $order['member_id'], + // 'member_name' => !empty($order['name']) ? $order['name'] : $member_info['nickname'], + // 'member_mobile' => !empty($order['mobile']) ? $order['mobile'] : $member_info['mobile'], + // 'full_address' => $order['full_address'].$order['address'], + // 'commission' => $commission, + // 'commission_rate' => $commission_rate, + // 'one_fenxiao_id' => empty($fenxiao_info) ? 0 : $fenxiao_info['fenxiao_id'], + // 'one_rate' => empty($order_fenxiao_data['one_rate']) ? 0 : $order_fenxiao_data['one_rate'], + // 'one_commission' => empty($order_fenxiao_data['one_commission']) ? 0 : $order_fenxiao_data['one_commission'], + // 'one_fenxiao_name' => empty($fenxiao_info) ? '' : $fenxiao_info['fenxiao_name'], + // 'two_fenxiao_id' => empty($parent_fenxiao_info) ? 0 : $parent_fenxiao_info['fenxiao_id'], + // 'two_rate' => empty($order_fenxiao_data['two_rate']) ? 0 : $order_fenxiao_data['two_rate'], + // 'two_commission' => empty($order_fenxiao_data['two_commission']) ? 0 : $order_fenxiao_data['two_commission'], + // 'two_fenxiao_name' => empty($parent_fenxiao_info) ? '' : $parent_fenxiao_info['fenxiao_name'], + // 'three_fenxiao_id' => empty($grand_parent_fenxiao_info) ? '' : $grand_parent_fenxiao_info['fenxiao_id'], + // 'three_rate' => empty($order_fenxiao_data['three_rate']) ? 0 : $order_fenxiao_data['three_rate'], + // 'three_commission' => empty($order_fenxiao_data['three_commission']) ? 0 : $order_fenxiao_data['three_commission'], + // 'three_fenxiao_name' => empty($grand_parent_fenxiao_info) ? '' : $grand_parent_fenxiao_info['fenxiao_name'], + // 'create_time' => time() + // ]; + // + // model("fenxiao_order")->add($data); + // } + // // 分销商检测升级 + // event('FenxiaoUpgrade', [ + // 'fenxiao_id' => $member_info[ 'fenxiao_id' ] + // ]); return $this->success(); } @@ -550,4 +573,4 @@ class FenxiaoOrder extends BaseModel unset($new_line_value); } } -} \ No newline at end of file +} diff --git a/addon/fenxiao/shop/view/config/basics.html b/addon/fenxiao/shop/view/config/basics.html index 4b3f5f0..b9a76b7 100644 --- a/addon/fenxiao/shop/view/config/basics.html +++ b/addon/fenxiao/shop/view/config/basics.html @@ -9,7 +9,7 @@ 分销设置
会员购买后给当前等级分销商的上上级分销商返佣比例
会员购买后给对应分销商的返佣比例
+会员购买后给对应分销商的返佣比例
+价格
分销商等级名称