shop-php/app/controller/api/Statistics.php
2023-10-20 18:46:49 +08:00

212 lines
8.2 KiB
PHP

<?php
namespace app\controller\api;
use crmeb\basic\BaseController;
use think\facade\Db;
class Statistics extends BaseController
{
/**
* 商户入驻统计
*/
public function SupplyChainMerCount()
{
$parmas = $this->request->param();
if (isset($parmas['type']) && $parmas['type'] != '') {
switch ($parmas['type']) {
case 'area':
$type = 'area_id';
break;
case 'street':
$type = 'street_id';
break;
default:
return app('json')->fail('type:格式错误');
break;
}
} else {
$type = 'street_id';
}
if (!isset($parmas['start_time']) || $parmas['start_time'] == '') {
return app('json')->fail('start_time:格式错误');
}
if (!isset($parmas['end_time']) || $parmas['end_time'] == '') {
return app('json')->fail('end_time:格式错误');
}
$where[]=['create_time','between time',[date("Y-m-d H:i:s",$parmas['start_time']),date("Y-m-d H:i:s",$parmas['end_time'])]];
if (isset($parmas['responsible_area']) && $parmas['responsible_area'] != '') {
$where[] = [$type,'in',explode(',', $parmas['responsible_area'])];
}
$where[]=['is_del','=',0];
$where[]=['status','=',1];
$count=Db::name('merchant')->where($where)->count();
return app('json')->success(['count'=>$count]);
}
/**
* 商户商品数量查询
*/
public function SupplyChainProductCount()
{
$parmas = $this->request->param();
if (!isset($parmas['start_time']) || $parmas['start_time'] == '') {
return app('json')->fail('start_time:格式错误');
}
if (!isset($parmas['end_time']) || $parmas['end_time'] == '') {
return app('json')->fail('end_time:格式错误');
}
if (!isset($parmas['mer_intention_id']) || $parmas['mer_intention_id'] == '') {
return app('json')->fail('mer_intention_id:格式错误');
}
$where[]=['create_time','between time',[date("Y-m-d H:i:s",$parmas['start_time']),date("Y-m-d H:i:s",$parmas['end_time'])]];
$where[] = ['mer_id','=',$parmas['mer_intention_id']];
$where[]=['mer_status','=',1];
$where[]=['status','=',1];
$where[]=['is_used','=',1];
$where[]=['is_show','=',1];
$count=Db::name('store_product')->where($where)->count();
return app('json')->success(['count'=>$count]);
}
/**
* 商户商品库存更新查询
*/
public function SupplyChainProductStockCount()
{
$parmas = $this->request->param();
if (!isset($parmas['start_time']) || $parmas['start_time'] == '') {
return app('json')->fail('start_time:格式错误');
}
if (!isset($parmas['end_time']) || $parmas['end_time'] == '') {
return app('json')->fail('end_time:格式错误');
}
if (!isset($parmas['mer_intention_id']) || $parmas['mer_intention_id'] == '') {
return app('json')->fail('mer_intention_id:格式错误');
}
$where[]=['create_time','between time',[date("Y-m-d H:i:s",$parmas['start_time']),date("Y-m-d H:i:s",$parmas['end_time'])]];
$where[] = ['mer_id','=',$parmas['mer_intention_id']];
$count=Db::name('store_product_stock')->where($where)->count();
return app('json')->success(['count'=>$count]);
}
/**
* 商品列表
*/
public function ProductList(){
$parmas = $this->request->param();
if (!isset($parmas['page']) || $parmas['page'] == '') {
return app('json')->fail('page:格式错误');
}
$where[]=['mer_status','=',1];
$where[]=['status','=',1];
$where[]=['is_used','=',1];
$where[]=['is_show','=',1];
if (isset($parmas['keyword']) &&$parmas['keyword'] != '') {
$where[] = ['store_name','like','%'.$parmas['keyword'].'%'];
}
$list=Db::name('store_product')->where($where)->page($parmas['page'])
->field('product_id,store_name,image,price')
->limit(10)->select();
return app('json')->success(['page'=>$parmas['page'],'data'=>$list]);
}
/**
* 采购金额和销售金额统计
*/
public function SupplyChainProductPriceCount()
{
$parmas = $this->request->param();
if (isset($parmas['type']) && $parmas['type'] != '') {
switch ($parmas['type']) {
case 200:
$where[] = ['p.source','=',200];
break;
case 300:
$where[] = ['p.source','=',300];
break;
default:
return app('json')->fail('type:格式错误');
break;
}
} else {
$where[] = ['p.source','=',0];
}
if (!isset($parmas['start_time']) || $parmas['start_time'] == '') {
return app('json')->fail('start_time:格式错误');
}
if (!isset($parmas['end_time']) || $parmas['end_time'] == '') {
return app('json')->fail('end_time:格式错误');
}
if (!isset($parmas['mer_intention_id']) || $parmas['mer_intention_id'] == '') {
return app('json')->fail('mer_intention_id:格式错误');
}
if (!isset($parmas['goods_id']) || $parmas['goods_id'] == '') {
return app('json')->fail('goods_id:格式错误');
}
$where[]=['p.create_time','between time',[date("Y-m-d H:i:s",$parmas['start_time']),date("Y-m-d H:i:s",$parmas['end_time'])]];
$where[] = ['p.product_id','in',explode(',', $parmas['goods_id'])];
$where[] = ['p.is_refund','=',0];
$count=Db::name('store_order_product')->alias('p')
->where($where)
->join('store_order o','o.mer_id='.$parmas['mer_intention_id'].' and o.paid=1 and o.is_del=0')
->sum('p.total_price');
return app('json')->success(['procure_amount'=>$count]);
}
/**
* 镇一般商户采购金额和销售金额统计
*/
public function SupplyChainStreetProductPriceCount()
{
$parmas = $this->request->param();
if (isset($parmas['type']) && $parmas['type'] != '') {
switch ($parmas['type']) {
case 200:
$where[] = ['p.source','=',200];
break;
case 300:
$where[] = ['p.source','=',300];
break;
default:
return app('json')->fail('type:格式错误');
break;
}
} else {
$where[] = ['p.source','=',0];
}
if (!isset($parmas['start_time']) || $parmas['start_time'] == '') {
return app('json')->fail('start_time:格式错误');
}
if (!isset($parmas['end_time']) || $parmas['end_time'] == '') {
return app('json')->fail('end_time:格式错误');
}
if (!isset($parmas['mer_intention_id']) || $parmas['mer_intention_id'] == '') {
return app('json')->fail('mer_intention_id:格式错误');
}
if (!isset($parmas['goods_id']) || $parmas['goods_id'] == '') {
return app('json')->fail('goods_id:格式错误');
}
if (isset($parmas['responsible_area']) && $parmas['responsible_area'] != '') {
$area[] = ['street_id','in',explode(',', $parmas['responsible_area'])];
}else{
return app('json')->fail('responsible_area:格式错误');
}
$merchant=Db::name('merchant')->where('street_id','in',$area)->select();
$where[]=['p.create_time','between time',[date("Y-m-d H:i:s",$parmas['start_time']),date("Y-m-d H:i:s",$parmas['end_time'])]];
$where[] = ['p.product_id','in',explode(',', $parmas['goods_id'])];
$where[] = ['p.is_refund','=',0];
$count=Db::name('store_order_product')->alias('p')
->where($where)
->join('store_order o','o.mer_id in '.$parmas['mer_intention_id'].' and o.paid=1 and o.is_del=0')
->sum('p.total_price');
return app('json')->success(['procure_amount'=>$count]);
}
}