提交代码
This commit is contained in:
parent
d6b3c8a33c
commit
79380f3d20
|
|
@ -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']);
|
||||
|
|
|
|||
127
app/admin/controller/Profit.php
Normal file
127
app/admin/controller/Profit.php
Normal 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("网络繁忙,请稍后");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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转换
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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('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');
|
||||
|
|
@ -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 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-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-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>
|
||||
</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" 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"}
|
||||
</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}
|
||||
{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}
|
||||
</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>
|
||||
|
||||
|
||||
|
|
|
|||
100
app/admin/view/Profit/add.html
Executable file
100
app/admin/view/Profit/add.html
Executable 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
102
app/admin/view/Profit/edit.html
Executable 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>
|
||||
164
app/admin/view/Profit/index.html
Normal file
164
app/admin/view/Profit/index.html
Normal 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>
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
116
app/common/model/ProfitExpenses.php
Normal file
116
app/common/model/ProfitExpenses.php
Normal 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);
|
||||
}
|
||||
}
|
||||
|
|
@ -36,7 +36,7 @@ return [
|
|||
'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',
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user