VaccineSettingController.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: zilongs
  5. * Date: 2021/3/9
  6. * Time: 11:10 下午
  7. */
  8. namespace App\Community\Controllers;
  9. use App\Models\Vaccine;
  10. use App\Models\VaccineAppoint;
  11. use Encore\Admin\Controllers\AdminController;
  12. use Encore\Admin\Layout\Content;
  13. use Encore\Admin\Facades\Admin;
  14. class VaccineSettingController extends AdminController
  15. {
  16. public function table()
  17. {
  18. $req = request()->query();
  19. $vaccine = Vaccine::where('id', $req['id'])->first()->toArray();
  20. $arr = VaccineAppoint::where('vaccine_id', $req['id'])->pluck('week_appoint')->toArray();
  21. $content = new Content();
  22. Admin::disablePjax();
  23. $title = '['.$vaccine['name'].'] 可预约时间设置';
  24. $data['req'] = $req;
  25. $data['data'] = $arr;
  26. return $content->title($title)->view('cdms/vaccine_setting_table', $data);
  27. }
  28. public function sumbit()
  29. {
  30. $req = request()->post();
  31. if (empty($req['week_time_point_all']) && empty($req['week_time_point'])) {
  32. return out(null, 10001, '请勾选');
  33. }
  34. VaccineAppoint::where('vaccine_id', $req['id'])->delete();
  35. $appoint_week_arr = [];
  36. $map = [11 => '周一上午', 12 => '周二上午', 13 => '周三上午', 14 => '周四上午', 15 => '周五上午', 16 => '周六上午', 17 => '周日上午', 21 => '周一下午', 22 => '周二下午', 23 => '周三下午', 24 => '周四下午', 25 => '周五下午', 26 => '周六下午', 27 => '周日下午'];
  37. $tmp = [];
  38. if (empty($req['week_time_point_all']) && !empty($req['week_time_point'])) {
  39. foreach ($req['week_time_point'] as $k => $v) {
  40. VaccineAppoint::create(['vaccine_id' => $req['id'], 'week_appoint' => $v]);
  41. $i = $v + 10;
  42. if (in_array($i, $req['week_time_point'])) {
  43. $appoint_week_arr[] = mb_substr($map[$v], 0, 2).'全天';
  44. $tmp[] = $i;
  45. }
  46. else {
  47. if (!in_array($v, $tmp)) {
  48. $appoint_week_arr[] = $map[$v];
  49. }
  50. }
  51. }
  52. }
  53. $appoint_week_text = '不限';
  54. if (!empty($appoint_week_arr)) {
  55. $appoint_week_text = implode(',', $appoint_week_arr);
  56. }
  57. Vaccine::where('id', $req['id'])->update(['appoint_week_text' => $appoint_week_text]);
  58. return out();
  59. }
  60. }