修改进货系统分销关节节点,分销订单逻辑

This commit is contained in:
liqianjin 2024-09-24 18:03:59 +08:00
parent ec15cde627
commit b9612fbdd9
13 changed files with 250 additions and 94 deletions

View File

@ -77,6 +77,9 @@ return [
//统计写入 //统计写入
'AddStat' => [ 'AddStat' => [
'addon\fenxiao\event\AddStat', 'addon\fenxiao\event\AddStat',
],
'NodeParent'=>[
'addon\fenxiao\event\NodeParent',
] ]
], ],

View File

@ -0,0 +1,26 @@
<?php
namespace addon\fenxiao\event;
class NodeParent
{
public function handle($param)
{
if (isset($param['parent'])) {
$parentInfo = model('fenxiao')->getInfo(['fenxiao_id' => $param['parent']], 'fenxiao_id,fenxiao_name,parent,chain,depth_level');
if ($parentInfo) {
$Parent['chain'] = $parentInfo['chain'] . $param['fenxiao_id'] . ',';
$Parent['depth_level'] = $parentInfo['depth_level'] + 1;
} else {
$Parent['chain'] = $param['fenxiao_id'] . ',';
$Parent['depth_level'] = 1;
}
return $Parent;
}
if (isset($param['fenxiao_id'])) {
$Parent['chain'] = $param['fenxiao_id'] . ',';
$Parent['depth_level'] = 1;
return $Parent;
}
return [];
}
}

View File

