StoreController.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\alliance\controllers;
  8. use app\constants\OptionSetting;
  9. use app\models\Address;
  10. use app\models\Goods;
  11. use app\models\Option;
  12. use app\models\Store;
  13. use app\models\User;
  14. use app\modules\alliance\controllers\BaseController;
  15. use app\modules\alliance\models\GoodsListForm;
  16. use app\modules\alliance\models\store\StoreAdminForm;
  17. use app\models\SalesmanNewStore;
  18. use app\modules\alliance\models\store\SalesmanNewStoreForm;
  19. use app\modules\alliance\models\StoreListForm;
  20. use app\utils\Wechat\Wechat;
  21. use yii\base\BaseObject;
  22. use yii\helpers\Json;
  23. use app\modules\alliance\models\WriteOffCodeForm;
  24. class StoreController extends BaseController
  25. {
  26. /**
  27. * 店铺列表
  28. */
  29. public function actionList() {
  30. $form = new StoreListForm();
  31. $form->attributes = get_params();
  32. return $this->asJson($form->list());
  33. }
  34. /**
  35. * 店铺列表搜索配置参数
  36. */
  37. public function actionSearchParams() {
  38. $form = new StoreListForm();
  39. $form->attributes = get_params();
  40. return $this->asJson($form->config());
  41. }
  42. /**
  43. * 服务端小程序是否开启审核
  44. */
  45. public function actionServerMpAudit() {
  46. $status = Option::get('platform_mch_is_shenhe', 0, 'saas', 0)['value'];
  47. // 根据版本判断是否开启审核,低版本的不开启,最新版本开启
  48. if (\client_version() < \cyy_version()) {
  49. $status = 0;
  50. }
  51. return $this->asJson([
  52. 'code' => 0,
  53. 'msg' => 'success',
  54. 'data' => [
  55. 'status' => (int)$status,
  56. ]
  57. ]);
  58. }
  59. /**
  60. * 小程序是否开启审核
  61. */
  62. public function actionMpAudit() {
  63. $status = Option::get('shenhe', 0, 'saas', 0)['value'];
  64. // 根据版本判断是否开启审核,低版本的不开启,最新版本开启
  65. if (\client_version() < \cyy_version()) {
  66. $status = 0;
  67. }
  68. return $this->asJson([
  69. 'code' => 0,
  70. 'msg' => 'success',
  71. 'data' => [
  72. 'status' => $status,
  73. ]
  74. ]);
  75. }
  76. public function actionRecommendKey() {
  77. return $this->asJson(
  78. [
  79. 'code' => 0,
  80. 'msg' => 'success',
  81. 'data' => Json::decode(Store::findOne(get_store_id())->recommend_keyword)
  82. ]
  83. );
  84. }
  85. /**
  86. * 关键词联想
  87. * @return \yii\web\Response
  88. */
  89. public function actionGoodsKeyword() {
  90. $store_id = get_store_id();
  91. $keyword = get_params('keyword');
  92. $query = Goods::find()->where(['store_id' => $store_id]);
  93. if ($store_id == -1) {
  94. $query = Goods::find();
  95. $Store = Store::find()->where(['business_model' => [2, 3]])->select('recommend_keyword, id')->asArray()->all();
  96. $recommend_key = [];
  97. foreach ($Store as &$item) {
  98. $keywords = Json::decode($item['recommend_keyword']) ?: [];
  99. $recommend_key[] = array_column($keywords, 'value');
  100. }
  101. } else {
  102. $recommend_keyword = Store::findOne($store_id)->recommend_keyword;
  103. if ($recommend_keyword) {
  104. $recommend_key = array_column(Json::decode(Store::findOne($store_id)->recommend_keyword), 'value');
  105. } else {
  106. $recommend_key = [];
  107. }
  108. }
  109. if (!empty($keyword)) {
  110. $query->andWhere(['like', 'key_word', $keyword]);
  111. }
  112. $query->andWhere([
  113. 'and',
  114. ['!=', 'key_word', ''],
  115. ['!=', 'key_word', 'null']
  116. ]);
  117. $list = $query->orderBy(['virtual_sales' => SORT_DESC, 'created_at' => SORT_DESC])->select('key_word')->asArray()->all();
  118. return $this->asJson([
  119. 'code' => 0,
  120. 'msg' => 'success',
  121. 'recommend_key' => $recommend_key,
  122. 'data' => empty($list) ? $list : array_column($list, 'key_word')
  123. ]);
  124. }
  125. public function actionGoodsList() {
  126. $form = new GoodsListForm();
  127. $form->store_id = get_store_id();
  128. $form->attributes = get_params();
  129. $form->type = get_params('type', -1);
  130. $form->searchType = get_params('searchType', 'store');
  131. return $this->asJson($form->newSearch());
  132. }
  133. public function actionClerkCard(){
  134. $form = new WriteOffCodeForm();
  135. $form->sale_id = post_params("sale_id")??get_params("sale_id");
  136. $res = $form->clerkCard();
  137. return $this->asJson($res);
  138. }
  139. /**
  140. * 判断是否缴纳成功
  141. */
  142. public function actionGetIsPay(){
  143. $order_id = get_params('order_id');
  144. $form = new StoreAdminForm();
  145. return $this->asJson($form->isPay($order_id));
  146. }
  147. //业务员新建商家列表
  148. public function actionSalesmanNewStoreList(){
  149. $type = post_params('type', 0);
  150. $data = post_params();
  151. $form = new SalesmanNewStoreForm();
  152. $form->saas_user_id = get_saas_user_id();
  153. return $this->asJson($form->getList($type, $data));
  154. }
  155. //业务员新建商家详情
  156. public function actionSalesmanNewStoreInfo(){
  157. $id = post_params('id', 0);
  158. $form = new SalesmanNewStoreForm();
  159. $form->saas_user_id = get_saas_user_id();
  160. return $this->asJson($form->info($id));
  161. }
  162. //业务员新建商家
  163. public function actionSalesmanNewStore(){
  164. $data = post_params('data');
  165. $type = post_params('type', 0);
  166. $id = post_params('id', 0);
  167. $form = new SalesmanNewStoreForm();
  168. $form->saas_user_id = get_saas_user_id();
  169. return $this->asJson($form->save($id, $data, $type));
  170. }
  171. //业务员新建商家绑定商户二维码
  172. public function actionSalesmanNewStoreQr() {
  173. $id = post_params('id', 0);
  174. $form = new SalesmanNewStoreForm();
  175. $form->saas_user_id = get_saas_user_id();
  176. return $this->asJson($form->qr($id));
  177. }
  178. //业务员新建商家扫码绑定商户(商户扫码)
  179. public function actionSalesmanNewStoreQrBind() {
  180. // $id = post_params('id', 0);
  181. $form = new SalesmanNewStoreForm();
  182. $form->saas_user_id = get_saas_user_id();
  183. return $this->asJson($form->qrBind($id));
  184. }
  185. //微信快速注册小程序
  186. public function actionWxFastRegisterMini(){
  187. $id = post_params('id', 0);
  188. $form = new SalesmanNewStoreForm();
  189. $model = SalesmanNewStore::findOne(['salesman_saas_id' => get_saas_user_id(), 'id' => $id]);
  190. $msg = [];
  191. return $this->asJson($form->wxFastRegisterMini($model, $msg, 1));
  192. }
  193. //微信小程序基础信息
  194. public function actionWechatMiniInfo(){
  195. $id = post_params('id', 0);
  196. $form = new SalesmanNewStoreForm();
  197. $model = SalesmanNewStore::findOne(['salesman_saas_id' => get_saas_user_id(), 'id' => $id]);
  198. return $this->asJson(SalesmanNewStoreForm::setMiniInfo($model, 1));
  199. }
  200. //微信进件
  201. public function actionWechatPayApply(){
  202. $id = post_params('id', 0);
  203. $form = new SalesmanNewStoreForm();
  204. $model = SalesmanNewStore::findOne(['salesman_saas_id' => get_saas_user_id(), 'id' => $id]);
  205. return $this->asJson($form->wechatPayApply($model, 1));
  206. }
  207. //支付宝快速注册小程序
  208. public function actionAliIsvCreateMini(){
  209. $id = post_params('id', 0);
  210. $form = new SalesmanNewStoreForm();
  211. $model = SalesmanNewStore::findOne(['salesman_saas_id' => get_saas_user_id(), 'id' => $id]);
  212. $msg = [];
  213. return $this->asJson($form->isvCreateMini($model, $msg, 1));
  214. }
  215. //签约当面付
  216. public function actionAliSignFaceToFace(){
  217. $id = post_params('id', 0);
  218. $form = new SalesmanNewStoreForm();
  219. $model = SalesmanNewStore::findOne(['salesman_saas_id' => get_saas_user_id(), 'id' => $id]);
  220. return $this->asJson($form->signFaceToFace($model, 1));
  221. }
  222. //创建门店
  223. public function actionAliCreatedShop(){
  224. $id = post_params('id', 0);
  225. $form = new SalesmanNewStoreForm();
  226. $model = SalesmanNewStore::findOne(['salesman_saas_id' => get_saas_user_id(), 'id' => $id]);
  227. return $this->asJson($form->aliCreatedShop($model, 1));
  228. }
  229. //创建门店
  230. public function actionTest(){
  231. // $msg = '{"AppId":"wxd808cccf0e9b5f7a","CreateTime":"1678959225","InfoType":"notify_third_fasteregister","status":"0","msg":"OK","appid":"wx2c72840ee240aab3","auth_code":"queryauthcode@@@e3J929egOVk68yUDuVfPQpXQyoKa-3YV-xmZn1BClu7C96d25Q0OKGdwThReZRu6jy80eGyg2toNdhtFRdng1w","info":{"name":"重庆赤晓店信息科技有限公司","code":"91500107MAC87H772P","code_type":"1","legal_persona_wechat":"wxid_it87b576mpnu12","legal_persona_name":"张启秀","component_phone":"18538854912"}}';
  232. // $msg = json_decode($msg, true);
  233. // $mini = \app\models\StoreMini::findOne(94);
  234. // \app\modules\alliance\models\store\SalesmanNewStoreForm::wechatPush($msg, $mini);
  235. // $msg = '{"order_no":"2023031611555117500062525","out_order_no":"20230316115550317001","pid":"2088141927114860","min_app_id":"2021003183678964","status":"AGREED"}';
  236. // $msg = json_decode($msg, true);
  237. // $store_ali_mini = \app\models\StoreAliMini::findOne(84);
  238. // \app\modules\alliance\models\store\SalesmanNewStoreForm::aliPush($msg, $store_ali_mini);
  239. $model = SalesmanNewStore::findOne(['id' => 71]);
  240. \app\modules\alliance\models\store\SalesmanNewStoreForm::setMiniInfo($model);
  241. die;
  242. }
  243. // 获取App信息
  244. public function actionStoreAppInfo() {
  245. try {
  246. $keys = [
  247. 'platform_app_store_android',//供应链安卓app地址
  248. 'platform_app_store_android_version'//供应链安卓app版本
  249. ];
  250. $data = Option::get($keys, 0, 'saas');
  251. if (empty($data)) {
  252. $data = [
  253. 'platform_app_store_android' => '',//供应链安卓app地址
  254. 'platform_app_store_android_version' => '',//供应链安卓app版本
  255. ];
  256. } else {
  257. $arr = [];
  258. foreach ($data as $value) {
  259. $index = array_search($value['name'], $keys);
  260. unset($keys[$index]);
  261. $arr[$value['name']] = $value['value'];
  262. }
  263. foreach ($keys as $key) {
  264. $arr[$key] = '';
  265. }
  266. $data = $arr;
  267. }
  268. return $this->asJson([
  269. 'code' => 0,
  270. 'msg' => 'success',
  271. 'data' => $data,
  272. ]);
  273. } catch (\Exception $e) {
  274. return $this->asJson([
  275. 'code' => 1,
  276. 'msg' => $e->getMessage()
  277. ]);
  278. }
  279. }
  280. public function actionSearchHotel() {
  281. $form = new GoodsListForm();
  282. $form->store_id = get_store_id();
  283. $form->attributes = get_params();
  284. $form->searchType = null;
  285. $form->type = Goods::GOODS_TYPE_DATE;
  286. return $this->asJson($form->newSearch());
  287. }
  288. }