|
@@ -9,6 +9,14 @@
|
|
|
namespace App\Http\Controllers\API;
|
|
|
|
|
|
|
|
|
+use App\Mail\CompanyAction;
|
|
|
+use App\Models\CaptchaMail;
|
|
|
+use App\Models\Enums\FileObjectType;
|
|
|
+use App\Services\Notification\ActionEmail\ActionEmailService;
|
|
|
+use Illuminate\Mail\Mailable;
|
|
|
+use Illuminate\Support\Facades\DB;
|
|
|
+use Illuminate\Support\Facades\Hash;
|
|
|
+use Illuminate\Support\Facades\Mail;
|
|
|
use function App\Http\Controllers\badRequest;
|
|
|
use App\Http\Controllers\Controller;
|
|
|
|
|
@@ -85,10 +93,10 @@ class CompanyController extends Controller
|
|
|
}
|
|
|
|
|
|
//注册用户时注册公司
|
|
|
- public function registerStore(FileAssociationService $service,CreateOrUpdateRequest $request)
|
|
|
+ public function registerCompany(FileAssociationService $service,CreateOrUpdateRequest $request)
|
|
|
{
|
|
|
$company = new Company();
|
|
|
-
|
|
|
+
|
|
|
$service->check(
|
|
|
$request->get("file_ids",[]),
|
|
|
FileObjectType::COMPANY,
|
|
@@ -104,38 +112,42 @@ class CompanyController extends Controller
|
|
|
$service->association($company->id);
|
|
|
|
|
|
|
|
|
- return $this->success([
|
|
|
- 'data' => [
|
|
|
- 'company_id' => $company->id,
|
|
|
- ]
|
|
|
- ]);
|
|
|
+ return $this->created();
|
|
|
}
|
|
|
|
|
|
//公司审核
|
|
|
public function action(ActionRequest $request){
|
|
|
- $companys = Company::query()->whereIn('id',$request->get('ids'))->get();
|
|
|
- foreach ($companys as $company){
|
|
|
- if($company->review_status===CompanyReviewStatus::APPROVED->value){
|
|
|
- badRequest(sprintf("Company ID: %s,has been approved", $company->id));
|
|
|
- }
|
|
|
- $status=$request->get('status');
|
|
|
- $expDate=$request->get('exp_data');
|
|
|
- match($status) {
|
|
|
- 1 =>$this->approved($company,$expDate),
|
|
|
- default => $company->review_status=CompanyReviewStatus::REJECTED,
|
|
|
- };
|
|
|
- $company->save();
|
|
|
+ $company = Company::findOrFail($request->id);
|
|
|
+ $status=$request->get('status');
|
|
|
+ $expDate=$request->get('exp_data');
|
|
|
+ $user = new User();
|
|
|
+ //通过审核->改变公司状态->设置公司过期时间->最后生成默认账户
|
|
|
+ DB::transaction(function () use($status,$expDate,$company,$user){
|
|
|
+ if ($status == 1){
|
|
|
+ //1.改变公司状态->设置公司过期时间
|
|
|
+ $company->review_status=CompanyReviewStatus::APPROVED;
|
|
|
+ $company->exp_date = $expDate === null ? Carbon::now()->addYear()->toDateString():$expDate;
|
|
|
+ //2.生成默认账户
|
|
|
+ $user->name='admin_'.$company->name;
|
|
|
+ $user->email=$company->email;
|
|
|
+ $user->username=$company->email;
|
|
|
+ $user->company_id=$company->id;
|
|
|
+ $user->password=Hash::make('admin@#123');
|
|
|
+ //TODO 此处给的默认角色为硬编码,暂未设置默认角色为哪个
|
|
|
+ $user->role_id=6;
|
|
|
+ $user->syncRoles(6);
|
|
|
+ $user->save();
|
|
|
+ }else{
|
|
|
+ $company->review_status=CompanyReviewStatus::REJECTED;
|
|
|
}
|
|
|
-
|
|
|
+ //公司保存
|
|
|
+ $company->save();
|
|
|
+ });
|
|
|
+ //发送邮件到公司账户
|
|
|
+ Mail::to($company->email)->send(new CompanyAction($company,$user));
|
|
|
return $this->noContent();
|
|
|
}
|
|
|
|
|
|
- protected function approved(Company $company,$expDate = null): void
|
|
|
- {
|
|
|
- $company->review_status=CompanyReviewStatus::APPROVED;
|
|
|
- $expDate=$expDate===null?Carbon::now()->addYear()->toDateString():$expDate;
|
|
|
- $company->exp_date=$expDate;
|
|
|
- }
|
|
|
|
|
|
|
|
|
|