| 1234567891011121314151617181920212223242526272829303132333435363738 |
- <?php
- namespace addons\Course\common\services;
- use common\models\goods\Goods;
- use common\models\order\Order;
- class CourseActivityService
- {
- public static function getList(array $list, int $mall_id) :array
- {
- if (empty($list) || empty($mall_id)) return [];
- $goods_ids = array_column($list, 'goods_id');
- $good_list = Goods::lists([
- 'where' => [['id' => $goods_ids]],
- 'select' => 'id,price,original_price',
- 'index' => 'id'
- ]);
- //统计每个课程活动的购买情况
- $statistics_data = Order::find()
- ->where(['mall_id' => $mall_id, 'marketing_type' => 'Course'])
- ->groupBy('marketing_id')
- ->select(['marketing_id', 'COUNT(*) as order_count'])
- ->indexBy('marketing_id')
- ->asArray()
- ->all();
- foreach ($list as &$item) {
- $good_info = $good_list[$item['goods_id']];
- $item['price'] = $good_info['price'] ?? 0;
- $item['original_price'] = $good_info['original_price'] ?? 0;
- $item['views'] = $statistics_data[$item['id']]['order_count'] ?? 0;
- }
- return $list;
- }
- }
|