Browse Source

Merge branch 'order_statistics'

master
liangyuyan 5 years ago
parent
commit
d899932b92
  1. 36
      app/Admin/Actions/Grid/GoodsNewCopy.php
  2. 36
      app/Admin/Actions/Grid/GoodsNewImage.php
  3. 294
      app/Admin/Controllers/v3/GoodsNewController.php
  4. 38
      app/Admin/Controllers/v3/OrderReportController.php
  5. 110
      app/Admin/Extensions/OrderReportPage.php
  6. 16
      app/Admin/Repositories/v3/GoodsNew.php
  7. 59
      app/Admin/Repositories/v3/OrderReport.php
  8. 15
      app/Models/v3/FinancialRecord.php
  9. 70
      app/Models/v3/GoodsNew.php
  10. 18
      app/Models/v3/GoodsNewBanners.php
  11. 115
      app/Models/v3/StoreNew.php
  12. 42
      resources/lang/zh-CN/goods-new.php
  13. 13
      resources/lang/zh-CN/order-report.php
  14. 60
      resources/views/order_report.php

36
app/Admin/Actions/Grid/GoodsNewCopy.php

@ -1,36 +0,0 @@
<?php
namespace App\Admin\Actions\Grid;
use Dcat\Admin\Grid\RowAction;
use Dcat\Admin\Widgets\Modal;
use App\Admin\Forms\GoodsNewCopyForm;
class GoodsNewCopy extends RowAction
{
/**
* @return string
*/
protected $title = '复制';
public function render()
{
$id = $this->getKey();
$modal = Modal::make()
->xl()
->title($this->title)
->body(GoodsNewCopyForm::make()->setKey($id))
->button($this->title);
return $modal;
}
public function parameters()
{
return [
];
}
}

36
app/Admin/Actions/Grid/GoodsNewImage.php

@ -1,36 +0,0 @@
<?php
namespace App\Admin\Actions\Grid;
use Dcat\Admin\Grid\RowAction;
use Dcat\Admin\Widgets\Modal;
use App\Admin\Forms\GoodsNewImageForm;
class GoodsNewImage extends RowAction
{
/**
* @return string
*/
protected $title = '上传图片';
public function render()
{
$id = $this->getKey();
$modal = Modal::make()
->xl()
->title($this->title)
->body(GoodsNewImageForm::make()->setKey($id))
->button($this->title);
return $modal;
}
public function parameters()
{
return [
];
}
}

294
app/Admin/Controllers/v3/GoodsNewController.php

