OrganizationController.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <?php
  2. namespace App\Http\Controllers\Web\Organization;
  3. use Aix\Sms\Contracts\Smser;
  4. use App\Http\Controllers\Web\WebBaseController;
  5. use App\Models\Category;
  6. use App\Repositories\MemberLogRepository;
  7. use App\Services\Common\EmailService;
  8. use App\Services\Common\SmsService;
  9. use App\Services\Company\DispensingService;
  10. use App\Services\Organization\OrganizationService;
  11. use App\Services\Organization\ServiceService;
  12. use App\Validators\OrganizationValidatorRequest;
  13. use Illuminate\Http\Request;
  14. use Illuminate\Support\Facades\Cache;
  15. use Illuminate\Support\Facades\DB;
  16. use App\Services\Auth\RegisterService;
  17. use App\Services\Common\MembersSetmealService;
  18. class OrganizationController extends WebBaseController
  19. {
  20. protected $organizationService;
  21. protected $serviceService;
  22. protected $smsService;
  23. protected $memberLogRepository;
  24. protected $emailService;
  25. protected $dispensingService;
  26. private $registerService;
  27. private $membersSetmealService;
  28. public function __construct(OrganizationService $organizationService,ServiceService $serviceService,SmsService $smsService,MemberLogRepository $memberLogRepository,EmailService $emailService,DispensingService $dispensingService, RegisterService $registerService, MembersSetmealService $membersSetmealService)
  29. {
  30. $this->organizationService = $organizationService;
  31. $this->serviceService = $serviceService;
  32. $this->smsService = $smsService;
  33. $this->memberLogRepository = $memberLogRepository;
  34. $this->emailService = $emailService;
  35. $this->dispensingService = $dispensingService;
  36. $this->registerService = $registerService;
  37. $this->membersSetmealService = $membersSetmealService;
  38. }
  39. public function index()
  40. {
  41. $user = auth('web-organization')->user();
  42. $service_list = $this->serviceService->list($user);
  43. $service_total = $this->serviceService->total($user->id);
  44. $trade = Category::categoryType('AIX_trade');
  45. return view('app.organization.index',['service_list'=>$service_list,'service_total'=>$service_total,'trade'=>$trade]);
  46. }
  47. /**
  48. * 机构信息
  49. */
  50. public function organizationInfo()
  51. {
  52. $user = auth('web-organization')->user();
  53. $organizationInfo = $this->organizationService->organizationInfo($user);
  54. return view('app.organization.company_info', $organizationInfo);
  55. }
  56. public function serviceAdd(Request $request)
  57. {
  58. if(request()->method()=='POST'){
  59. $data = $request->except('_method', '_token');
  60. return $this->serviceService->save($data,auth('web-organization')->user());
  61. }else{
  62. return view('app.organization.service_add');
  63. }
  64. }
  65. public function serviceEdit(Request $request){
  66. if(request()->method()=='POST'){
  67. $data = $request->except('_method', '_token');
  68. return $this->serviceService->save($data,auth('web-organization')->user());
  69. }else{
  70. $id = $request->input('id');
  71. $user = auth('web-organization')->user();
  72. $where['id'] = $id;
  73. $where['uid'] = $user->id;
  74. $serviceInfo = $this->serviceService->serviceInfo($where);
  75. if(!$serviceInfo){
  76. return $this->showMessage('没有这个需求!', route('org.index'), true);
  77. }
  78. $trade = Category::categoryType('AIX_trade');
  79. return view('app.organization.service_edit',['serviceInfo'=>$serviceInfo,'trade'=>$trade]);
  80. }
  81. }
  82. public function serviceDel(Request $request)
  83. {
  84. $id = $request->id;
  85. $user = auth('web-organization')->user();
  86. return $this->serviceService->serviceDel($id, $user);
  87. }
  88. public function orgSecurity()
  89. {
  90. $user = auth('web-organization')->user();
  91. $orgInfo = $this->organizationService->orgSecurity($user);
  92. return view('app.organization.org_security', $orgInfo);
  93. }
  94. public function loginLog()
  95. {
  96. $user = auth('web-organization')->user();
  97. $loginLog = $this->organizationService->orgLoginLog($user);
  98. $orgInfo = $user;
  99. $orgInfo['loginLog'] = $loginLog;
  100. return view('app.organization.login_log', ['organizationInfo'=>$orgInfo]);
  101. }
  102. public function modifyPwd()
  103. {
  104. return view('app.organization.ajax.ajax_modify_pwd');
  105. }
  106. public function savePwd(OrganizationValidatorRequest $request)
  107. {
  108. $user = auth('web-organization')->user();
  109. if (!$this->organizationService->savePwd($user, $request->oldpassword, $request->password, $request->password1)) {
  110. return $this->sendErrorResponse('密码修改失败!');
  111. }
  112. if ($user->mobile) {
  113. $this->smsService->sendSms($user->mobile, Smser::TEMPLATE_SMS_EDITPWD, ['sitename'=>subsite_config('aix.system.site.site.site_name'),'newpassword'=>$request->password]);
  114. }
  115. return $this->sendSuccessResponse('密码修改成功!');
  116. }
  117. public function authEmail()
  118. {
  119. $user = auth('web-organization')->user();
  120. if (!$email = $this->organizationService->authEmail($user)) {
  121. return response()->json(['status'=>0,'msg'=>'参数错误!']);
  122. }
  123. return response()->json(['status'=>1,'msg'=>'查询成功!','data'=>view('app.organization.ajax.ajax_auth_email', $email)->render()]);
  124. }
  125. public function emailSend(OrganizationValidatorRequest $request)
  126. {
  127. $email = $request->email;
  128. $id = $request->id;
  129. if (!$this->organizationService->checkEmailAudit($id, $email)->isEmpty()) {
  130. return response()->json(['status'=>0, 'msg'=>'email已验证!']);
  131. }
  132. $user = auth('web-organization')->user();
  133. $this->memberLogRepository->createLog($user,8001,"");
  134. $this->emailService->setAuthTag('organization')
  135. ->setCallback('App\Services\Organization\OrganizationService', 'sendAuthEmailHook', [$email, auth('web-organization')->user()])
  136. ->sendAuthMail($email, EmailService::TEMPLATE_VALIDATION);
  137. return response()->json(['status'=>1]);
  138. }
  139. public function dispensingList()
  140. {
  141. $dispensingList = $this->dispensingService->list();
  142. return view('app.organization.org_dispensingList',['dispensing'=>$dispensingList]);
  143. }
  144. public function transfer()
  145. {
  146. $list = DB::table('organization')->whereRaw('id>9')->get()->toArray();
  147. $list = json_decode(json_encode($list), true);
  148. foreach ($list as $k => $v){
  149. $info = DB::table('companys')->where('companyname',$v['orgname'])->first();
  150. if(!$info){
  151. $company=$this->registerService->registerCompany1($v);
  152. $this->membersSetmealService->addMemberSetmeal($company, config('aix.companyset.setmeal_com.setmeal_com_set.reg_service'));
  153. }
  154. }
  155. }
  156. }