@ -75,7 +75,6 @@ class Config extends BaseModel
{ {
$config = new ConfigModel(); $config = new ConfigModel();
$res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_BASICS_CONFIG' ] ]); $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_BASICS_CONFIG' ] ]);
if (empty($res[ 'data' ][ 'value' ])) { if (empty($res[ 'data' ][ 'value' ])) {
$res[ 'data' ][ 'value' ] = [ $res[ 'data' ][ 'value' ] = [
'level' => 2,//分销层级 'level' => 2,//分销层级

View File

@ -14,6 +14,7 @@ use app\model\BaseModel;
use app\model\member\Member; use app\model\member\Member;
use app\model\order\OrderCommon; use app\model\order\OrderCommon;
use app\model\system\Stat; use app\model\system\Stat;
use think\facade\Db;
use think\facade\Queue; use think\facade\Queue;
/** /**
@ -61,6 +62,10 @@ class Fenxiao extends BaseModel
]); ]);
} }
$res = model('fenxiao')->add($data); $res = model('fenxiao')->add($data);
$nodeInfo = event('NodeParent', $data, true);
if ($nodeInfo) {
model('fenxiao')->update($nodeInfo, [['fenxiao_id', '=', $res]]);
}
//修改会员信息 //修改会员信息
model('member')->update([ 'fenxiao_id' => $res, 'is_fenxiao' => 1 ], [ [ 'member_id', '=', $data[ 'member_id' ] ] ]); model('member')->update([ 'fenxiao_id' => $res, 'is_fenxiao' => 1 ], [ [ 'member_id', '=', $data[ 'member_id' ] ] ]);
$stat_model = new Stat(); $stat_model = new Stat();
@ -361,6 +366,7 @@ class Fenxiao extends BaseModel
$member_info = model('member')->getInfo([ [ 'member_id', '=', $member_id ], [ 'site_id', '=', $site_id ], [ 'is_delete', '=', 0 ] ], 'order_num,order_complete_num,order_money,order_complete_money,is_fenxiao'); $member_info = model('member')->getInfo([ [ 'member_id', '=', $member_id ], [ 'site_id', '=', $site_id ], [ 'is_delete', '=', 0 ] ], 'order_num,order_complete_num,order_money,order_complete_money,is_fenxiao');
if (empty($member_info)) return $this->error('', '未查询到会员信息'); if (empty($member_info)) return $this->error('', '未查询到会员信息');
$fenxiao_info = $this->getFenxiaoDetailInfo([ [ 'f.member_id', '=', $member_id ] ])[ 'data' ]; $fenxiao_info = $this->getFenxiaoDetailInfo([ [ 'f.member_id', '=', $member_id ] ])[ 'data' ];
if (!empty($fenxiao_info) && $member_info[ 'is_fenxiao' ]) return $this->error('', '已经是分销商'); if (!empty($fenxiao_info) && $member_info[ 'is_fenxiao' ]) return $this->error('', '已经是分销商');
try { try {
$config = new Config(); $config = new Config();
@ -410,7 +416,6 @@ class Fenxiao extends BaseModel
//获取用户信息 //获取用户信息
$member_field = 'member_id,site_id,source_member,fenxiao_id,nickname,headimg,mobile,reg_time,order_money,order_complete_money,order_num,order_complete_num'; $member_field = 'member_id,site_id,source_member,fenxiao_id,nickname,headimg,mobile,reg_time,order_money,order_complete_money,order_num,order_complete_num';
$member_info = model('member')->getInfo([ [ 'member_id', '=', $member_id ] ], $member_field); $member_info = model('member')->getInfo([ [ 'member_id', '=', $member_id ] ], $member_field);
if (!empty($member_info)) { if (!empty($member_info)) {
$parent = 0; $parent = 0;
if (!empty($member_info[ 'source_member' ])) { if (!empty($member_info[ 'source_member' ])) {
@ -524,25 +529,41 @@ class Fenxiao extends BaseModel
'f.site_id' 'f.site_id'
]; ];
$fenxiao_info = model('fenxiao')->getInfo($where, $field, 'f', $join); $fenxiao_info = model('fenxiao')->getInfo($where, $field, 'f', $join);
if (!empty($fenxiao_info)) { if (!empty($fenxiao_info)) {
$level_list = model('fenxiao_level')->getList([ $level_list = model('fenxiao_level')->getList([
['site_id','=',$fenxiao_info['site_id']], ['site_id','=',$fenxiao_info['site_id']],
['level_num','>',$fenxiao_info['level_num']] ['level_num','>',$fenxiao_info['level_num']]
],'*','level_num asc,one_rate asc'); ],'*','level_num asc,one_rate asc');
if (!empty($level_list)) { if (!empty($level_list)) {
$upgrade_level = null; $upgrade_level = null;
foreach ($level_list as $item) { foreach ($level_list as $item) {
// 判断:是否需要判断购买指定商品之一升级 // 判断:是否需要判断购买指定商品之一升级
$goodsReach = true;// 默认条件达成 $goodsReach = true;// 默认条件达成
$goodsIds = $item['goods_ids'] ?? ''; $goodsIds = $item['goods_ids'] ?? '';
$goodsIdsArr = $goodsIds ? explode(',', $goodsIds) : []; $goodsIdsArr = $goodsIds && $orderId > 0 ? explode(',', $goodsIds) : [];
if($orderId > 0 && count($goodsIdsArr) > 0){ if($orderId > 0 && count($goodsIdsArr) > 0){
$isBuy = (int)model('order_goods')->getValue([ $isBuy = (int)model('order_goods')->getValue([
['order_id', '=', $orderId], ['order_id', '=', $orderId],
['goods_id', 'in', $goodsIdsArr], ['goods_id', 'in', $goodsIdsArr],
],'order_goods_id'); ],'order_goods_id');
$goodsReach = $isBuy > 0; $goodsReach = $isBuy > 0;
} }
if($item['one_child_fenxiao_equal']){
$equal_where = [
['f.chain', 'like', '%' . $fenxiao_id . ',' . '%' ],
['f.status','=',1],
['f.is_delete','=',0],
['fl.level_num','>=',$fenxiao_info['level_num']],
];
//查询用户下线中是否有相同等级或更高的
$one_child_fenxiao_equal_num = model('fenxiao')->getCount($equal_where, '*', 'f', $join);
}else{
$one_child_fenxiao_equal_num = 0;
}
// 判断:是否升级 // 判断:是否升级
if ($item[ 'upgrade_type' ] == 2) { if ($item[ 'upgrade_type' ] == 2) {
// 需要满足全部条件 // 需要满足全部条件
@ -552,7 +573,7 @@ class Fenxiao extends BaseModel
&& $fenxiao_info[ 'one_fenxiao_total_order' ] >= $item[ 'one_fenxiao_total_order' ] && $fenxiao_info[ 'one_fenxiao_total_order' ] >= $item[ 'one_fenxiao_total_order' ]
&& $fenxiao_info[ 'one_fenxiao_order_money' ] >= $item[ 'one_fenxiao_order_money' ] && $fenxiao_info[ 'one_fenxiao_order_money' ] >= $item[ 'one_fenxiao_order_money' ]
&& $fenxiao_info[ 'one_child_num' ] >= $item[ 'one_child_num' ] && $fenxiao_info[ 'one_child_num' ] >= $item[ 'one_child_num' ]
&& $fenxiao_info[ 'one_child_fenxiao_num' ] >= $item[ 'one_child_fenxiao_num' ] && (($fenxiao_info[ 'one_child_fenxiao_num' ] >= $item[ 'one_child_fenxiao_num' ] && $item['one_child_fenxiao_equal'] == 0) || ($item['one_child_fenxiao_equal'] == 1 && $one_child_fenxiao_equal_num >= $item[ 'one_child_fenxiao_num' ]))
&& $goodsReach && $goodsReach
) { ) {
$upgrade_level = $item; $upgrade_level = $item;
@ -567,9 +588,11 @@ class Fenxiao extends BaseModel
|| ( $fenxiao_info[ 'one_fenxiao_order_money' ] >= $item[ 'one_fenxiao_order_money' ] && $item[ 'one_fenxiao_order_money' ] > 0 ) || ( $fenxiao_info[ 'one_fenxiao_order_money' ] >= $item[ 'one_fenxiao_order_money' ] && $item[ 'one_fenxiao_order_money' ] > 0 )
|| ( $fenxiao_info[ 'one_fenxiao_total_order' ] >= $item[ 'one_fenxiao_total_order' ] && $item[ 'one_fenxiao_total_order' ] > 0 ) || ( $fenxiao_info[ 'one_fenxiao_total_order' ] >= $item[ 'one_fenxiao_total_order' ] && $item[ 'one_fenxiao_total_order' ] > 0 )
|| ( $fenxiao_info[ 'one_child_num' ] >= $item[ 'one_child_num' ] && $item[ 'one_child_num' ] > 0 ) || ( $fenxiao_info[ 'one_child_num' ] >= $item[ 'one_child_num' ] && $item[ 'one_child_num' ] > 0 )
|| ( $fenxiao_info[ 'one_child_fenxiao_num' ] >= $item[ 'one_child_fenxiao_num' ] && $item[ 'one_child_fenxiao_num' ] > 0 ) || ( $fenxiao_info[ 'one_child_fenxiao_num' ] >= $item[ 'one_child_fenxiao_num' ] && $item[ 'one_child_fenxiao_num' ] > 0 && $item['one_child_fenxiao_equal'] == 0 )
|| ( $fenxiao_info[ 'one_child_fenxiao_num' ] >= $item[ 'one_child_fenxiao_num' ] && $item[ 'one_child_fenxiao_num' ] > 0 && $item['one_child_fenxiao_equal'] == 1 && $one_child_fenxiao_equal_num >= $item[ 'one_child_fenxiao_num' ])
|| ( $goodsReach && count($goodsIdsArr) > 0) || ( $goodsReach && count($goodsIdsArr) > 0)
) { ) {
$upgrade_level = $item; $upgrade_level = $item;
break; break;
} }
@ -638,15 +661,57 @@ class Fenxiao extends BaseModel
try { try {
$fenxiao_info = model('fenxiao')->getInfo([ [ 'fenxiao_id', '=', $member_info[ 'fenxiao_id' ] ], [ 'is_delete', '=', 0 ] ], 'parent'); $fenxiao_info = model('fenxiao')->getInfo([ [ 'fenxiao_id', '=', $member_info[ 'fenxiao_id' ] ], [ 'is_delete', '=', 0 ] ], 'parent');
if ($member_info[ 'is_fenxiao' ] == 1 && $fenxiao_info) {//是分销商 if ($member_info[ 'is_fenxiao' ] == 1 && $fenxiao_info) {//是分销商
$fenxiao_info = model('fenxiao')->getInfo([['fenxiao_id', '=', $member_info['fenxiao_id']], ['is_delete', '=', 0]], 'parent,chain');
//修改原有上级分销商团队人数 //修改原有上级分销商团队人数
if ($fenxiao_info[ 'parent' ] > 0) { if ($fenxiao_info['parent'] > 0) {
//获取原有上级分销商信息 //获取原有上级分销商信息
model('fenxiao')->setDec([ [ 'fenxiao_id', '=', $fenxiao_info[ 'parent' ] ] ], 'one_child_fenxiao_num'); model('fenxiao')->setDec([['fenxiao_id', '=', $fenxiao_info['parent']]], 'one_child_fenxiao_num');
$like = '%' . $fenxiao_info['chain'] . '%';
//修改下级的上上级id
model('fenxiao')->update(
['grand_parent' => $parent],
[['parent', '=', $member_info['fenxiao_id']], ['parent', '=', $fenxiao_info['parent']]]
);
} else {
$like = '%' . $member_info['fenxiao_id'] . ',%';
} }
$old_chain = str_replace('%', '', $like);
$old_count = $this->getExplodeArrFilterCount($old_chain);
//修改变更后的上级分销商团队人数 //修改变更后的上级分销商团队人数
model('fenxiao')->setInc([ [ 'fenxiao_id', '=', $parent ] ], 'one_child_fenxiao_num'); model('fenxiao')->setInc([ [ 'fenxiao_id', '=', $parent ] ], 'one_child_fenxiao_num');
//修改上级分销商 //修改上级分销商
model('fenxiao')->update([ 'parent' => $parent, 'grand_parent' => $parent_info[ 'parent' ] ], [ [ 'fenxiao_id', '=', $member_info[ 'fenxiao_id' ] ] ]); $chain = $parent_info['chain'] ? $parent_info['chain'] . ',' . $member_info['fenxiao_id'] . ',' : $parent . ',' . $member_info['fenxiao_id'] . ',';
$count = $this->getExplodeArrFilterCount($chain);
model('fenxiao')->update(
['parent' => $parent,
'grand_parent' => $parent_info['parent'],
'chain' => $chain,
'depth_level' => $parent_info['depth_level'] + 1,
],
[['fenxiao_id', '=', $member_info['fenxiao_id']]]
);
$member_info_id = $member_info['fenxiao_id'];
//先修改下级节点深度
if ($old_count > $count) {
//如果旧的节点深度 > 新的节点深度,那么下级的节点深度统统减少
$sub = $old_count - $count;
model('fenxiao')->setDec([['chain', 'like', $like], ['fenxiao_id', '<>', $member_info_id]], 'depth_level', $sub);
} else if ($old_count < $count) {
//如果旧节点深度 < 新的节点深度,那么下级的节点深度都要增加
$add = $count - $old_count;
model('fenxiao')->setInc([['chain', 'like', $like], ['fenxiao_id', '<>', $member_info_id]], 'depth_level', $add);
}
//节点深度相同不作处理
//修改下级路由节点
$table = 'tk_fenxiao';
// $old_chain = $old_chain.',';
//修改fenxiao表,匹配chain字段是否有$old_chain字段中的值替换成$chain,查询条件变换
$sql = "UPDATE `{$table}` SET chain = REPLACE(chain,'$old_chain','$chain') WHERE chain LIKE '$like' AND fenxiao_id <> '$member_info_id'";
Db::query($sql);
} else {//不是分销商 } else {//不是分销商
//修改上级分销商 //修改上级分销商
model('member')->update([ 'fenxiao_id' => $parent ], [ [ 'member_id', '=', $member_id ] ]); model('member')->update([ 'fenxiao_id' => $parent ], [ [ 'member_id', '=', $member_id ] ]);
@ -682,18 +747,37 @@ class Fenxiao extends BaseModel
} }
model('fenxiao')->startTrans(); model('fenxiao')->startTrans();
try { try {
if ($member_info[ 'is_fenxiao' ] == 1) {//是分销商 if ($member_info['is_fenxiao'] == 1) {//是分销商
$fenxiao_info = model('fenxiao')->getInfo( $fenxiao_info = model('fenxiao')->getInfo(
[ [ 'fenxiao_id', '=', $member_info[ 'fenxiao_id' ] ], [ 'is_delete', '=', 0 ] ], [['fenxiao_id', '=', $member_info['fenxiao_id']], ['is_delete', '=', 0]],
'parent'
); );
//修改原有上级分销商团队人数 //修改原有上级分销商团队人数
if ($fenxiao_info[ 'parent' ] > 0) { if ($fenxiao_info['parent'] > 0) {
//获取原有上级分销商信息 //获取原有上级分销商信息
model('fenxiao')->setDec([ [ 'fenxiao_id', '=', $fenxiao_info[ 'parent' ] ] ], 'one_child_fenxiao_num'); model('fenxiao')->setDec([['fenxiao_id', '=', $fenxiao_info['parent']]], 'one_child_fenxiao_num');
$like = '%' . $fenxiao_info['chain'] . '%';
} else {
$like = '%,' . $member_info['fenxiao_id'] . ',%';
} }
$old_chain = str_replace('%', '', $like);
$old_count = $this->getExplodeArrFilterCount($old_chain);
$chain = '';
//修改上级分销商和路由节点 //修改上级分销商和路由节点
model('fenxiao')->update([ 'parent' => '0', 'chain' => null,'depth_level' => 1 ], [ [ 'fenxiao_id', '=', $member_info[ 'fenxiao_id' ] ] ]); model('fenxiao')->update(['parent' => '0', 'grand_parent' => '0', 'chain' => $chain, 'depth_level' => 1], [['fenxiao_id', '=', $member_info['fenxiao_id']]]);
//先修改下级节点深度
$member_info_id = $member_info['fenxiao_id'];
//下级的节点深度统统减少
$sub = $old_count - 1;
model('fenxiao')->setDec([['chain', 'like', $like], ['fenxiao_id', '<>', $member_info_id]], 'depth_level', $sub);
//修改下级路由节点
$chain = ',' . $member_info_id . ',';
$table = 'tk_fenxiao';
//修改fenxiao表,匹配chain字段是否有$old_chain字段中的值替换成$chain,查询条件变换
$sql = "UPDATE `{$table}` SET chain = REPLACE(chain,'$old_chain','$chain') WHERE chain LIKE '$like' AND fenxiao_id <> '$member_info_id'";
Db::query($sql);
} }
model('fenxiao')->commit(); model('fenxiao')->commit();
return $this->success(); return $this->success();
@ -900,4 +984,21 @@ class Fenxiao extends BaseModel
} }
/**
* @param $data
* @param $explode
* @return int
* 获取分割后去除空白值的数组长度
*/
protected function getExplodeArrFilterCount($data, $explode = ',')
{
$data = explode($explode, $data);
$data = array_filter($data, function ($value) {
return !empty($value);
});
$count = count($data);
return $count;
}
} }

View File

@ -47,7 +47,8 @@ class FenxiaoAccount extends BaseModel
); );
$res = model('fenxiao_account')->add($data); $res = model('fenxiao_account')->add($data);
model('fenxiao')->setInc([ [ 'fenxiao_id', '=', $fenxiao_id ] ], 'account', $money); $member_id = model('fenxiao')->getValue([ [ 'fenxiao_id', '=', $fenxiao_id ] ],'member_id');
model('fenxiao')->setInc([ [ 'member_id', '=', $member_id ] ], 'point', $money);
return $this->success($res); return $this->success($res);
} }