@ -1,294 +0,0 @@
<?php
namespace App\Admin\Controllers\v3;
use App\Admin\Actions\Grid\GoodsNewCopy;
use App\Admin\Actions\Grid\GoodsNewImage;
use App\Admin\Repositories\v3\GoodsNew;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Controllers\AdminController;
use App\Models\v3\Category as CategoryModel;
use App\Models\v3\StoreNew as StoreModel;
use Dcat\Admin\Form\NestedForm;
use App\Models\v3\GoodsNew as GoodsModel;
use App\Models\v3\Market as MarketModel;
use App\Models\v3\GoodsCategory as GoodsCategoryModel;
class GoodsNewController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new GoodsNew(), function (Grid $grid) {
// 二级分类
$categoryList = CategoryModel::getArray([['parent_id','>',0]],['选择分类'=>0]);
// 店铺
$storeList = StoreModel::getStoreArray();
// 商品类目
$goodsCategoryList = GoodsCategoryModel::getArray([],['选择类目'=>0]);
//市场
$marketList = MarketModel::getMarketArray();
$grid->id->sortable();
$grid->cover_img_url->image('',50);
$grid->name->editable();
$grid->price->editable();
$grid->column('goods_unit','单位')->editable();
$grid->column('spec','规格')->display(function($spec){
$item = '';
if(!empty($spec)){
foreach($spec as $key => $value){
$specKey = isset($value['spec_key'])?$value['spec_key']:'';
$specValue = isset($value['spec_value'])?$value['spec_value']:'';
$item .= $specKey.':'.$specValue.'</br>';
}
}
return $item;
});
$grid->column('market_id')->display(function($marketId){
$item = MarketModel::getMarketInfo($marketId,'name');
return empty($item) ? '' : $item->name;
});
$grid->store_id->display(function ($storeId){
$store = StoreModel::getStoreInfo($storeId,'name');
return empty($store) ? '' : $store->name;
});
$grid->category_id->select($categoryList);
// ->load('goods_category_id', '/api/goods_category_list')
// ->display(function ($categoryId){
// $item = CategoryModel::getInfo($categoryId,'title');
// return empty($item) ? '选择分类' : $item->title;
// });
$grid->goods_category_id->select($goodsCategoryList);
// ->display(function ($goodsCategoryId){
// $item = GoodsCategoryModel::getInfo($goodsCategoryId,'title');
// return empty($item) ? '' : $item->title;
// });
$grid->sort->sortable();
$grid->on_sale->switch();
$grid->actions([new GoodsNewCopy(),new GoodsNewImage()]);
$grid->filter(function (Grid\Filter $filter) use($storeList, $categoryList, $goodsCategoryList, $marketList){
$filter->equal('id');
$filter->like('name');
$filter->equal('store_id')->select($storeList);
$filter->equal('category_id')->select($categoryList);
$filter->equal('goods_category_id')->select($goodsCategoryList);
$filter->equal('market_id')->select($marketList);
$filter->equal('on_sale')->select(GoodsModel::$_ONSALE);
$filter->equal('price');
$filter->equal('goods_unit');
});
$grid->model()->orderBy('goods_category_id', 'asc');
// 每页10条
$grid->paginate(10);
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
// $g = GoodsModel::find(1572);
// dd($g->toArray());
return Show::make($id, new GoodsNew(), function (Show $show) {
$show->row(function (Show\Row $show) {
$show->width(6)->field('id');
$show->width(6)->field('name');
$show->width(6)->category_id->as(function ($categoryId){
$item = CategoryModel::getInfo($categoryId,'title');
return empty($item) ? '' : $item->title;
});
$show->width(6)->store_id->as(function ($storeId){
$item = StoreModel::getStoreInfo($storeId,'name');
return empty($item) ? '' : $item->name;
});
$show->width(6)->goods_category_id->as(function ($goodsCategoryId){
$item = GoodsCategoryModel::getInfo($goodsCategoryId,'title');
return empty($item) ? '' : $item->title;
});
$show->width(6)->cover_img->image();
$show->width(6)->price;
$show->width(6)->original_price;
$show->width(6)->vip_price;
$show->width(6)->inventory;
$show->width(6)->goods_unit;
});
$show->row(function (Show\Row $show) {
$show->width(6)->on_sale_text;
$show->width(6)->content;
$show->width(6)->sort;
$show->width(6)->restrict_num;
$show->width(6)->start_num;
$show->width(6)->is_infinite_text;
$show->width(6)->tags->as(function ($value){
return $value;
});
$show->width(6)->spec->as(function ($value){
$text = '';
if($value){
foreach ($value as $v){
$specKey = isset($v['spec_key'])?$v['spec_key']:'';
$specValue = isset($v['spec_value'])?$v['spec_value']:'';
$text .= '【'.$specKey .':'.$specValue.'】 ';
}
}
return $text;
});
$goodsModel = new GoodsModel();
$show->html(function () use($goodsModel){
if(empty($this->details_imgs)){
return '';
}else{
// 还需要优化
$value = $this->details_imgs;
$text = '';
foreach ($value as $v){
$img = $goodsModel->imageUrl($v);
$text .= "<img src='$img' />";
}
return $text;
}
});
// $show->created_at;
// $show->updated_at;
});
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$builder = GoodsModel::with(['ImageNewBanners','VideoNewBanners']);
return Form::make($builder, function (Form $form) {
$form->hidden('id');
// 二级分类
$categoryList = CategoryModel::getArray([['parent_id','>',0]]);
// 商品类目
$goodsCategoryList = GoodsCategoryModel::getArray();
// 店铺
$storeList = StoreModel::getStoreArray();
//市场
// $marketList = MarketModel::getMarketArray();
$form->column(6, function (Form $form) use($storeList,$categoryList,$goodsCategoryList ){
$form->hidden('market_id')->default(0);
$form->select('category_id')->required()->options($categoryList)->load('goods_category_id', '/api/goods_category_list');
$form->select('goods_category_id');
$form->select('store_id')->required()->options($storeList);
$form->text('name')->required()->maxLength(20);
$form->image('cover_img')->autoUpload()->url('ops/files')->required();
$form->number('sort');
});
$form->column(6, function (Form $form) {
$form->currency('price')->required()->floatTwo()->symbol('¥');
$form->currency('original_price')->required()->floatTwo()->symbol('¥');
$form->currency('vip_price')->required()->floatTwo()->symbol('¥');
$form->text('goods_unit')->help('如:斤,个,盒,500克,1000克,1500克等');
$form->radio('is_infinite')->options(['关闭','开启'])->default(1);
$form->number('inventory')->required()->attribute('min', 1)->default(1);
$form->number('restrict_num')->attribute('min', 0)->default(0)->help('0表示不限购');
$form->number('start_num')->attribute('min', 1)->default(1);
});
$form->column(12, function (Form $form) {
$form->hasMany('image_new_banners', function (Form\NestedForm $form) {
$form->image('path')->autoUpload()->url('ops/files')->width(2);
$form->number('sort')->width(2)->default(0);
$form->hidden('type')->value(1)->default(1);
})->required();
$form->divider();
$form->hasMany('video_new_banners', function (Form\NestedForm $form) {
$form->file('path')->autoUpload()->url('ops/files')->width(2);
$form->number('sort')->width(2)->default(0);
$form->hidden('type')->value(2)->default(2);
});
$form->divider();
$form->multipleImage('details_imgs')->url('ops/files')->help('按图片顺序上传');
$form->text('content')->maxLength(50);
$form->text('remark')->maxLength(50);
$form->tags('tags','标签')->options(['新品','热销','新鲜']);
$form->table('spec', function (NestedForm $table) {
$table->text('spec_key')->required()->help('如:净含量:500克,保质期:120天,包装:12个/盒等');
$table->text('spec_value')->required();
});
$form->switch('on_sale')
->customFormat(function ($v) {
return $v == 1 ? 1 : 0;
})
->saving(function ($v) {
return $v == 1 ? 1 : 0;
});
$form->disableResetButton();
$form->disableViewCheck();
$form->disableEditingCheck();
$form->disableCreatingCheck();
});
$form->saving(function (Form $form){
$storeId = $form->input('store_id');
$tags = $form->input('tags');
$spec = $form->input('spec');
$detailsImgs = $form->input('details_imgs');
$goodsCategoryId = $form->input('goods_category_id');
if($form->isCreating() && !empty($storeId)){
// 商品所属市场,根据店铺查询市场
$info = StoreModel::getStoreInfo($storeId,'market_id');
$form->market_id = $info->market_id;
}
$tags = $form->input('tags');
if(!empty($tags)){
$tagsArr = [];
foreach($tags as $kt => $tag){
if(empty($tag)){
unset($tags[$kt]);
continue;
}
$tagsArr[] = $tag;
}
$form->tags = json_encode($tagsArr);
}
if($storeId && empty($spec)){
$form->spec = [];
}
if($storeId && empty($detailsImgs)){
$form->details_imgs = [];
}
if($storeId && empty($goodsCategoryId)){
$form->goods_category_id = 0;
}
});
});
}
}

38
app/Admin/Controllers/v3/OrderReportController.php

@ -5,14 +5,11 @@ namespace App\Admin\Controllers\v3;
use App\Admin\Repositories\v3\OrderReport;
use Dcat\Admin\Grid;
use Dcat\Admin\Controllers\AdminController;
use Dcat\Admin\Layout\Content;
use App\Models\v3\Market as marketModel;
use App\Admin\Extensions\OrderReportPage;
use Dcat\Admin\Widgets\Lazy;
use Illuminate\Support\Collection;
class OrderReportController extends AdminController
{
/**
* Make a grid builder.
*
@ -27,9 +24,11 @@ class OrderReportController extends AdminController
// $grid->column('new_user_total_money','平台新用户补贴总额');
// $grid->column('store_user_total_money','店铺用户每日首单补贴');
// $grid->column('new_add_user','新增用户数');
$grid->combine('默认统计今天的数据【'.date('Y-m-d').'】', ['name', 'value'])->responsive()->help('如果未选择时间,则默认只统计当天的所有市场的数据,特殊:现存用户默认统计所有的数据');
$grid->column('name','统计名称(默认统计当天数据)');
$grid->column('value','统计数量');
$grid->column('name');
$grid->column('value');
$grid->filter(function (Grid\Filter $filter) {
//市场
@ -51,33 +50,10 @@ class OrderReportController extends AdminController
$grid->disableEditButton();
$grid->disableQuickEditButton();
$grid->disableViewButton();
});
}
$grid->disableActions();
public function indexS(Content $content)
{
$grid = $this->grid();
return $content
->header('报表')
->description('合并表头功能示例')
->body(function ($row) use($grid){
$row->column(4, 123);
$row->column(4, 123);
$row->column(4, 123);
$grid->disableRowSelector();
});
}
public function orderReport(Content $content)
{
$marketId = request()->input('market_id');
$startTime = request()->input('start_time');
$endTime = request()->input('end_time');
// 实例化表单类并传递自定义参数
$order = OrderReportPage::make(['market_id' => $marketId,'start_time'=>$startTime,'endTime'=>$endTime]);
return $content->header("统计")
->breadcrumb(['text' => '统计', 'url' => 'index'])
->body(Lazy::make($order));
}
}

110
app/Admin/Extensions/OrderReportPage.php

@ -1,110 +0,0 @@
<?php
namespace App\Admin\Extensions;
use App\Admin\Common\LinkUrl;
use Dcat\Admin\Admin;
use Dcat\Admin\Support\LazyRenderable;
use Illuminate\Support\Facades\DB;
use App\Models\ImsCjdcOrder as orderModel;
use App\Models\ImsCjdcOrderMain as orderMainModel;
use App\Models\v3\Market as MarketModel;
use App\Models\StoreAccount as StoreAccountModel;
use App\Models\v3\Store as StoreModel;
use App\Models\v3\User as UserModel;
class OrderReportPage extends LazyRenderable
{
protected static $js = [LinkUrl::VUE_JS, LinkUrl::ELEMENT_UI_JS];
protected static $css = [LinkUrl::DETAIL_CSS, LinkUrl::ELEMENT_UI_CSS];
public function render()
{
$marketId = request()->input('market_id');
$startTime = request()->input('start_time');
$endTime = request()->input('end_time');
$orderMain = orderMainModel::select(DB::raw('COUNT(id) AS total_num, SUM(money) AS total_money'))->whereIn('state',[4,5,10]);
$storeNewUser = StoreAccountModel::select(DB::raw("SUM( CASE WHEN note = '新用户下单成功,平台奖励' THEN 1 ELSE 0 END ) AS new_add_total, SUM( CASE WHEN note = '新用户下单成功,平台奖励' THEN money ELSE 0 END ) AS new_user_total,SUM( CASE WHEN note = '用户下单成功,平台奖励' THEN money ELSE 0 END ) AS store_total"));
$newUser = UserModel::select(DB::raw('count(id) AS total'));
if($marketId){
$orderMain->where('market_id',$marketId);
// 查询这个市场下的店铺id
$storeIds = StoreModel::where('market_id',$marketId)->pluck('id');
$storeNewUser->whereIn('store_id',$storeIds);
}
if($startTime){
$orderMain->where([['created_at','>=',strtotime($startTime)]]);
$storeNewUser->where([['time','>=',$startTime]]);
$newUser->where([['created_at','>=',strtotime($startTime)]]);
}
if($endTime){
$orderMain->where([['created_at','<=',strtotime($endTime)]]);
$storeNewUser->where([['time','<=',$endTime]]);
$newUser->where([['created_at','<=',strtotime($endTime)]]);
}
if(empty($startTime) && empty($endTime)){
$time = date('Y-m-d',time());
$todayStart = $time.'00:00:00';
$todayEnd = $time.'23:59:59';
$orderMain->where([['created_at','>=',strtotime($todayStart)]]);
$storeNewUser->where([['time','>=',$todayStart]]);
$newUser->where([['created_at','>=',strtotime($todayStart)]]);
$orderMain->where([['created_at','<=',strtotime($todayEnd)]]);
$storeNewUser->where([['time','<=',$todayEnd]]);
$newUser->where([['created_at','<=',strtotime($todayEnd)]]);
}
// 订单总额
$orderReport = $orderMain->get()->toArray();
// 总补贴金额
$storeNewUsers = $storeNewUser->get()->toArray();
// 总用户
$userTotal = $newUser->get()->toArray();
$query = [
'order_total_num' => !empty($orderReport[0]['total_num'])?$orderReport[0]['total_num']:0,
'order_total_money' => !empty($orderReport[0]['total_money'])?$orderReport[0]['total_money']:0,
'new_user_total_money' => !empty($storeNewUsers[0]['new_user_total'])?$storeNewUsers[0]['new_user_total']:0,
'store_user_total_money' => !empty($storeNewUsers[0]['store_total'])?$storeNewUsers[0]['store_total']:0,
'new_add_user' => !empty($storeNewUsers[0]['new_add_total'])?$storeNewUsers[0]['new_add_total']:0,
'user_total' => !empty($userTotal[0]['total'])?$userTotal[0]['total']:0,
];
if ($query) {
// $marketList = MarketModel::getMarket();
Admin::script(
<<<JS
var app = new Vue({
el:"#order_report",
data:{
order_total_num:"{$query['order_total_num']}",
order_total_money:"{$query['order_total_money']}",
new_user_total_money:"{$query['new_user_total_money']}",
store_user_total_money:"{$query['store_user_total_money']}",
new_add_user:"{$query['new_add_user']}",
user_total:"{$query['user_total']}",
},
methods: {
}
});
JS
);
}
return view('order_report');
}
}

16
app/Admin/Repositories/v3/GoodsNew.php

@ -1,16 +0,0 @@
<?php
namespace App\Admin\Repositories\v3;
use App\Models\v3\GoodsNew as Model;
use Dcat\Admin\Repositories\EloquentRepository;
class GoodsNew extends EloquentRepository
{
/**
* Model.
*
* @var string
*/
protected $eloquentClass = Model::class;
}

59
app/Admin/Repositories/v3/OrderReport.php

@ -2,13 +2,13 @@
namespace App\Admin\Repositories\v3;
use App\Admin\Controllers\v3\OrderReportController;
use App\Models\v3\Store as Model;
use Dcat\Admin\Grid\Model as GridModel;
use Dcat\Admin\Repositories\EloquentRepository;
use Illuminate\Support\Facades\DB;
use App\Models\ImsCjdcOrder as orderModel;
use App\Models\ImsCjdcOrderMain as orderMainModel;
use App\Models\v3\Market as MarketModel;
use App\Models\v3\FinancialRecord as FinancialRecordModel;
use App\Models\StoreAccount as StoreAccountModel;
use App\Models\v3\Store as StoreModel;
use App\Models\v3\User as UserModel;
@ -36,28 +36,36 @@ class OrderReport extends EloquentRepository
$endTime = request()->input('end_time');
$orderMain = orderMainModel::select(DB::raw('COUNT(id) AS total_num, SUM(money) AS total_money'))->whereIn('state',[4,5,10]);
$storeNewUser = StoreAccountModel::select(DB::raw("SUM( CASE WHEN note = '新用户下单成功,平台奖励' THEN 1 ELSE 0 END ) AS new_add_total, SUM( CASE WHEN note = '新用户下单成功,平台奖励' THEN money ELSE 0 END ) AS new_user_total,SUM( CASE WHEN note = '用户下单成功,平台奖励' THEN money ELSE 0 END ) AS store_total"));
// 旧商户流水
$storeNewUser = StoreAccountModel::select(DB::raw("SUM( CASE WHEN note = '新用户下单成功,平台奖励' THEN 1 ELSE 0 END ) AS new_add_total, SUM( CASE WHEN note = '新用户下单成功,平台奖励' THEN money ELSE 0 END ) AS new_user_total_money,SUM( CASE WHEN note = '用户下单成功,平台奖励' THEN money ELSE 0 END ) AS store_total_money"));
// 新商户流水
$storeNewUserNew = FinancialRecordModel::select(DB::raw('SUM( CASE WHEN money_type = 4 THEN 1 ELSE 0 END ) AS new_add_total, SUM( CASE WHEN money_type = 4 THEN money ELSE 0 END ) AS new_add_total_money, SUM( CASE WHEN money_type = 5 THEN money ELSE 0 END ) as store_total_money '))->where([['created_at','>',strtotime('2020-09-19 00:00:00')]]);
$newUser = UserModel::select(DB::raw('count(id) AS total'));
if($marketId){
$orderMain->where('market_id',$marketId);
// 查询这个市场下的店铺id
$storeIds = StoreModel::where('market_id',$marketId)->pluck('id');
$storeNewUser->whereIn('store_id',$storeIds);
$storeIds = StoreModel::where('market_id',$marketId)->pluck('user_id','id');
$storeIdsArr = array_keys($storeIds);
$userIdsArr = array_values($storeIds);
$storeNewUser->whereIn('store_id',$storeIdsArr);
$storeNewUserNew->whereIn('user_id',$userIdsArr)->where('user_type',5);
}
if($startTime){
$startTime = $startTime.' 00:00:00';
$orderMain->where([['created_at','>=',strtotime($startTime)]]);
$storeNewUser->where([['time','>=',$startTime]]);
$storeNewUserNew->where([['created_at','>=',strtotime($startTime)]]);
$newUser->where([['created_at','>=',strtotime($startTime)]]);
}
if($endTime){
$endTime = $endTime.' 23:59:59';
$orderMain->where([['created_at','<=',strtotime($endTime)]]);
$storeNewUser->where([['time','<=',$endTime]]);
$storeNewUserNew->where([['created_at','<=',strtotime($endTime)]]);
$newUser->where([['created_at','<=',strtotime($endTime)]]);
}
if(empty($startTime) && empty($endTime)){
@ -66,14 +74,17 @@ class OrderReport extends EloquentRepository
$todayEnd = $time.' 23:59:59';
$orderMain->where([['created_at','>=',strtotime($todayStart)]]);
$storeNewUser->where([['time','>=',$todayStart]]);
$storeNewUserNew->where([['created_at','>=',strtotime($todayStart)]]);
$orderMain->where([['created_at','<=',strtotime($todayEnd)]]);
$storeNewUser->where([['time','<=',$todayEnd]]);
$storeNewUserNew->where([['created_at','<=',strtotime($todayEnd)]]);
}
// 订单总额
$orderReport = $orderMain->get()->toArray();
// 补贴金额
// 补贴金额
$storeNewUsers = $storeNewUser->get()->toArray();
$storeNewUserNews = $storeNewUserNew->get()->toArray();
// 总用户
$userTotal = $newUser->get()->toArray();
@ -81,37 +92,43 @@ class OrderReport extends EloquentRepository
'order_total_num' => !empty($orderReport[0]['total_num'])?$orderReport[0]['total_num']:0,
'order_total_money' => !empty($orderReport[0]['total_money'])?$orderReport[0]['total_money']:0,
'new_user_total_money' => !empty($storeNewUsers[0]['new_user_total'])?$storeNewUsers[0]['new_user_total']:0,
'store_user_total_money' => !empty($storeNewUsers[0]['store_total'])?$storeNewUsers[0]['store_total']:0,
'new_user_total_money' => !empty($storeNewUsers[0]['new_user_total_money'])?$storeNewUsers[0]['new_user_total_money']:0,
'new_user_total_new_money' => !empty($storeNewUserNews[0]['new_user_total_money'])?$storeNewUserNews[0]['new_user_total_money']:0,
'store_user_total_money' => !empty($storeNewUsers[0]['store_total_money'])?$storeNewUsers[0]['store_total_money']:0,
'store_user_total_new_money' => !empty($storeNewUserNews[0]['store_total_money'])?$storeNewUserNews[0]['store_total_money']:0,
'new_add_user' => !empty($storeNewUsers[0]['new_add_total'])?$storeNewUsers[0]['new_add_total']:0,
'new_add_user_new' => !empty($storeNewUserNews[0]['new_add_total'])?$storeNewUserNews[0]['new_add_total']:0,
'user_total' => !empty($userTotal[0]['total'])?$userTotal[0]['total']:0,
];
$list = [
[
'key' => 'user_total',
'name' => '现存用户总数',
'name' => '现存用户总数(人)',
'value' => $query['user_total']
],
[
'key' => 'new_add_user',
'name' => '新增用户数(人)',
'value' => $query['new_add_user'] + $query['new_add_user_new']
],
[
'key' => 'order_total_num',
'name' => '订单总额',
'name' => '订单总额(元)',
'value' => $query['order_total_num']
],
[
'key' => 'new_user_total_money',
'name' => '平台新用户补贴总额',
'value' => $query['new_user_total_money']
'name' => '平台新用户补贴总额(元)',
'value' => $query['new_user_total_money'] + $query['new_user_total_new_money']
],
[
'key' => 'store_user_total_money',
'name' => '店铺用户每日首单补贴',
'value' => $query['store_user_total_money']
],
[
'key' => 'new_add_user',
'name' => '新增用户数',
'value' => $query['new_add_user']
'name' => '店铺用户每日首单补贴(元)',
'value' => $query['store_user_total_money'] + $query['store_user_total_new_money']
]
];

