FormController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\client\controllers\v1;
  8. use app\modules\client\controllers\BaseController;
  9. use app\models\Goods;
  10. use app\models\FormData;
  11. use app\models\Order;
  12. use app\modules\admin\models\InvoiceForm;
  13. class FormController extends BaseController
  14. {
  15. public function actionFormDataSave() {
  16. try{
  17. $store_id = get_store_id();
  18. $user_id = get_user_id();
  19. if(cache_lock(['actionFormDataSave', $store_id, $user_id], 60)){
  20. throw new \Exception('提交频率太高,请一分钟后再试');
  21. }
  22. $params = all_params();
  23. if($params['id']){
  24. $FormData = FormData::findOne(['id' => $params['id'], 'store_id' => $store_id, 'user_id' => $user_id, 'is_delete' => 0]);
  25. }else{
  26. $FormData = new FormData();
  27. $FormData->status = 1;
  28. $FormData->store_id = $store_id;
  29. $FormData->user_id = $user_id;
  30. $FormData->saas_user_id = get_saas_user_id();
  31. $FormData->goods_id = $params['goods_id'];
  32. }
  33. $FormData->form = $params['form'];
  34. if(!$FormData->save()){
  35. throw new \Exception(array_shift($FormData->getFirstErrors()));
  36. }
  37. return $this->asJson([
  38. 'code' => 0,
  39. 'msg' => '操作成功!'
  40. ]);
  41. } catch (\Exception $e) {
  42. \Yii::error($e);
  43. return $this->asJson([
  44. 'code' => 1,
  45. 'msg' => '操作失败!' . $e->getMessage(),
  46. ]);
  47. }
  48. }
  49. public function actionFormInfo() {
  50. $goods_id = input_params('goods_id');
  51. $goods = Goods::findOne($goods_id);
  52. $orderForm = new \app\modules\client\models\v1\order\OrderForm();
  53. $orderForm->store_id = get_store_id();
  54. $data = $orderForm->getNewFormData($goods);
  55. return $this->asJson([
  56. 'code' => 0,
  57. 'data' => $data,
  58. ]);
  59. }
  60. public function actionFormDataInfo() {
  61. $store_id = get_store_id();
  62. $user_id = get_user_id();
  63. $id = input_params('id');
  64. $FormData = FormData::findOne(['id' => $id, 'store_id' => $store_id, 'user_id' => $user_id, 'is_delete' => 0]);
  65. $FormData['form'] = json_decode($FormData['form'], true);
  66. return $this->asJson([
  67. 'code' => 0,
  68. 'data' => $FormData,
  69. ]);
  70. }
  71. public function actionFormDataList() {
  72. $store_id = get_store_id();
  73. $user_id = get_user_id();
  74. $query = FormData::find()->alias('fd')
  75. ->leftJoin(['g' => Goods::tableName()], 'g.id = fd.goods_id')
  76. ->where(['fd.user_id' => $user_id, 'fd.store_id' => $store_id, 'fd.is_delete' => 0]);
  77. $query->orderBy('fd.id DESC');
  78. $query->select(['fd.*', 'g.name as goods_name', 'g.cover_pic', 'g.price']);
  79. $list = pagination_make($query);
  80. foreach($list['list'] as &$item){
  81. $item['form'] = json_decode($item['form'], true);
  82. }
  83. return $this->asJson([
  84. 'code' => 0,
  85. 'data' => $list,
  86. 'a' => [get_user_id(), get_saas_user_id()]
  87. ]);
  88. }
  89. }