View File

@ -28,10 +28,10 @@ class FenxiaoOrder extends BaseModel
//获取分销基础配置 //获取分销基础配置
$config_model = new Config(); $config_model = new Config();
$fenxiao_basic_config = $config_model->getFenxiaoBasicsConfig($order[ 'site_id' ])[ 'data' ][ 'value' ]; $fenxiao_basic_config = $config_model->getFenxiaoBasicsConfig($order[ 'site_id' ])[ 'data' ][ 'value' ];
if (!$fenxiao_basic_config['level']) 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'); $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){ if($member_info['is_fenxiao'] == 1 && $member_info['fenxiao_id'] > 0){
event('FenxiaoUpgrade', [ event('FenxiaoUpgrade', [
@ -82,6 +82,7 @@ class FenxiaoOrder extends BaseModel
'wholesale_commission' => 0, 'wholesale_commission' => 0,
'wholesale_fenxiao_detail' => [], 'wholesale_fenxiao_detail' => [],
]; ];
$goods_info = model('goods')->getInfo([['goods_id','=',$v['goods_id']]],'is_fenxiao, fenxiao_type'); $goods_info = model('goods')->getInfo([['goods_id','=',$v['goods_id']]],'is_fenxiao, fenxiao_type');
//参与了分销商品,有直推间推奖励 //参与了分销商品,有直推间推奖励
if($goods_info['is_fenxiao']){ if($goods_info['is_fenxiao']){
@ -89,7 +90,7 @@ class FenxiaoOrder extends BaseModel
} }
$order_fenxiao_data = $this->getWholesaleFenXiaoCommission($fenxiao_info,$v,$order_fenxiao_data); $order_fenxiao_data = $this->getWholesaleFenXiaoCommission($fenxiao_info,$v,$order_fenxiao_data);
// dump($order_fenxiao_data);die;
$data = [ $data = [
'order_id' => $order['order_id'], 'order_id' => $order['order_id'],
'order_no' => $order['order_no'], 'order_no' => $order['order_no'],
@ -125,8 +126,7 @@ class FenxiaoOrder extends BaseModel
]; ];
model("fenxiao_order")->add($data); model("fenxiao_order")->add($data);
} }
$fenxiao_info = model("fenxiao")->getInfo([ [ 'fenxiao_id', '=', $fenxiao_id ], [ 'is_delete', '=', 0 ] ]);
// // 分销商检测升级 // // 分销商检测升级
event('FenxiaoUpgrade', [ event('FenxiaoUpgrade', [
'fenxiao_id' => $member_info[ 'fenxiao_id' ] 'fenxiao_id' => $member_info[ 'fenxiao_id' ]
@ -147,9 +147,9 @@ class FenxiaoOrder extends BaseModel
$two_rate = $config['indirect_rate']; $two_rate = $config['indirect_rate'];
$one_money = $two_money = 0; $one_money = $two_money = 0;
} }
$parent_fenxiao_info = $fenxiao_info['parent'] > 0 ? model('fenxiao')->getInfo([ [ 'fenxiao_id', '=', $fenxiao_info[ 'parent' ] ], [ 'is_delete', '=', 0 ] ], 'fenxiao_id, fenxiao_name, status, parent') : []; $parent_fenxiao_info = $fenxiao_info['parent'] > 0 ? model('fenxiao')->getInfo([ [ 'fenxiao_id', '=', $fenxiao_info[ 'parent' ] ], [ 'is_delete', '=', 0 ] ], 'fenxiao_id, fenxiao_name, status, parent') : [];
if ($fenxiao_info[ 'status' ] == 1) { $g_parent_fenxiao_info = $fenxiao_info['grand_parent'] > 0 ? model('fenxiao')->getInfo([ [ 'fenxiao_id', '=', $fenxiao_info[ 'grand_parent' ] ], [ 'is_delete', '=', 0 ] ], 'fenxiao_id, fenxiao_name, status, parent') : [];
if (!empty($parent_fenxiao_info) && $parent_fenxiao_info[ 'status' ] == 1) {
if ($one_rate > 0) { if ($one_rate > 0) {
$order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'one_rate' ] = $one_rate; $order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'one_rate' ] = $one_rate;
$order_fenxiao_data['commission'] += $order_fenxiao_data[ 'one_commission' ] = $one_rate * $v[ 'real_goods_money' ] / 100; $order_fenxiao_data['commission'] += $order_fenxiao_data[ 'one_commission' ] = $one_rate * $v[ 'real_goods_money' ] / 100;
@ -157,10 +157,11 @@ class FenxiaoOrder extends BaseModel
$order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'one_rate' ] = round($one_money * $v[ 'num' ] / $v[ 'real_goods_money' ], 2); $order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'one_rate' ] = round($one_money * $v[ 'num' ] / $v[ 'real_goods_money' ], 2);
$order_fenxiao_data['commission'] += $order_fenxiao_data[ 'one_commission' ] = $one_money * $v[ 'num' ]; $order_fenxiao_data['commission'] += $order_fenxiao_data[ 'one_commission' ] = $one_money * $v[ 'num' ];
} }
$order_fenxiao_data['one_fenxiao_id'] = $fenxiao_info['fenxiao_id']; $order_fenxiao_data['one_fenxiao_id'] = $parent_fenxiao_info['fenxiao_id'];
$order_fenxiao_data['one_fenxiao_name'] = $fenxiao_info['fenxiao_name']; $order_fenxiao_data['one_fenxiao_name'] = $parent_fenxiao_info['fenxiao_name'];
} }
if (!empty($parent_fenxiao_info) && $parent_fenxiao_info[ 'status' ] == 1) { if (!empty($g_parent_fenxiao_info) && $g_parent_fenxiao_info[ 'status' ] == 1) {
if ($two_rate > 0) { if ($two_rate > 0) {
$order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'two_rate' ] = $two_rate; $order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'two_rate' ] = $two_rate;
$order_fenxiao_data['commission'] += $order_fenxiao_data[ 'two_commission' ] = $two_rate * $v[ 'real_goods_money' ] / 100; $order_fenxiao_data['commission'] += $order_fenxiao_data[ 'two_commission' ] = $two_rate * $v[ 'real_goods_money' ] / 100;
@ -168,9 +169,10 @@ class FenxiaoOrder extends BaseModel
$order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'two_rate' ] = round($two_money * $v[ 'num' ] / $v[ 'real_goods_money' ], 2); $order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'two_rate' ] = round($two_money * $v[ 'num' ] / $v[ 'real_goods_money' ], 2);
$order_fenxiao_data['commission'] += $order_fenxiao_data[ 'two_commission' ] = $two_money * $v[ 'num' ]; $order_fenxiao_data['commission'] += $order_fenxiao_data[ 'two_commission' ] = $two_money * $v[ 'num' ];
} }
$order_fenxiao_data['two_fenxiao_id'] = $parent_fenxiao_info['fenxiao_id']; $order_fenxiao_data['two_fenxiao_id'] = $g_parent_fenxiao_info['fenxiao_id'];
$order_fenxiao_data['two_fenxiao_name'] = $fenxiao_info['fenxiao_name']; $order_fenxiao_data['two_fenxiao_name'] = $g_parent_fenxiao_info['fenxiao_name'];
} }
return $order_fenxiao_data; return $order_fenxiao_data;
} }

