You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
370 lines
12 KiB
370 lines
12 KiB
<?php
|
|
|
|
namespace app\base\controller\user\admin;
|
|
|
|
|
|
use app\distribution\logic\Commission;
|
|
use app\distribution\model\DistributionCommissionLog;
|
|
use app\integral\logic\Integral;
|
|
use app\integral\model\IntegralLog;
|
|
use app\money\logic\Money;
|
|
use app\money\model\MoneyLog;
|
|
use app\money\model\MoneyMy;
|
|
use excel\Excel;
|
|
use think\App;
|
|
use think\facade\View;
|
|
use think\Validate;
|
|
|
|
class User extends Base
|
|
{
|
|
/**
|
|
* 用户列表
|
|
* @return array|mixed|string
|
|
*/
|
|
public function user()
|
|
{
|
|
$search = input('get.');
|
|
autoSearch(['time', 'nick_name', 'mobile_phone'], $search);
|
|
$user_model = new \app\base\model\user\User();
|
|
|
|
$where = [['uid', '=', UID]];
|
|
|
|
$hasWhere = [];
|
|
|
|
if ($search['time']) {
|
|
$time = explode('-', $search['time']);
|
|
$where[] = ['create_time', 'between time', [$time[0], $time[1]]];
|
|
}
|
|
|
|
if ($search['mobile_phone'] !== null && $search['mobile_phone'] !== '') {//手机号
|
|
$where[] = ['mobile_phone', 'like', '%' . $search['mobile_phone'] . '%'];
|
|
}
|
|
|
|
if ($search['nick_name'] !== null && $search['nick_name'] !== '') {//昵称
|
|
$hasWhere[] = ['nick_name', 'like', '%' . $search['nick_name'] . '%'];
|
|
}
|
|
$where = $user_model->whereChange($where);
|
|
session('where',$where);
|
|
session('hasWhere',$hasWhere);
|
|
$dataList = $user_model::hasWhere('userInfo', $hasWhere)->with(['userInfo', 'userMoney', 'userCommission', 'userIntegral'])
|
|
->where($where)->order('id desc')->paginate([
|
|
'list_rows' => 20,
|
|
'page' => array_key_exists("page", $search) ? (string)$search['page'] : "1",
|
|
'query' => $search
|
|
], false)
|
|
->each(function ($item, $key) {
|
|
$item['money'] = $item['money'] ?? 0;
|
|
$item['commission'] = $item['commission'] ?? 0;
|
|
$item['integral'] = $item['integral'] ?? 0;
|
|
return $item;
|
|
});
|
|
$attach = [
|
|
'total_html' => [['用户总数', $dataList->total()]],
|
|
];
|
|
View::assign('attach', $attach);
|
|
// dump($dataList->toArray());exit();
|
|
View::assign('dataList', $dataList);
|
|
View::assign('search', $search);
|
|
return View::fetch();
|
|
}
|
|
|
|
/**
|
|
* 用户列表导出
|
|
* @return mixed
|
|
*/
|
|
public function userExport()
|
|
{
|
|
$where = session('where');
|
|
$hasWhere = session('hasWhere');
|
|
|
|
$user_model = new \app\base\model\user\User();
|
|
|
|
$dataList = $user_model::hasWhere('userInfo', $hasWhere)->with(['userInfo', 'userMoney', 'userCommission', 'userIntegral'])
|
|
->where($where)->order('id desc')->select()
|
|
->each(function ($item, $key) {
|
|
return $item;
|
|
});
|
|
|
|
|
|
foreach ($dataList as $key => $value) {
|
|
|
|
$data[$key] = [
|
|
$value['id'], //ID
|
|
$value['mobile_phone'], //手机号
|
|
$value['nick_name'], //昵称
|
|
$value['create_time'], //注册时间
|
|
];
|
|
};
|
|
|
|
$fileName = "用户列表";
|
|
$headArr = ["ID", "手机号", '昵称', "注册时间"];
|
|
$msg = '';
|
|
$excel_class = new Excel();
|
|
$res = $excel_class->excelExport($fileName, $headArr, $data, $msg);
|
|
return $res;
|
|
}
|
|
|
|
/**
|
|
* 用户详情
|
|
*/
|
|
public function userDetail()
|
|
{
|
|
$vip_model = new \app\base\model\user\User();
|
|
if (request()->isPost()) {
|
|
$data = input('post.');
|
|
$res = $vip_model->dataUpdate($data);
|
|
if (!$res) {
|
|
return sendErrorMessage();
|
|
}
|
|
return sendSuccessMessage();
|
|
} else {
|
|
$id = input('param.id', 0);
|
|
$data = $vip_model->with(['userInfo', 'userMoney', 'userCommission', 'userIntegral'])->where(['id' => $id])->find();
|
|
$data['gender_text'] = $data['gender_text'];
|
|
View::assign('data', $data);
|
|
return View::fetch('userdetail');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 用户余额明细
|
|
*/
|
|
public function userMoneyDetails()
|
|
{
|
|
$search = input('get.');
|
|
autoSearch(['time', 'type', 'order_number'], $search);
|
|
$money_log_model = new MoneyLog();
|
|
$user_id = input('param.user_id', 0);
|
|
$where = [
|
|
['uid', '=', UID],
|
|
['user_id', '=', $user_id]
|
|
];
|
|
if ($search['time']) {
|
|
$time = explode('-', $search['time']);
|
|
$where[] = ['create_time', 'between time', [$time[0], $time[1]]];
|
|
}
|
|
if ($search['type'] != '' && $search['type'] != null) {
|
|
$where['type'] = ['type', '=', $search['type']];
|
|
}
|
|
if ($search['order_number']) {
|
|
$where[] = ['relation_order_number', 'like', '%' . $search['order_number'] . '%'];
|
|
}
|
|
session('where', $where);
|
|
|
|
$page = array_key_exists("page", $search) ? (string)$search['page'] : "1";
|
|
$dataList = $money_log_model
|
|
->where($where)->order('id desc')
|
|
->paginate(['list_rows' => 50, 'page' => $page], false)->each(function ($item, $key) {
|
|
return $item;
|
|
});
|
|
|
|
View::assign('dataList', $dataList);
|
|
View::assign('search', $search);
|
|
return View::fetch('moneydetails');
|
|
}
|
|
|
|
/**
|
|
* 增加用户余额
|
|
*/
|
|
public function userMoneyRaise()
|
|
{
|
|
if (request()->isPost()) {
|
|
$data = input('post.');
|
|
//写日志变更记录
|
|
$money_service = new \app\money\service\Money();
|
|
return $money_service->change($data['user_id'], 7, $data['money'], '后台增加');
|
|
|
|
} else {
|
|
$user_id = input('param.user_id');
|
|
$source = input('param.source');
|
|
View::assign('source', $source);
|
|
View::assign('user_id', $user_id);
|
|
return View::fetch('moneyraise');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 减少用户余额
|
|
*/
|
|
public function userMoneyReduce()
|
|
{
|
|
if (request()->isPost()) {
|
|
$data = input('post.');
|
|
if ($data['current_money'] < $data['money']) {
|
|
return sendErrorMessage(1, '减少的余额数,不能大于当前余额!');
|
|
}
|
|
//写日志变更记录
|
|
$money_service = new \app\money\service\Money();
|
|
return $money_service->change($data['user_id'], 8, -$data['money'], '后台减少');
|
|
} else {
|
|
$user_id = input('param.user_id');
|
|
$source = input('param.source');
|
|
//获取当前余额
|
|
$money_my_model = new MoneyMy();
|
|
$current_money = $money_my_model->getOneData(['user_id' => $user_id], 'money');
|
|
$current_money = $current_money ?? 0;
|
|
|
|
View::assign('current_money', $current_money);
|
|
View::assign('source', $source);
|
|
View::assign('user_id', $user_id);
|
|
return View::fetch('moneyreduce');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 用户佣金明细
|
|
*/
|
|
public function userIncomeDetails()
|
|
{
|
|
$search = input('get.');
|
|
autoSearch(['time', 'type', 'order_number'], $search);
|
|
$user_id = input('param.user_id', 0);
|
|
$distribution_log_model = new DistributionCommissionLog();
|
|
|
|
$where = [
|
|
['uid', '=', UID],
|
|
['user_id', '=', $user_id]
|
|
];
|
|
if ($search['time']) {
|
|
$time = explode('-', $search['time']);
|
|
$where[] = ['create_time', 'between time', [$time[0], $time[1]]];
|
|
}
|
|
if ($search['type'] != '' && $search['type'] != null) {
|
|
$where['type'] = ['type', '=', $search['type']];
|
|
}
|
|
if ($search['order_number']) {
|
|
$where[] = ['relation_order_number', 'like', '%' . $search['order_number'] . '%'];
|
|
}
|
|
session('where', $where);
|
|
|
|
$page = array_key_exists("page", $search) ? (string)$search['page'] : "1";
|
|
$dataList = $distribution_log_model
|
|
->where($where)->order('id desc')
|
|
->paginate(['list_rows' => 50, 'page' => $page], false)->each(function ($item, $key) {
|
|
return $item;
|
|
});
|
|
|
|
View::assign('dataList', $dataList);
|
|
View::assign('search', $search);
|
|
return View::fetch('incomedetails');
|
|
}
|
|
|
|
/**
|
|
* 增加用户佣金
|
|
*/
|
|
public function userIncomeRaise()
|
|
{
|
|
if (request()->isPost()) {
|
|
$data = input('post.');
|
|
//写日志变更记录
|
|
$commission_service = new \app\distribution\service\Commission();
|
|
return $commission_service->change($data['user_id'], 5, $data['commission'], '后台增加');
|
|
} else {
|
|
$user_id = input('param.user_id');
|
|
$source = input('param.source');
|
|
View::assign('source', $source);
|
|
View::assign('user_id', $user_id);
|
|
return View::fetch('incomeraise');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 减少用户佣金
|
|
*/
|
|
public function userIncomeReduce()
|
|
{
|
|
if (request()->isPost()) {
|
|
$data = input('post.');
|
|
//写日志变更记录
|
|
$commission_service = new \app\distribution\service\Commission();
|
|
|
|
return $commission_service->change($data['user_id'], 6, -$data['commission'], '后台减少');
|
|
} else {
|
|
$user_id = input('param.user_id');
|
|
$source = input('param.source');
|
|
View::assign('source', $source);
|
|
View::assign('user_id', $user_id);
|
|
return View::fetch('incomereduce');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 用户积分明细
|
|
*/
|
|
public function userIntegralDetails()
|
|
{
|
|
$search = input('get.');
|
|
autoSearch(['time', 'type', 'order_number'], $search);
|
|
View::assign('search', $search);
|
|
$user_id = input('param.user_id', 0);
|
|
$integral_log_model = new IntegralLog();
|
|
|
|
$where = [
|
|
['uid', '=', UID],
|
|
['user_id', '=', $user_id]
|
|
];
|
|
if ($search['time']) {
|
|
$time = explode('-', $search['time']);
|
|
$where[] = ['create_time', 'between time', [$time[0], $time[1]]];
|
|
}
|
|
if ($search['type'] != '' && $search['type'] != null) {
|
|
$where['type'] = ['type', '=', $search['type']];
|
|
}
|
|
if ($search['order_number']) {
|
|
$where[] = ['relation_order_number', 'like', '%' . $search['order_number'] . '%'];
|
|
}
|
|
session('where', $where);
|
|
|
|
$page = array_key_exists("page", $search) ? (string)$search['page'] : "1";
|
|
$dataList = $integral_log_model
|
|
->where($where)->order('id desc')
|
|
->paginate(['list_rows' => 50, 'page' => $page], false)->each(function ($item, $key) {
|
|
return $item;
|
|
});
|
|
|
|
View::assign('dataList', $dataList);
|
|
return View::fetch('integraldetails');
|
|
}
|
|
|
|
/**
|
|
* 增加用户积分
|
|
*/
|
|
public function userIntegralRaise()
|
|
{
|
|
if (request()->isPost()) {
|
|
$data = input('post.');
|
|
//写日志变更记录
|
|
$integral_service = new \app\integral\service\Integral();
|
|
return $integral_service->change($data['user_id'], 4, $data['integral'], '后台增加');
|
|
|
|
} else {
|
|
$user_id = input('param.user_id');
|
|
$source = input('param.source');
|
|
View::assign('source', $source);
|
|
View::assign('user_id', $user_id);
|
|
return View::fetch('integralraise');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 减少用户积分
|
|
*/
|
|
public function userIntegralReduce()
|
|
{
|
|
if (request()->isPost()) {
|
|
$data = input('post.');
|
|
|
|
//写日志变更记录
|
|
$integral_service = new \app\integral\service\Integral();
|
|
return $integral_service->change($data['user_id'], 5, -$data['integral'], '后台减少');
|
|
} else {
|
|
$user_id = input('param.user_id');
|
|
$source = input('param.source');
|
|
//获取当前余额
|
|
View::assign('source', $source);
|
|
View::assign('user_id', $user_id);
|
|
return View::fetch('integralreduce');
|
|
}
|
|
}
|
|
}
|