FormController.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller;
  4. use App\JsonRpc\FormServiceInterface;
  5. use Hyperf\Di\Annotation\Inject;
  6. use Hyperf\HttpServer\Annotation\AutoController;
  7. use App\Tools\Result;
  8. use Hyperf\Validation\Contract\ValidatorFactoryInterface;
  9. use App\Constants\ErrorCode;
  10. use Hyperf\Context\Context;
  11. use App\Service\ImportQueueService;
  12. /**
  13. * ClassFormController
  14. * @package App\Controller
  15. */
  16. class FormController extends AbstractController
  17. {
  18. #[Inject]
  19. protected ValidatorFactoryInterface $validationFactory;
  20. #[Inject]
  21. protected ImportQueueService $Iservice;
  22. /**
  23. * @var FormServiceInterface
  24. */
  25. #[Inject]
  26. private $formServiceClient;
  27. /**
  28. * 添加网站
  29. * @return array
  30. */
  31. public function addGlobalTable()
  32. {
  33. $requireData = $this->request->all();
  34. $validator = $this->validationFactory->make(
  35. $requireData,
  36. [
  37. 'name'=> 'required',
  38. 'table'=> 'required',
  39. ],
  40. [
  41. 'name.required' => '表单名称不能为空',
  42. 'table.required' => '表单表名不能为空',
  43. ]
  44. );
  45. if ($validator->fails()) {
  46. $errorMessage = $validator->errors()->first();
  47. return Result::error($errorMessage);
  48. }
  49. $result = $this->formServiceClient->addGlobalTable($requireData);
  50. if ($result['code'] != ErrorCode::SUCCESS) {
  51. return Result::error($result['message'],0,[]);
  52. }
  53. return Result::success($result['data']);
  54. }
  55. /**
  56. * 全局表单列表
  57. * @return array
  58. */
  59. public function getGlobalTableList()
  60. {
  61. $requireData = $this->request->all();
  62. $validator = $this->validationFactory->make(
  63. $requireData,
  64. [
  65. 'page'=> 'required',
  66. 'pageSize'=> 'required',
  67. ],
  68. [
  69. 'page.required' => '页码不能为空',
  70. 'pageSize.required' => '每页显示条数不能为空',
  71. ]
  72. );
  73. if ($validator->fails()) {
  74. $errorMessage = $validator->errors()->first();
  75. return Result::error($errorMessage);
  76. }
  77. $result = $this->formServiceClient->getGlobalTableList($requireData);
  78. if ($result['code']!= ErrorCode::SUCCESS) {
  79. return Result::error($result['message'],0,[]);
  80. }
  81. return Result::success($result['data']);
  82. }
  83. /**
  84. * 修改全局表单
  85. */
  86. public function upGlobalTable()
  87. {
  88. $requireData = $this->request->all();
  89. $validator = $this->validationFactory->make(
  90. $requireData,
  91. [
  92. 'name'=> 'required',
  93. 'table'=> 'required',
  94. 'id'=> 'required',
  95. ],
  96. [
  97. 'name.required' => '表单名称不能为空',
  98. 'table.required' => '表单表名不能为空',
  99. 'id.required' => 'id不能为空',
  100. ]
  101. );
  102. if ($validator->fails()) {
  103. $errorMessage = $validator->errors()->first();
  104. return Result::error($errorMessage);
  105. }
  106. $result = $this->formServiceClient->upGlobalTable($requireData);
  107. if ($result['code'] != ErrorCode::SUCCESS) {
  108. return Result::error($result['message'],0,[]);
  109. }
  110. return Result::success($result['data']);
  111. }
  112. /**
  113. * 删除全局表单
  114. */
  115. public function delGlobalTable()
  116. {
  117. $requireData = $this->request->all();
  118. $validator = $this->validationFactory->make(
  119. $requireData,
  120. [
  121. 'id'=> 'required',
  122. ],
  123. [
  124. 'id.required' => 'id不能为空',
  125. ]
  126. );
  127. if ($validator->fails()) {
  128. $errorMessage = $validator->errors()->first();
  129. return Result::error($errorMessage);
  130. }
  131. $result = $this->formServiceClient->delGlobalTable($requireData);
  132. if ($result['code'] != ErrorCode::SUCCESS) {
  133. return Result::error($result['message'],0,[]);
  134. }
  135. return Result::success($result['data']);
  136. }
  137. /**
  138. * 获取全局表单详情
  139. * @return array
  140. */
  141. public function getGlobalTable(){
  142. $requireData = $this->request->all();
  143. $validator = $this->validationFactory->make(
  144. $requireData,
  145. [
  146. 'id'=>'required',
  147. ],
  148. [
  149. 'id.required' => 'id不能为空',
  150. ]
  151. );
  152. if ($validator->fails()) {
  153. $errorMessage = $validator->errors()->first();
  154. return Result::error($errorMessage);
  155. }
  156. $result = $this->formServiceClient->getGlobalTable($requireData);
  157. if ($result['code']!= ErrorCode::SUCCESS) {
  158. return Result::error($result['message'],0,[]);
  159. }
  160. return Result::success($result['data']);
  161. }
  162. /**
  163. * 获取表单下面的-字段
  164. * @return array
  165. */
  166. public function getGlobalTableFieldList(){
  167. $requireData = $this->request->all();
  168. $validator = $this->validationFactory->make(
  169. $requireData,
  170. [
  171. 'id'=>'required',
  172. ],
  173. [
  174. 'id.required' => 'id不能为空',
  175. ]
  176. );
  177. if ($validator->fails()) {
  178. $errorMessage = $validator->errors()->first();
  179. return Result::error($errorMessage);
  180. }
  181. $result = $this->formServiceClient->getGlobalTableFieldList($requireData);
  182. if ($result['code']!= ErrorCode::SUCCESS) {
  183. return Result::error($result['message'],0,[]);
  184. }
  185. return Result::success($result['data']);
  186. }
  187. /**
  188. * 添加字段
  189. * @return array
  190. */
  191. public function addGlobalTableField(){
  192. $requireData = $this->request->all();
  193. $validator = $this->validationFactory->make(
  194. $requireData,
  195. [
  196. 'title'=>'required',
  197. 'field_name'=>'required',
  198. 'field_type'=>'required',
  199. 'table_id'=>'required',
  200. ],
  201. [
  202. 'title.required' => '显示名称不能为空',
  203. 'field_name.required' => '字段名称不能为空',
  204. 'field_type.required' => '字段类型不能为空',
  205. 'table_id.required' => '表单id不能为空',
  206. ]
  207. );
  208. if ($validator->fails()) {
  209. $errorMessage = $validator->errors()->first();
  210. return Result::error($errorMessage);
  211. }
  212. $result = $this->formServiceClient->addGlobalTableField($requireData);
  213. if ($result['code']!= ErrorCode::SUCCESS) {
  214. return Result::error($result['message'],0,[]);
  215. }
  216. return Result::success($result['data']);
  217. }
  218. /**
  219. * upGlobalTableField
  220. * @return array
  221. */
  222. public function upGlobalTableField(){
  223. $requireData = $this->request->all();
  224. $validator = $this->validationFactory->make(
  225. $requireData,
  226. [
  227. 'id'=>'required',
  228. 'title'=>'required',
  229. 'field_name'=>'required',
  230. 'field_type'=>'required',
  231. 'table_id'=>'required',
  232. ],
  233. [
  234. 'id.required' => 'id不能为空',
  235. 'title.required' => '显示名称不能为空',
  236. 'field_name.required' => '字段名称不能为空',
  237. 'field_type.required' => '字段类型不能为空',
  238. ]
  239. );
  240. if ($validator->fails()) {
  241. $errorMessage = $validator->errors()->first();
  242. return Result::error($errorMessage);
  243. }
  244. $result = $this->formServiceClient->upGlobalTableField($requireData);
  245. if ($result['code']!= ErrorCode::SUCCESS) {
  246. return Result::error($result['message'],0,[]);
  247. }
  248. return Result::success($result['data']);
  249. }
  250. /**
  251. * 删除表单字段
  252. * @return array
  253. */
  254. public function delGlobalTableField(){
  255. $requireData = $this->request->all();
  256. $validator = $this->validationFactory->make(
  257. $requireData,
  258. [
  259. 'id'=>'required',
  260. ],
  261. [
  262. 'id.required' => 'id不能为空',
  263. ]
  264. );
  265. if ($validator->fails()) {
  266. $errorMessage = $validator->errors()->first();
  267. return Result::error($errorMessage);
  268. }
  269. $result = $this->formServiceClient->delGlobalTableField($requireData);
  270. if ($result['code']!= ErrorCode::SUCCESS) {
  271. return Result::error($result['message'],0,[]);
  272. }
  273. return Result::success($result['data']);
  274. }
  275. /**
  276. * 获取表单字段详情
  277. * @return array
  278. */
  279. public function getGlobalTableField(){
  280. $requireData = $this->request->all();
  281. $validator = $this->validationFactory->make(
  282. $requireData,
  283. [
  284. 'id'=>'required',
  285. ],
  286. [
  287. 'id.required' => 'id不能为空',
  288. ]
  289. );
  290. if ($validator->fails()) {
  291. $errorMessage = $validator->errors()->first();
  292. return Result::error($errorMessage);
  293. }
  294. $result = $this->formServiceClient->getGlobalTableField($requireData);
  295. if ($result['code']!= ErrorCode::SUCCESS) {
  296. return Result::error($result['message'],0,[]);
  297. }
  298. return Result::success($result['data']);
  299. }
  300. /**
  301. * 查看表单下面的数据
  302. * getGlobalTableData
  303. * @return array
  304. */
  305. public function getGlobalTableData(){
  306. $requireData = $this->request->all();
  307. $validator = $this->validationFactory->make(
  308. $requireData,
  309. [
  310. 'id'=>'required',
  311. ],
  312. [
  313. 'id.required' => 'id不能为空',
  314. ]
  315. );
  316. if ($validator->fails()) {
  317. $errorMessage = $validator->errors()->first();
  318. return Result::error($errorMessage);
  319. }
  320. $result = $this->formServiceClient->getGlobalTableData($requireData);
  321. if ($result['code']!= ErrorCode::SUCCESS) {
  322. return Result::error($result['message'],0,[]);
  323. }
  324. return Result::success($result['data']);
  325. }
  326. /**
  327. * 字段类型列表
  328. * @return array
  329. */
  330. public function getGlobalTableFieldTypeList(){
  331. $result = $this->formServiceClient->getGlobalTableFieldTypeList([]);
  332. if ($result['code']!= ErrorCode::SUCCESS) {
  333. return Result::error($result['message'],0,[]);
  334. }
  335. return Result::success($result['data']);
  336. }
  337. /**
  338. * 删除表单下面的数据
  339. * @return array
  340. */
  341. public function delGlobalTableData(){
  342. $requireData = $this->request->all();
  343. $validator = $this->validationFactory->make(
  344. $requireData,
  345. [
  346. 'id'=>'required',
  347. 'table_id'=>'required',
  348. ],
  349. [
  350. 'id.required' => 'id不能为空',
  351. 'table_id.required' => '表单id不能为空',
  352. ]
  353. );
  354. if ($validator->fails()) {
  355. $errorMessage = $validator->errors()->first();
  356. return Result::error($errorMessage);
  357. }
  358. $result = $this->formServiceClient->delGlobalTableData($requireData);
  359. if ($result['code']!= ErrorCode::SUCCESS) {
  360. return Result::error($result['message'],0,[]);
  361. }
  362. return Result::success($result['data']);
  363. }
  364. /**
  365. * @return array
  366. */
  367. public function getGlobalTableDataById(){
  368. $requireData = $this->request->all();
  369. $validator = $this->validationFactory->make(
  370. $requireData,
  371. [
  372. 'id'=>'required',
  373. 'table_id'=>'required',
  374. ],
  375. [
  376. 'id.required' => 'id不能为空',
  377. 'table_id.required' => '表单id不能为空',
  378. ]
  379. );
  380. if ($validator->fails()) {
  381. $errorMessage = $validator->errors()->first();
  382. return Result::error($errorMessage);
  383. }
  384. $result = $this->formServiceClient->getGlobalTableDataById($requireData);
  385. if ($result['code']!= ErrorCode::SUCCESS) {
  386. return Result::error($result['message'],0,[]);
  387. }
  388. return Result::success($result['data']);
  389. }
  390. /**
  391. * 更新表单下面的数据
  392. * @return array
  393. */
  394. public function updateGlobalTableData(){
  395. $requireData = $this->request->all();
  396. $validator = $this->validationFactory->make(
  397. $requireData,
  398. [
  399. 'id'=>'required',
  400. 'table_id'=>'required',
  401. ],
  402. [
  403. 'id.required' => 'id不能为空',
  404. 'table_id.required' => '表单id不能为空',
  405. ]
  406. );
  407. if ($validator->fails()) {
  408. $errorMessage = $validator->errors()->first();
  409. return Result::error($errorMessage);
  410. }
  411. $result = $this->formServiceClient->updateGlobalTableData($requireData);
  412. if ($result['code']!= ErrorCode::SUCCESS) {
  413. return Result::error($result['message'],0,[]);
  414. }
  415. return Result::success($result['data']);
  416. }
  417. /**、
  418. * 拉取字段
  419. * @return array
  420. */
  421. public function getWebGlobalTableFieldList(){
  422. $requireData = $this->request->all();
  423. $validator = $this->validationFactory->make(
  424. $requireData,
  425. [
  426. 'table_id'=>'required',
  427. ],
  428. [
  429. 'table_id.required' => '表单table_id不能为空',
  430. ]
  431. );
  432. if ($validator->fails()) {
  433. $errorMessage = $validator->errors()->first();
  434. return Result::error($errorMessage);
  435. }
  436. $requireData['website_id'] = Context::get('SiteId');
  437. $result = $this->formServiceClient->getWebGlobalTableFieldList($requireData);
  438. if ($result['code']!= ErrorCode::SUCCESS) {
  439. return Result::error($result['message'],0,[]);
  440. }
  441. return Result::success($result['data']);
  442. }
  443. /**
  444. * 存储数据
  445. * @return array
  446. */
  447. public function addWebGlobalTableData(){
  448. $requireData = $this->request->all();
  449. $validator = $this->validationFactory->make(
  450. $requireData,
  451. [
  452. 'data'=>'required',
  453. 'otherData'=>'required',
  454. ],
  455. [
  456. 'data.required' => '数据不能为空',
  457. 'otherData.required' => '数据不能为空',
  458. ]
  459. );
  460. if ($validator->fails()) {
  461. $errorMessage = $validator->errors()->first();
  462. return Result::error($errorMessage);
  463. }
  464. $requireData['orderData']['website_id'] = Context::get('SiteId');
  465. $result = $this->formServiceClient->addWebGlobalTableData($requireData);
  466. if ($result['code']!= ErrorCode::SUCCESS) {
  467. return Result::error($result['message'],0,[]);
  468. }
  469. return Result::success($result['data']);
  470. }
  471. }