| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- <?php
- /**
- * Niushop商城系统 - 团队十年电商经验汇集巨献!
- * =========================================================
- * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
- * ----------------------------------------------
- * 官方网址: https://www.niushop.com
- * =========================================================
- */
- namespace app\model\stat;
- use app\model\BaseModel;
- use app\model\system\Stat;
- use Carbon\Carbon;
- /**
- * 统计
- * @author Administrator
- *
- */
- class GoodsStat extends BaseModel
- {
- /**
- * 用于订单(同与订单支付后调用)
- * @param $params
- */
- public function addGoodsStat($params)
- {
- $stat_model = new Stat();
- $result = $stat_model->addShopStat($params);
- return $result;
- }
- /**
- * 商品增加收藏量
- * @param $params
- */
- public function addGoodsCollectStat($params)
- {
- $stat_model = new Stat();
- $result = $stat_model->addShopStat($params);
- return $result;
- }
- /**
- * 增加访问数
- * @param $params
- */
- public function addGoodsVisit($params)
- {
- $member_id = $params[ 'member_id' ] ?? 0;
- $goods_id = $params[ 'goods_id' ] ?? 0;
- $data = array (
- 'site_id' => $params[ 'site_id' ],
- 'goods_visit_count' => 1
- );
- $stat_model = new Stat();
- $time_region = getDayStartAndEndTime();
- $today_start_time = $time_region[ 'start_time' ];
- $today_end_time = $time_region[ 'end_time' ];
- if ($goods_id > 0) {
- $goods_browse_condition = array (
- [ 'goods_id', '=', $goods_id ],
- [ 'browse_time', 'between', [ $today_start_time, $today_end_time ] ],
- );
- $info = model('goods_browse')->getInfo($goods_browse_condition);
- if (empty($info)) {
- $data[ 'goods_visited_type_count' ] = 1;
- }
- }
- if ($member_id > 0) {
- $member_browse_condition = array (
- [ 'member_id', '=', $member_id ],
- [ 'browse_time', 'between', [ $today_start_time, $today_end_time ] ],
- );
- $info = model('goods_browse')->getInfo($member_browse_condition);
- if (empty($info)) {
- $data[ 'goods_visit_member_count' ] = 1;
- }
- }
- $result = $stat_model->addShopStat($data);
- return $result;
- }
- /**
- * 商品上架商品统计
- * @param $params
- */
- public function addGoodsOnStat($params)
- {
- $site_id = $params[ 'site_id' ];
- //查询当前的已上架商品
- $goods_on_condition = array (
- [ 'goods_state', '=', 1 ],
- [ 'is_delete', '=', 0 ],
- [ 'site_id', '=', $site_id ]
- );
- $count = model('goods')->getCount($goods_on_condition);
- $carbon = Carbon::now();
- $condition = [
- [ 'site_id', '=', $site_id ],
- [ 'year', '=', $carbon->year ],
- [ 'month', '=', $carbon->month ],
- [ 'day', '=', $carbon->day ],
- [ 'goods_on_type_count', '>', 0 ]
- ];
- $info = model('stat_shop')->getInfo($condition, 'goods_on_type_count') ?? [];
- $o_count = $info[ 'goods_on_type_count' ] ?? 0;
- $data = [
- 'site_id' => $site_id,
- ];
- $diff_count = $count - $o_count;
- if ($diff_count != 0) {
- $data[ 'goods_on_type_count' ] = $diff_count;
- $stat_model = new Stat();
- $result = $stat_model->addShopStat($data);
- return $result;
- }
- }
- /**
- * 销售额统计
- * @param $params
- * @return array
- */
- public function getGoodsOrderMoneyStat($params)
- {
- $start_time = $params[ 'start_time' ];
- $end_time = $params[ 'end_time' ];
- $condition = array (
- [ 'o.create_time', 'between', [ $start_time, $end_time ] ],
- [ 'o.pay_status', '=', 1 ]
- );
- $site_id = $params[ 'site_id' ] ?? 0;
- if ($site_id > 0) {
- $condition[] = [ 'o.site_id', '=', $site_id ];
- }
- $alias = 'og';
- $join = [
- [
- 'order o',
- 'o.order_id = og.order_id',
- 'inner'
- ],
- ];
- $list = model('order_goods')->getList($condition, 'sum(og.goods_money) as total_money, og.sku_name, og.goods_id, og.sku_id, og.sku_image', 'total_money desc', $alias, $join, 'og.goods_id', $params[ 'limit' ]);
- return $this->success($list);
- }
- /**
- * 销售量统计
- * @param $params
- * @return array
- */
- public function getGoodsOrderNumStat($params)
- {
- $start_time = $params[ 'start_time' ];
- $end_time = $params[ 'end_time' ];
- $condition = array (
- [ 'o.create_time', 'between', [ $start_time, $end_time ] ],
- [ 'o.pay_status', '=', 1 ]
- );
- $site_id = $params[ 'site_id' ] ?? 0;
- if ($site_id > 0) {
- $condition[] = [ 'o.site_id', '=', $site_id ];
- }
- $alias = 'og';
- $join = [
- [
- 'order o',
- 'o.order_id = og.order_id',
- 'inner'
- ],
- ];
- $list = model('order_goods')->getList($condition, 'sum(og.num) as total_num, og.sku_name, og.goods_id, og.sku_id, og.sku_image', 'total_num desc', $alias, $join, 'og.goods_id', $params[ 'limit' ]);
- return $this->success($list);
- }
- }
|