15
app/Models/v3/FinancialRecord.php

@ -0,0 +1,15 @@
<?php
/**
* 总账的模型
*/
namespace App\Models\v3;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
class FinancialRecord extends Model
{
use HasDateTimeFormatter;
protected $table = 'lanzu_financial_record';
protected $dateFormat = 'U';
}

70
app/Models/v3/GoodsNew.php

@ -1,70 +0,0 @@
<?php
namespace App\Models\v3;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
class GoodsNew extends Model
{
use HasDateTimeFormatter;
use SoftDeletes;
protected $table = 'lanzu_goods_new';
protected $dateFormat = 'U';
/* 查询记录数 limit */
protected $perPage = 10;
protected $appends = [
'cover_img_url',
'on_sale_text',
'is_infinite_text'
];
protected $casts = [
'details_imgs'=>'array',
// 'tags'=>'array',
'spec'=>'array',
];
public static $_ONSALE = ['否','是'];
public static $_ISINFINITE = ['关闭','开启'];
public function getCoverImgUrlAttribute($value)
{
$value = $value ? $value : $this->cover_img;
return $this->imageUrl($value);
}
public function getOnSaleTextAttribute($value)
{
$value = $value ? $value : $this->on_sale;
return isset(self::$_ONSALE[$value]) ? self::$_ONSALE[$value] : '';
}
public function getIsInfiniteTextAttribute($value)
{
$value = $value ? $value : $this->is_infinite;
return isset(self::$_ISINFINITE[$value]) ? self::$_ISINFINITE[$value] : '';
}
public function ImageNewBanners(){
return $this->hasMany('\App\Models\v3\GoodsNewBanners','goods_id','id')->where('type',1);
}
public function VideoNewBanners(){
return $this->hasMany('\App\Models\v3\GoodsNewBanners','goods_id','id')->where('type',2);
}
/**
* 处理旧图片
* @param $value
* @return string
*/
public function imageUrl($value)
{
if(strripos($value,"http") === false){
return config('filesystems.disks.oss.img_host').'/'.$value;
}else{
return $value;
}
}
}

