|
@@ -0,0 +1,99 @@
|
|
|
+<?php
|
|
|
+namespace app\newhome\controller;
|
|
|
+
|
|
|
+use think\Controller;
|
|
|
+use app\user\model\UserBuddy;
|
|
|
+use app\user\model\User;
|
|
|
+
|
|
|
+class Buddy extends Controller{
|
|
|
+ private $buddyModel, $userModel;
|
|
|
+
|
|
|
+ public function _initialize(){
|
|
|
+ parent::_initialize();
|
|
|
+
|
|
|
+ $this->buddyModel = new UserBuddy();
|
|
|
+ $this->userModel = new User();
|
|
|
+ }
|
|
|
+
|
|
|
+ public function index(){
|
|
|
+ $data = decode($this->request->post());
|
|
|
+ $user = $data['u'];
|
|
|
+
|
|
|
+ $res = $this->buddyModel->findUserBuddy($user);
|
|
|
+
|
|
|
+ return json(['l'=>$res]);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function apply(){
|
|
|
+ $data = decode($this->request->post());
|
|
|
+
|
|
|
+ $buddy = $data['b'];
|
|
|
+ $user = $data['u'];
|
|
|
+
|
|
|
+ $this->checkBuddyNum($user, $buddy);
|
|
|
+
|
|
|
+ $this->buddyModel->saveAllInfo([['user_id'=>$user, 'buddy_id'=>$buddy], ['user_id'=>$buddy, 'buddy_id'=>$user]]);
|
|
|
+
|
|
|
+ return json(['error'=>0]);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function agree(){
|
|
|
+ $data = decode($this->request->post());
|
|
|
+
|
|
|
+ $buddy = $data['b'];
|
|
|
+ $user = $data['u'];
|
|
|
+
|
|
|
+ $this->checkBuddyNum($user, $buddy);
|
|
|
+
|
|
|
+ $info = $this->buddyModel->getBuddy($user, $buddy);
|
|
|
+ if($info){
|
|
|
+ $this->buddyModel->update(['status'=>UserBuddy::Friend, 'updatetime'=>getCurrentTime()], ['id'=>$info['id']]);
|
|
|
+ }else{
|
|
|
+ $this->buddyModel->save(['user_id'=>$user, 'buddy_id'=>$buddy, 'status'=>UserBuddy::Friend, 'inputtime'=>getCurrentTime(), 'updatetime'=>getCurrentTime()]);
|
|
|
+ }
|
|
|
+
|
|
|
+ $res = $this->buddyModel->getBuddy($buddy, $user);
|
|
|
+ if($res){
|
|
|
+ $this->buddyModel->update(['status'=>UserBuddy::Friend, 'updatetime'=>getCurrentTime()], ['id'=>$res['id']]);
|
|
|
+ }else{
|
|
|
+ $this->buddyModel->save(['user_id'=>$buddy, 'buddy_id'=>$user, 'status'=>UserBuddy::Friend, 'inputtime'=>getCurrentTime(), 'updatetime'=>getCurrentTime()]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return json(['error'=>0]);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function remove(){
|
|
|
+ $data = decode($this->request->post());
|
|
|
+
|
|
|
+ $buddy = $data['b'];
|
|
|
+ $user = $data['u'];
|
|
|
+
|
|
|
+ $info = $this->buddyModel->getBuddy($user, $buddy);
|
|
|
+
|
|
|
+ if($info){
|
|
|
+ $this->buddyModel->remove($info->toArray());
|
|
|
+ }
|
|
|
+
|
|
|
+ return json(['error'=>0]);
|
|
|
+ }
|
|
|
+
|
|
|
+ private function checkBuddyNum($user, $buddy){
|
|
|
+
|
|
|
+ $info = $this->userModel->getUserById($user);
|
|
|
+ if(empty($info))
|
|
|
+ exit(json_encode(['error'=>1023]));
|
|
|
+ $count = $this->buddyModel->getBuddyCount($user);
|
|
|
+ // 个人超出好友指定数量则返回错误
|
|
|
+ if($count >= $info['buddy'])
|
|
|
+ exit(json_encode(['error'=>1011]));
|
|
|
+
|
|
|
+ $buddy_info = $this->userModel->getUserById($buddy);
|
|
|
+ if(empty($buddy_info))
|
|
|
+ exit(json_encode(['error'=>1023]));
|
|
|
+ $buddy_count = $this->buddyModel->getBuddyCount($buddy);
|
|
|
+ // 好友数量超出指定数量则返回错误
|
|
|
+ if($buddy_count >= $buddy_info['buddy'])
|
|
|
+ exit(json_encode(['error'=>1012]));
|
|
|
+ }
|
|
|
+
|
|
|
+}
|