提交代码

This commit is contained in:
baji 2025-03-06 13:24:40 +08:00
parent d6b3c8a33c
commit 79380f3d20
13 changed files with 892 additions and 196 deletions

View File

@ -22,11 +22,15 @@ class CouponReceive extends Base
{
$keyword = trim(input('get.keyword'));
$status = trim(input('get.status'));
$user_id = trim(input('get.user_id'));
$whe = [];
if (!empty($keyword)) {
$whe[] = ['title', 'like', '%' . $keyword . '%'];
}
if ($user_id) {
$user_id = $user_id - 1260;
$whe[] = ['user_id', '=', $user_id];
}
if (!empty($status)) {
$whe[] = ['status', '=', $status - 1];
}
@ -34,6 +38,7 @@ class CouponReceive extends Base
$order = "addtime desc";
$data = CouponReceiveModel::getList($whe, $field, $order, $this->page);
foreach ($data['list'] as $key => $val) {
$user_info = User::getInfo(['id' => $val['user_id']]);
if (empty($user_info)) {
$user_info['nickname'] = '';
@ -41,6 +46,7 @@ class CouponReceive extends Base
$user_info['mobile'] = '';
}
$data['list'][$key]['nickname'] = $user_info['nickname'];
// $val['user_id']=
}
View::assign('list', $data['list']);
View::assign('count', $data['count']);

View File

@ -0,0 +1,127 @@
<?php
namespace app\admin\controller;
use app\admin\controller\Base;
use app\common\model\ProfitExpenses;
use \think\Request;
use think\facade\View;
use app\common\model\Goods as GoodsModel;
use app\common\model\GoodsList;
use app\common\model\AdminGoodsLog;
use think\facade\Db;
use app\common\model\Shang;
/**
* Summary of Profit
*/
class Profit extends Base
{
/**
* 盒子列表
*/
public function index(Request $request)
{
$description = trim(input('get.description'));
$expense_type = trim(input('get.expense_type'));
$whe = array();
if ($description) {
$whe[] = ['description', 'like', '%' . $description . '%'];
}
if ($expense_type) {
$whe[] = ['expense_type', '=', $expense_type];
}
$field = "*";
$order = "id desc";
$data = ProfitExpenses::getList($whe, $field, $order, $this->page);
View::assign('list', $data['list']);
View::assign('count', $data['count']);
View::assign('page', $data['page']);
return View::fetch("Profit/index");
}
/**
* 添加盒子
*/
public function profit_add(Request $request)
{
if (!$request->isPost()) {
View::assign('profit_date', date('Y-m-d'));
return View::fetch("Profit/add");
} else {
$data = input('post.');
if (empty($data['profit_date'])) {
return $this->renderError("请选择时间");
}
if (RegMoney($data['amount'])) {
return $this->renderError("支出金额输出不规范");
}
$dd = ProfitExpenses::insert($data);
if ($dd) {
return $this->renderSuccess("添加成功");
} else {
return $this->renderError("网络繁忙,请稍后");
}
}
}
/**
* 编辑盒子
*/
public function profit_edit(Request $request)
{
if (!$request->isPost()) {
$id = $request->param('id/d', 0);
$info = ProfitExpenses::where(['id' => $id])->find();
if (!$info) {
return $this->renderError("请求参数错误");
}
View::assign('info', $info);
return View::fetch("Profit/edit");
} else {
$data = input('post.');
if (empty($data['profit_date'])) {
return $this->renderError("请选择时间");
}
if (RegMoney($data['amount'])) {
return $this->renderError("支出金额输出不规范");
}
ProfitExpenses::startTrans();
$id = $data['id'];
unset($data['id']);
$dd = ProfitExpenses::where(['id' => $id])->update($data);
if ($dd) {
ProfitExpenses::commit();
return $this->renderSuccess("编辑成功");
} else {
ProfitExpenses::rollback();
return $this->renderError("网络繁忙,请稍后");
}
}
}
/**
* 上、下架,删除盒子
*/
public function profit_del(Request $request)
{
$id = $request->post('id/d');
$data = ProfitExpenses::where(['id' => $id])->field('id')->find();
if (!$data) {
return $this->renderError("数据不存在");
}
$result = ProfitExpenses::where(['id' => $id])->delete();
if ($result) {
return $this->renderSuccess("操作成功");
} else {
return $this->renderError("网络繁忙,请稍后");
}
}
}

View File

@ -14,7 +14,7 @@ use app\common\model\Goods as GoodsModel;
use app\common\model\GoodsList;
use think\facade\Db;
use app\common\model\Shang;
use app\common\model\ProfitExpenses;
class Statistics extends Base
{
@ -169,7 +169,10 @@ class Statistics extends Base
public function DataStand(Request $request)
{
$userCount = User::count("id");
$userList = User::where('istest', '=', 1)->field('id')->select();
$userArray = $userList->toArray();
// 本日充值金额
// $order_today = OrderModel::whereNotIn('user_id', $userArray)->where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('price');
// 今日时间
$ranges['today_start'] = strtotime('today');
$ranges['today_end'] = strtotime('tomorrow') - 1;
@ -213,73 +216,79 @@ class Statistics extends Base
$user_last_month = User::whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->count('id');
// 本日充值金额
$order_today = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('price');
$order_today = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('price');
// 昨日充值金额
$order_yesterday = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('price');
$order_yesterday = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('price');
// 本周充值金额
$order_this_week = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->sum('price');
$order_this_week = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->sum('price');
// 上周充值金额
$order_last_week = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->sum('price');
$order_last_week = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->sum('price');
// 本月充值金额
$order_this_month = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->sum('price');
$order_this_month = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->sum('price');
// 上月充值金额
$order_last_month = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->sum('price');
$order_last_month = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->sum('price');
// 消费人数统计
$consume_today = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->field('user_id')->group('user_id')->count('user_id');
$consume_yesterday = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->field('user_id')->group('user_id')->count('user_id');
$consume_this_week = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->field('user_id')->group('user_id')->count('user_id');
$consume_last_week = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->field('user_id')->group('user_id')->count('user_id');
$consume_this_month = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->field('user_id')->group('user_id')->count('user_id');
$consume_last_month = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->field('user_id')->group('user_id')->count('user_id');
$consume_today = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->field('user_id')->group('user_id')->count('user_id');
$consume_yesterday = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->field('user_id')->group('user_id')->count('user_id');
$consume_this_week = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->field('user_id')->group('user_id')->count('user_id');
$consume_last_week = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->field('user_id')->group('user_id')->count('user_id');
$consume_this_month = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->field('user_id')->group('user_id')->count('user_id');
$consume_last_month = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->field('user_id')->group('user_id')->count('user_id');
// RMB消费人数统计
$rmb_consume_today = OrderModel::where('status', '=', 1)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->field('user_id')->group('user_id')->count('user_id');
$rmb_consume_yesterday = OrderModel::where('status', '=', 1)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->field('user_id')->group('user_id')->count('user_id');
$rmb_consume_this_week = OrderModel::where('status', '=', 1)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->field('user_id')->group('user_id')->count('user_id');
$rmb_consume_last_week = OrderModel::where('status', '=', 1)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->field('user_id')->group('user_id')->count('user_id');
$rmb_consume_this_month = OrderModel::where('status', '=', 1)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->field('user_id')->group('user_id')->count('user_id');
$rmb_consume_last_month = OrderModel::where('status', '=', 1)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->field('user_id')->group('user_id')->count('user_id');
$rmb_consume_today = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->field('user_id')->group('user_id')->count('user_id');
$rmb_consume_yesterday = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->field('user_id')->group('user_id')->count('user_id');
$rmb_consume_this_week = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->field('user_id')->group('user_id')->count('user_id');
$rmb_consume_last_week = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->field('user_id')->group('user_id')->count('user_id');
$rmb_consume_this_month = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->field('user_id')->group('user_id')->count('user_id');
$rmb_consume_last_month = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->where('price', '>', 0)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->field('user_id')->group('user_id')->count('user_id');
//今日余额消费
$money_today = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('use_money');
$money_yesterday = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('use_money');
$money_today = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('use_money');
$money_yesterday = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('use_money');
//今日积分抵扣
$score_yesterday = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('use_score');
$score_today = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('use_score');
$score_yesterday = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('use_score');
$score_today = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('use_score');
//今日余额发放
$money_recovery_today = OrderListRecovery::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('money');
$money_recovery_yesterday = OrderListRecovery::whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('money');
$money_recovery_today = OrderListRecovery::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->whereNotIn('user_id', $userArray)->sum('money');
$money_recovery_yesterday = OrderListRecovery::whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->whereNotIn('user_id', $userArray)->sum('money');
//今日优惠卷消费
$coupon_today = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('use_coupon');
$coupon_today = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->whereNotIn('user_id', $userArray)->sum('use_coupon');
//今日收入
$order_zhe_total = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('order_zhe_total');
$order_goodslist_money = OrderList::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('goodslist_money');
$order_goodslist_count = OrderList::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->count();
$order_count = OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->count();
$order_zhe_total = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->sum('order_zhe_total');
$order_goodslist_money = OrderList::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->whereNotIn('user_id', $userArray)->sum('goodslist_money');
$order_goodslist_count = OrderList::whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->whereNotIn('user_id', $userArray)->count();
$order_count = OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['today_start'], $ranges['today_end'])->count();
$order_zhe_total_yester = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('order_zhe_total'), 2);
$order_goodslist_money_yester = round( OrderList::whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('goodslist_money'), 2);
$order_zhe_total_yester = round(OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->sum('order_zhe_total'), 2);
$order_goodslist_money_yester = round(OrderList::whereBetweenTime('addtime', $ranges['yesterday_start'], $ranges['yesterday_end'])->whereNotIn('user_id', $userArray)->sum('goodslist_money'), 2);
$order_zhe_total_week = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->sum('order_zhe_total'), 2);
$order_goodslist_money_week = round(OrderList::whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->sum('goodslist_money'), 2);
$order_zhe_total_week = round(OrderModel::where('status', '=', 1)->whereNotIn('user_id', $userArray)->whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->sum('order_zhe_total'), 2);
$order_goodslist_money_week = round(OrderList::whereBetweenTime('addtime', $ranges['this_week_start'], $ranges['this_week_end'])->whereNotIn('user_id', $userArray)->sum('goodslist_money'), 2);
$order_zhe_total_last_week = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->sum('order_zhe_total'), 2);
$order_goodslist_money__last_week = round(OrderList::whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->sum('goodslist_money'), 2);
$order_zhe_total_last_week = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->whereNotIn('user_id', $userArray)->sum('order_zhe_total'), 2);
$order_goodslist_money__last_week = round(OrderList::whereBetweenTime('addtime', $ranges['last_week_start'], $ranges['last_week_end'])->whereNotIn('user_id', $userArray)->sum('goodslist_money'), 2);
$order_zhe_total_month = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->sum('order_zhe_total'), 2);
$order_goodslist_money_month = round(OrderList::whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->sum('goodslist_money'), 2);
$order_zhe_total_last_month = round( OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->sum('order_zhe_total'), 2);
$order_goodslist_money__last_month = round(OrderList::whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->sum('goodslist_money'), 2);
$order_zhe_total_month = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->whereNotIn('user_id', $userArray)->sum('order_zhe_total'), 2);
$order_goodslist_money_month = round(OrderList::whereBetweenTime('addtime', $ranges['this_month_start'], $ranges['this_month_end'])->whereNotIn('user_id', $userArray)->sum('goodslist_money'), 2);
$order_zhe_total_last_month = round(OrderModel::where('status', '=', 1)->whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->whereNotIn('user_id', $userArray)->sum('order_zhe_total'), 2);
$order_goodslist_money__last_month = round(OrderList::whereBetweenTime('addtime', $ranges['last_month_start'], $ranges['last_month_end'])->whereNotIn('user_id', $userArray)->sum('goodslist_money'), 2);
$profit_expenses = ProfitExpenses::getTotalAmountByDate(date('Y-m-d'));
$profit_expenses_yester = ProfitExpenses::getTotalAmountByDate(date('Y-m-d', strtotime('-1 day')));
$profit_expenses_week = ProfitExpenses::getTotalAmountByDates(date('Y-m-d', $ranges['this_week_start']), date('Y-m-d', $ranges['this_week_end']));
$profit_expenses_last_week = ProfitExpenses::getTotalAmountByDates(date('Y-m-d', $ranges['last_week_start']), date('Y-m-d', $ranges['last_week_end']));
$profit_expenses_money = ProfitExpenses::getTotalAmountByDates(date('Y-m-d', $ranges['this_month_start']), date('Y-m-d', $ranges['this_month_end']));
$profit_expenses_last_money = ProfitExpenses::getTotalAmountByDates(date('Y-m-d', $ranges['last_month_start']), date('Y-m-d', $ranges['last_month_end']));
View::assign('profit_expenses', $profit_expenses);
View::assign('money_today', $money_today);
View::assign('money_yesterday', $money_yesterday);
View::assign('coupon_today', $coupon_today);
@ -292,12 +301,12 @@ class Statistics extends Base
View::assign('order_goodslist_money', $order_goodslist_money);
View::assign('order_goodslist_count', $order_goodslist_count);
View::assign('order_count', $order_count);
View::assign('order_lirun', round($order_zhe_total - $order_goodslist_money, 2));
View::assign('order_lirun_yester', round($order_zhe_total_yester - $order_goodslist_money_yester, 2) . " ($order_zhe_total_yester - $order_goodslist_money_yester)");
View::assign('order_lirun_week', round($order_zhe_total_week - $order_goodslist_money_week, 2) . " ({$order_zhe_total_week} - $order_goodslist_money_week)");
View::assign('order_lirun_last_week', round($order_zhe_total_last_week - $order_goodslist_money__last_week, 2) . " ($order_zhe_total_last_week - $order_goodslist_money__last_week)");
View::assign('order_zhe_total_month', round($order_zhe_total_month - $order_goodslist_money_month, 2). " ($order_zhe_total_month - $order_goodslist_money_month)");
View::assign('order_lirun_last_month', round($order_zhe_total_last_month - $order_goodslist_money__last_month, 2). " ($order_zhe_total_last_month - $order_goodslist_money__last_month)");
View::assign('order_lirun', round($order_zhe_total - $order_goodslist_money - $profit_expenses, 2));
View::assign('order_lirun_yester', round($order_zhe_total_yester - $order_goodslist_money_yester - $profit_expenses_yester, 2) . " ($order_zhe_total_yester - $order_goodslist_money_yester - $profit_expenses_yester)");
View::assign('order_lirun_week', round($order_zhe_total_week - $order_goodslist_money_week - $profit_expenses_week, 2) . " ({$order_zhe_total_week} - $order_goodslist_money_week - $profit_expenses_week)");
View::assign('order_lirun_last_week', round($order_zhe_total_last_week - $order_goodslist_money__last_week - $profit_expenses_last_week, 2) . " ($order_zhe_total_last_week - $order_goodslist_money__last_week - $profit_expenses_last_week)");
View::assign('order_zhe_total_month', round($order_zhe_total_month - $order_goodslist_money_month - $profit_expenses_money, 2) . " ($order_zhe_total_month - $order_goodslist_money_month - $profit_expenses_money)");
View::assign('order_lirun_last_month', round($order_zhe_total_last_month - $order_goodslist_money__last_month -$profit_expenses_last_money, 2) . " ($order_zhe_total_last_month - $order_goodslist_money__last_month- $profit_expenses_last_money)");
// 赋值给模板
View::assign('userCount', $userCount);

