| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- <?php
- /**
- * Created by PhpStorm.
- * User: wniu
- * Date: 2022/2/28
- * Time: 5:46 下午
- */
- namespace addons\CloudStockTwo\backend\controllers;
- use addons\CloudStockTwo\common\models\CloudStockTwoAgent;
- use addons\CloudStockTwo\common\models\CloudStockTwoAgentGoods;
- use addons\CloudStockTwo\common\models\CloudStockTwoFillOrder;
- use addons\CloudStockTwo\common\models\CloudStockTwoGoods;
- use common\enums\StatusEnum;
- use common\models\goods\Goods;
- use Yii;
- class AgentGoodsController extends BaseController
- {
- public $enableCsrfValidation = false;
- public function actionIndexBak()
- {
- if (\Yii::$app->request->isAjax) {
- $get = Yii::$app->request->get();
- $stock_agent = CloudStockTwoAgent::getOne([['user_id' => $get['user_id']]]);
- if (!$stock_agent) {
- return $this->error('没有该代理商');
- }
- $wheres[] = ['mall_id' => $this->mall_id, 'user_id' => $get['user_id'], 'status' => StatusEnum::ENABLED];
- $params = [
- 'select' => 'id,mall_id,user_id,goods_id,num as agent_stock,created_at',
- 'where' => $wheres,
- 'order' => 'created_at desc',
- 'page' => $get['page'] ?? 1,
- 'limit' => $get['limit'] ?? $this->pageSize,
- ];
- $list = CloudStockTwoAgentGoods::listPage($params);
- if (empty($list['list'])) {
- if (!is_array($list['list'])) return $this->error(CloudStockTwoAgentGoods::getStaticError());
- return $this->success('success', $list);
- }
- $good_ids = array_column($list['list'], 'goods_id');
- $cloud_stock_goods = CloudStockTwoGoods::find()
- ->select('goods_id,agent_price')
- ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'goods_id' => $good_ids])
- ->asArray()
- ->indexBy('goods_id')
- ->all();
- $mall_goods = Goods::find()
- ->select('id,goods_name,price,cover_pic')
- ->where(['mall_id' => $this->mall_id,'id' => $good_ids])
- ->asArray()
- ->indexBy('id')
- ->all();
- $agent_goods = CloudStockTwoAgentGoods::find()
- ->select('goods_id,num')
- ->where(['user_id' => $get['user_id'], 'status' => StatusEnum::ENABLED, 'goods_id' => $good_ids])
- ->asArray()
- ->indexBy('goods_id')
- ->all();
- foreach ($list['list'] as $lk => &$lv) {
- $could_goods = $cloud_stock_goods[$lv['goods_id']] ?? [];
- if (empty($could_goods)) {
- unset($list['list'][$lk]);
- continue;
- }
- // dd($lv, $could_goods, $stock_agent->level);
- $lv['agent_goods_num'] = $agent_goods[$lv['goods_id']] ? $agent_goods[$lv['goods_id']]['num'] : 0;
- $lv['level_agent_price'] = CloudStockTwoAgentGoods::getGoodsAgentPrice($could_goods, $stock_agent->level);
- $mall_good = $mall_goods[$lv['goods_id']] ?? [];
- $price = $mall_good['price'] ?? 0;
- $lv['goods_name'] = $mall_good['goods_name'] ?? '';
- $lv['cover_pic'] = $mall_good['cover_pic'] ?? '';
- // 平台价格,零售价
- $lv['goods_price'] = $price;
- $lv['profit'] = $price - $lv['level_agent_price'];
- }
- $list['list'] = array_values($list['list']);
- return $this->success('success', $list);
- }
- return $this->render('index');
- }
- public function actionIndex()
- {
- if (\Yii::$app->request->isAjax) {
- $page = \Yii::$app->request->get('page', 1);
- $limit = \Yii::$app->request->get('limit', $this->pageSize);
- $get = Yii::$app->request->get();
- $stock_agent = CloudStockTwoAgent::getOne([['user_id' => $get['user_id']]]);
- if (!$stock_agent) {
- return $this->error('没有该代理商');
- }
- $wheres[] = ['mall_id' => $this->mall_id];
- $params = [
- 'select' => 'mall_id,goods_id,agent_price',
- 'where' => $wheres,
- 'order' => 'created_at desc',
- 'page' => $page,
- 'limit' => $limit,
- ];
- $cloud_stock_goods = CloudStockTwoGoods::listPage($params);
- if (false === $cloud_stock_goods) {
- return $this->error(CloudStockTwoGoods::getStaticError());
- }
- if (empty($cloud_stock_goods['list'])) {
- return $this->success('success', $cloud_stock_goods);
- }
- $good_ids = array_column($cloud_stock_goods['list'], 'goods_id');
- $mall_goods = Goods::find()
- ->select('id,goods_name,price,cover_pic')
- ->where(['mall_id' => $this->mall_id,'id' => $good_ids])
- ->asArray()
- ->indexBy('id')
- ->all();
- $agent_goods = CloudStockTwoAgentGoods::find()
- ->select('goods_id,num,created_at')
- ->where(['user_id' => $get['user_id'], 'status' => StatusEnum::ENABLED, 'goods_id' => $good_ids])
- ->asArray()
- ->indexBy('goods_id')
- ->all();
- foreach ($cloud_stock_goods['list'] as $lk => &$lv) {
- $mall_good = $mall_goods[$lv['goods_id']] ?? [];
- $agent_good = $agent_goods[$lv['goods_id']] ?? [];
- $lv['user_id'] = $get['user_id'];
- $lv['level_agent_price'] = CloudStockTwoAgentGoods::getGoodsAgentPrice($lv, $stock_agent->level);
- $price = $mall_good['price'] ?? 0;
- $lv['goods_name'] = $mall_good['goods_name'] ?? '';
- $lv['cover_pic'] = $mall_good['cover_pic'] ?? '';
- // 平台价格,零售价
- $lv['goods_price'] = $price;
- $lv['profit'] = $price - $lv['level_agent_price'];
- if (!empty($agent_good)) {
- $lv['agent_goods_num'] = $agent_good['num'] ?? 0;
- $lv['created_at'] = $agent_good['created_at'] ?? 0;
- } else {
- $lv['agent_goods_num'] = 0;
- $lv['created_at'] = 0;
- }
- }
- return $this->success('success', $cloud_stock_goods);
- }
- return $this->render('index');
- }
- }
|