Browse Source

店铺新用户统计-修改

master
liangyuyan 5 years ago
parent
commit
0479c87f01
  1. 27
      app/Admin/Controllers/StoreUserReportController.php
  2. 25
      app/Models/ImsCjdcOrder.php
  3. 57
      app/Models/ImsCjdcOrderMain.php
  4. 6
      resources/lang/zh-CN/store-user-report.php

27
app/Admin/Controllers/StoreUserReportController.php

@ -3,10 +3,14 @@
namespace App\Admin\Controllers;
use App\Admin\Repositories\StoreUserReport;
use App\Models\ImsCjdcOrderMain;
use App\Models\storeUserReport as ModelsStoreUserReport;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Controllers\AdminController;
use App\Models\ImsCjdcOrder;
use Illuminate\Support\Facades\DB;
class StoreUserReportController extends AdminController
{
@ -17,15 +21,30 @@ class StoreUserReportController extends AdminController
*/
protected function grid()
{
return Grid::make(new StoreUserReport(), function (Grid $grid) {
$grid->id->sortable();
$startTime = '2020-06-01';$endTime = '2020-07-01';
$orderModel = new ImsCjdcOrder();
$newModel = $orderModel->with([
'store:id,market_id,name,mm_user_id',
'user'=> function($query) use($startTime,$endTime){
$query->selectRaw(DB::raw('count(distinct user_id) as new_user_total'))->whereRaw("join_time BETWEEN UNIX_TIMESTAMP('?') AND UNIX_TIMESTAMP('?')",[$startTime,$endTime]);
}])
->whereRaw("UNIX_TIMESTAMP(pay_time) BETWEEN UNIX_TIMESTAMP('?') AND UNIX_TIMESTAMP('?')",[$startTime,$endTime])
->select('store_id')
->groupBy('store_id')
->orderBy('market_id','desc')
->orderbY('new_user_total','desc');
// return Grid::make(new StoreUserReport(), function (Grid $grid) {
return Grid::make($newModel, function (Grid $grid) {
$grid->disableCreateButton();
$grid->store_id;
$grid->market_id;
$grid->name;
$grid->store_name;
$grid->mm_user_id;
$grid->new_user_total;
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
$filter->equal('store_id');
});
});

25
app/Models/ImsCjdcOrder.php

@ -0,0 +1,25 @@
<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
class ImsCjdcOrder extends Model
{
use HasDateTimeFormatter;
protected $table = 'ims_cjdc_order';
public $timestamps = false;
public function user()
{
return $this->hasOne('\App\Models\ImsCjdcUser','id','user_id');
}
public function store()
{
return $this->hasOne('\App\Models\ImsCjdcStore','id','store_id');
}
}

57
app/Models/ImsCjdcOrderMain.php

@ -0,0 +1,57 @@
<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class ImsCjdcOrderMain extends Model
{
use HasDateTimeFormatter;
protected $table = 'ims_cjdc_order_main';
public $timestamps = false;
public function imsCjdcUser()
{
return $this->hasOne('\App\Models\ImsCjdcUser','id','user_id');
}
public function market()
{
return $this->hasOne('\App\Models\ImsCjdcMarket','id','market_id');
}
/**
* 同时变更主订单和子订单状态,
* @param $oid //主订单id
* @param $state //订单状态
*/
public function modifyState($oid,$state)
{
return DB::transaction(function () use ($oid,$state){
$data1['state'] = $data2['state'] = $state;
$data1['update_time'] = time();
if ($state == 4) {
$data1['complete_time'] = $data2['complete_time'] = time();
} elseif ($state == 3) {
$data1['jd_time'] = $data2['jd_time'] = time();
}
DB::table('ims_cjdc_order_main')
->where('id',$oid)
->update($data1);
DB::table('ims_cjdc_order')
->where('order_main_id',$oid)
->update($data2);
if ($state==4){
//添加店铺流水记录
$account = new StoreAccount();
$account->addStoreAccount($oid);
}
return true;
});
}
}

6
resources/lang/zh-CN/store-user-report.php

@ -1,11 +1,13 @@
<?php
return [
'labels' => [
'StoreUserReport' => 'StoreUserReport',
'StoreUserReport' => '店铺新用户报表',
'storeUserReport' => '店铺新用户报表',
],
'fields' => [
'store_id' => '店铺ID',
'market_id' => '所属市场',
'name' => '商家名称',
'store_name' => '商家名称',
'new_user_total' => '新增用户总数',
'mm_user_id' => '所属市场经理',
],

Loading…
Cancel
Save