View File

@ -199,6 +199,28 @@ class User extends Base
}
}
/**
* 封号、解封处理
*/
public function usertest(Request $request)
{
$id = request()->post('id/d', 0);
$type = request()->post('type/d', 0);
if ($type != 1 && $type != 0) {
return $this->renderError('请求参数错误');
}
$user = UserModel::getInfo(['id' => $id]);
if (!$user) {
return $this->err('数据不存在');
}
$result = $user->save(["istest" => $type]);
if ($result) {
return $this->renderSuccess('操作成功');
} else {
return $this->renderError('操作失败');
}
}
/*
ip转换
*/

View File

@ -34,6 +34,8 @@ Route::post('picture', 'Upload/picture');
Route::rule('user', 'User/index', 'GET|POST');
Route::rule('chongzhi', 'User/chongzhi', 'GET|POST');
Route::rule('userdel', 'User/userdel', 'GET|POST');
Route::rule('usertest', 'User/usertest', 'GET|POST');
Route::rule('user_profit_loss', 'User/user_profit_loss', 'GET|POST');
Route::rule('user_shangdai', 'User/user_shangdai', 'GET|POST');
Route::rule('vip', 'User/vip', 'GET|POST');
@ -265,6 +267,11 @@ Route::rule('productcate_del', 'ProductCate/del', 'GET|POST');
//利润统计
Route::rule('statistics_profit', 'Statistics/profit', 'GET');
//数据看台
Route::rule('statistics_dataStand', 'Statistics/DataStand', 'GET');
Route::rule('statistics_dataStand', 'Statistics/DataStand', 'GET');
//利润支出
Route::rule('ProfitExpenses', 'Profit/index', 'GET');
Route::rule('profit_add', 'Profit/profit_add', 'GET|POST');
Route::rule('profit_edit', 'Profit/profit_edit', 'GET|POST');
Route::rule('profit_del', 'Profit/profit_del', 'POST');

