FormRelated.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\controller\api\store\form;
  12. use app\common\repositories\store\StoreActivityRelatedRepository;
  13. use app\common\repositories\store\StoreActivityRepository;
  14. use app\common\repositories\system\form\FormRepository;
  15. use think\App;
  16. use crmeb\basic\BaseController;
  17. class FormRelated extends BaseController
  18. {
  19. protected $repository;
  20. /**
  21. * ProductCategory constructor.
  22. * @param App $app
  23. * @param StoreActivityRelatedRepository $repository
  24. */
  25. public function __construct(App $app, StoreActivityRelatedRepository $repository)
  26. {
  27. parent::__construct($app);
  28. $this->repository = $repository;
  29. }
  30. /**
  31. * 获取用户提交的报名
  32. * @return \think\response\Json
  33. * @author Qinii
  34. * @day 2023/10/8
  35. */
  36. public function lst()
  37. {
  38. [$page, $limit] = $this->getPage();
  39. $where['activity_type'] = $this->repository::ACTIVITY_TYPE_FORM;
  40. $where['uid'] = $this->request->uid();
  41. //$where['is_del'] = 0;
  42. return app('json')->success($this->repository->getList($where, $page, $limit));
  43. }
  44. /**
  45. * 用户提交表单数据的保存
  46. * @param FormRepository $formRepository
  47. * @return \think\response\Json
  48. * @author Qinii
  49. * @day 2023/10/8
  50. */
  51. public function create($id, FormRepository $formRepository,StoreActivityRepository $repository)
  52. {
  53. $user = $this->request->userInfo();
  54. if (!$id) return app('json')->fail('缺少活动ID');
  55. $createData = [
  56. 'uid' => $user->uid,
  57. 'nickname' => $user->nickname,
  58. 'avatar' => $user->avatar,
  59. 'phone' => $user->phone,
  60. 'activity_id' => $id,
  61. 'activity_type' => $this->repository::ACTIVITY_TYPE_FORM,
  62. ];
  63. if ($this->repository->getSearch($createData)->count())
  64. return app('json')->fail('您已提交过了,请勿重复提交');
  65. $res = $repository->getSearch(['activity_id' => $id,'activity_type' => $repository::ACTIVITY_TYPE_FORM])->find();
  66. $repository->verifyActivityStatus($res, true);
  67. $form_id = $res['link_id'];
  68. $params = $formRepository->getFormKeys($form_id);
  69. $data = $this->request->params($params['data']);
  70. foreach ($data as $k => $v){
  71. if ($params['val'][$k]['val'] && !$v )
  72. return app('json')->fail($params['val'][$k]['label'].'为必填项');
  73. }
  74. $createData['value'] = json_encode($data,JSON_UNESCAPED_UNICODE);
  75. $createData['link_id'] = $form_id;
  76. $createData['keys'] = $params['form'];
  77. $createData['form_value'] = $params['form_value'];
  78. $this->repository->save($id, $createData);
  79. return app('json')->success('提交成功');
  80. }
  81. /**
  82. * 个人提交信息详情
  83. * @param $id
  84. * @return \think\response\Json
  85. * @author Qinii
  86. * @day 2023/11/16
  87. */
  88. public function show($id)
  89. {
  90. $uid = $this->request->uid();
  91. $data = $this->repository->show($id, $uid);
  92. return app('json')->encode($data);
  93. }
  94. }