View File

@ -82,6 +82,7 @@ class Level extends BaseShop
'child_fenxiao_num' => input('child_fenxiao_num',''), 'child_fenxiao_num' => input('child_fenxiao_num',''),
'one_child_num' => input('one_child_num',''), 'one_child_num' => input('one_child_num',''),
'one_child_fenxiao_num' => input('one_child_fenxiao_num',''), 'one_child_fenxiao_num' => input('one_child_fenxiao_num',''),
'one_child_fenxiao_equal' => input('one_child_fenxiao_equal',0),
'goods_ids' => input('goods_ids',''), 'goods_ids' => input('goods_ids',''),
]; ];
$res = $model->addLevel($data); $res = $model->addLevel($data);
@ -128,6 +129,7 @@ class Level extends BaseShop
'child_fenxiao_num' => input('child_fenxiao_num',''), 'child_fenxiao_num' => input('child_fenxiao_num',''),
'one_child_num' => input('one_child_num',''), 'one_child_num' => input('one_child_num',''),
'one_child_fenxiao_num' => input('one_child_fenxiao_num',''), 'one_child_fenxiao_num' => input('one_child_fenxiao_num',''),
'one_child_fenxiao_equal' => input('one_child_fenxiao_equal',0),
'goods_ids' => input('goods_ids',''), 'goods_ids' => input('goods_ids',''),
]; ];
$level_id = input('level_id', ''); $level_id = input('level_id', '');