View File

@ -1,148 +1,158 @@
{include file="Public:header2"/}
<body>
<div class="layui-fluid">
<div class="layui-card">
<form method="get" team="{:url('/admin/goods')}" class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-block">
<input type="text" name="keyword" value="{$Request.get.keyword}" placeholder="请输入优惠券标题" autocomplete="off" class="layui-input">
<div class="layui-fluid">
<div class="layui-card">
<form method="get" team="{:url('/admin/goods')}"
class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline" style="width:150px;margin-left: 0px">
<input type="text" name="user_id" value="{$Request.get.user_id}" placeholder="请输入用户Id"
autocomplete="off" class="layui-input">
</div>
<div class="layui-input-inline" style="width:150px;margin-left: 0px">
<input type="text" name="keyword" value="{$Request.get.keyword}" placeholder="请输入优惠券标题"
autocomplete="off" class="layui-input">
</div>
<div class="layui-input-inline" style="width:150px;margin-left: 0px">
<select name="status" style="width:100%">
<option value="">--请选择状态--</option>
<option value="1" {if condition="$Request.get.status eq 1" }selected{/if}>未使用</option>
<option value="2" {if condition="$Request.get.status eq 2" }selected{/if}>已使用</option>
<option value="3" {if condition="$Request.get.status eq 3" }selected{/if}>已过期</option>
</select>
</div>
</div>
</div>
<div class="layui-inline">
<div class="layui-input-block">
<select name="status" style="width:100%">
<option value="">--请选择状态--</option>
<option value="1" {if condition="$Request.get.status eq 1"}selected{/if}>未使用</option>
<option value="2" {if condition="$Request.get.status eq 2"}selected{/if}>已使用</option>
<option value="3" {if condition="$Request.get.status eq 3"}selected{/if}>已过期</option>
</select>
<div class="layui-inline">
<button class="layui-btn layuiadmin-btn-useradmin mmm" lay-submit
lay-filter="LAY-user-front-search">
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
</button>
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layuiadmin-btn-useradmin mmm" lay-submit lay-filter="LAY-user-front-search">
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
</button>
</div>
</div>
</form>
</form>
<div class="layui-card-body">
<xblock>
<div style="padding-bottom: 10px;">
<!--<a class="layui-btn" href="{:url('/admin/coupon_add')}">添加优惠券</a>-->
<span style="line-height:40px;float:right;">共有数据: {$count}条</span>
</div>
</xblock>
<table class="layui-table">
<thead>
<tr>
<th>ID</th>
<th>会员昵称</th>
<th>名称</th>
<th>消费满价格</th>
<th>优惠价格</th>
<th>状态</th>
<th>过期时间</th>
<th>时间</th>
<!--<th>操作</th>-->
</tr>
</thead>
<tbody>
{volist name="list" id="vo"}
<tr>
<td>{$vo['id']}</td>
<td>{$vo['nickname']}</td>
<td>{$vo['title']}</td>
<td>{$vo['man_price']}</td>
<td>{$vo['price']}</td>
<td>
{if condition="$vo['status'] eq 0"}
<div class="layui-card-body">
<xblock>
<div style="padding-bottom: 10px;">
<!--<a class="layui-btn" href="{:url('/admin/coupon_add')}">添加优惠券</a>-->
<span style="line-height:40px;float:right;">共有数据: {$count}条</span>
</div>
</xblock>
<table class="layui-table">
<thead>
<tr>
<th>ID</th>
<th>用户id</th>
<th>会员昵称</th>
<th>名称</th>
<th>消费满价格</th>
<th>优惠价格</th>
<th>状态</th>
<th>过期时间</th>
<th>时间</th>
<!--<th>操作</th>-->
</tr>
</thead>
<tbody>
{volist name="list" id="vo"}
<tr>
<td>{$vo['id']}</td>
<td>{$vo['user_id']+1260}</td>
<td>{$vo['nickname']}</td>
<td>{$vo['title']}</td>
<td>{$vo['man_price']}</td>
<td>{$vo['price']}</td>
<td>
{if condition="$vo['status'] eq 0"}
<button class="layui-btn layui-btn-normal layui-btn-radius layui-btn-sm">未使用</button>
{elseif condition="$vo['status'] eq 1" /}
{elseif condition="$vo['status'] eq 1" /}
<button class="layui-btn layui-btn-warm layui-btn-radius layui-btn-sm">已使用</button>
{else /}
{else /}
<button class="layui-btn layui-btn-disabled layui-btn-radius layui-btn-sm">已过期</button>
{/if}
</td>
<td>{notempty name="$vo['end_time']"}{$vo['end_time']|date="Y-m-d H:i"}{/notempty}</td>
<td>{$vo['addtime']|date="Y-m-d H:i"}</td>
<!--<td>-->
<!-- <a style="text-decoration:none" title="编辑" href="{:url('/admin/coupon_edit',['id'=>$vo['id']])}" class="layui-btn layui-btn-normal layui-btn-xs">-->
<!-- <i class="layui-icon layui-icon-edit"></i>编辑-->
<!-- </a>-->
{/if}
</td>
<td>{notempty name="$vo['end_time']"}{$vo['end_time']|date="Y-m-d H:i"}{/notempty}</td>
<td>{$vo['addtime']|date="Y-m-d H:i"}</td>
<!--<td>-->
<!-- <a style="text-decoration:none" title="编辑" href="{:url('/admin/coupon_edit',['id'=>$vo['id']])}" class="layui-btn layui-btn-normal layui-btn-xs">-->
<!-- <i class="layui-icon layui-icon-edit"></i>编辑-->
<!-- </a>-->
<!--<a style="text-decoration:none" title="盒子奖品" href="{:url('/admin/goodslist',['goods_id'=>$vo['id']])}" class="layui-btn layui-btn-default layui-btn-xs">盒子奖品</a>-->
<!-- <a style="text-decoration:none" title="操作" onClick="del({$vo.id},'4')" class="layui-btn layui-btn-danger layui-btn-xs">-->
<!-- <i class="layui-icon layui-icon-delete"></i>删除-->
<!-- </a>-->
<!--</td>-->
</tr>
{/volist}
<!-- <a style="text-decoration:none" title="操作" onClick="del({$vo.id},'4')" class="layui-btn layui-btn-danger layui-btn-xs">-->
<!-- <i class="layui-icon layui-icon-delete"></i>删除-->
<!-- </a>-->
<!--</td>-->
</tr>
{/volist}
{if condition="empty($list)"}
<tr><td colspan='11' style="text-align:center;">暂时没有数据!</td></tr>
{/if}
</tbody>
</table>
<div class="layui-box layui-laypage layui-laypage-default">
{$page|raw}
{if condition="empty($list)"}
<tr>
<td colspan='11' style="text-align:center;">暂时没有数据!</td>
</tr>
{/if}
</tbody>
</table>
<div class="layui-box layui-laypage layui-laypage-default">
{$page|raw}
</div>
</div>
</div>
</div>
</div>
{include file="Public:footer"/}
<script type="text/javascript">
layui.use(['layer','table'], function(){
var $ = layui.$;
})
//添加优惠券
function yong(goods_id,name){
var url = "{:url('/admin/goods_yong',array('goods_id'=>''))}"+goods_id;
var index = layer.open({
type: 2,
title: name+"--设置分佣",
shadeClose: true,
area: ['70%', '70%'],
content: url
});
layer.style(index, {
top: '10%'
});
}
//上下架
function del(id,type){
if(type==1){
var title = "上架";
}else if(type==2){
var title = "下架";
}else if(type==4){
var title = "删除";
}
layer.confirm('确认要执行'+title+'操作吗?',function(){
var url = "{:url('/admin/coupon_cao')}";
var load=layer.load(2);
{include file="Public:footer"/}
<script type="text/javascript">
layui.use(['layer', 'table'], function () {
var $ = layui.$;
$.post(url,{"id":id,'type':type},function(data){
if(data.status == 1){
layer.msg(title+'成功',{icon:1,time:1000},function(){
location.reload();
});
}else{
layer.msg(data.msg,{icon:2,anim:6,time:1000},function(){
layer.close(load);
});
}
})
});
}
</script>
})
//添加优惠券
function yong(goods_id, name) {
var url = "{:url('/admin/goods_yong',array('goods_id'=>''))}" + goods_id;
var index = layer.open({
type: 2,
title: name + "--设置分佣",
shadeClose: true,
area: ['70%', '70%'],
content: url
});
layer.style(index, {
top: '10%'
});
}
//上下架
function del(id, type) {
if (type == 1) {
var title = "上架";
} else if (type == 2) {
var title = "下架";
} else if (type == 4) {
var title = "删除";
}
layer.confirm('确认要执行' + title + '操作吗?', function () {
var url = "{:url('/admin/coupon_cao')}";
var load = layer.load(2);
var $ = layui.$;
$.post(url, { "id": id, 'type': type }, function (data) {
if (data.status == 1) {
layer.msg(title + '成功', { icon: 1, time: 1000 }, function () {
location.reload();
});
} else {
layer.msg(data.msg, { icon: 2, anim: 6, time: 1000 }, function () {
layer.close(load);
});
}
})
});
}
</script>
</body>
</html>
</html>

