Goods.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace app\admin\controller\shopro\commission;
  3. use app\admin\controller\shopro\Common;
  4. use app\admin\model\shopro\commission\CommissionGoods as CommissionGoodsModel;
  5. use app\admin\model\shopro\goods\Goods as GoodsModel;
  6. use think\Db;
  7. class Goods extends Common
  8. {
  9. protected $model = null;
  10. protected $goodsModel;
  11. public function _initialize()
  12. {
  13. parent::_initialize();
  14. $this->model = new CommissionGoodsModel();
  15. $this->goodsModel = new GoodsModel();
  16. }
  17. public function index()
  18. {
  19. if (!$this->request->isAjax()) {
  20. return $this->view->fetch();
  21. }
  22. $data = $this->goodsModel->sheepFilter()->with('commission_goods')->paginate($this->request->param('list_rows', 10));
  23. $this->success('分销商品列表', null, $data);
  24. }
  25. /**
  26. * 详情
  27. *
  28. * @param $id
  29. */
  30. public function detail($id)
  31. {
  32. $goodsList = collection(GoodsModel::with(['commission_goods'])->whereIn('id', $id)->select())->each(function ($goods) {
  33. $goods->skus = $goods->skus;
  34. $goods->sku_prices = $goods->sku_prices;
  35. });
  36. $config = sheep_config('shop.commission');
  37. $this->success('分销商品详情', null, [
  38. 'goods' => $goodsList,
  39. 'config' => $config
  40. ]);
  41. }
  42. /**
  43. * 设置佣金(支持批量)
  44. *
  45. * @param $id
  46. */
  47. public function edit($id = null)
  48. {
  49. if (!$this->request->isAjax()) {
  50. return $this->view->fetch();
  51. }
  52. // 接受全部参数
  53. $params = $this->request->only(['status', 'self_rules', 'commission_order_status', 'commission_config', 'commission_rules']);
  54. $result = Db::transaction(function () use ($id, $params) {
  55. $count = 0;
  56. $ids = explode(',', $id);
  57. foreach ($ids as $goods_id) {
  58. if ($row = $this->model->get($goods_id)) {
  59. $row->save($params);
  60. } else {
  61. $model = new CommissionGoodsModel();
  62. $params['goods_id'] = $goods_id;
  63. $model->save($params);
  64. }
  65. $count++;
  66. }
  67. return $count;
  68. });
  69. if ($result) {
  70. $this->success('更新成功', null, $result);
  71. } else {
  72. $this->error('更新失败');
  73. }
  74. }
  75. }