View File

@ -264,6 +264,11 @@
<input type="number" min="0" name="one_child_fenxiao_num" autocomplete="off" class="layui-input len-short"> <input type="number" min="0" name="one_child_fenxiao_num" autocomplete="off" class="layui-input len-short">
</div> </div>
<div class="layui-form-mid"></div> <div class="layui-form-mid"></div>
<label class="layui-form-label"><span class="required">*</span>下线分销商是否需要同级:</label>
<div class="layui-input-inline">
<input type="radio" name="one_child_fenxiao_equal" value="1" title="是" />
<input type="radio" name="one_child_fenxiao_equal" value="0" title="否" checked />
</div>
<a href="#" class="text-color layui-form-mid" onclick="delDiv(this)">删除</a> <a href="#" class="text-color layui-form-mid" onclick="delDiv(this)">删除</a>
</div> </div>

View File

@ -268,6 +268,11 @@
<input type="number" min="0" name="one_child_fenxiao_num" value="{$info.one_child_fenxiao_num}" {if $info.one_child_fenxiao_num > 0}lay-verify="required|num"{/if} autocomplete="off" class="layui-input len-short"> <input type="number" min="0" name="one_child_fenxiao_num" value="{$info.one_child_fenxiao_num}" {if $info.one_child_fenxiao_num > 0}lay-verify="required|num"{/if} autocomplete="off" class="layui-input len-short">
</div> </div>
<div class="layui-form-mid"></div> <div class="layui-form-mid"></div>
<label class="layui-form-label"><span class="required">*</span>下线分销商是否需要同级:</label>
<div class="layui-input-inline">
<input type="radio" name="one_child_fenxiao_equal" value="1" lay-filter="one_child_fenxiao_equal" {if $info.one_child_fenxiao_equal == 1} checked {/if} title="是" />
<input type="radio" name="one_child_fenxiao_equal" value="0" lay-filter="one_child_fenxiao_equal" {if $info.one_child_fenxiao_equal == 0} checked {/if} title="否" />
</div>
<a href="#" class="text-color layui-form-mid" onclick="delDiv(this)">删除</a> <a href="#" class="text-color layui-form-mid" onclick="delDiv(this)">删除</a>
</div> </div>
<!--购买指定商品之一--> <!--购买指定商品之一-->