100
app/admin/view/Profit/add.html Executable file
View File

@ -0,0 +1,100 @@
{include file="Public:header2"/}
<body style="min-height: 100%;background-color: #fff">
<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-body">
<form onsubmit="return false;">
<div class="layui-form" wid100 lay-filter="">
<div class="layui-form-item">
<label class="layui-form-label">时间</label>
<div class="layui-input-inline">
<input type="text" id="profit_date" name="profit_date" autocomplete="off"
placeholder="请选择时间" class="layui-input" style="width: 520px" value="{$profit_date}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">支出类型</label>
<div class="layui-input-inline">
<select name="expense_type" style="width:100%">
<option value="1">推广</option>
<option value="2">活动</option>
<option value="3">发货</option>
</select>
</div>
<label class="layui-form-label">支出金额</label>
<div class="layui-input-inline">
<input type="number" name="amount" autocomplete="off" placeholder="请输入支出金额"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">支出说明</label>
<div class="layui-input-inline">
<input type="text" name="description" value="" autocomplete="off"
placeholder="支出说明" class="layui-input" style="width: 520px">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" onclick="return check()">确认保存</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{include file="Public:footer"/}
</body>
<script type="text/javascript" src="/static/admin/lib/ueditor/1.4.3/ueditor.config.js"></script>
<script type="text/javascript" src="/static/admin/lib/ueditor/1.4.3/ueditor.all.min.js"> </script>
<script type="text/javascript" src="/static/admin/lib/ueditor/1.4.3/lang/zh-cn/zh-cn.js"></script>
</html>
<script type="text/javascript">
layui.use(['layer', 'form', 'upload', 'element','laydate'], function () {
var $ = layui.$;
var form = layui.form;
var upload = layui.upload;
var element = layui.element;
var laydate = layui.laydate;
//
laydate.render({
elem: '#profit_date' //指定元素
, type: 'date'
, trigger: 'click'
});
});
function check() {
var url = "{:url('/admin/profit_add')}";
var $ = layui.$;
var load = layer.load(2);
$.post(url, $("form").serialize(), function (data) {
if (data.status == 1) {
layer.msg(data.msg, { icon: 1, time: 1500 }, function () {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index);
parent.location.reload();
});
} else {
layer.msg(data.msg, { icon: 2, anim: 6, time: 1500 }, function () {
layer.close(load);
});
}
})
}
</script>

