DoubleCopyGoodsController.php 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace addons\CloudStock\backend\controllers;
  3. use addons\CloudStock\common\models\CloudStockGoods;
  4. use addons\DoubleCopy\common\models\DoubleCopyLevel;
  5. use common\enums\AddonsEnum;
  6. use common\enums\StatusEnum;
  7. use common\models\mall\MallAddons;
  8. /**
  9. * 默认控制器
  10. *
  11. * Class DefaultController
  12. * @package addons\CloudStock\backend\controllers
  13. */
  14. class DoubleCopyGoodsController extends BaseController
  15. {
  16. public $enableCsrfValidation = false;
  17. public function actionIndex()
  18. {
  19. if (\Yii::$app->request->isAjax) {
  20. if (\Yii::$app->request->isGet) {
  21. if (!MallAddons::isInstall($this->mall_id, 'DoubleCopy')) return $this->error('二二复制插件未安装');
  22. $data = [
  23. 'goods_list' => []
  24. ];
  25. $double_copy_level_model = DoubleCopyLevel::getOne([['mall_id' => $this->mall_id], ['level' => 1], ['status' => [StatusEnum::ENABLED]]], true);
  26. $double_copy_level_model['goods_list'] = json_decode($double_copy_level_model['goods_list'], true);
  27. if(empty($double_copy_level_model['goods_list'])){
  28. return $this->error('二二复制商品未设置');
  29. }
  30. $data['goods_list'] = $double_copy_level_model['goods_list'];
  31. $cloud_stock_double_copy_goods = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_CLOUD_STOCK, 'double_copy_goods');
  32. $goods_list = json_decode($cloud_stock_double_copy_goods['goods_list'], true);
  33. $goods_arr = [];
  34. if (!empty($goods_list)) {
  35. $cloud_stock_goods_ids = array_column($goods_list, 'cloud_stock_goods_id');
  36. $c_s_goods_list = CloudStockGoods::lists(['where' => [['goods_id' => $cloud_stock_goods_ids], ['status' => StatusEnum::ENABLED]]]);
  37. $cloud_stock_goods_ids = array_column($c_s_goods_list, 'goods_id');
  38. foreach ($goods_list as $v) {
  39. if (in_array($v['cloud_stock_goods_id'], $cloud_stock_goods_ids)) {
  40. $goods_arr[$v['id']] = $v;
  41. }
  42. }
  43. }
  44. foreach ($data['goods_list'] as &$item) {
  45. $item['num'] = 0;
  46. $item['cloud_stock_goods_id'] = '';
  47. $item['cloud_stock_goods_cover_pic'] = '';
  48. $item['cloud_stock_goods_name'] = '';
  49. if (isset($goods_arr[$item['id']])) {
  50. $item['num'] = $goods_arr[$item['id']]['num'];
  51. $item['cloud_stock_goods_id'] = $goods_arr[$item['id']]['cloud_stock_goods_id'];
  52. $item['cloud_stock_goods_cover_pic'] = $goods_arr[$item['id']]['cloud_stock_goods_cover_pic'];
  53. $item['cloud_stock_goods_name'] = $goods_arr[$item['id']]['cloud_stock_goods_name'];
  54. }
  55. }
  56. return $this->success('', $data);
  57. } elseif (\Yii::$app->request->isPost) {
  58. $post = \Yii::$app->request->post();
  59. \Yii::$app->services->setting->addons->set($this->mall_id, AddonsEnum::ADDONS_NAME_CLOUD_STOCK, ['double_copy_goods' => $post]);
  60. return $this->success('操作成功');
  61. }
  62. }
  63. return $this->render($this->action->id, []);
  64. }
  65. }