Browse Source

店铺余额--明细

master
liangyuyan 5 years ago
parent
commit
fc87a7376c
  1. 39
      app/Admin/Common/Type.php
  2. 14
      app/Admin/Controllers/v3/StoreController.php
  3. 99
      app/Admin/Renderable/StoreBalance.php
  4. 17
      app/Admin/Repositories/CommonEmpty.php
  5. 2
      app/Models/FinancialRecord.php

39
app/Admin/Common/Type.php

@ -6,6 +6,45 @@ namespace App\Admin\Common;
class Type class Type
{ {
const MONEY_TYPE_LIST = [
0 => '未知',
1 => '社区服务点新用户奖励',
2 => '社区服务点新用户线上首单奖励',
3 => '社区服务点用户线上订单分账',
4 => '商户平台新用户奖励',
5 => '商户当日首单奖励',
6 => '商户线上订单完成收入',
7 => '商户线下订单完成收入',
8 => '用户线上订单退款',
9 => '市场经理发展新用户',
10 => '市场经理发展新商户',
11 => '服务商发展新用户',
12 => '服务商发展新商户',
13 => '服务商线上订单分账',
100 => '用户线下支付订单',
101 => '用户线上支付订单',
102 => '服务商提现类型',
103 => '市场经理提现类型',
104 => '社区提现类型',
];
const USER_TYPE_LIST = [
-1 => '虚拟账户',
0 => '未知',
1 => '微信用户',
2 => '服务商',
3 => '市场经理',
4 => '社区代理点',
5 => '商户',
];
const SOURCE_TYPE_LIST = [
0 => '无类型',
1 => '订单',
2 => '商户提现',
];
/** /**
* lanzu_financial_record * lanzu_financial_record
* 流水类型,大的分类,<100是奖励分账等收入项 >=100是提现消费等支出项 * 流水类型,大的分类,<100是奖励分账等收入项 >=100是提现消费等支出项

14
app/Admin/Controllers/v3/StoreController.php

@ -20,7 +20,6 @@ use App\Models\LanzuUserBalance as UserBalanceModel;
use App\Models\v3\StoreUsers as StoreUsersModel; use App\Models\v3\StoreUsers as StoreUsersModel;
use App\Admin\Actions\Grid\v3\StoreSetTime; use App\Admin\Actions\Grid\v3\StoreSetTime;
use App\Admin\Renderable\StoreBalance; use App\Admin\Renderable\StoreBalance;
use Dcat\Admin\Widgets\LazyTable;
class StoreController extends AdminController class StoreController extends AdminController
{ {
@ -54,13 +53,16 @@ class StoreController extends AdminController
$grid->column('user_id','余额')->display(function($userId){ $grid->column('user_id','余额')->display(function($userId){
$userId = $this->user_id; $userId = $this->user_id;
// 查询店铺余额
$moneyType = 5;// 商户类型
$balance = UserBalanceModel::getBalance($userId, $moneyType);
$balance = 0;
if($userId > 0){
$moneyType = 5;// 商户类型
$balance = UserBalanceModel::getBalance($userId, $moneyType);
}
return $balance; return $balance;
})->modal(function($modal){ })->modal(function($modal){
$modal->title('商户余额');
$table = LazyTable::make(StoreBalance::make(['user_id'=>$this->user_id]))->simple();
$name = $this->name;
$modal->title($name.'的余额明细');
$table = StoreBalance::make(['user_id'=>$this->user_id]);
return $table; return $table;
}); });

99
app/Admin/Renderable/StoreBalance.php

@ -1,64 +1,87 @@
<?php <?php
namespace App\Admin\Renderable; namespace App\Admin\Renderable;
use Dcat\Admin\Grid;
use App\Admin\Common\Type; use App\Admin\Common\Type;
use Dcat\Admin\Support\LazyRenderable;
use Dcat\Admin\Widgets\Table;
use App\Admin\Repositories\CommonEmpty;
use Dcat\Admin\Grid\LazyRenderable;
use App\Models\FinancialRecord; use App\Models\FinancialRecord;
use Dcat\Admin\Grid;
class StoreBalance extends LazyRenderable class StoreBalance extends LazyRenderable
{ {
protected $title = '商户余额';
protected $titles = ['ID','账户类型','账户余额','金额','流水类型','描述','系统描述','状态','时间'];
public function render()
{
// 获取外部传递的参数
$userId = $this->user_id ?? 0;
// $data = FinancialRecord::getFinancialRecordModel($userId)
// ::select('user_id','user_type','current_balance','money','money_type','desc','comment','status','created_at')
// ->whereRaw('user_type ='.Type::USER_TYPE_STORE)
// ->where('source_type',Type::SOURCE_TYPE_ORDER)
// ->where('money_type',Type::MONEY_TYPE_STORE_PLAT_NEW_USER)
// ->orderBy('id','desc')
// ->get()->toArray();
// return Table::make($this->titles, $data);
return $this->grid();
}
protected $title = '商户余额明细';
public function grid(): Grid public function grid(): Grid
{ {
// 获取外部传递的参数 // 获取外部传递的参数
$userId = $this->payload['user_id'] ?? 0;
$userId = $this->user_id ?? 0;
$model = FinancialRecord::getFinancialRecordModel($userId); $model = FinancialRecord::getFinancialRecordModel($userId);
if(!$model){
return Grid::make(new CommonEmpty(), function (Grid $grid) {
$grid->column('id','商 户 未 绑 定 提 现 用 户 懒 ID !');
$grid->disableRowSelector();
$grid->disableActions();
$grid->disablePagination();
});
}
return Grid::make($model, function (Grid $grid) { return Grid::make($model, function (Grid $grid) {
$grid->user_type;
$grid->current_balance;
$grid->money;
$grid->money_type;
$grid->comment;
$grid->status;
$grid->created_at->display(function($createdAt){
$grid->column('id','ID');
$grid->column('user_type','账户类型')->display(function($userType){
$item = Type::USER_TYPE_LIST[$userType] ?? '';
return $item;
});
$grid->column('money_type','流水类型')->display(function($moneyType){
$item = Type::MONEY_TYPE_LIST[$moneyType] ?? '';
return $item;
});
$grid->column('money','金额');
$grid->column('current_balance','账户余额');
$grid->column('comment','描述');
$grid->column('status','状态')
->using(
FinancialRecord::$status
)
->label(
config('label.status_label')
);
$grid->column('created_at')->display(function($createdAt){
return date('Y-m-d H:i:s',$createdAt); return date('Y-m-d H:i:s',$createdAt);
}); });
// 搜索 // 搜索
$grid->filter(function (Grid\Filter $filter){ $grid->filter(function (Grid\Filter $filter){
$filter->panel();
$filter->equal('money_type');
$filter->equal('user_type');
$userTypeList = Type::USER_TYPE_LIST;
$moneyTypeList = Type::MONEY_TYPE_LIST;
$sourceTYpeList = Type::SOURCE_TYPE_LIST;
unset($userTypeList[0],$moneyTypeList[0]);
$filter->equal('id','流水表ID')->width(3);
$filter->equal('user_id','账户ID')->width(3);
$filter->equal('current_balance','账户余额')->width(3);
$filter->equal('money','流水金额')->width(3);
$filter->equal('source_id','关联流水ID')->width(3);
$filter->equal('money_type','流水类型')->select($userTypeList)->width(4);
$filter->equal('user_type','账户类型')->select($moneyTypeList)->width(4);
$filter->equal('source_type','关联类型')->select($sourceTYpeList)->width(4);
$filter->whereBetween('created_at',function($q){
$start = $this->input['start'] ?? null;
$end = $this->input['end'] ?? null;
if($start !== null){
$q->where('created_at','>=',strtotime($start));
}
if($end !== null){
$q->where('created_at','<=',strtotime($end));
}
})->datetime()->width(7);
}); });
$grid->model()->orderBy('id','desc'); $grid->model()->orderBy('id','desc');
// 每页10条 // 每页10条
$grid->paginate(10); $grid->paginate(10);
$grid->disableCreateButton();
$grid->disableDeleteButton();
$grid->disableEditButton();
$grid->disableQuickEditButton();
$grid->disableViewButton();
$grid->disableActions(); $grid->disableActions();
$grid->disableRowSelector(); $grid->disableRowSelector();
}); });

17
app/Admin/Repositories/CommonEmpty.php

@ -0,0 +1,17 @@
<?php
namespace App\Admin\Repositories;
use Dcat\Admin\Grid;
use Dcat\Admin\Repositories\Repository;
class CommonEmpty extends Repository
{
/**
* 模型创建失败时返回空使用空数据仓库
*/
public function get(Grid\Model $model)
{
return [];
}
}

2
app/Models/FinancialRecord.php

@ -9,6 +9,8 @@ class FinancialRecord extends Model
use HasDateTimeFormatter; use HasDateTimeFormatter;
protected $dateFormat = 'U'; protected $dateFormat = 'U';
public static $status = [ 0 =>'异常' ,1=> '正常'];
/** /**
* 根据用户id创建不同模型 * 根据用户id创建不同模型
* @param $user_id * @param $user_id

Loading…
Cancel
Save