102
app/admin/view/Profit/edit.html Executable file
View File

@ -0,0 +1,102 @@
{include file="Public:header2"/}
<body style="min-height: 100%;background-color: #fff">
<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-body">
<form onsubmit="return false;">
<div class="layui-form" wid100 lay-filter="">
<div class="layui-form-item">
<label class="layui-form-label">时间</label>
<div class="layui-input-inline">
<input type="text" id="profit_date" name="profit_date" autocomplete="off"
placeholder="请选择时间" class="layui-input" style="width: 520px"
value="{$info['profit_date']}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">支出类型</label>
<div class="layui-input-inline">
<select name="expense_type" style="width:100%">
<option value="1" {if $info['expense_type'] eq 1} selected {/if}>推广</option>
<option value="2" {if $info['expense_type'] eq 2} selected {/if}>活动</option>
<option value="3" {if $info['expense_type'] eq 3} selected {/if}>发货</option>
</select>
</div>
<label class="layui-form-label">支出金额</label>
<div class="layui-input-inline">
<input type="number" name="amount" autocomplete="off" placeholder="请输入支出金额"
class="layui-input" value="{$info['amount']}">
</div>
</div>
<input type="hidden" name="id" value="{$info['id']}">
<div class="layui-form-item">
<label class="layui-form-label">支出说明</label>
<div class="layui-input-inline">
<input type="text" name="description" value="{$info['description']}"
autocomplete="off" placeholder="支出说明" class="layui-input"
style="width: 520px">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" onclick="return check()">确认保存</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{include file="Public:footer"/}
</body>
<script type="text/javascript" src="/static/admin/lib/ueditor/1.4.3/ueditor.config.js"></script>
<script type="text/javascript" src="/static/admin/lib/ueditor/1.4.3/ueditor.all.min.js"> </script>
<script type="text/javascript" src="/static/admin/lib/ueditor/1.4.3/lang/zh-cn/zh-cn.js"></script>
</html>
<script type="text/javascript">
layui.use(['layer', 'form', 'upload', 'element', 'laydate'], function () {
var $ = layui.$;
var form = layui.form;
var upload = layui.upload;
var element = layui.element;
var laydate = layui.laydate;
//
laydate.render({
elem: '#profit_date' //指定元素
, type: 'date'
, trigger: 'click'
});
});
function check() {
var url = "{:url('/admin/profit_edit')}";
var $ = layui.$;
var load = layer.load(2);
$.post(url, $("form").serialize(), function (data) {
if (data.status == 1) {
layer.msg(data.msg, { icon: 1, time: 1500 }, function () {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index);
parent.location.reload();
});
} else {
layer.msg(data.msg, { icon: 2, anim: 6, time: 1500 }, function () {
layer.close(load);
});
}
})
}
</script>