View File

@ -103,9 +103,20 @@ Order.prototype.cols = [
className : "create-time", className : "create-time",
merge : false, merge : false,
template : function(orderitem,order){ template : function(orderitem,order){
var html = '<div>一级分佣:'+ (orderitem.one_fenxiao_id > 0 ? orderitem.one_fenxiao_name +' ¥' + orderitem.one_commission : '--') +'</div>'; var html = '<div>直推分佣:'+ (orderitem.one_fenxiao_id > 0 ? orderitem.one_fenxiao_name +' ¥' + orderitem.one_commission : '--') +'</div>';
html += '<div>二级分佣:'+ (orderitem.two_fenxiao_id > 0 ? orderitem.two_fenxiao_name +' ¥' + orderitem.two_commission : '--') +'</div>'; html += '<div>间推分佣:'+ (orderitem.two_fenxiao_id > 0 ? orderitem.two_fenxiao_name +' ¥' + orderitem.two_commission : '--') +'</div>';
html += '<div>三级分佣:'+ (orderitem.three_fenxiao_id > 0 ? orderitem.three_fenxiao_name +' ¥' + orderitem.three_commission : '--') +'</div>'; if(orderitem.wholesale_commission > 0){
var array_detail = $.parseJSON(orderitem.wholesale_fenxiao_detail);
for(var i=0;i<array_detail.length;i++){
if(i == 0){
html += '<div>进货分佣:'+ (array_detail[i].commission > 0 ? array_detail[i].name +' ¥' + array_detail[i].commission : '--') +'</div>';
}else{
html += '<div style="padding-left: 24%">'+ (array_detail[i].commission > 0 ? array_detail[i].name +' ¥' + array_detail[i].commission : '--') +'</div>';
}
}
}else{
html += '<div>上级分佣:'+ ' ¥--' +'</div>';
}
return html; return html;
} }
}, },

