258 lines
8.1 KiB
PHP
258 lines
8.1 KiB
PHP
<?php
|
||
// +------------------------------------------------+
|
||
// |http://www.cjango.com |
|
||
// +------------------------------------------------+
|
||
// | 修复BUG不是一朝一夕的事情,等我喝醉了再说吧! |
|
||
// +------------------------------------------------+
|
||
// | Author: 小陈叔叔 <Jason.Chen> |
|
||
// +------------------------------------------------+
|
||
namespace app\system\controller;
|
||
|
||
use app\common\model\Member as MemberModel;
|
||
use app\common\model\MemberList as MemberListModel;
|
||
use app\common\model\MemberSet as MemberSetModel;
|
||
use app\common\model\Team as TeamModel;
|
||
use app\common\service\Member as MemberService;
|
||
use think\Request;
|
||
|
||
class Member extends _Init
|
||
{
|
||
|
||
public function index($type = '', $mobile = '', $start_date = '', $end_date = '', $empty_vip = '', $empty_agent = '', $nickname = '')
|
||
{
|
||
$model = new MemberModel();
|
||
$model->alias('Member');
|
||
$model = $model->hasWhere('info');
|
||
|
||
$map = [
|
||
'Member.status' => ['egt', 0],
|
||
'Member.id' => ['gt', 1],
|
||
];
|
||
|
||
if ($type) {
|
||
switch ($type) {
|
||
case 'all':
|
||
break;
|
||
case 'user':
|
||
$map['Member.username'] = '';
|
||
break;
|
||
case 'member':
|
||
$map['Member.username'] = ['neq', ''];
|
||
$map['MemberInfo.is_fee'] = 0;
|
||
$map['MemberInfo.is_agent'] = 0;
|
||
break;
|
||
case 'vip':
|
||
$map['MemberInfo.is_fee'] = 1;
|
||
break;
|
||
case 'agent':
|
||
$map['MemberInfo.is_agent'] = 1;
|
||
break;
|
||
}
|
||
}
|
||
|
||
if ($mobile) {
|
||
$map['MemberInfo.mobile'] = $mobile;
|
||
}
|
||
|
||
if (is_numeric($empty_vip)) {
|
||
$map['Member.empty_vip'] = $empty_vip;
|
||
}
|
||
|
||
if (is_numeric($empty_agent)) {
|
||
$map['Member.empty_agent'] = $empty_agent;
|
||
}
|
||
|
||
if ($start_date && $end_date) {
|
||
$map['create_time'] = ['between time', [$start_date, date('Y-m-d H:i:s', strtotime('+1 day', strtotime($end_date)) - 1)]];
|
||
} elseif ($start_date) {
|
||
$map['create_time'] = ['> time', $start_date];
|
||
} elseif ($end_date) {
|
||
$map['create_time'] = ['< time', date('Y-m-d H:i:s', strtotime('+1 day', strtotime($end_date)) - 1)];
|
||
}
|
||
|
||
if ($nickname) {
|
||
$map['MemberInfo.nickname'] = ['like', "%" . $nickname . '%'];
|
||
|
||
}
|
||
|
||
$this->list = $model->where($map)->order('Member.create_time desc')->paginate();
|
||
return $this->fetch();
|
||
}
|
||
|
||
/**
|
||
* 添加用户
|
||
* @param Request $request 用户的信息 username password
|
||
*/
|
||
public function add(Request $request)
|
||
{
|
||
if (IS_POST) {
|
||
$username = $request->post('username');
|
||
$password = $request->post('password');
|
||
$result = MemberService::register($username, $password);
|
||
return $this->back($result);
|
||
} else {
|
||
return $this->fetch();
|
||
}
|
||
}
|
||
/**
|
||
* 设置用户状态
|
||
* @param [type] $uid 用户id
|
||
* @param [type] $status 要设置的状态 true false 正常 禁用
|
||
* @return [type] [description]
|
||
*/
|
||
public function status($uid, $status)
|
||
{
|
||
$result = MemberService::status($uid, $status);
|
||
return $this->back($result);
|
||
}
|
||
|
||
/**
|
||
* 重置密码
|
||
* @param [type] $uid 用户id
|
||
* @return [type] [description]
|
||
*/
|
||
public function password(Request $request, $uid)
|
||
{
|
||
if (IS_POST) {
|
||
$password = $request->post('password');
|
||
$result = MemberService::updatePassword($uid, $password);
|
||
return $this->back($result);
|
||
} else {
|
||
$this->info = MemberModel::get($uid);
|
||
return $this->fetch();
|
||
}
|
||
}
|
||
|
||
public function junior($pid)
|
||
{
|
||
$this->list = MemberListModel::where('uid', $pid)->paginate();
|
||
return $this->fetch();
|
||
}
|
||
|
||
//设置vip/代理商
|
||
public function set($uid, $type)
|
||
{
|
||
if (IS_POST) {
|
||
$data = $this->request->post();
|
||
$res = MemberService::memberSet($uid, $data['time'], $type, $data['team_id']);
|
||
if ($res === true) {
|
||
return $this->success('操作成功');
|
||
} else {
|
||
return $this->error($res);
|
||
}
|
||
} else {
|
||
$this->team = TeamModel::where('status', 1)->select();
|
||
$this->member = MemberModel::get($uid);
|
||
return $this->fetch();
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 空点记录
|
||
* @param string $mobile [description]
|
||
* @param string $start_date [description]
|
||
* @param string $end_date [description]
|
||
* @param string $empty_vip [description]
|
||
* @param string $empty_agent [description]
|
||
* @return [type] [description]
|
||
*/
|
||
public function member_empty($type = '', $start_date = '', $end_date = '')
|
||
{
|
||
$model = new MemberSetModel();
|
||
$map = [];
|
||
if ($type) {
|
||
$map['type'] = $type;
|
||
}
|
||
|
||
if ($start_date && $end_date) {
|
||
$map['create_time'] = ['between time', [$start_date, date('Y-m-d H:i:s', strtotime('+1 day', strtotime($end_date)) - 1)]];
|
||
} elseif ($start_date) {
|
||
$map['create_time'] = ['> time', $start_date];
|
||
} elseif ($end_date) {
|
||
$map['create_time'] = ['< time', date('Y-m-d H:i:s', strtotime('+1 day', strtotime($end_date)) - 1)];
|
||
}
|
||
|
||
$this->list = $model->where($map)->order('create_time desc')->paginate();
|
||
return $this->fetch();
|
||
}
|
||
|
||
//推荐网络
|
||
public function recommend($uid = UID)
|
||
{
|
||
if (!is_numeric($uid)) {
|
||
$uid = MemberModel::where('username', $uid)->value('id');
|
||
}
|
||
|
||
$this->list = MemberService::recommend($uid);
|
||
return $this->fetch('');
|
||
}
|
||
|
||
public function set_parent($id)
|
||
{
|
||
if (IS_POST) {
|
||
$data = $this->request->post();
|
||
$res = MemberService::setParent($data);
|
||
return $this->back($res);
|
||
} else {
|
||
$this->info = MemberModel::get($id);
|
||
return $this->fetch();
|
||
}
|
||
}
|
||
|
||
public function del_parent($myuid)
|
||
{
|
||
$userinfo = MemberModel::get($myuid); //新推荐人
|
||
if ($userinfo) {
|
||
if ($userinfo['pid']) {
|
||
|
||
if ($userinfo->save(['pid' => ''])) {
|
||
// SysLogs::create(UID, 'edit_member_pid', ['data' => $userinfo]);
|
||
return $this->success('解绑推荐人成功。');
|
||
|
||
} else {
|
||
return $this->error('解绑失败。');
|
||
|
||
}
|
||
|
||
} else {
|
||
return $this->error('推荐人不存在。');
|
||
|
||
}
|
||
|
||
} else {
|
||
return $this->error('用户不存在。');
|
||
|
||
}
|
||
}
|
||
|
||
public function change_parent($mobile, $myuid)
|
||
{
|
||
$userinfo = MemberModel::where('username', $mobile)->find(); //新推荐人
|
||
$myinfo = MemberModel::where('id', $myuid)->find(); //当前用户 新推荐人id != 当前用户id 当前用户pid != 新推荐人id 新推荐人pid != 当前用户id
|
||
if ($userinfo) {
|
||
if ($userinfo['id'] == $myuid || $myinfo['pid'] == $userinfo['id']) {
|
||
return $this->error('新上级不能是本人或与当前推荐人一致');
|
||
}
|
||
$pid = $userinfo['pid'];
|
||
while ($pid > 0) {
|
||
if ($pid == $myuid) {
|
||
return $this->error('用户已是您的下级,不能再设置为上级');
|
||
}
|
||
$pid = self::find_parent($pid);
|
||
};
|
||
|
||
$data = ['id' => $userinfo->id, 'mobile' => $userinfo->username, 'nickname' => $userinfo->info->nickname];
|
||
return $this->success('', '', $data);
|
||
} else {
|
||
return $this->error('您输入手机号的用户不存在,请重新输入。');
|
||
|
||
}
|
||
|
||
}
|
||
|
||
public function find_parent($pid)
|
||
{
|
||
return MemberModel::where('id', $pid)->value('pid');
|
||
}
|
||
}
|