jh-admin/addon/fenxiao/api/controller/Order.php

149 lines
7.2 KiB
PHP

<?php
/**
* SaaSMall商城系统 - 团队十年电商经验汇集巨献!
* =========================================================
* Copy right 2019-2029 成都SAAS云科技有限公司, 保留所有权利。
* ----------------------------------------------
* 官方网址: https://www.gobuysaas.com
* =========================================================
*/
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;
/**
* 分销订单
*/
class Order extends BaseApi
{
/**
* 信息
* @return false|string
*/
public function info()
{
$token = $this->checkToken();
if ($token['code'] < 0) return $this->response($token);
$model = new Fenxiao();
$fenxiao_info = $model->getFenxiaoInfo([['member_id', '=', $this->member_id]], 'fenxiao_id');
if (empty($fenxiao_info['data'])) return $this->response($this->error('', 'MEMBER_NOT_IS_FENXIAO'));
$fenxiao_order_id = isset($this->params['fenxiao_order_id']) ? $this->params['fenxiao_order_id'] : 0;
if (empty($fenxiao_order_id)) {
return $this->response($this->error('', 'REQUEST_FENXIAO_ORDER_ID'));
}
$order_model = new FenxiaoOrderModel();
$condition = [
['one_fenxiao_id|two_fenxiao_id|three_fenxiao_id', '=', $fenxiao_info['data']['fenxiao_id']],
['fenxiao_order_id', '=', $fenxiao_order_id]
];
$res = $order_model->getFenxiaoOrderInfo($condition);
if (!empty($res['data'])) {
if ($res['data']['one_fenxiao_id'] == $fenxiao_info['data']['fenxiao_id']) {
$res['data']['commission'] = $res['data']['one_commission'];
$res['data']['commission_rate'] = $res['data']['one_rate'];
$res['data']['commission_level'] = 1;
} elseif ($res['data']['two_fenxiao_id'] == $fenxiao_info['data']['fenxiao_id']) {
$res['data']['commission'] = $res['data']['two_commission'];
$res['data']['commission_rate'] = $res['data']['two_rate'];
$res['data']['commission_level'] = 2;
} elseif ($res['data']['three_fenxiao_id'] == $fenxiao_info['data']['fenxiao_id']) {
$res['data']['commission'] = $res['data']['three_commission'];
$res['data']['commission_rate'] = $res['data']['three_rate'];
$res['data']['commission_level'] = 3;
}
$res['data'] = array_diff_key($res['data'], ['member_id' => '', 'member_name' => '', 'member_mobile' => '', 'full_address' => '', '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' => '']);
}
return $this->response($res);
}
/**
* 列表
*/
public function page()
{
$token = $this->checkToken();
if ($token['code'] < 0) return $this->response($token);
$model = new Fenxiao();
$fenxiao_info = $model->getFenxiaoInfo([['member_id', '=', $this->member_id]], 'fenxiao_id');
if (empty($fenxiao_info['data'])) return $this->response($this->error('', 'MEMBER_NOT_IS_FENXIAO'));
$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 已退款
$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) {
$sql->where('fo.is_refund','=',1);
}
if (in_array($is_settlement, [1, 2])) {
$sql->where('fo.is_settlement','=',$is_settlement - 1);
$sql->where('fo.is_refund','=',0);
}
}
$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']) {
$list['data']['list'][$k]['one_commission'] = $item['one_commission'];
$list['data']['list'][$k]['commission_level'] = 1;
unset($list['data']['list'][$k]['two_commission']);
} elseif ($item['two_fenxiao_id'] == $fenxiao_info['data']['fenxiao_id']) {
$list['data']['list'][$k]['two_commission'] = $item['two_commission'];
$list['data']['list'][$k]['commission_level'] = 2;
unset($list['data']['list'][$k]['one_commission']);
}else{
unset($list['data']['list'][$k]['one_commission']);
unset($list['data']['list'][$k]['two_commission']);
}
$ids = json_decode($item['wholesale_fenxiao_id'],true);
$detail = json_decode($item['wholesale_fenxiao_detail'],true);
$search = array_search($fenxiao_info['data']['fenxiao_id'],$ids);
if($search !== false){
$list['data']['list'][$k]['wholesale_point'] = $detail[$search]['commission'];
}
$ids = json_decode($item['founder_fenxiao_id'],true);
$detail = json_decode($item['founder_fenxiao_detail'],true);
$search = array_search($fenxiao_info['data']['fenxiao_id'],$ids);
if($search !== false){
$list['data']['list'][$k]['founder_point'] = $detail[$search]['commission'];
}
// if($item['fenxiao_order_id'] == 150){
// dump($list['data']['list'][$k]);
// }
}
}
return $this->response($list);
}
}