Settlement.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  9. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  10. * =========================================================
  11. */
  12. namespace app\shopapi\controller;
  13. use app\model\shop\ShopSettlement;
  14. use app\model\order\OrderCommon as OrderCommonModel;
  15. /**
  16. * 店铺结算
  17. * @author Administrator
  18. *
  19. */
  20. class Settlement extends BaseApi
  21. {
  22. public function __construct()
  23. {
  24. //执行父类构造函数
  25. parent::__construct();
  26. $token = $this->checkToken();
  27. if ($token[ 'code' ] < 0) {
  28. echo $this->response($token);
  29. exit;
  30. }
  31. }
  32. /**
  33. * 结算列表
  34. * @return false|string
  35. */
  36. public function lists()
  37. {
  38. $model = new ShopSettlement();
  39. $page = isset($this->params[ 'page' ]) ? $this->params[ 'page' ] : 1;
  40. $page_size = isset($this->params[ 'page_size' ]) ? $this->params[ 'page_size' ] : PAGE_LIST_ROWS;
  41. $condition[] = [ 'site_id', '=', $this->site_id ];
  42. $start_time = isset($this->params[ 'start_time' ]) ? $this->params[ 'start_time' ] : '';
  43. $end_time = isset($this->params[ 'end_time' ]) ? $this->params[ 'end_time' ] : '';
  44. if (!empty($start_time) && empty($end_time)) {
  45. $condition[] = [ 'period_start_time', '>=', $start_time ];
  46. } elseif (empty($start_time) && !empty($end_time)) {
  47. $condition[] = [ 'period_end_time', '<=', $end_time ];
  48. } elseif (!empty($start_time) && !empty($end_time)) {
  49. $condition[] = [ 'period_start_time', '>=', $start_time ];
  50. $condition[] = [ 'period_end_time', '<=', $end_time ];
  51. }
  52. $order = 'id desc';
  53. $field = 'id,settlement_no,site_id,period_id,site_name,order_money,shop_money,refund_platform_money,platform_money,refund_shop_money,
  54. refund_money,create_time,period_start_time,period_end_time,commission,platform_coupon_money,refund_platform_coupon_money';
  55. $list = $model->getShopSettlementPageList($condition, $page, $page_size, $order, $field);
  56. return $this->response($list);
  57. }
  58. /**
  59. * 结算信息
  60. * @return false|string
  61. */
  62. public function info()
  63. {
  64. $model = new ShopSettlement();
  65. $id = isset($this->params[ 'id' ]) ? $this->params[ 'id' ] : '';
  66. $field = 'id,settlement_no,site_id,period_id,site_name,order_money,shop_money,refund_platform_money,platform_money,refund_shop_money,
  67. refund_money,create_time,period_start_time,period_end_time,commission,platform_coupon_money,refund_platform_coupon_money';
  68. $info = $model->getShopSettlementInfo([ [ 'id', '=', $id ] ], $field);
  69. $info = $info[ 'data' ];
  70. //店铺收入
  71. $shop_money = $info[ 'shop_money' ] - $info[ 'refund_shop_money' ] - $info[ 'commission' ] + $info[ 'platform_coupon_money' ] - $info[ 'refund_platform_coupon_money' ];
  72. //平台收入
  73. $money = $info[ 'platform_money' ] - $info[ 'refund_platform_money' ];
  74. $data = [
  75. 'info' => $info,
  76. 'shop_money' => number_format($shop_money, 2, '.', ''),
  77. 'money' => number_format($money, 2, '.', '')
  78. ];
  79. return $this->response($this->success($data));
  80. }
  81. /**
  82. * 结算明细
  83. * @return false|string
  84. */
  85. public function detail()
  86. {
  87. $id = isset($this->params[ 'id' ]) ? $this->params[ 'id' ] : '';
  88. $order_model = new OrderCommonModel();
  89. $condition[] = [ 'settlement_id', '=', $id ];
  90. $page = isset($this->params[ 'page' ]) ? $this->params[ 'page' ] : 1;
  91. $page_size = isset($this->params[ 'page_size' ]) ? $this->params[ 'page_size' ] : PAGE_LIST_ROWS;
  92. $field = 'order_id,order_no,order_money,order_status,shop_money,platform_money,refund_money,refund_shop_money,refund_platform_money,commission,finish_time,platform_coupon_money,refund_platform_coupon_money';
  93. $list = $order_model->getOrderPageList($condition, $page, $page_size, 'finish_time desc', $field);
  94. return $this->response($list);
  95. }
  96. }