18
app/Models/v3/GoodsNewBanners.php

@ -1,18 +0,0 @@
<?php
namespace App\Models\v3;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
class GoodsNewBanners extends Model
{
use HasDateTimeFormatter;
use SoftDeletes;
protected $table = 'lanzu_goods_banners_new';
protected $dateFormat = 'U';
protected $fillable = ['path', 'id', 'goods_id','type','url'];
}

115
app/Models/v3/StoreNew.php

@ -1,115 +0,0 @@
<?php
namespace App\Models\v3;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
class StoreNew extends Model
{
use HasDateTimeFormatter;
use SoftDeletes;
protected $table = 'lanzu_store_new';
protected $dateFormat = 'U';
/* 查询记录数 limit */
protected $perPage = 10;
public static $_ISREST= ['否','是'];
public static $_ISOPEN = ['关闭','开启'];
protected $appends = [
'logo_url',
'is_rest_text',
'is_open_text'
];
public function getLogoUrlAttribute($value)
{
$value = $value ? $value : $this->logo;
return $this->imageUrl($value);
}
public function getIsRestTextAttribute($value)
{
$value = $value ? $value : $this->is_rest;
return isset(self::$_ISREST[$value]) ? self::$_ISREST[$value] : '';
}
public function getIsOpenTextAttribute($value)
{
$value = $value ? $value : $this->is_iopen;
return isset(self::$_ISOPEN[$value]) ? self::$_ISOPEN[$value] : '';
}
/**
* 获取商家环境图片
* @param $value $this->environment
* @return array
*/
public function getEnvironmentAttribute($value)
{
$value = $value ? $value : $this->environmant;
return $value ? explode(',',$value) : [];
}
public function setEnvironmentAttribute($value)
{
$this->attributes['environment'] = implode(',',$value);
}
/**
* 是否开启店铺
*/
public function getIsOpenAttribute($value)
{
$value = $value ? $value : '';
return $value ? explode(',',$value) : [];
}
public function setIsOpenAttribute($value)
{
$this->attributes['is_open'] = 1;
}
/**
* 获取单个店铺信息
* @param int $id
* @param string $field
* @return string
*/
public static function getStoreInfo($id,$field = '*')
{
return self::select($field)->find($id);
}
/**
* 获取店铺数组
* id为键,name为值
* @return array
*/
public static function getStoreArray()
{
$list = self::select('id','name')
->where('status',2)
->whereNull('deleted_at')
->get();
$array = [];
if(count($list) > 0){
foreach ($list as $value) {
$array[$value->id] = $value->name;
}
}
return $array;
}
// 处理图片
public function imageUrl($value)
{
if(strripos($value,"http") === false){
return config('filesystems.disks.oss.img_host').'/'.$value;
}else{
return $value;
}
}
}

