course/app/common/service/StudioApplyService.php

143 lines
4.8 KiB
PHP

<?php
namespace app\common\service;
use app\common\model\Photographer;
use app\common\model\Studio;
use app\common\model\StudioApply;
use app\common\model\User;
use app\constant\ResponseCode;
use think\Exception;
class StudioApplyService
{
public function apply($request)
{
try {
$data = $request->post();
$user = User::where(['id' => $request->user->id])->findOrEmpty();
if (!$user->is_photographer) {
throw new Exception('你还不是摄影师,请先成为摄影师再申请加入');
}
if ($user->studio_id) {
throw new Exception('您已加入了工作室,不能重复申请');
}
$photographer = Photographer::where(['user_id' => $user->id])->findOrEmpty();
if ($photographer->isEmpty()) {
throw new Exception('未找到您的摄影师信息,申请失败');
}
$studio = Studio::where(['id' => $data['studio_id']])->findOrEmpty();
if ($studio->isEmpty()) {
throw new Exception('未找到工作室信息,申请失败');
}
$studio_apply = StudioApply::where(['user_id' => $user->id, 'photographer_id' => $photographer->id, 'apply_status' => 0])->findOrEmpty();
if (!$studio_apply->isEmpty()) {
throw new Exception('您有申请正在审批,不能重复申请');
}
$res = StudioApply::create([
'user_id' => $user->id,
'photographer_id' => $photographer->id,
'studio_id' => $studio->id
]);
if (!$res) {
throw new Exception('申请失败');
}
return [
'code' => ResponseCode::SUCCESS,
'msg' => '申请成功,请等待工作室审核通过'
];
} catch (Exception $e) {
return [
'code' => ResponseCode::FAIL,
'msg' => $e->getMessage()
];
}
}
/**
* @desc 申请列表
* @param $request
* @return array
*/
public function getPhotographerApplyList($request)
{
try {
if(!isset($request['studio_id'])){
throw new Exception('参数错误');
}
$apply = StudioApply::order('id desc')->where(['id' => $request['studio_id']]);
$page = isset($request['page']) ? $request['page'] : 1;
$limit = isset($request['limit']) ? $request['limit'] : 10;
$total = $apply->count();
$list = $apply->with(['photographer'])->page($page, $limit)->select();
return [
'code' => ResponseCode::SUCCESS,
'data' => [
'list' => $list,
'total' => $total,
'page' => $page
],
];
} catch (Exception $e) {
return [
'code' => ResponseCode::FAIL,
'msg' => $e->getMessage()
];
}
}
/**
* @desc 更改审核状态
* @param $request
* @return array
*/
public function changeApplyStatus($request)
{
try {
$data = $request->post();
$user = User::where(['id' => $request->user->id])->findOrEmpty();
$apply = StudioApply::where(['id' => $data['id']])->findOrEmpty();
$studio = Studio::where(['id' => $apply->studio_id])->findOrEmpty();
if ($apply->isEmpty()) {
throw new Exception('申请不存在,修改失败');
}
if ($user->id != $studio->user_id) {
throw new Exception('非工作室管理人员禁止操作');
}
$apply->save(['apply_status' => $request['apply_status']]);
if ($request['apply_status'] == 1) {
//通过
$photographer = Photographer::where(['id' => $apply->photographer_id])->findOrEmpty();
$photographer->save(['studio_id' => $apply->studio_id]);
User::where(['id' => $photographer->user_id])->save(['studio_id' => $apply->studio_id]);
} else {
//拒绝
$photographer = Photographer::where(['id' => $apply->photographer_id])->findOrEmpty();
$photographer->save(['studio_id' => 0]);
User::where(['id' => $photographer->user_id])->save(['studio_id' => 0]);
}
return [
'code' => ResponseCode::SUCCESS,
'msg' => '操作成功'
];
} catch (Exception $e) {
return [
'code' => ResponseCode::FAIL,
'msg' => $e->getMessage()
];
}
}
}