ApplyController.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\alliance\controllers\purchase;
  8. use app\models\District;
  9. use app\models\StoreCloud;
  10. use app\modules\alliance\controllers\BaseController;
  11. use app\models\Option;
  12. use app\models\Purchase;
  13. class ApplyController extends BaseController
  14. {
  15. /**
  16. * 获取配置
  17. * @return \yii\web\Response
  18. * @throws \yii\base\InvalidConfigException
  19. * @throws \yii\db\Exception
  20. * @throws \yii\base\InvalidArgumentException
  21. * @author Syan mzsongyan@gmail.com
  22. * @date 2022-06-18
  23. */
  24. public function actionGetConfig()
  25. {
  26. $saas_user_id = get_saas_user_id();
  27. $cloud_apply_banner = Option::get('cloud_apply_banner', 0, 'saas', '')['value'];
  28. $cloud_apply_agreement = Option::get('cloud_apply_agreement', 0, 'saas', '')['value'];
  29. $custom_list = Option::get('cloud_custom_form', 0, 'saas', json_encode([]));
  30. //当前接口由商城管理员打开 直接获取商城管理员的商城id
  31. try {
  32. $payload = \Yii::$app->jwt->getPayload();
  33. $store_admin_id = $payload['store_admin_id'];
  34. if ($store_admin_id > 0) {
  35. $StoreMiniAdmin = \app\models\StoreAdmin::findOne(['id' => $store_admin_id, 'status' => 1, 'is_delete' => 0]);
  36. $store_id = $StoreMiniAdmin->store_id;
  37. } else {
  38. $admin = \app\models\Admin::findOne(['id' => $payload['admin_id']]);
  39. $store_id = $admin->type_id;
  40. }
  41. } catch (\Exception $e) {
  42. return $this->asJson([
  43. 'code' => 1,
  44. 'msg' => '需要重新登录商城'
  45. ]);
  46. }
  47. $item = Purchase::findOne(['store_id' => $store_id, 'is_delete' => 0, 'status' => [0, 1]]);
  48. return $this->asJson([
  49. 'code' => 0,
  50. 'msg' => 'success',
  51. 'data' => [
  52. 'item' => $item ?: [
  53. 'mobile' => get_saas_user()->mobile
  54. ],
  55. 'cloud_apply_banner' => $cloud_apply_banner ? json_decode($cloud_apply_banner) : [],
  56. 'cloud_apply_agreement' => $cloud_apply_agreement,
  57. 'custom_list' => $item && $item->custom_data ? json_decode($item->custom_data) : json_decode($custom_list['value']),
  58. ]
  59. ]);
  60. }
  61. /**
  62. * 提交申请
  63. * @return \yii\web\Response
  64. * @throws \yii\base\InvalidConfigException
  65. * @throws \yii\base\NotSupportedException
  66. * @throws \yii\db\Exception
  67. * @throws \yii\base\InvalidArgumentException
  68. * @throws \Exception
  69. * @throws \yii\db\StaleObjectException
  70. * @author Syan mzsongyan@gmail.com
  71. * @date 2022-06-18
  72. */
  73. public function actionSubmitApply()
  74. {
  75. $saas_user_id = get_saas_user_id();
  76. $name = post_params('name');
  77. $mobile = post_params('mobile');
  78. $custom_data = post_params('custom_data');
  79. $district_id = post_params('district_id');
  80. $city_id = post_params('city_id');
  81. $province_id = post_params('province_id');
  82. if (strlen($name) < 2) {
  83. return $this->asJson([
  84. 'code' => 1,
  85. 'msg' => '名称长度不能小于两位'
  86. ]);
  87. }
  88. //当前接口由商城管理员打开 直接获取商城管理员的商城id
  89. try {
  90. $payload = \Yii::$app->jwt->getPayload();
  91. $store_admin_id = $payload['store_admin_id'];
  92. if ($store_admin_id > 0) {
  93. $StoreMiniAdmin = \app\models\StoreAdmin::findOne(['id' => $store_admin_id, 'status' => 1, 'is_delete' => 0]);
  94. $store_id = $StoreMiniAdmin->store_id;
  95. } else {
  96. $admin = \app\models\Admin::findOne(['id' => $payload['admin_id']]);
  97. $store_id = $admin->type_id;
  98. }
  99. } catch (\Exception $e) {
  100. return $this->asJson([
  101. 'code' => 1,
  102. 'msg' => '需要重新登录商城'
  103. ]);
  104. }
  105. $model = Purchase::findOne(['store_id' => $store_id, 'is_delete' => 0, 'status' => [0, 1]]);
  106. $store_cloud_model = StoreCloud::findOne(['store_id' => $store_id, 'is_delete' => 0]);
  107. if ($model || $store_cloud_model) {
  108. return $this->asJson([
  109. 'code' => 1,
  110. 'msg' => '当前商城提交过申请 或 云仓账户已经存在',
  111. ]);
  112. }
  113. $model = Purchase::findOne(['saas_user_id' => $saas_user_id, 'is_delete' => 0, 'status' => [0, 1]]);
  114. $store_cloud_model = StoreCloud::findOne(['saas_user_id' => $saas_user_id, 'is_delete' => 0]);
  115. if ($model || $store_cloud_model) {
  116. return $this->asJson([
  117. 'code' => 1,
  118. 'msg' => '当前用户提交过申请了, 请其他用户或管理员',
  119. ]);
  120. }
  121. $is = Purchase::findOne(['name' => $name, 'is_delete' => 0, 'status' => [0, 1]]);
  122. $is_store_cloud = StoreCloud::findOne(['name' => $name, 'is_delete' => 0]);
  123. if ($is || $is_store_cloud) {
  124. return $this->asJson([
  125. 'code' => 1,
  126. 'msg' => '姓名已经存在,请更换',
  127. ]);
  128. }
  129. $is = Purchase::findOne(['mobile' => $mobile, 'is_delete' => 0, 'status' => [0, 1]]);
  130. $is_store_cloud = StoreCloud::findOne(['tel' => $mobile, 'is_delete' => 0]);
  131. if ($is || $is_store_cloud) {
  132. return $this->asJson([
  133. 'code' => 1,
  134. 'msg' => '手机号已经存在,请更换',
  135. ]);
  136. }
  137. $model = new Purchase();
  138. $model->district_id = $district_id;
  139. $model->city_id = $city_id;
  140. $model->province_id = $province_id;
  141. $model->name = $name;
  142. $model->mobile = $mobile;
  143. $model->saas_user_id = $saas_user_id;
  144. $model->custom_data = $custom_data;
  145. $model->status = 0;
  146. $model->store_id = $store_id;
  147. if ($model->save()) {
  148. return $this->asJson([
  149. 'code' => 0,
  150. 'msg' => '提交成功',
  151. ]);
  152. }
  153. return $this->asJson([
  154. 'code' => 1,
  155. 'msg' => '提交失败',
  156. ]);
  157. }
  158. public function actionGetDistrict() {
  159. $data = District::find()->select('id, parent_id, name')->asArray()->all();
  160. $data = $this->getmenu($data);
  161. return $this->asJson([
  162. 'code' => 0,
  163. 'msg' => '获取成功',
  164. 'data' => $data
  165. ]);
  166. }
  167. public function getmenu($menu, $id=0){
  168. $arr = [];
  169. foreach ($menu as $k => $v) {
  170. if($v['parent_id'] == $id){
  171. $v['children'] = $this -> getmenu($menu, $v['id']);
  172. $arr[] = $v;
  173. }
  174. }
  175. return $arr;
  176. }
  177. }