42
resources/lang/zh-CN/goods-new.php

@ -1,42 +0,0 @@
<?php
return [
'labels' => [
'GoodsNew' => '线上商品清洗',
'goods_new' => '线上商品清洗',
],
'fields' => [
'name' => '商品名称',
'category_id' => '所属分类',
'goods_category_id' => '商品类目',
'store_id' => '所属商家',
'cover_img' => '封面图',
'cover_img_url' => '封面图',
'banners' => '轮播图',
'price' => '售价',
'original_price' => '原价',
'vip_price' => '会员价',
'on_sale' => '是否上架',
'on_sale_text' => '是否上架',
'inventory' => '库存',
'content' => '简介',
'sort' => '排序',
'restrict_num' => '限购份数',
'start_num' => '起售份数',
'is_infinite' => '开启无限库存',
'is_infinite_text' => '开启无限库存',
'goods_unit' => '商品单位',
'tags' => '标签',
'details_imgs' => '详情图片',
'spec' => '规格',
'unit_number' => '单位前的数',
'remark' => '备注',
'spec_key' =>'规格名称',
'spec_value' => '规格参数',
'market_id' => '市场',
'image_new_banners' => '轮播图片',
'video_new_banners' => '轮播视频'
],
'options' => [
],
];

13
resources/lang/zh-CN/order-report.php

