webman/app/controller/api/v1/VolunteerservicecorpsContro...

179 lines
8.4 KiB
PHP
Raw Normal View History

2025-02-15 12:13:10 +08:00
<?php
namespace app\controller\api\v1;
use support\Request;
use App\Utils\ApiResponse;
use App\model\Volunteerservicecorp;
use App\model\Users;
use App\model\Volunteerservicecorpsdetailed;
use App\model\Volunteerjoinrequest;
use App\model\Message;
use hg\apidoc\annotation as Apidoc;
use plugin\admin\app\model\User;
use App\dao\MessageDao;
/**
* @Apidoc\Title("志愿者队伍控制器")
*/
class VolunteerservicecorpsController
{
protected $noNeedLogin = [];
/**
* @Apidoc\Title("1.0 获取所有志愿队伍")
* @Apidoc\Url("api/v1/Volunteerservicecorps/get_volunteerservicecorp_list")
* @Apidoc\Method("POST")
*/
public function get_volunteerservicecorp_list(Request $request)
{
$tmp = Volunteerservicecorp::all();
$res = [];
foreach ($tmp as $k => $v) {
$tmp2 = Volunteerservicecorpsdetailed::where('groupid', $v->id)->get();
$number = Volunteerservicecorpsdetailed::where('groupid', $v->id)->count();
$leader = Users::where('id', $v->leaderid)->first(['nickname', 'phone', 'avatar']);
foreach ($tmp2 as $key => $value) {
$member[] = Users::where('id', $value->userid)->first(['nickname', 'phone', 'avatar']);
}
$res['group'][] = array('groupname' => $v->groupname, 'leaderid' => $v->leaderid, 'groupid' => $v->id, "category" => $v->category, 'img' => $v->img, 'number' => $number, 'leader' => $leader, 'member' => $member);
}
return ApiResponse::success(200, $res);
}
/**
* @Apidoc\Title("1.0 获取志愿队伍详细信息根据id")
* @Apidoc\Url("api/v1/Volunteerservicecorps/get_volunteerservicecorp_details")
* @Apidoc\Param("volunteerservicecorp_id", type="int",require=true, desc="队伍id")
* @Apidoc\Method("POST")
*/
public function get_volunteerservicecorp_details(Request $request)
{
$data = $request->post();
$volunteerservicecorp_id = $data['volunteerservicecorp_id'];
$tmp = Volunteerservicecorp::where('id', $volunteerservicecorp_id)->get();
$res = [];
foreach ($tmp as $k => $v) {
$tmp2 = Volunteerservicecorpsdetailed::where('groupid', $v->id)->get();
$number = Volunteerservicecorpsdetailed::where('groupid', $v->id)->count();
$leader = Users::where('id', $v->leaderid)->first(['nickname', 'phone', 'avatar']);
foreach ($tmp2 as $key => $value) {
$member[] = Users::where('id', $value->userid)->first(['nickname', 'phone', 'avatar']);
}
$res['group'] = array('groupname' => $v->groupname, 'leaderid' => $v->leaderid, "category" => $v->category, 'briefly' => $v->briefly, 'created_at' => $v->created_at, 'img' => $v->img, 'number' => $number, 'leader' => $leader, 'member' => $member);
}
return ApiResponse::success(200, $res);
}
/**
* @Apidoc\Title("1.0 志愿队伍报名接口")
* @Apidoc\Url("api/v1/Volunteerservicecorps/join")
* @Apidoc\Param("groupid", type="int",require=true, desc="队伍id")
* @Apidoc\Method("POST")
*/
public function join(Request $request)
{
$data = $request->post();
$groupid = $data['groupid'];
$user = $request->data;
$userid = $user['id'];
//志愿者队伍
$isjoin = Volunteerservicecorpsdetailed::where('groupid', $groupid)->where('userid', $userid)->count();
//志愿者申请
$filed = Volunteerjoinrequest::where('groupid', $groupid)->where('userid', $userid)->count();
if ($isjoin > 0) {
return ApiResponse::success(402, [], "您已经报名过了");
}
if ($filed > 0) {
return ApiResponse::success(402, [], "申请已提交,待审核");
}
$tmp = Volunteerservicecorp::where('id', $groupid)->first();
$volunteerjoinrequest = new volunteerjoinrequest();
$volunteerjoinrequest->userid = $userid;
$volunteerjoinrequest->groupid = $groupid;
$volunteerjoinrequest->status = 0;
$volunteerjoinrequest->remark = "";
$volunteerjoinrequest->save();
MessageDao::SendMessage($userid,"系统通知","$tmp->groupname 申请已提交 等待队长审批");
//TODO这里没写队长通知 时间来不及
// Unset($Message);
// $Message = new Message();
// $Message->content = "您有一条待审批消息";
// $Message->title = "系统通知";
$user = User::where('id', $userid)->first();
$json['nickname'] = $user->nickname;
$json['userid'] = $user->id;
$json['groupid'] = $groupid;
// $Message->parameters = json_encode($json);
// $Message->userid = $tmp->leaderid;
// $Message->save();
MessageDao::SendMessage($tmp->leaderid,"系统通知","您有一条待审批消息",json_encode($json));
return ApiResponse::success(200, []);
}
/**
* @Apidoc\Title("1.0 志愿队伍搜索接口")
* @Apidoc\Url("api/v1/Volunteerservicecorps/search")
* @Apidoc\Param("type", type="int",require=true, desc="0是按照类型搜索1是按照名称")
* @Apidoc\Param("key", type="string",require=true, desc="key")
* @Apidoc\Method("POST")
*/
public function search(Request $request)
{
$data = $request->post();
$type = $data['type'];
$key = $data['key'];
var_dump($type);
if ($type == 1) {
$Volunteerservicecorp = Volunteerservicecorp::where('groupname', 'like', '%' . $key . '%')->get();
} else {
$Volunteerservicecorp = Volunteerservicecorp::where('category', 'like', '%' . $key . '%')->get();
}
$tmp = $Volunteerservicecorp;
$res = [];
foreach ($tmp as $k => $v) {
$tmp2 = Volunteerservicecorpsdetailed::where('groupid', $v->id)->get();
$number = Volunteerservicecorpsdetailed::where('groupid', $v->id)->count();
$leader = Users::where('id', $v->leaderid)->first(['nickname', 'phone', 'avatar']);
foreach ($tmp2 as $key => $value) {
$member[] = Users::where('id', $value->userid)->first(['nickname', 'phone', 'avatar']);
}
$res['group'][] = array('groupname' => $v->groupname, 'leaderid' => $v->leaderid, 'groupid' => $v->id, "category" => $v->category, 'img' => $v->img, 'number' => $number, 'leader' => $leader, 'member' => $member);
}
return ApiResponse::success(200, $res);
}
/**
* @Apidoc\Title("1.0 志愿队伍审批接口")
* @Apidoc\Url("api/v1/Volunteerservicecorps/approval")
* @Apidoc\Param("type", type="int",require=true, desc="0同意1不同意")
* @Apidoc\Param("groupid", type="int",require=true, desc="队伍id")
* @Apidoc\Param("userid", type="int",require=true, desc="userid")
* @Apidoc\Method("POST")
*/
public function approval(Request $request)
{
$data = $request->post();
$user = $request->data;
$userid = $user['id'];
$Volunteerservicecorp = Volunteerservicecorp::where('id', $data['groupid'])->first();
if ($userid != $Volunteerservicecorp->leaderid) {
return ApiResponse::success(402, [], '不是队长没有审核权限');
}
if ($user['type'] == 0) {
$volunteerservicecorpsdetailed = new Volunteerservicecorpsdetailed();
$volunteerservicecorpsdetailed->userid = $data['userid'];
$volunteerservicecorpsdetailed->groupid = $data['groupid'];
$volunteerservicecorpsdetailed->save();
$volunteerjoinrequest = volunteerjoinrequest::where('groupid', $data['groupid'])->where('userid', $data['userid'])->first();
$volunteerjoinrequest->status = 2;
$volunteerjoinrequest->save();
$Volunteerservicecorp = Volunteerservicecorp::where('id', $data['groupid'])->first();
MessageDao::SendMessage($data['userid'],"系统通知","您加入的志愿队 $Volunteerservicecorp->groupname 已同意申请");
return ApiResponse::success(200, [], '成功');
}
$volunteerjoinrequest = volunteerjoinrequest::where('groupid', $data['groupid'])->where('userid', $data['userid'])->first();
$volunteerjoinrequest->status = 1;
MessageDao::SendMessage($data['userid'],"系统通知","您加入的志愿队 $Volunteerservicecorp->groupname 已拒绝您的申请");
$volunteerjoinrequest->save();
return ApiResponse::success(200, [], '成功');
}
}