作者 何书鹏
1 个管道 的构建 通过 耗费 0 秒

社区管理员

... ... @@ -13,6 +13,7 @@ use app\common\controller\Api;
use think\Cache;
use think\Db;
use think\Validate;
use app\api\model\House;
use app\api\model\HouseAdmin as HouseAdminModel;
/**
... ... @@ -20,7 +21,7 @@ use app\api\model\HouseAdmin as HouseAdminModel;
*/
class HouseAdmin extends Api
{
protected $noNeedLogin = ['*'];
protected $noNeedLogin = [''];
protected $noNeedRight = ['*'];
/**
... ... @@ -28,20 +29,221 @@ class HouseAdmin extends Api
* @ApiSummary (社区管理员-首页)
* @ApiMethod (POST)
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
* @ApiParams (name="house_id", type="inter", required=false, description="社区ID")
* @ApiReturn({
"code": 1,
"msg": "成功",
"time": "1571492001",
"msg": "success",
"time": "1598707632",
"data": {
"is_binding"://是否绑定1已绑定2未绑定
"house"://社区信息
"house_board"://最新公告信息
"id": 4, //管理员ID
"house_id": 17, //小区ID
"is_direct": 1, //是否为主管理员 1是2否
"nickname": "", //管理员昵称
"avatar": "", //管理员头像
"house": { // 小区信息
"id": 17, //小区ID
"name": "碧海花园小区" //小区名称
}
}
})
*/
public function index()
{
$info = HouseAdminModel::get(['user_id'=>$this->auth->id]);
$this->success('success',$info);
$user = $this->auth->getUser();
$house_id = $this->request->param('house_id');
if($house_id){
$info = HouseAdminModel::get(['user_id'=>$user['id'],'house_id'=>$house_id]);
empty($info) && $this->error('您不是该小区的管理员');
$info->visible(['id','house_id','is_direct'])->toArray();
}else{
$info = HouseAdminModel::where(['user_id'=>$user['id']])
->order(['is_direct'=>'asc','createtime'=>'asc'])
->field('id,house_id,is_direct')
->find();
empty($info) && $this->error('您还不是管理员');
}
$data = [
'nickname' => $user['admin_nickname'],
'avatar' => cdnurl($user['admin_avatar'],true),
'house' => House::where('id',$info['house_id'])->field('id,name')->find(),
];
$data = array_merge($info->toArray(),$data);
$this->success('success',$data);
}
/**
* @ApiTitle (社区管理员-选择社区)
* @ApiSummary (社区管理员-选择社区)
* @ApiMethod (POST)
* @ApiRoute (/api/house_admin/houseList)
*
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
* @ApiParams (name="keyword", type="string", required=false, description="关键字")
*
* @ApiReturn({
"code": 1,
"msg": "success",
"time": "1598688508",
"data": [{
"id": 16, //小区ID
"name": "兴安苑", //小区名称
}]
})
*/
public function houseList()
{
$user = $this->auth->getUser();
$keyword = $this->request->param('keyword');
$where = [];
if(!empty($keyword)){
$where['h.name'] = ['like',"%$keyword%"];
}
// 查出该管理员已绑定的小区
$list = HouseAdminModel::alias('ha')
->join('house h','h.id = ha.house_id')
->where('ha.user_id',$user['id'])
->where($where)
->field("h.id,h.name")
->order('ha.is_direct')
->select();
$this->success('success',$list);
}
/**
* @ApiTitle (社区管理员-个人信息)
* @ApiSummary (社区管理员-个人信息)
* @ApiMethod (POST)
* @ApiRoute (/api/house_admin/profile)
*
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
*
* @ApiReturn({
"code": 1,
"msg": "success",
"time": "1598753244",
"data": {
"nickname": "", //昵称
"avatar": "http://community.qiniu.brotop.cn", //头像
"mobile": "" //手机号
}
})
*/
public function profile()
{
$user = $this->auth->getUser();
$data = [
'nickname' => $user['admin_nickname'],
'avatar' => cdnurl($user['admin_avatar'],true),
'mobile' => $user['admin_mobile'],
];
$this->success('success',$data);
}
/**
* 社区管理员-修改会员个人信息
*
* @param string $avatar 头像地址
* @param string $nickname 昵称
*/
public function profileEdit()
{
$user = $this->auth->getUser();
$nickname = $this->request->request('nickname');
$avatar = $this->request->request('avatar', '', 'trim,strip_tags,htmlspecialchars');
$user->admin_nickname = $nickname;
$user->admin_avatar = $avatar;
$user->save();
$this->success();
}
/**
* 社区管理员-修改手机号
*
* @param string $mobile 手机号
* @param string $captcha 验证码
*/
public function changemobile()
{
$user = $this->auth->getUser();
$mobile = $this->request->request('mobile');
$captcha = $this->request->request('captcha');
if (!$mobile || !$captcha) {
$this->error(__('Invalid parameters'));
}
if (!Validate::regex($mobile, "^1\d{10}$")) {
$this->error(__('Mobile is incorrect'));
}
if (\app\common\model\User::where('admin_mobile', $mobile)->where('id', '<>', $user->id)->find()) {
$this->error(__('Mobile already exists'));
}
$code = Cache::get($mobile);
if ($code != $captcha) {
$this->error(__('Captcha is incorrect'));
}
$user->admin_mobile = $mobile;
$user->save();
Cache::rm($mobile);
$this->success();
}
/**
* @ApiTitle (社区管理员-公告管理)
* @ApiSummary (社区管理员-公告管理)
* @ApiMethod (POST)
*
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
* @ApiParams (name="house_id", type=inter, required=true, description="社区id")
* @ApiParams (name="page", type="inter", required=false, description="当前页(默认1)")
* @ApiParams (name="pageNum", type="inter", required=false, description="每页显示数据个数(默认10)")
*
* @ApiReturn({
"code": 1,
"msg": "success",
"time": "1598755666",
"data": {
"total_num": 1, //数据总条数
"info": [{
"id": 1, //公告id
"title": "周六交电费", //社区公告标题
"look_num": 2, //浏览人数
"createtime": "2020-08-19", //时间
"is_delete": 2, //是否下架:1=下架,2=未下架
"avatar": [{ //用户头像
"avatar": "",
"id": 1
}]
}]
}
})
*/
public function house_board_list()
{
$page = $this->request->param('page', 1, 'intval');
$pageNum = $this->request->param('pageNum', 10, 'intval');
$house_id = $this->request->param('house_id');
empty($house_id) && $this->error('社区id不能为空');
$data['total_num'] = Db::name('house_board')
->where('house_id',$house_id)
->count();
$data['info'] = Db::name('house_board')
->where('house_id',$house_id)
->field('id,title,look_num,createtime,deletetime')
->order('weigh desc')
->page($page,$pageNum)
->select();
foreach ($data['info'] as &$v){
$v['createtime'] = date('Y-m-d',$v['createtime']);
$v['is_delete'] = $v['deletetime'] > 0 ? 1 : 2;
$v['avatar'] = Db::name('house_board_detail')
->alias('a')
->join('user b','a.user_id = b.id')
->where('a.house_board_id',$v['id'])
->field('b.avatar,b.id')
->limit(6)
->select();
unset($v['deletetime']);
}
$this->success('success',$data);
}
}
\ No newline at end of file
... ...
... ... @@ -475,22 +475,13 @@ class User extends Api
* 修改会员个人信息
*
* @param string $avatar 头像地址
* @param string $username 用户名
* @param string $nickname 昵称
*/
public function profile()
{
$user = $this->auth->getUser();
$username = $this->request->request('username');
$nickname = $this->request->request('nickname');
$avatar = $this->request->request('avatar', '', 'trim,strip_tags,htmlspecialchars');
if ($username) {
$exists = \app\common\model\User::where('username', $username)->where('id', '<>', $this->auth->id)->find();
if ($exists) {
$this->error(__('Username already exists'));
}
$user->username = $username;
}
$user->nickname = $nickname;
$user->avatar = $avatar;
$user->save();
... ...
... ... @@ -6,5 +6,7 @@ namespace app\api\model;
class HouseAdmin extends Base
{
public function house(){
return $this->belongsTo('House');
}
}
\ No newline at end of file
... ...