Shop.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\model\shop;
  11. use app\model\system\Config as ConfigModel;
  12. use app\model\BaseModel;
  13. use addon\shopcomponent\model\Weapp;
  14. /**
  15. * 店铺信息(无缓存)
  16. */
  17. class Shop extends BaseModel
  18. {
  19. /**
  20. * 添加店铺
  21. * @param $data
  22. * @return array
  23. */
  24. public function addShop($data)
  25. {
  26. $res = model('shop')->add($data);
  27. return $this->success($res);
  28. }
  29. /**
  30. * 修改店铺(不能随意修改组)
  31. * @param array $data
  32. */
  33. public function editShop($data, $condition, $site_id = 1)
  34. {
  35. $res = model('shop')->update($data, $condition);
  36. //更新视频号商家信息
  37. if (isset($data[ 'name' ]) && isset($data[ 'mobile' ]) && isset($data[ 'full_address' ]) && isset($data[ 'address' ]) && addon_is_exit("shopcomponent")) {
  38. $weapp_model = new Weapp($site_id);
  39. $info = $weapp_model->checkRegister();
  40. if (isset($info[ 'data' ][ 'status' ]) && $info[ 'data' ][ 'status' ] == 2) {
  41. $params = [
  42. "service_agent_path" => "",
  43. "service_agent_phone" => $data[ 'mobile' ],
  44. "service_agent_type" => [ 0, 2 ],
  45. "default_receiving_address" => [
  46. "receiver_name" => $data[ 'name' ],
  47. "detailed_address" => $data[ 'full_address' ] . $data[ 'address' ],
  48. "tel_number" => $data[ 'mobile' ],
  49. "country" => "",
  50. "province" => $data[ 'province' ],
  51. "city" => $data[ 'city' ],
  52. "town" => $data[ 'district' ]
  53. ]
  54. ];
  55. $weapp_model->updateShop($params);
  56. }
  57. }
  58. return $this->success($res);
  59. }
  60. /**
  61. * 获取店铺信息
  62. * @param array $condition
  63. * @param string $field
  64. */
  65. public function getShopInfo($condition, $field = '*')
  66. {
  67. $res = model('shop')->getInfo($condition, $field);
  68. return $this->success($res);
  69. }
  70. /**
  71. * 获取店铺详情
  72. * @param int $site_id
  73. */
  74. public function getShopDetail($site_id)
  75. {
  76. $res = [];
  77. $shop_info = model('shop')->getInfo([ [ 'site_id', '=', $site_id ] ], 'site_id,expire_time,site_name,username,shop_status,logo,avatar,banner,seo_description,qq,ww,telephone,workingtime,email');
  78. $res [ 'shop_info' ] = $shop_info;
  79. return $this->success($res);
  80. }
  81. /**
  82. * 店铺推广二维码
  83. * @param $site_id
  84. * @param string $type
  85. * @return array
  86. */
  87. public function qrcode($site_id, $type = "create")
  88. {
  89. $data = [
  90. 'site_id' => $site_id,
  91. 'app_type' => "all", // all为全部
  92. 'type' => $type, // 类型 create创建 get获取
  93. 'data' => [],
  94. 'page' => '',
  95. 'qrcode_path' => 'upload/qrcode/shop',
  96. 'qrcode_name' => "shop_qrcode_" . $site_id,
  97. ];
  98. event('Qrcode', $data, true);
  99. $app_type_list = config('app_type');
  100. $path = [];
  101. foreach ($app_type_list as $k => $v) {
  102. switch ( $k ) {
  103. case 'h5':
  104. $wap_domain = getH5Domain();
  105. $path[ $k ][ 'status' ] = 1;
  106. $path[ $k ][ 'url' ] = $wap_domain . $data[ 'page' ];
  107. $path[ $k ][ 'img' ] = $data[ 'qrcode_path' ] . '/' . $data[ 'qrcode_name' ] . '_' . $k . '.png';
  108. break;
  109. case 'weapp' :
  110. $config = new ConfigModel();
  111. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'WEAPP_CONFIG' ] ]);
  112. if (!empty($res[ 'data' ])) {
  113. if (empty($res[ 'data' ][ 'value' ][ 'qrcode' ])) {
  114. $path[ $k ][ 'status' ] = 2;
  115. $path[ $k ][ 'message' ] = '未配置微信小程序';
  116. } else {
  117. $path[ $k ][ 'status' ] = 1;
  118. $path[ $k ][ 'img' ] = $res[ 'data' ][ 'value' ][ 'qrcode' ];
  119. }
  120. } else {
  121. $path[ $k ][ 'status' ] = 2;
  122. $path[ $k ][ 'message' ] = '未配置微信小程序';
  123. }
  124. break;
  125. case 'wechat' :
  126. $config = new ConfigModel();
  127. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'WECHAT_CONFIG' ] ]);
  128. if (!empty($res[ 'data' ])) {
  129. if (empty($res[ 'data' ][ 'value' ][ 'qrcode' ])) {
  130. $path[ $k ][ 'status' ] = 2;
  131. $path[ $k ][ 'message' ] = '未配置微信公众号';
  132. } else {
  133. $path[ $k ][ 'status' ] = 1;
  134. $path[ $k ][ 'img' ] = $res[ 'data' ][ 'value' ][ 'qrcode' ];
  135. }
  136. } else {
  137. $path[ $k ][ 'status' ] = 2;
  138. $path[ $k ][ 'message' ] = '未配置微信公众号';
  139. }
  140. break;
  141. }
  142. }
  143. $return = [
  144. 'path' => $path,
  145. ];
  146. return $this->success($return);
  147. }
  148. /**
  149. * 设置商城状态
  150. * @param $data
  151. * @param $site_id
  152. * @param $app_module
  153. * @return array
  154. */
  155. public function setShopStatus($data, $site_id, $app_module)
  156. {
  157. $config = new ConfigModel();
  158. $res = $config->setConfig($data, '商城状态设置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'SHOP_STATUS_CONFIG' ] ]);
  159. return $res;
  160. }
  161. /**
  162. * 获取商城状态
  163. * @param $site_id
  164. * @param $app_module
  165. * @return array
  166. */
  167. public function getShopStatus($site_id, $app_module)
  168. {
  169. $config = new ConfigModel();
  170. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'SHOP_STATUS_CONFIG' ] ]);
  171. if (empty($res[ 'data' ][ 'value' ])) {
  172. $res[ 'data' ][ 'value' ] = [
  173. 'shop_pc_status' => 1,
  174. 'shop_h5_status' => 1,
  175. 'shop_weapp_status' => 1,
  176. ];
  177. }
  178. return $res;
  179. }
  180. }