View File

@ -0,0 +1,164 @@
{include file="Public:header2"/}
<body>
<div class="layui-fluid">
<div class="layui-card">
<form method="get" class="layui-form layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-input-inline" style="width: 300px;margin-left: 0px">
<input type="text" name="description" value="{$Request.get.description}"
placeholder="请输入支出描述" autocomplete="off" class="layui-input">
</div>
<div class="layui-input-inline" style="width: 300px;margin-left: 0px">
<input type="text" name="profit_date" value="{$Request.get.profit_date}" placeholder="请选择日期"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline" style="width: 180px;margin-left: 0px">
<select name="expense_type" style="width:100%">
<option value="">--请选择支出类型--</option>
<option value="1" {if condition="$Request.get.expense_type eq 1" }selected{/if}>推广
</option>
<option value="2" {if condition="$Request.get.expense_type eq 2" }selected{/if}>活动
</option>
<option value="3" {if condition="$Request.get.expense_type eq 3" }selected{/if}>发货
</option>
</select>
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layuiadmin-btn-useradmin mmm" lay-submit
lay-filter="LAY-user-front-search">
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
</button>
</div>
</div>
</form>
<div class="layui-card-body">
<xblock>
<div style="padding-bottom: 10px;">
<a class="layui-btn" onclick="Profit_add()">添加记录</a>
<span style="line-height:40px;float:right;">共有数据: {$count}条</span>
</div>
</xblock>
<table class="layui-table">
<thead>
<tr>
<th>ID</th>
<th>时间</th>
<th>支出金额</th>
<th>描述</th>
<th>创建时间</th>
<th>修改时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{volist name="list" id="vo"}
<tr>
<td>{$vo['id']}</td>
<td>{$vo['profit_date']}</td>
<td>{$vo['amount']}</td>
<td>
{if condition="$vo['expense_type'] eq 1"}
推广
{elseif condition="$vo['expense_type'] eq 2"}
活动
{else }
发货
{/if}
</td>
<td>{$vo['description']}</td>
<td>{$vo['created_at']}</td>
<td>{$vo['updated_at']}</td>
<td>
<a style="text-decoration:none" title="编辑" onclick="goods_edit({$vo.id})"
class="layui-btn layui-btn-normal layui-btn-xs">
<i class="layui-icon layui-icon-edit"></i>编辑
</a>
<div style="margin-top: 8px"></div>
<a style="text-decoration:none" onClick="del({$vo.id},3,'删除')"
class="layui-btn layui-btn-danger layui-btn-xs">
<i class="layui-icon layui-icon-delete"></i>删除
</a>
</td>
</tr>
{/volist}
{if condition="empty($list)"}
<tr>
<td colspan='11' style="text-align:center;">暂时没有数据!</td>
</tr>
{/if}
</tbody>
</table>
<div class="layui-box layui-laypage layui-laypage-default">
{$page|raw}
</div>
</div>
</div>
</div>
{include file="Public:footer"/}
<script type="text/javascript">
layui.use(['layer', 'table'], function () {
var $ = layui.$;
})
//添加盒子
function Profit_add() {
var url = "{:url('/admin/profit_add')}";
layer.open({
type: 2,
title: '添加盒子',
shadeClose: false,
shade: 0.3,
area: ['850px', '320px'],
content: url,
});
}
//编辑盒子
function goods_edit(id) {
var url = "{:url('/admin/profit_edit?id=" + id + "')}";
layer.open({
type: 2,
title: '编辑盒子',
shadeClose: false,
shade: 0.3,
area: ['850px', '320px'],
content: url,
});
}
//上下架
function del(id, type, type_name) {
layer.confirm('确认要执行' + type_name + '操作吗?', function () {
var url = "{:url('/admin/profit_del')}";
var load = layer.load(2);
var $ = layui.$;
$.post(url, { "id": id }, function (data) {
if (data.status == 1) {
layer.msg('操作成功', { icon: 1, time: 1000 }, function () {
location.reload();
});
} else {
layer.msg(data.msg, { icon: 2, anim: 6, time: 1000 }, function () {
layer.close(load);
});
}
})
});
}
</script>
</body>
</html>

