租房掌柜微信小程序Api以及小程序前端模板
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.
 
 
 
 
 
 

238 lines
8.5 KiB

<?php
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2019 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: http://demo.thinkadmin.top
// +----------------------------------------------------------------------
// | 开源协议 ( https://mit-license.org )
// +----------------------------------------------------------------------
// | gitee 代码仓库:https://gitee.com/zoujingli/ThinkAdmin
// | github 代码仓库:https://github.com/zoujingli/ThinkAdmin
// +----------------------------------------------------------------------
namespace app\index\controller;
use think\App;
use think\Db;
/**
* 应用入口
* Class Index
* @package app\index\controller
*/
class Member extends Base
{
private $table = 'CloudMember';
private $table_house = 'CloudHouse';
private $table_room = 'CloudHouseRoom';
public function __construct(App $app = null)
{
parent::__construct($app);
parent::auth();
}
/**
* 设置保洁
*/
public function setClean(){
$param = $this->request->param();
Db::name($this->table)->update(['id'=>$param['id'],'is_clean'=>$param['is_clean']]);
}
/**
* 获取管理用户列表
*/
public function index()
{
//判断当前用户是否为管理员
if (!MEMBER['is_manager']) {
return send_http_status(414);
}
$_where = 'status =1';
$count = Db::name($this->table)->where($_where)->count();
$page = $this->request->param('page', 1);
$pagesize = $this->request->param('pagesize', 10);
$pages = ceil($count / $pagesize); //总页数
$_result = Db::name($this->table)->where($_where)->page($page, $pagesize)->order('id', "DESC")->select();
$_data['list'] = $_result;
$_data['pages'] = $pages;
self::formatData($_data['list']);
return send_http_status(200, $_data);
}
/**
* 绑定用户手机号
*/
public function bindPhone()
{
$iv = $this->request->param('iv');
$encryptedData = $this->request->param('encryptedData');
$code = $this->request->param('code');
//获取小程序appid配置
$config = config('appid');
$crypt = \We::WeMiniCrypt($config);
//通过code获取 opendi及session_key
$_session = $crypt->session($code);
if (is_array($_session)) {
//解密用户数据
$_data = $crypt->decode($iv, $_session['session_key'], $encryptedData);
if (isset($_data['phoneNumber']) && !empty($_data['phoneNumber'])) {
//通过openid修改用户手机号
$affected = Db::name($this->table)->where('openid', $_session['openid'])->update(['phone' => $_data['phoneNumber']]);
if ($affected > -1) {
return send_http_status(200);
}
}
}
return send_http_status(51007);
}
/**
* 用户资料修改
*/
public function modify()
{
$_data = $this->request->post();
//添加房源数据
$_data = array_filter($_data);
$safe_data['pay_info'] = !empty($_data['pay_info']) ? $_data['pay_info'] : '';
$safe_data['phone'] = $_data['phone'];
$safe_data['qrcode'] = $_data['qrcode'];
$safe_data['truename'] = $_data['truename'];
$safe_data['card_number'] = $_data['card_number'];
$safe_data['update_time'] = time();
$safe_data['id'] = USER_ID;
$affected = Db::name($this->table)->strict(false)->update($safe_data);
if ($affected) {
$_member = Db::name($this->table)->find(USER_ID);
if (!empty($_member['qrcode'])) {
$_member['imgList'] = explode(',', $_member['qrcode']);
}
return send_http_status(200, $_member);
}
return send_http_status(413);
}
/**
* 会员详情
* @param string $id 会员id
* @return \type|void
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function view($id = '')
{
if (!$id) {
return;
}
//获取房源详情
$_data['member'] = Db::name($this->table)->find($id);
if ($_data['member']) {
//查询所有房源数据
$_data['house_count'] = Db::name($this->table_house)->where('is_del', 0)->where('user_id', $_data['member']['id'])->count();
$_data['room_count'] = Db::name($this->table_room)->where('is_del', 0)->where('user_id', $_data['member']['id'])->count();
$_data['vip_level'] = config('vip_level');
}
self::formatViewData($_data['member']);
return send_http_status(200, $_data);
}
/**
* 获取用户信息
* @param string $id
* @return \type
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getInfo($id = '')
{
//先查询openid是否存在
$_result = Db::name($this->table)->where('id', $id)->find();
if ($_result) {
$_result['imgList'] = !empty($_result['qrcode']) ? explode(',', $_result['qrcode']) : '';
self::formatViewData($_result);
return send_http_status(200, $_result);
}
}
/**
* 修改会员等级
* @param string $user_id 被修改的用户id
* @param int $level 修改等级
* @return \type
* @throws \think\Exception
* @throws \think\exception\PDOException
*/
public function level($user_id = '', $level = 0)
{
if (!$user_id || !is_numeric($user_id) || !in_array($level, [0, 1, 2, 3])) {
return send_http_status(51005);
}
//判断当前用户是否为管理员
if (!MEMBER['is_manager']) {
return send_http_status(414);
}
$affected = Db::name($this->table)->where('id', $user_id)->update(['vip_level' => $level, 'vip_time' => time()]);
return send_http_status(200);
}
/**
* 修改会员状态
* @param string $user_id 被修改的用户id
* @return \type
* @throws \think\Exception
* @throws \think\exception\PDOException
*/
public function del($id = '')
{
if (!$id || !is_numeric($id)) {
return send_http_status(51003);
}
//判断当前用户是否为管理员
if (!MEMBER['is_manager']) {
return send_http_status(414);
}
$affected = Db::name($this->table)->where('id', $id)->update(['status' => 0]);
return send_http_status(200);
}
static private function formatData(&$data)
{
if (!$data) {
return;
}
$vip_level = config('vip_level');
array_walk($data, function (&$v, &$k) use ($vip_level) {
!empty($v['create_time']) ? $v['create_time'] = date('Y-m-d', $v['create_time']) : $v['create_time'] = '';
!empty($v['update_time']) ? $v['update_time'] = date('Y-m-d', $v['update_time']) : $v['update_time'] = '';
!empty($v['vip_time']) ? $v['vip_time'] = date('Y-m-d', $v['vip_time']) : $v['vip_time'] = '';
isset($v['sex']) ? $v['sex'] = config('sex')[$v['sex']] : '';
//列表封面
if (isset($v['vip_level'])) {
$v['vip_level_color'] = $vip_level[$v['vip_level']]['color'];
$v['vip_level'] = $vip_level[$v['vip_level']]['name'];
}
});
}
static private function formatViewData(&$data)
{
!empty($data['create_time']) ? $data['create_time'] = date('Y-m-d', $data['create_time']) : $data['create_time'] = '';
!empty($data['update_time']) ? $data['update_time'] = date('Y-m-d', $data['update_time']) : $data['update_time'] = '';
!empty($data['vip_time']) ? $data['vip_time'] = date('Y-m-d', $data['vip_time']) : $data['vip_time'] = '';
!empty($data['vip_endtime']) ? $data['vip_endtime'] = date('Y-m-d', $data['vip_endtime']) : $data['vip_endtime'] = '';
$data['vip_level_str'] = config('vip_level')[$data['vip_level']]['name'];
$data['vip_level_color'] = config('vip_level')[$data['vip_level']]['color'];
}
}