Goodscollect.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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 addon\fenxiao\model\FenxiaoGoodsSku;
  12. use addon\fenxiao\model\FenxiaoLevel;
  13. use app\api\controller\BaseApi;
  14. use addon\fenxiao\model\Fenxiao as FenxiaoModel;
  15. use addon\fenxiao\model\FenxiaoGoodsCollect as FenxiaoGoodsCollectModel;
  16. /**
  17. * 分销商关注商品
  18. */
  19. class Goodscollect extends BaseApi
  20. {
  21. /**
  22. * 添加分销商关注商品
  23. * @return false|string
  24. */
  25. public function add()
  26. {
  27. $token = $this->checkToken();
  28. if ($token[ 'code' ] < 0) return $this->response($token);
  29. $goods_id = isset($this->params[ 'goods_id' ]) ? $this->params[ 'goods_id' ] : 0;
  30. $sku_id = isset($this->params[ 'sku_id' ]) ? $this->params[ 'sku_id' ] : 0;
  31. if (empty($goods_id)) {
  32. return $this->response($this->error('', 'REQUEST_GOODS_ID'));
  33. }
  34. $fenxiao_model = new FenxiaoModel();
  35. $fenxiao_info = $fenxiao_model->getFenxiaoInfo([ [ 'member_id', '=', $this->member_id ] ], "fenxiao_id")[ 'data' ];
  36. $data = [
  37. 'member_id' => $this->member_id,
  38. 'fenxiao_id' => $fenxiao_info[ 'fenxiao_id' ],
  39. 'goods_id' => $goods_id,
  40. 'sku_id' => $sku_id,
  41. 'site_id' => $this->site_id
  42. ];
  43. $fenxiao_goods_sku_model = new FenxiaoGoodsCollectModel();
  44. $res = $fenxiao_goods_sku_model->addCollect($data);
  45. return $this->response($res);
  46. }
  47. /**
  48. * 删除分销商关注商品
  49. * @return false|string
  50. */
  51. public function delete()
  52. {
  53. $token = $this->checkToken();
  54. if ($token[ 'code' ] < 0) return $this->response($token);
  55. $collect_id = isset($this->params[ 'collect_id' ]) ? $this->params[ 'collect_id' ] : 0;
  56. if (empty($collect_id)) {
  57. return $this->response($this->error('', 'REQUEST_COLLECT_ID'));
  58. }
  59. $fenxiao_model = new FenxiaoModel();
  60. $fenxiao_info = $fenxiao_model->getFenxiaoInfo([ [ 'member_id', '=', $this->member_id ] ], "fenxiao_id")[ 'data' ];
  61. $condition = [
  62. [ 'fenxiao_id', '=', $fenxiao_info[ 'fenxiao_id' ] ],
  63. [ 'collect_id', '=', $collect_id ]
  64. ];
  65. $fenxiao_goods_sku_model = new FenxiaoGoodsCollectModel();
  66. $res = $fenxiao_goods_sku_model->deleteCollect($condition);
  67. return $this->response($res);
  68. }
  69. /**
  70. * 分销商关注商品分页列表
  71. */
  72. public function page()
  73. {
  74. $token = $this->checkToken();
  75. if ($token[ 'code' ] < 0) return $this->response($token);
  76. $page = isset($this->params[ 'page' ]) ? $this->params[ 'page' ] : 1;
  77. $page_size = isset($this->params[ 'page_size' ]) ? $this->params[ 'page_size' ] : PAGE_LIST_ROWS;
  78. // 获取当前用户的分销等级
  79. $fenxiao_model = new FenxiaoModel();
  80. $fenxiao_info = $fenxiao_model->getFenxiaoInfo([ [ 'member_id', '=', $this->member_id ] ], "fenxiao_id,level_id")[ 'data' ];
  81. $fenxiao_level = new FenxiaoLevel();
  82. $level_info = $fenxiao_level->getLevelInfo([ [ 'level_id', '=', $fenxiao_info[ 'level_id' ] ] ], 'one_rate')[ 'data' ];
  83. $condition = [
  84. [ 'g.is_fenxiao', '=', 1 ],
  85. [ 'g.site_id', '=', $this->site_id ],
  86. [ 'gs.goods_state', '=', 1 ],
  87. [ 'gs.is_delete', '=', 0 ],
  88. [ 'fgc.member_id', '=', $this->member_id ]
  89. ];
  90. $fenxiao_goods_collect_model = new FenxiaoGoodsCollectModel();
  91. $list = $fenxiao_goods_collect_model->getCollectPageList($condition, $page, $page_size);
  92. $fenxiao_goods_sku_model = new FenxiaoGoodsSku();
  93. // 计算佣金比率
  94. foreach ($list[ 'data' ][ 'list' ] as $k => $v) {
  95. $discount_price = $v[ 'fenxiao_price' ] > 0 ? $v[ 'fenxiao_price' ] : $v[ 'discount_price' ];
  96. $money = 0;
  97. if ($v[ 'fenxiao_type' ] == 1) {
  98. // 默认规则
  99. $money = number_format($discount_price * $level_info[ 'one_rate' ] / 100, 2, '.', '');
  100. } else {
  101. // 自定义规则
  102. $fenxiao_goods_sku_info = $fenxiao_goods_sku_model->getFenxiaoGoodsSkuInfo([ [ 'sku_id', '=', $v[ 'sku_id' ] ], [ 'level_id', '=', $fenxiao_info[ 'level_id' ] ] ], 'one_money,one_rate');
  103. if (!empty($fenxiao_goods_sku_info[ 'data' ])) {
  104. $fenxiao_goods_sku_info = $fenxiao_goods_sku_info[ 'data' ];
  105. $money = $fenxiao_goods_sku_info[ 'one_money' ];
  106. if ($fenxiao_goods_sku_info[ 'one_rate' ] > 0) {
  107. $money = number_format($discount_price * $fenxiao_goods_sku_info[ 'one_rate' ] / 100, 2, '.', '');
  108. }
  109. }
  110. }
  111. $list[ 'data' ][ 'list' ][ $k ][ 'commission_money' ] = $money;
  112. }
  113. return $this->response($list);
  114. }
  115. }