Goods.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace addons\shopro\controller\commission;
  3. use think\Request;
  4. use app\admin\model\shopro\goods\Goods as GoodsModel;
  5. use app\admin\model\shopro\commission\CommissionGoods;
  6. use addons\shopro\service\commission\Goods as CommissionGoodsService;
  7. class Goods extends Commission
  8. {
  9. protected $noNeedLogin = [];
  10. protected $noNeedRight = ['*'];
  11. public function index()
  12. {
  13. $goods_table_name = (new GoodsModel)->getQuery()->getTable();
  14. $list = GoodsModel
  15. ::hasWhere('commissionGoods', ['status' => CommissionGoods::GOODS_COMMISSION_STATUS_ON])
  16. ->where($goods_table_name . '.status', 'up')
  17. ->order('weigh desc, id desc')
  18. ->paginate($this->request->param('list_rows', 8))
  19. ->each(function ($goods) {
  20. $this->caculateMyCommission($goods);
  21. });
  22. $this->success("", $list);
  23. }
  24. private function caculateMyCommission($goods)
  25. {
  26. $commissionGoodsService = new CommissionGoodsService($goods->commission_goods, $goods->sku_prices[0]['id']);
  27. $commissionRule = $commissionGoodsService->getCommissionLevelRule($this->service->agent->level ?? 1);
  28. $goods->commission = $commissionGoodsService->caculateGoodsCommission($commissionRule, $goods->sku_prices[0]['price']);
  29. }
  30. }