123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- <?php
- namespace App\Models;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Support\Facades\Log;
- use PhpParser\Node\Expr\AssignOp\Mod;
- class Group extends Model
- {
- protected $table = groups;
- public $timestamps = false;
- /**
- * 创建一个用户组,组名必填
- *
- * @param array $params
- * @return string
- */
- public function CreateGroup(array $params)
- {
- $this->name = $params["name"];
- $this->description = $params["description"];
- $this->icon = $params["icon"];
- $this->status = "normal";
- if ($this->name == "") {
- return "empty group name";
- }
- $this->save();
- return "success";
- }
- public function ModifyGroup(array $params)
- {
- $update = [];
- $gid = $params["gid"];
- if ($gid == "") {
- return "empty group id";
- }
- if ($params["name"] != "") {
- $update["name"] = $params["name"];
- }
- if ($params["description"] != "") {
- $update["description"] = $params["description"];
- }
- if ($params["icon"] != "") {
- $update["icon"] = $params["icon"];
- }
- if (count($update) == 0) {
- return "nothing to update";
- }
- $this->where("id", $gid)
- ->where("status", "normal")
- ->where("is_del", false)
- ->update($update);
- return "success";
- }
- public function DeleteGroup(array $params)
- {
- $gid = $params["gid"];
- if ($gid == "") {
- return "empty group id";
- }
- $this->where("id", $gid)
- ->where("is_del", false)
- ->update(["is_del" => true]);
- return "success";
- }
- // public function LoadGroup(array $params){
- // $gid = $params["gid"];
- // if ($gid == ""){
- // return"empty group id";
- // }
- // }
- public function ListGroup(array $params)
- {
- $uid = $params["uid"];
- $groupUser = new GroupUser();
- $groupIds = $groupUser->ListGroupIds($uid);
- if (count($groupIds) == 0) {
- return [];
- }
- //
- $result = $this->select("id", "name", "description", "icon", "status")
- ->where("id", $groupIds)
- ->where("is_del", false)
- ->all();
- return $result;
- }
- }
- class GroupUser extends Model
- {
- protected $table = "group_user";
- public $timestamps = false;
- /**
- * todo
- * 这里需要分页,也可能需要根据群组的状态排序,后面再处理
- * 列出用户相关的群组
- *
- * @param $uid
- * @return array
- */
- public function ListGroupIds($uid)
- {
- $groups = $this->select("group_id")
- ->where("user_id", $uid)
- ->where("is_del", false)
- ->all();
- $group_ids = [];
- foreach ($groups as $group) {
- array_push($group_ids, $group->group_id);
- }
- return $group_ids;
- }
- public function GroupAddUser($gid, $uid)
- {
- if ($gid == "") {
- return "empty group id";
- }
- if ($uid == "") {
- return "empty user id";
- }
- $this->group_id = $gid;
- $this->user_id = $uid;
- $this->status = "status";
- $this->save();
- }
- public function GroupRemoveUser($gid, $uid)
- {
- if ($gid == "") {
- return "empty group id";
- }
- if ($uid == "") {
- return "empty user id";
- }
- // $this->group_id = $gid;
- // $this->user_id = $uid;
- $this->where("group_id", $gid)
- ->where("user_id", $uid)
- ->where("is_del", false)
- ->update(["is_del" => true]);
- return "success";
- }
- }
|