View File

@ -220,6 +220,10 @@
<td>订单出货:</td>
<td>{$order_goodslist_money}</td>
</tr>
<tr>
<td>支出</td>
<td>{$profit_expenses}</td>
</tr>
<tr>
<td>订单笔数:</td>
<td>{$order_count}</td>
@ -232,9 +236,11 @@
<td>利润:</td>
<td>{$order_lirun}</td>
</tr>
<tr>
<td>利润计算方式:</td>
<td>收入-支出=当日利润</td>
<td>收入-出货-支出=当日利润</td>
</tr>
</tbody>
</table>

View File

@ -111,6 +111,11 @@
<a style="text-decoration:none" name="{$vo.nickname}" onClick="del({$vo.id},2,this.name,'封号')" class="layui-btn layui-btn-danger layui-btn-xs">封号</a>
{else /}
<a style="text-decoration:none" name="{$vo.nickname}" onClick="del({$vo.id},1,this.name,'解封')" class="layui-btn layui-btn-success layui-btn-xs">解封</a>
{/if}
{if condition="$vo['istest'] eq 0"}
<a style="text-decoration:none" name="{$vo.nickname}" onClick="test({$vo.id},1,this.name,'设为推广账号')" class="layui-btn layui-btn-danger layui-btn-xs">推广账号</a>
{else /}
<a style="text-decoration:none" name="{$vo.nickname}" onClick="test({$vo.id},0,this.name,'取消推广账号')" class="layui-btn layui-btn-success layui-btn-xs">取消推广账号</a>
{/if}
<a title="查看详情" onClick="detail({$vo.id})" class="layui-btn layui-btn-normal layui-btn-xs">查看下级</a>
<a title="查看ip登录列表" onClick="ipdetail({$vo.id})" class="layui-btn layui-btn-normal layui-btn-xs">查看ip登录列表</a>
@ -205,6 +210,26 @@
})
});
}
function test(id, type, username, type_name) {
title_str = '确认要执行'+username+'的'+type_name+'操作吗?';
layer.confirm(title_str, function () {
var url = "{:url('/admin/usertest')}";
var load = layer.load(2);
var $ = layui.$;
$.post(url, {"id": id, 'type': type}, function (data) {
if (data.status == 1) {
layer.msg(data.msg, {icon: 1, time: 1000}, function () {
location.reload();
});
} else {
layer.msg(data.msg, {icon: 2, anim: 6, time: 1500}, function () {
layer.close(load);
});
}
})
});
}
//ip转换
function ipzh(id, type, username, type_name) {

View File

@ -0,0 +1,116 @@
<?php
namespace app\common\model;
use app\common\model\Base;
use think\Model;
/**
* 账单支出
*/
class ProfitExpenses extends Base
{
// 设置当前模型对应的完整数据表名称
protected $table = 'profit_expenses';
/**
* 获取列表
*/
public static function getList($where = [], $field = '*', $order = '', $pageSize = "15")
{
$list = self::where($where)
->field($field)
->order($order)
->paginate(['list_rows' => $pageSize, 'query' => request()->param()]);
$page = $list->render();
$data['list'] = $list->toArray()['data'];
$data['count'] = $list->total();
$data['last_page'] = $list->toArray()['last_page'];
$data['page'] = $page;
return $data;
}
/**
* 插入方法
* @param string $date 日期 (格式: YYYY-MM-DD)
* @param int $expense_type 支出类型1 推广 ,2活动,3 发货
* @param float $amount 金额
* @param string $description 备注
* @return bool|int 插入成功返回主键ID失败返回false
*/
public static function insertDatas($date, $expense_type, $amount, $description = '')
{
$data = [
'profit_date' => $date,
'amount' => $amount,
'expense_type' => $expense_type,
'description' => $description,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
];
return self::insertGetId($data);
}
/**
* 查询当天总金额
* @param string $date 查询日期 (格式: YYYY-MM-DD)
* @param string|null $startDate 开始日期 (可选)
* @param string|null $endDate 结束日期 (可选)
* @return float 返回总金额
*/
public static function getTotalAmountByDate($date, $startDate = null, $endDate = null)
{
$query = self::where('profit_date', $date);
if ($startDate && $endDate) {
$query->whereBetween('profit_date', [$startDate, $endDate]);
}
return $query->sum('amount');
}
public static function getTotalAmountByDates($startDate, $endDate)
{
$query = self::whereBetween('profit_date', [$startDate, $endDate]);
return $query->sum('amount');
}
/**
* 查询每天的总金额,按日期分组排序
* @return array 返回每天的总金额,按日期分组
*/
public static function getDailyTotalAmount()
{
return self::field('profit_date, SUM(amount) as total_amount')
->group('profit_date')
->order('profit_date', 'asc')
->select()
->toArray();
}
/**
* 删除方法
* @param int $id 记录ID
* @return bool 删除成功返回true失败返回false
*/
public static function deleteData($id)
{
return self::where('id', $id)->delete();
}
/**
* 修改方法
* @param int $id 记录ID
* @param float $amount 修改后的金额
* @param string $description 修改后的备注
* @return bool 修改成功返回true失败返回false
*/
public static function updateDatas($id, $amount, $description = '')
{
$data = [
'amount' => $amount,
'description' => $description,
'updated_at' => date('Y-m-d H:i:s'),
];
return self::where('id', $id)->update($data);
}
}

View File

@ -20,13 +20,13 @@ return [
'url' => '/admin/vip',
'name' => 'VIP管理',
],
],
],
[
'name' => '财务管理',
'son' => [
[
'url' => '/admin/money_list',
'name' => '余额明细',
@ -35,8 +35,8 @@ return [
'url' => '/admin/integral_list',
'name' => '潮币明细',
],
[
[
'url' => '/admin/draw_list',
'name' => '抽奖券明细',
],
@ -44,7 +44,7 @@ return [
'url' => '/admin/recharge_list',
'name' => '微信充值记录',
],
[
[
'url' => '/admin/infinite_list',
'name' => '无限池明细',
],
@ -53,7 +53,7 @@ return [
[
'name' =>'商品管理',
'name' => '商品管理',
'son' => [
[
'url' => '/admin/goods',
@ -62,7 +62,7 @@ return [
],
],
[
'name' =>'数据统计',
'name' => '数据统计',
'son' => [
[
'url' => '/admin/statistics_dataStand',
@ -72,8 +72,10 @@ return [
'url' => '/admin/statistics_profit',
'name' => '盒子利润统计',
],
[
'url' => '/admin/ProfitExpenses',
'name' => '利润支出',
],
],
],
[
@ -98,7 +100,7 @@ return [
],
],
[
'name' =>'优惠券管理',
'name' => '优惠券管理',
'son' => [
[
'url' => '/admin/coupon',
@ -111,7 +113,7 @@ return [
],
],
[
'name' =>'道具卡管理',
'name' => '道具卡管理',
'son' => [
[
'url' => '/admin/item_card',
@ -120,7 +122,7 @@ return [
],
],
[
'name' =>'任务管理',
'name' => '任务管理',
'son' => [
[
'url' => '/admin/task_list',
@ -129,7 +131,7 @@ return [
],
],
[
'name' =>'权益中心',
'name' => '权益中心',
'son' => [
[
'url' => '/admin/qy_level_list',