@ -0,0 +1,13 @@
<?php
return [
'labels' => [
'OrderReport' => '订单统计报表',
'order_report' => '订单统计报表',
],
'fields' => [
'name' => '统计名称',
'value' => '统计数量',
],
'options' => [
],
];

60
resources/views/order_report.php

@ -1,60 +0,0 @@
<div id="order_report">
<!-- 搜索 -->
<div>
<form action="" pjax-container="" method="get">
<div>
<select class="form-control" name="market_id" >
<option value="0">选择市场</option>
<option value="1">海尔青啤市场</option>
<option value="2">东沟岭市场</option>
<option value="3">铜鼓岭市场</option>
<option value="4">华园菜市</option>
<option value="5">平西市场</option>
</select>
</div>
<div>
<div style="margin-top: 20px;">
<div class="form-group">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text bg-white text-capitalize"><b>时间</b>&nbsp;<i class="feather icon-calendar"></i></span>
</div>
<input autocomplete="off" type="text" class="form-control" id="filter_column__time_start" placeholder="时间" name="start_time" value="" >
<span class="input-group-addon" style="border-left: 0; border-right: 0;">To</span>
<input autocomplete="off" type="text" class="form-control" id="filter_column__time_end" placeholder="时间" name="end_time" value="" >
</div>
</div>
</div>
<div>
<input type="submit" value="查询"/>
</div>
</form>
</div>
<!-- 搜索 end -->
<!-- 订单数据 -->
<div style="margin-top: 20px;">
<div>
<p>订单总额(元): {{order_total_money}}</p>
</div>
<div>
<p>平台新用户补贴总额(元): {{new_user_total_money}}</p>
</div>
<div>
<p>店铺用户每日首单补贴(元): {{store_user_total_money}}</p>
</div>
</div>
<!-- 订单数据 end -->
<!-- 用户数据 -->
<div>
<div>
<div>
<p>现存用户总数(位): {{user_total}}</p>
</div>
<div>
<p>新增用户数(位): {{new_add_user}}</p>
</div>
</div>
<!-- 用户数据 end -->
</div>
Loading…
Cancel
Save