初始化提交
This commit is contained in:
216
app/manager/controller/Member.php
Normal file
216
app/manager/controller/Member.php
Normal file
@@ -0,0 +1,216 @@
|
||||
<?php
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace app\manager\controller;
|
||||
|
||||
use app\manager\model\Member as MemberModel;
|
||||
use think\admin\Controller;
|
||||
use think\facade\Db;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 会员管理
|
||||
* @auth true
|
||||
* @menu true
|
||||
*/
|
||||
class Member extends Controller
|
||||
{
|
||||
/**
|
||||
* 会员列表
|
||||
* @auth true
|
||||
* @menu true
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->title = '会员管理';
|
||||
if ($this->request->isGet() && $this->request->get('output') === 'layui.table') {
|
||||
$where = [];
|
||||
// 搜索条件
|
||||
$keyword = input('keyword', '', 'trim');
|
||||
if (!empty($keyword)) {
|
||||
$where[] = ['email|order_id', 'like', "%{$keyword}%"];
|
||||
}
|
||||
// 状态筛选
|
||||
$status = input('status', '', 'trim');
|
||||
if ($status !== '') {
|
||||
$where[] = ['status', '=', intval($status)];
|
||||
}
|
||||
|
||||
// 查询数据
|
||||
$query = MemberModel::where($where)->order('id desc');
|
||||
$result = $query->paginate([
|
||||
'list_rows' => input('limit', 20),
|
||||
'page' => input('page', 1),
|
||||
]);
|
||||
|
||||
return json([
|
||||
'code' => 0,
|
||||
'msg' => '',
|
||||
'count' => $result->total(),
|
||||
'data' => $result->items()
|
||||
]);
|
||||
}
|
||||
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加会员
|
||||
* @auth true
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
if ($this->request->isPost()) {
|
||||
$data = $this->_vali([
|
||||
'email.require' => '邮箱不能为空!',
|
||||
'email.email' => '邮箱格式错误!',
|
||||
'order_id.require' => '闲鱼订单号不能为空!',
|
||||
'expire_time.require' => '有效期不能为空!',
|
||||
'usage_limit.require' => '可用次数不能为空!',
|
||||
'usage_limit.number' => '可用次数必须为数字!',
|
||||
]);
|
||||
|
||||
// 检查唯一性
|
||||
$map = [
|
||||
['email', '=', $data['email']]
|
||||
];
|
||||
if (MemberModel::where($map)->count() > 0) {
|
||||
$this->error('邮箱已存在!');
|
||||
}
|
||||
|
||||
$map = [
|
||||
['order_id', '=', $data['order_id']]
|
||||
];
|
||||
if (MemberModel::where($map)->count() > 0) {
|
||||
$this->error('闲鱼订单号已存在!');
|
||||
}
|
||||
|
||||
// 设置默认值
|
||||
$data['status'] = isset($data['status']) ? 1 : 0;
|
||||
$data['used_count'] = 0;
|
||||
|
||||
// 保存数据
|
||||
if (MemberModel::create($data) !== false) {
|
||||
$this->success('添加成功!');
|
||||
} else {
|
||||
$this->error('添加失败!');
|
||||
}
|
||||
}
|
||||
|
||||
$this->title = '添加会员';
|
||||
return $this->fetch('form');
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑会员
|
||||
* @auth true
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$id = input('id');
|
||||
if (empty($id)) $this->error('参数错误!');
|
||||
|
||||
if ($this->request->isPost()) {
|
||||
$data = $this->_vali([
|
||||
'id.require' => 'ID不能为空!',
|
||||
'email.require' => '邮箱不能为空!',
|
||||
'email.email' => '邮箱格式错误!',
|
||||
'order_id.require' => '闲鱼订单号不能为空!',
|
||||
'expire_time.require' => '有效期不能为空!',
|
||||
'usage_limit.require' => '可用次数不能为空!',
|
||||
'usage_limit.number' => '可用次数必须为数字!',
|
||||
]);
|
||||
|
||||
// 检查唯一性
|
||||
$map = [
|
||||
['email', '=', $data['email']],
|
||||
['id', '<>', $id]
|
||||
];
|
||||
if (MemberModel::where($map)->count() > 0) {
|
||||
$this->error('邮箱已存在!');
|
||||
}
|
||||
|
||||
$map = [
|
||||
['order_id', '=', $data['order_id']],
|
||||
['id', '<>', $id]
|
||||
];
|
||||
if (MemberModel::where($map)->count() > 0) {
|
||||
$this->error('闲鱼订单号已存在!');
|
||||
}
|
||||
|
||||
// 设置默认值
|
||||
$data['status'] = isset($data['status']) ? 1 : 0;
|
||||
$data['used_count'] = isset($data['used_count']) ? intval($data['used_count']) : 0;
|
||||
|
||||
// 保存数据
|
||||
if (MemberModel::update($data) !== false) {
|
||||
$this->success('编辑成功!');
|
||||
} else {
|
||||
$this->error('编辑失败!');
|
||||
}
|
||||
}
|
||||
|
||||
$this->title = '编辑会员';
|
||||
$this->member = MemberModel::find($id);
|
||||
return $this->fetch('form');
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改状态
|
||||
* @auth true
|
||||
*/
|
||||
public function state()
|
||||
{
|
||||
MemberModel::mSave($this->_vali([
|
||||
'status.in:0,1' => '状态值范围异常!',
|
||||
'status.require' => '状态值不能为空!',
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除会员
|
||||
* @auth true
|
||||
*/
|
||||
public function remove()
|
||||
{
|
||||
MemberModel::mDelete();
|
||||
}
|
||||
|
||||
/**
|
||||
* 表单数据处理
|
||||
* @param array $data
|
||||
*/
|
||||
protected function _form_filter(array &$data)
|
||||
{
|
||||
if ($this->request->isPost()) {
|
||||
// 检查数据完整性
|
||||
empty($data['username']) && $this->error('用户名不能为空!');
|
||||
empty($data['order_id']) && $this->error('闲鱼订单号不能为空!');
|
||||
empty($data['expire_time']) && $this->error('有效期不能为空!');
|
||||
|
||||
// 检查唯一性
|
||||
$map = [];
|
||||
if (empty($data['id'])) {
|
||||
$map[] = ['username', '=', $data['username']];
|
||||
$map[] = ['order_id', '=', $data['order_id']];
|
||||
if (MemberModel::where($map)->count() > 0) {
|
||||
$this->error('用户名或闲鱼订单号已存在!');
|
||||
}
|
||||
} else {
|
||||
$map[] = ['id', '<>', $data['id']];
|
||||
$map[] = ['username|order_id', '=', $data['username']];
|
||||
if (MemberModel::where($map)->count() > 0) {
|
||||
$this->error('用户名或闲鱼订单号已存在!');
|
||||
}
|
||||
}
|
||||
|
||||
// 设置默认值
|
||||
$data['status'] = isset($data['status']) ? 1 : 0;
|
||||
$data['used_count'] = isset($data['used_count']) ? intval($data['used_count']) : 0;
|
||||
$data['balance'] = isset($data['balance']) ? floatval($data['balance']) : 0;
|
||||
$data['points'] = isset($data['points']) ? intval($data['points']) : 0;
|
||||
$data['level'] = isset($data['level']) ? intval($data['level']) : 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user