View File

@ -23,7 +23,7 @@ class OrderPayChange
$res = event('OrderPay', $order); //取消订单支状态 $res = event('OrderPay', $order); //取消订单支状态
} }
// $res['order_id'] = $data["relate_id"]; // $res['order_id'] = $data["relate_id"];
// trace($res, '支付成功 - 实际处理结果'); trace($res, '支付成功 - 实际处理结果');
return $res; return $res;
} }
} catch (\Exception $e) { } catch (\Exception $e) {

View File

@ -46,12 +46,12 @@ class RelationshipChainChangesJob{
'relationship_chain' => implode(',',$allParent) 'relationship_chain' => implode(',',$allParent)
]); ]);
} }
// 增加下级 触发团队升级 // // 增加下级 触发团队升级
foreach($allParent as $parentMemberId){ // foreach($allParent as $parentMemberId){
Queue::push(TeamUpgradationJob::class,[ // Queue::push(TeamUpgradationJob::class,[
'member_id' => $parentMemberId // 'member_id' => $parentMemberId
]); // ]);
} // }
// 触发关系链改变 // 触发关系链改变
(new Member())->RelationshipChainChangesInit($memberId); (new Member())->RelationshipChainChangesInit($memberId);
} }

View File

@ -6,8 +6,9 @@ use addon\aliapp\model\CloudPay;
use addon\aliapp\model\MinCode; use addon\aliapp\model\MinCode;
use addon\alipay\model\Pay as PayModel; use addon\alipay\model\Pay as PayModel;
use addon\fenxiao\event\OrderPay; use addon\fenxiao\event\OrderPay;
use addon\fenxiao\model\Fenxiao;
use addon\fenxiao\model\Fenxiao as FenxiaoModel; use addon\fenxiao\model\Fenxiao as FenxiaoModel;
use addon\fenxiao\model\FenxiaoOrder;
use app\model\diy\Template; use app\model\diy\Template;
use app\model\order\Order as OrderModel; use app\model\order\Order as OrderModel;
use EasyWeChat\Factory; use EasyWeChat\Factory;
@ -23,10 +24,10 @@ class Test{
// //
public function test(){ public function test(){
$orderId = 1; $orderId = 19;
$order_info = model('order')->getInfo(['order_id' => $orderId]); $order_info = model('order')->getInfo(['order_id' => $orderId]);
$fenxiao_order = new OrderPay(); $fenxiao_order = new FenxiaoOrder();
$res = $fenxiao_order->handle($order_info); $res = $fenxiao_order->calculate($order_info);
dump($res);die; dump($res);die;
// $memberId = 21; // $memberId = 21;
// (new Commission())->commissionHandleInit($orderId, $memberId); // (new Commission())->commissionHandleInit($orderId, $memberId);
@ -75,7 +76,7 @@ class Test{
$order_info = model('order')->getInfo(['order_id' => 359]); $order_info = model('order')->getInfo(['order_id' => 359]);
$res = event('OrderPay',$order_info); $res = event('OrderPay',$order_info);
var_dump($res);die; dump($res);die;
$member=model('member')->getList(['site_id'=>5]); $member=model('member')->getList(['site_id'=>5]);
$fenxiao_model = new FenxiaoModel(); $fenxiao_model = new FenxiaoModel();
foreach ($member as $k=>$v){ foreach ($member as $k=>$v){