Core.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace common\logic\middleground;
  3. use common\logic\middleground\base\MiddleException;
  4. use common\models\common\MiddleMch;
  5. use common\models\common\PlatformSetting;
  6. use common\models\mall\Mall;
  7. use common\traits\ErrorTrait;
  8. /**
  9. * 中台服务核心类
  10. *
  11. * @package common\logic\middleground
  12. */
  13. class Core
  14. {
  15. use ErrorTrait;
  16. /**
  17. * 是否在中台注册过商户
  18. * @return MiddleMch
  19. */
  20. public function check($mall_id)
  21. {
  22. $mall = Mall::findOne($mall_id);
  23. if (empty($mall)) {
  24. \Yii::error("商城:$mall_id 查找不到");
  25. throw new MiddleException("商城:$mall_id 查找不到");
  26. };
  27. $mch = MiddleMch::getMch($mall['id']);
  28. if (!empty($mch)) return $mch;
  29. // 获取域名
  30. $domain = PlatformSetting::conf("system.api_url", [], true);
  31. if (empty($domain)) {
  32. throw new MiddleException('请先在系统设置配置api接口域名');
  33. }
  34. // 获取ip地址
  35. $ip = "127.0.0.1";
  36. if (\Yii::$app instanceof \yii\web\Application) {
  37. $ip = \Yii::$app->request->getRemoteIP();
  38. }
  39. $mall_conf = \Yii::$app->services->setting->mall->get($mall['id'], 'basic');
  40. // 去中台注册商户
  41. $register = [
  42. 'domain' => $domain,
  43. 'mall_id' => $mall['id'],
  44. 'name' => $mall['name'],
  45. 'ip' => $ip,
  46. 'mobile' => $mall_conf['contact_tel'] ?? '',
  47. 'logo' => $mall_conf['logo'] ?? '',
  48. ];
  49. $mch = new MchApi();
  50. $res = $mch->register($register);
  51. $model = new MiddleMch();
  52. if ($model->load($res, '') && $model->save()) {
  53. return $model;
  54. } else {
  55. $err = array_values($model->getErrors())[0] ?? '保存时未知错误';
  56. throw new MiddleException($err);
  57. }
  58. }
  59. }