179 lines
8.4 KiB
PHP
179 lines
8.4 KiB
PHP
|
<?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, [], '成功');
|
||
|
}
|
||
|
}
|