Order.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\fenxiao\api\controller;
  11. use app\api\controller\BaseApi;
  12. use addon\fenxiao\model\FenxiaoOrder as FenxiaoOrderModel;
  13. use addon\fenxiao\model\Fenxiao;
  14. /**
  15. * 分销订单
  16. */
  17. class Order extends BaseApi
  18. {
  19. /**
  20. * 信息
  21. * @return false|string
  22. */
  23. public function info()
  24. {
  25. $token = $this->checkToken();
  26. if ($token['code'] < 0) return $this->response($token);
  27. $model = new Fenxiao();
  28. $fenxiao_info = $model->getFenxiaoInfo([['member_id', '=', $this->member_id]], 'fenxiao_id');
  29. if (empty($fenxiao_info['data'])) return $this->response($this->error('', 'MEMBER_NOT_IS_FENXIAO'));
  30. $fenxiao_order_id = isset($this->params['fenxiao_order_id']) ? $this->params['fenxiao_order_id'] : 0;
  31. if (empty($fenxiao_order_id)) {
  32. return $this->response($this->error('', 'REQUEST_FENXIAO_ORDER_ID'));
  33. }
  34. $order_model = new FenxiaoOrderModel();
  35. $condition = [
  36. ['one_fenxiao_id|two_fenxiao_id|three_fenxiao_id', '=', $fenxiao_info['data']['fenxiao_id']],
  37. ['fenxiao_order_id', '=', $fenxiao_order_id]
  38. ];
  39. $res = $order_model->getFenxiaoOrderInfo($condition);
  40. if (!empty($res['data'])) {
  41. if ($res['data']['one_fenxiao_id'] == $fenxiao_info['data']['fenxiao_id']) {
  42. $res['data']['commission'] = $res['data']['one_commission'];
  43. $res['data']['commission_rate'] = $res['data']['one_rate'];
  44. $res['data']['commission_level'] = 1;
  45. } elseif ($res['data']['two_fenxiao_id'] == $fenxiao_info['data']['fenxiao_id']) {
  46. $res['data']['commission'] = $res['data']['two_commission'];
  47. $res['data']['commission_rate'] = $res['data']['two_rate'];
  48. $res['data']['commission_level'] = 2;
  49. } elseif ($res['data']['three_fenxiao_id'] == $fenxiao_info['data']['fenxiao_id']) {
  50. $res['data']['commission'] = $res['data']['three_commission'];
  51. $res['data']['commission_rate'] = $res['data']['three_rate'];
  52. $res['data']['commission_level'] = 3;
  53. }
  54. $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' => '']);
  55. }
  56. return $this->response($res);
  57. }
  58. /**
  59. * 列表
  60. */
  61. public function page()
  62. {
  63. $token = $this->checkToken();
  64. if ($token['code'] < 0) return $this->response($token);
  65. $model = new Fenxiao();
  66. $fenxiao_info = $model->getFenxiaoInfo([['member_id', '=', $this->member_id]], 'fenxiao_id');
  67. if (empty($fenxiao_info['data'])) return $this->response($this->error('', 'MEMBER_NOT_IS_FENXIAO'));
  68. $page = isset($this->params['page']) ? $this->params['page'] : 1;
  69. $page_size = isset($this->params['page_size']) ? $this->params['page_size'] : PAGE_LIST_ROWS;
  70. $is_settlement = isset($this->params['is_settlement']) ? $this->params['is_settlement'] : 0;// 结算状态 0 全部 1 待结算 2 已结算 3 已退款
  71. $condition = [
  72. ['fo.one_fenxiao_id|fo.two_fenxiao_id|fo.three_fenxiao_id', '=', $fenxiao_info['data']['fenxiao_id']]
  73. ];
  74. if (!empty($is_settlement)) {
  75. if ($is_settlement == 3) {
  76. $condition[] = ['fo.is_refund', '=', 1];
  77. }
  78. if (in_array($is_settlement, [1, 2])) {
  79. $condition[] = ['fo.is_settlement', '=', $is_settlement - 1];
  80. $condition[] = ['fo.is_refund', '=', 0];
  81. }
  82. }
  83. $order_model = new FenxiaoOrderModel();
  84. $list = $order_model->getFenxiaoOrderPageList($condition, $page, $page_size, 'fo.fenxiao_order_id desc');
  85. if (!empty($list['data']['list'])) {
  86. foreach ($list['data']['list'] as $k => $item) {
  87. if ($item['one_fenxiao_id'] == $fenxiao_info['data']['fenxiao_id']) {
  88. $list['data']['list'][$k]['commission'] = $item['one_commission'];
  89. $list['data']['list'][$k]['commission_level'] = 1;
  90. } elseif ($item['two_fenxiao_id'] == $fenxiao_info['data']['fenxiao_id']) {
  91. $list['data']['list'][$k]['commission'] = $item['two_commission'];
  92. $list['data']['list'][$k]['commission_level'] = 2;
  93. } elseif ($item['three_fenxiao_id'] == $fenxiao_info['data']['fenxiao_id']) {
  94. $list['data']['list'][$k]['commission'] = $item['three_commission'];
  95. $list['data']['list'][$k]['commission_level'] = 3;
  96. }
  97. $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' => '']);
  98. }
  99. }
  100. return $this->response($list);
  101. }
  102. }