修改分销中心进货佣金结算未成功bug

修改下级订单列表积分显示错误的BUG
This commit is contained in:
liqianjin 2024-11-26 16:20:56 +08:00
parent 683553430b
commit 561f69091d
4 changed files with 59 additions and 32 deletions

View File

@ -268,19 +268,16 @@ class Fenxiao extends BaseApi
[ 'fo.member_id', '=', $sub_member_id ]
];
}
$order_model = new FenxiaoOrderModel();
$list = $order_model->getFenxiaoOrderPageList($condition, $page, $page_size, 'fo.fenxiao_order_id desc');
if (!empty($list[ 'data' ][ 'list' ])) {
foreach ($list[ 'data' ][ 'list' ] as $k => $item) {
if ($item[ 'one_fenxiao_id' ] == $fenxiao_info[ 'fenxiao_id' ]) {
$list[ 'data' ][ 'list' ][ $k ][ 'commission' ] = $item[ 'one_commission' ];
$list[ 'data' ][ 'list' ][ $k ][ 'commission_level' ] = 1;
} elseif ($item[ 'two_fenxiao_id' ] == $fenxiao_info[ 'fenxiao_id' ]) {
$list[ 'data' ][ 'list' ][ $k ][ 'commission' ] = $item[ 'two_commission' ];
$list[ 'data' ][ 'list' ][ $k ][ 'commission_level' ] = 2;
} elseif ($item[ 'three_fenxiao_id' ] == $fenxiao_info[ 'fenxiao_id' ]) {
$list[ 'data' ][ 'list' ][ $k ][ 'commission' ] = $item[ 'three_commission' ];
$list[ 'data' ][ 'list' ][ $k ][ 'commission_level' ] = 3;
$ids = json_decode($item['wholesale_fenxiao_id'],true);
$detail = json_decode($item['wholesale_fenxiao_detail'],true);
$key = array_search($fenxiao_id,$ids);
if($key !== false){
$list[ 'data' ][ 'list' ][ $k ][ 'commission' ] = $detail[$key]['commission'];
}
$list[ 'data' ][ 'list' ][ $k ] = array_diff_key($list[ 'data' ][ 'list' ][ $k ], [ 'one_fenxiao_id' => '', 'one_rate' => '', 'one_commission' => '', 'one_fenxiao_name' => '', 'two_fenxiao_id' => '', 'two_rate' => '', 'two_commission' => '', 'two_fenxiao_name' => '', 'three_fenxiao_id' => '', 'three_rate' => '', 'three_commission' => '', 'three_fenxiao_name' => '' ]);
}

View File

@ -14,6 +14,7 @@ namespace addon\fenxiao\api\controller;
use app\api\controller\BaseApi;
use addon\fenxiao\model\FenxiaoOrder as FenxiaoOrderModel;
use addon\fenxiao\model\Fenxiao;
use think\facade\Db;
/**
* 分销订单
@ -78,24 +79,38 @@ class Order extends BaseApi
$page = isset($this->params['page']) ? $this->params['page'] : 1;
$page_size = isset($this->params['page_size']) ? $this->params['page_size'] : PAGE_LIST_ROWS;
$is_settlement = isset($this->params['is_settlement']) ? $this->params['is_settlement'] : 0;// 结算状态 0 全部 1 待结算 2 已结算 3 已退款
$condition = [
['fo.one_fenxiao_id|fo.two_fenxiao_id|fo.three_fenxiao_id', '=', $fenxiao_info['data']['fenxiao_id']]
];
$OR = [[ 'fo.wholesale_fenxiao_id', 'like', ['%'.$fenxiao_info['data']['fenxiao_id'].'%']],[ 'fo.founder_fenxiao_id', 'like', ['%'.$fenxiao_info['data']['fenxiao_id'].'%']]];
// $OR = [];
$field = 'fo.fenxiao_order_id,fo.order_no,fo.site_id,fo.site_name,fo.sku_id,fo.sku_name,fo.sku_image,fo.price,fo.num,fo.real_goods_money,fo.member_name,
fo.member_mobile,fo.one_fenxiao_name,fo.is_settlement,fo.commission,fo.is_refund,
o.order_status_name,o.create_time,fo.one_fenxiao_id,fo.two_fenxiao_id,fo.three_fenxiao_id,fo.one_commission,fo.two_commission,fo.three_commission
,fo.wholesale_fenxiao_id,fo.wholesale_fenxiao_detail,fo.founder_fenxiao_id,fo.founder_fenxiao_detail';
$sql = Db::name('fenxiao_order')->alias('fo')
->field($field)
->join('order o','fo.order_id = o.order_id','inner')
->whereOr([['fo.one_fenxiao_id|fo.two_fenxiao_id|fo.three_fenxiao_id','=',$fenxiao_info['data']['fenxiao_id']] ,
['fo.wholesale_fenxiao_id|fo.founder_fenxiao_id','like','%'.$fenxiao_info['data']['fenxiao_id'].'%']]);
if (!empty($is_settlement)) {
if ($is_settlement == 3) {
$condition[] = ['fo.is_refund', '=', 1];
$sql->where('fo.is_refund','=',1);
}
if (in_array($is_settlement, [1, 2])) {
$condition[] = ['fo.is_settlement', '=', $is_settlement - 1];
$condition[] = ['fo.is_refund', '=', 0];
$sql->where('fo.is_settlement','=',$is_settlement - 1);
$sql->where('fo.is_refund','=',0);
}
}
$order_model = new FenxiaoOrderModel();
$list = $order_model->getFenxiaoOrderPageList($condition, $page, $page_size, 'fo.fenxiao_order_id desc',$OR);
$count = $sql->count();
$result = $sql->limit($page_size)->page($page)->select()->toArray();
$data = [
'count' => count($result),
'list' => $result,
'page_count' => ceil($count / $page_size),
];
$list = [
'code' => 0,
'message' => '操作成功',
'data' => $data
];
if (!empty($list['data']['list'])) {
foreach ($list['data']['list'] as $k => $item) {
if ($item['one_fenxiao_id'] == $fenxiao_info['data']['fenxiao_id']) {

View File

@ -344,18 +344,20 @@ class FenxiaoOrder extends BaseModel
$site_id = 0;
foreach ($fenxiao_orders as $fenxiao_order) {
$site_id = $fenxiao_order[ 'site_id' ];
$commission += $fenxiao_order[ 'one_commission' ];
$fenxiao_account->addAccount($fenxiao_order[ 'one_fenxiao_id' ], $fenxiao_order[ 'one_fenxiao_name' ], 'order', $fenxiao_order[ 'one_commission' ], $fenxiao_order[ 'fenxiao_order_id' ],$site_id);
if($fenxiao_order[ 'one_commission' ] > 0){
$commission += $fenxiao_order[ 'one_commission' ];
$fenxiao_account->addAccount($fenxiao_order[ 'one_fenxiao_id' ], $fenxiao_order[ 'one_fenxiao_name' ], 'order', $fenxiao_order[ 'one_commission' ], $fenxiao_order[ 'fenxiao_order_id' ],$site_id);
// 分销佣金发放通知
( new Message() )->sendMessage([
'keywords' => 'COMMISSION_GRANT',
'order_id' => $fenxiao_order[ 'fenxiao_order_id' ],
'site_id' => $fenxiao_order[ 'site_id' ],
'level' => 'one',
]);
// 分销佣金发放通知
( new Message() )->sendMessage([
'keywords' => 'COMMISSION_GRANT',
'order_id' => $fenxiao_order[ 'fenxiao_order_id' ],
'site_id' => $fenxiao_order[ 'site_id' ],
'level' => 'one',
]);
model('fenxiao')->setInc([ [ 'fenxiao_id', '=', $fenxiao_order[ 'one_fenxiao_id' ] ] ], 'total_commission', $fenxiao_order[ 'one_commission' ]);
}
model('fenxiao')->setInc([ [ 'fenxiao_id', '=', $fenxiao_order[ 'one_fenxiao_id' ] ] ], 'total_commission', $fenxiao_order[ 'one_commission' ]);
if ($fenxiao_order[ 'two_commission' ] > 0) {
$commission += $fenxiao_order[ 'two_commission' ];
@ -383,6 +385,17 @@ class FenxiaoOrder extends BaseModel
]);
model('fenxiao')->setInc([ [ 'fenxiao_id', '=', $fenxiao_order[ 'three_fenxiao_id' ] ] ], 'total_commission', $fenxiao_order[ 'three_commission' ]);
}
$ids = json_decode($fenxiao_order['wholesale_fenxiao_id'],true);
$detail = json_decode($fenxiao_order['wholesale_fenxiao_detail'],true);
if($ids && $detail){
foreach($detail as $k => $v){
$commission += $v[ 'commission' ];
$fenxiao_account->addAccount($ids[$k], $v[ 'name' ], 'order', $v[ 'commission' ], $fenxiao_order[ 'fenxiao_order_id' ],$site_id);
model('fenxiao')->setInc([ [ 'fenxiao_id', '=', $ids[$k] ] ], 'total_commission', $v[ 'commission' ]);
}
}
}
$stat_model = new Stat();
$stat_model->switchStat([ 'type' => 'fenxiao_order', 'data' => [ 'order_id' => $order_id, 'site_id' => $site_id ] ]);

View File

@ -26,13 +26,15 @@ class Test{
public function test(){
$orderId = 92;
$order_info = model('order')->getInfo(['order_id' => $orderId]);
$fenxiao_order = new OrderPay();
// $fenxiao_order = new OrderPay();
// $res = $fenxiao_order->handle($order_info);
// $fenxiao_order = new WeightOrder();
// $res = $fenxiao_order->calculate(1);
// $fenxiao_order_model = new FenxiaoOrder();
$res = $fenxiao_order->handle($order_info);
// $res = $fenxiao_order->handle($order_info);
$fenxiao_order_model = new FenxiaoOrder();
// $res = $fenxiao_order_model->calculateOrder($order_info['order_id']);
$res = $fenxiao_order_model->settlement($orderId);
dump($res);die;
$fenxiao_id = 195;
$fenxiao = new Fenxiao();