OpenController.php 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725
  1. <?php
  2. namespace backend\controllers;
  3. use backend\helpers\DateTimeHelper;
  4. use backend\helpers\IdCardInfoExtractorHelper;
  5. use backend\helpers\IdcardValidatorHelper;
  6. use backend\helpers\MailHelper;
  7. use backend\helpers\PaginationHelper;
  8. use backend\helpers\RandomHelper;
  9. use backend\helpers\ValidatorHelper;
  10. use backend\models\Config;
  11. use backend\models\forms\OpenDemoForm;
  12. use backend\models\IbOpenRecord;
  13. use backend\models\Member;
  14. use backend\models\MemberBankInfo;
  15. use backend\models\Open;
  16. use backend\models\MailRecord;
  17. use backend\models\UserMember;
  18. use common\helpers\MtKit;
  19. use backend\helpers\LogHelper;
  20. use Yii;
  21. class OpenController extends BaseController
  22. {
  23. /**
  24. * 真实账户申请
  25. * @return \yii\web\Response
  26. */
  27. public function actionOpen()
  28. {
  29. $model = new Open();
  30. $model->setScenario('frontend');
  31. $data = Yii::$app->getRequest()->post();
  32. foreach (['type', 'in_time', 'mt4_login', 'mt4_login_pwd', 'member_id'] as $field) {
  33. unset($data[$field]);
  34. }
  35. $model->setAttributes($data);
  36. $model->type = 0;
  37. $model->in_time = DateTimeHelper::microtime_float();
  38. if ($model->save()) {
  39. return $this->outJson(1, $model->getAttributes(), 'OK');
  40. } else {
  41. return $this->outJson(0, [], $model->getErrors());
  42. }
  43. }
  44. /**
  45. * 模拟账户申请
  46. * @return \yii\web\Response
  47. */
  48. public function actionOpendemo()
  49. {
  50. $model = new OpenDemoForm();
  51. $data = Yii::$app->getRequest()->post();
  52. $model->setAttributes($data);
  53. if ($model->openDemo()) {
  54. return $this->outJson(1, ['login' => $model->getLogin(), 'password' => $model->getPassword()], 'OK');
  55. } else {
  56. return $this->outJson(0, [], $model->getErrors());
  57. }
  58. }
  59. /**
  60. * 代理商开户申请附属表记录
  61. * @return \yii\web\Response
  62. */
  63. public function actionOpenRecord()
  64. {
  65. $model = new IbOpenRecord();
  66. $data = Yii::$app->getRequest()->post();
  67. $model->setAttributes($data);
  68. $model->in_time = DateTimeHelper::microtime_float();
  69. if ($model->save()) {
  70. return $this->outJson(1, $model->getAttributes(), 'OK');
  71. } else {
  72. return $this->outJson(0, [], $model->getErrors());
  73. }
  74. }
  75. /**
  76. * 开户申请列表
  77. */
  78. public function actionGetOpenList()
  79. {
  80. $data = \Yii::$app->getRequest()->get();
  81. $data['page'] = isset($data['page']) ? max(intval($data['page']), 1) : 1;
  82. $data['pageSize'] = isset($data['pageSize']) ? intval($data['pageSize']) : 20;
  83. $data['search'] = isset($data['search']) ? trim($data['search']) : '';
  84. $data['orderBy'] = isset($data['orderBy']) ? trim($data['orderBy']) : 'id desc';
  85. $data = ValidatorHelper::validateData($data, [
  86. ['page', 'integer', 'min' => 1],
  87. ['pageSize', 'integer', 'min' => 1],
  88. ['orderBy', 'string'],
  89. ], $errors);
  90. if ($data == false) {
  91. return $this->outJson(0, '', $errors);
  92. }
  93. $query = Open::find()->orderBy($data['orderBy']);
  94. if (!empty($data['search'])) {
  95. $query->andFilterWhere([
  96. 'or',
  97. ['like', 'email', $data['search']],
  98. ['like', 'name', $data['search']],
  99. ['like', 'rid', $data['search']],
  100. ]);
  101. }
  102. $result = PaginationHelper::queryPage($query, $data['page'], $data['pageSize']);
  103. return $this->outJson(1, $result);
  104. }
  105. /**
  106. * 查看开户申请详情
  107. * @return \yii\web\Response
  108. */
  109. public function actionView()
  110. {
  111. $rs = [];
  112. $data = Yii::$app->getRequest()->get();
  113. $data['id'] = isset($data['id']) ? (int)$data['id'] : '';
  114. $data['open_type'] = isset($data['open_type']) ? (int)$data['open_type'] : '';
  115. if ($data['open_type'] == 1) {
  116. $open = Open::find()->where(['id' => $data['id']])->one();
  117. $rs['open'] = $open;
  118. if (!empty($open['member_id'])) {
  119. $member = Member::find()->where(['id' => $open['member_id']])->one();
  120. $rs['member'] = $member;
  121. }
  122. $config = Config::findOne(1);
  123. $rs['levers'] = explode(',', $config->lever);
  124. $rs['groups'] = explode(',', $config->mt4_groups);
  125. $rs['randomCode'] = RandomHelper::getRandomString(6);
  126. } else {
  127. $openQuery = Open::find()->alias('op')
  128. ->select([
  129. 'op.*',
  130. 'opr.ref_id',
  131. 'opr.bank_name',
  132. 'opr.bank_province',
  133. 'opr.bank_city',
  134. 'opr.bank_district',
  135. 'opr.bank_branch',
  136. 'opr.bank_card_no',
  137. 'opr.collect_name',
  138. 'opr.bank_swift_code'
  139. ])
  140. ->leftJoin(IbOpenRecord::tableName().' opr', 'op.id = opr.open_id')
  141. ->andWhere(['op.id' => $data['id']])
  142. ->asArray()
  143. ->one();
  144. if ($openQuery) {
  145. $openQuery['bank_name'] = $this->bankNameByBankCode($openQuery['bank_name']);
  146. }
  147. $rs['open'] = $openQuery;
  148. if (!empty($openQuery['member_id'])) {
  149. $member = Member::find()->where(['id' => $openQuery['member_id']])->one();
  150. $rs['member'] = $member;
  151. }
  152. $config = Config::findOne(1);
  153. $rs['levers'] = explode(',', $config->lever);
  154. $rs['groups'] = explode(',', $config->mt4_groups);
  155. $rs['randomCode'] = RandomHelper::getRandomString(6);
  156. }
  157. return $this->outJson(1, $rs);
  158. }
  159. /**
  160. * 删除开户申请
  161. * @return \yii\web\Response
  162. */
  163. public function actionOpenDelete()
  164. {
  165. $data = Yii::$app->getRequest()->post();
  166. $data['id'] = isset($data['id']) ? (int)$data['id'] : '';
  167. $admin_id = isset($data['admin_id']) ? (int)$data['admin_id'] : '';
  168. $open_info = Open::findById($data['id']);
  169. $open_info = json_encode($open_info);
  170. LogHelper::writeLog($admin_id,$data['id'],'Open/delete','删除开户用户',$open_info);
  171. $rs = Open::deleteAll(['id' => $data['id']]);
  172. return $this->outJson(1, $rs);
  173. }
  174. /**
  175. * 审核开户申请
  176. * @return \yii\web\Response
  177. */
  178. public function actionOpenAction()
  179. {
  180. $data = Yii::$app->getRequest()->get();
  181. $data['id'] = isset($data['id']) ? (int)$data['id'] : '';
  182. $data['type'] = isset($data['type']) ? (int)$data['type'] : '';
  183. $open = Open::findOne(['id' => $data['id']]);
  184. if (empty($data['type']) || empty($data['id'])) {
  185. return $this->outJson(0, [], '参数错误');
  186. }
  187. if($open->type == 2 || $open->type == 3){
  188. return $this->outJson(0,[],'操作超时,请刷新页面重试');
  189. }
  190. $open->type = $data['type'];
  191. if ($data['type'] == 1) {
  192. $open->mt4_login_pwd = RandomHelper::getRandomStringForMt4();
  193. $open->mt4_view_pwd = RandomHelper::getRandomStringForMt4();
  194. }
  195. if ($data['type'] == 3) {
  196. $config = Config::findOne(1);
  197. $paramArray = [
  198. 'name' => $open->name,
  199. ];
  200. // 发送邮件
  201. MailHelper::sendMail("账号申请审核通知", $open->email, $paramArray, '', $config->mail_reject_apply);
  202. }
  203. $rs = $open->save();
  204. return $this->outJson(1, $rs);
  205. }
  206. /**
  207. * 开通MT4账户
  208. * @return \yii\web\Response
  209. */
  210. public function actionOpenAccount()
  211. {
  212. $data = Yii::$app->getRequest()->post();
  213. $data['login'] = isset($data['login']) ? (int)$data['login'] : '';
  214. $data['group'] = isset($data['group']) ? $data['group'] : '';
  215. $data['lever'] = isset($data['lever']) ? (int)$data['lever'] : '';
  216. $data['openId'] = isset($data['openId']) ? (int)$data['openId'] : '';
  217. $open = Open::findOne(['id' => $data['openId']]);
  218. if (!empty($open) && $open->mt4_login != null) {
  219. return $this->outJson(0, [], '已开户,请刷新页面');
  220. }
  221. if ($data['login'] == null) {
  222. $data['login'] = 0;
  223. }
  224. if (empty($data['lever'])) {
  225. return $this->outJson(0, [], '请选择杠杆');
  226. }
  227. $password = $data['mt4LoginPwd'];
  228. $passwordInvestor = $data['mt4ViewPwd'];
  229. if (empty($password)) {
  230. return $this->outJson(0, [], '请填写登录密码');
  231. }
  232. if (empty($passwordInvestor)) {
  233. return $this->outJson(0, [], '请填写观摩密码');
  234. }
  235. //如果是代理
  236. /*
  237. if ($open->open_type == 2) {
  238. $rid = $open->rid;
  239. if (!$rid) {
  240. return $this->outJson(0, [], '上级代理不能为空');
  241. }
  242. $membereInfo = Member::findByLogin($rid);
  243. if (!$membereInfo) {
  244. return $this->outJson(0, [], '上级代理不存在');
  245. }
  246. //开户组别设置跟上级一样
  247. $data['group'] = $membereInfo['group_sn'];
  248. }
  249. */
  250. $rid = $open->rid;
  251. if (!$rid) {
  252. return $this->outJson(0, [], '上级代理不能为空');
  253. }
  254. $membereInfo = Member::findByLogin($rid);
  255. if (!$membereInfo) {
  256. return $this->outJson(0, [], '上级代理不存在');
  257. }
  258. //开户组别设置跟上级一样
  259. $data['group'] = $membereInfo['group_sn'];
  260. $configData = Config::find()->asArray()->one();
  261. $mt4ManagerIp = trim($configData['mt4_manager_ip']);
  262. $mt4ManagerPort = trim($configData['mt4_manager_port']);
  263. $passwordPhone = $open->mt4_view_pwd;
  264. $email = $open->email;
  265. $phone = "";
  266. $leverage = $data['lever'];
  267. $country = "中国";
  268. $ie = new IdCardInfoExtractorHelper($open->id_card);
  269. $state = $ie->getProvince();
  270. $city = "";
  271. $address = $open->address;
  272. $zipCode = "";
  273. $id = $open->id_card;
  274. $agentAccount = 0;
  275. // $login = 0;
  276. $login = MtKit::openUser($mt4ManagerIp, $mt4ManagerPort, $data['login'], $password, $passwordInvestor, $passwordPhone, $open->name,
  277. $data['group'], $email, $phone, $leverage, $country, $state, $city, $address, $zipCode, $id, $agentAccount);
  278. if ($login != 0) {
  279. $open->mt4_login = $login;
  280. $open->mt4_login_pwd = $password;
  281. $open->mt4_view_pwd = $passwordInvestor;
  282. if ($open->save()) {
  283. return $this->outJson(1, ['id' => $open->id], '操作成功');
  284. }
  285. }
  286. return $this->outJson(0, $login, '开户失败');
  287. }
  288. /**
  289. * 加入xtrader账户
  290. * @return \yii\web\Response
  291. */
  292. public function actionOpenMember()
  293. {
  294. $request = \Yii::$app->getRequest()->post();
  295. $openId = isset($request['openId']) ? (int)$request['openId'] : '';
  296. $username = isset($request['username']) ? $request['username'] : '';
  297. $password = isset($request['password']) ? $request['password'] : '';
  298. $name = isset($request['name']) ? $request['name'] : '';
  299. $idNo = isset($request['idNo']) ? $request['idNo'] : '';
  300. $isSendMail = isset($request['isSendMail']) ? $request['isSendMail'] : '';
  301. $isSendSms = isset($request['isSendSms']) ? $request['isSendSms'] : '';
  302. $address = isset($request['address']) ? $request['address'] : '';
  303. $groupSn = isset($request['group_sn']) ? $request['group_sn'] : '';
  304. $open = Open::findOne(['id' => $openId]);
  305. if (empty($username) || empty($password) || empty($name) || empty($idNo)) {
  306. return $this->outJson(0, [], '请填写完整表单');
  307. }
  308. if (!(new IdcardValidatorHelper())->checkIdCard($idNo)) {
  309. // return $this->outJson(0, [], '身份证号码格式错误');
  310. }
  311. $rid = $open->rid;
  312. if ($rid) {
  313. $membereInfo = Member::findByLogin($rid);
  314. if (!$membereInfo) {
  315. return $this->outJson(0, [], '上级代理不存在');
  316. }
  317. }
  318. $member = new Member();
  319. $m = $member->findByUserName($username, null);
  320. if ($m != null) {
  321. return $this->outJson(0, [], '邮箱已经存在');
  322. }
  323. $member->type = 1;
  324. $member->logins = (string)$open->mt4_login;
  325. $member->username = strtolower($username);
  326. $member->password = md5($password);
  327. $member->name = $name;
  328. $member->id_no = $idNo;
  329. $ie = new IdCardInfoExtractorHelper($idNo);
  330. $member->birthday = $ie->getBirthday();
  331. $member->group_sn = ($groupSn) ? $groupSn : $membereInfo['group_sn'];
  332. if (($ie->getGender()) == "男") {
  333. $member->gender = 1;
  334. } else {
  335. $member->gender = 2;
  336. }
  337. if (empty($address)) {
  338. $member->address = $ie->getProvince();
  339. } else {
  340. $member->address = $address;
  341. }
  342. $member->in_time = DateTimeHelper::microtime_float();
  343. //开启事务
  344. $tr = Member::getDb()->beginTransaction();
  345. try {
  346. if (!$member->save()) {
  347. throw new \Exception($member->getErrors());
  348. }
  349. //更新开户信息
  350. $ret = Open::updateAll(['member_id' =>$member->id, 'type' => 2 ], "id={$open->id}");
  351. if(!$ret) {
  352. throw new \Exception($open->getErrors());
  353. }
  354. //保存直客信息
  355. if ($rid) {
  356. $membereInfo = Member::findByLogin($rid);
  357. $userMebere = new UserMember();
  358. $userMebere->login = $open->mt4_login;
  359. $userMebere->member_id = $membereInfo['id'];
  360. $userMebere->name = $membereInfo['name'];
  361. $userMebere->in_time = DateTimeHelper::microtime_float();
  362. if (!$userMebere->save()) {
  363. throw new \Exception($userMebere->getErrors());
  364. }
  365. }
  366. //提交事务
  367. $tr->commit();
  368. } catch (\Exception $e) {
  369. //回滚
  370. $tr->rollBack();
  371. return $this->outJson(0, [], $e->getMessage());
  372. }
  373. $config = Config::findOne(1);
  374. $paramArray = [
  375. 'email' => $username,
  376. 'name' => $name,
  377. 'mt4Login' => $open->mt4_login,
  378. 'mt4LoginPwd' => $open->mt4_login_pwd,
  379. 'mt4ViewPwd' => $open->mt4_view_pwd,
  380. 'xTradePwd' => $password,
  381. ];
  382. if (!empty($isSendMail)) {
  383. // 发送邮件
  384. MailHelper::sendMail("恭喜您,您的账户已成功开通", $username, $paramArray, '', $config->mail_open);
  385. }else{
  386. //不即时发送邮件,生成邮件记录,事后补发
  387. $mailRecord = new MailRecord();
  388. $mailRecord->content = $this->replaceVariable($config->mail_open,$paramArray);
  389. $mailRecord->receiver = $username;
  390. $mailRecord->status = 0;
  391. $mailRecord->subject = "恭喜您,您的账户已成功开通";
  392. $mailRecord->in_time = DateTimeHelper::microtime_float();
  393. $mailRecord->mail_num = 0;
  394. $mailRecord->save();
  395. }
  396. return $this->outJson(1, $member, '操作成功');
  397. }
  398. /**
  399. * 将模板中的变量替换为入参
  400. * @param $content string
  401. * @param $paramArray array
  402. * @return string
  403. */
  404. private function replaceVariable($content, $paramArray)
  405. {
  406. if (!empty($content) && !empty($paramArray)) {
  407. foreach ($paramArray as $key => $value) {
  408. $variable='${'.$key.'}';
  409. $variable1 = '#{'.$key.'}';
  410. $variable2 = '#'.$key.'#';
  411. if (is_null($value)) {
  412. continue;
  413. }
  414. while (strpos($content, $variable, 0) > -1) {
  415. $content = str_replace($variable, $value, $content);
  416. }
  417. while (strpos($content, $variable1, 0) > -1) {
  418. $content = str_replace($variable1, $value, $content);
  419. }
  420. while (strpos($content, $variable2, 0) > -1) {
  421. $content = str_replace($variable2, $value, $content);
  422. }
  423. }
  424. }
  425. return $content;
  426. }
  427. /**
  428. * 加入xbroker账户
  429. * @return \yii\web\Response
  430. */
  431. public function actionOpenIbMember()
  432. {
  433. $request = \Yii::$app->getRequest()->post();
  434. $openId = isset($request['openId']) ? (int)$request['openId'] : '';
  435. $ibOldLoginName = isset($request['ib_old_login_name']) ? $request['ib_old_login_name'] : '';
  436. $logins = isset($request['logins']) ? $request['logins'] : '';
  437. $username = isset($request['username']) ? $request['username'] : '';
  438. $password = isset($request['password']) ? $request['password'] : '';
  439. $name = isset($request['name']) ? $request['name'] : '';
  440. $idNo = isset($request['idNo']) ? $request['idNo'] : '';
  441. $ref_id = isset($request['ref_id']) ? $request['ref_id'] : '';
  442. $address = isset($request['address']) ? $request['address'] : '';
  443. $bankName = isset($request['bank_name']) ? $request['bank_name'] : '';
  444. $bankProvince = isset($request['bank_province']) ? $request['bank_province'] : '';
  445. $bankCity = isset($request['bank_city']) ? $request['bank_city'] : '';
  446. $bankDistrict = isset($request['bank_district']) ? $request['bank_district'] : '';
  447. $bankBranch = isset($request['bank_branch']) ? $request['bank_branch'] : '';
  448. $bankCardNo = isset($request['bank_card_no']) ? $request['bank_card_no'] : '';
  449. $collectName = isset($request['collect_name']) ? $request['collect_name'] : '';
  450. $bankSwiftCode = isset($request['bank_swift_code']) ? $request['bank_swift_code'] : '';
  451. $isSendMail = isset($request['isSendMail']) ? $request['isSendMail'] : '';
  452. $groupSn = isset($request['group_sn']) ? $request['group_sn'] : '';
  453. $open = Open::findOne(['id' => $openId]);
  454. if (empty($logins) || empty($ibOldLoginName) || empty($username) || empty($password) || empty($name) || empty($idNo) || empty($ref_id)) {
  455. return $this->outJson(0, [], '请填写完整表单');
  456. }
  457. if (!(new IdcardValidatorHelper())->checkIdCard($idNo)) {
  458. //return $this->outJson(0, [], '身份证号码格式错误');
  459. }
  460. $member = new Member();
  461. $m = $member->findByUserName($username, null);
  462. if ($m != null) {
  463. return $this->outJson(0, [], '邮箱已经存在');
  464. }
  465. $ref = Member::find()->where(['id' => $ref_id])->limit(1)->asArray()->one();
  466. $member->type = 2;
  467. $member->logins = (string)$logins;
  468. $member->username = strtolower($username);
  469. $member->password = md5($password);
  470. $member->name = $name;
  471. $member->id_no = $idNo;
  472. $member->ref_id = $ref_id;
  473. $member->ref_path = $ref['ref_path'] . $ref_id . ',';
  474. $member->ib_old_login_name = $ibOldLoginName;
  475. $ie = new IdCardInfoExtractorHelper($idNo);
  476. $member->birthday = $ie->getBirthday();
  477. $member->group_sn = ($groupSn) ? $groupSn : $ref['group_sn'];
  478. if (($ie->getGender()) == "男") {
  479. $member->gender = 1;
  480. } else {
  481. $member->gender = 2;
  482. }
  483. if (empty($address)) {
  484. $member->address = $ie->getProvince();
  485. } else {
  486. $member->address = $address;
  487. }
  488. $member->in_time = DateTimeHelper::microtime_float();
  489. //开启事务
  490. $tr = Member::getDb()->beginTransaction();
  491. try {
  492. if (!$member->save()){
  493. throw new \Exception($member->getErrors());
  494. }
  495. //更新开户信息
  496. $ret = Open::updateAll(['member_id' =>$member->id, 'type' => 2 ], "id={$open->id}");
  497. if(!$ret) {
  498. throw new \Exception($open->getErrors());
  499. }
  500. //保存代理信息
  501. if ($open->rid) {
  502. $membereInfo = Member::findByLogin($open->rid);
  503. $userMebere = new UserMember();
  504. $userMebere->login = $open->mt4_login;
  505. $userMebere->member_id = $membereInfo['id'];
  506. $userMebere->name = $membereInfo['name'];
  507. $userMebere->in_time = DateTimeHelper::microtime_float();
  508. if (!$userMebere->save()) {
  509. throw new \Exception($userMebere->getErrors());
  510. }
  511. }
  512. // 代理商-member-银行卡信息
  513. if ($bankName && $bankBranch && $collectName) {
  514. $memberBank = new MemberBankInfo();
  515. $memberBank->member_id = 82950;
  516. $memberBank->is_enable = 1;
  517. $memberBank->bank_name = $bankName;
  518. $memberBank->bank_branch = $bankBranch;
  519. $memberBank->bank_swift_code = $bankSwiftCode;
  520. $memberBank->bank_card_no = $bankCardNo;
  521. $memberBank->bank_province = $bankProvince;
  522. $memberBank->bank_city = $bankCity;
  523. $memberBank->bank_district = $bankDistrict;
  524. $memberBank->name = $collectName;
  525. $memberBank->create_time = DateTimeHelper::microtime_float();
  526. if (!$memberBank->save()) {
  527. throw new \Exception($memberBank->getErrors());
  528. }
  529. }
  530. //提交事务
  531. $tr->commit();
  532. } catch (\Exception $e) {
  533. //回滚
  534. $tr->rollBack();
  535. return $this->outJson(0, [], $e->getMessage());
  536. }
  537. $config = Config::findOne(1);
  538. if (!empty($isSendMail)) {
  539. $paramArray = [
  540. 'email' => $username,
  541. 'name' => $name,
  542. 'mt4Login' => $open->mt4_login,
  543. 'mt4LoginPwd' => $open->mt4_login_pwd,
  544. 'mt4ViewPwd' => $open->mt4_view_pwd,
  545. 'xBrokerPwd' => $password,
  546. 'login' => $logins,
  547. 'id' => $member->id,
  548. ];
  549. // 发送邮件
  550. MailHelper::sendMail("代理商".$name." X Broker后台开设成功通知", $username, $paramArray, '', $config->mail_ib_open);
  551. }
  552. return $this->outJson(1, $member, '操作成功');
  553. }
  554. public function actionUpdateOpen()
  555. {
  556. $request = \Yii::$app->getRequest()->post();
  557. $openId = isset($request['openId']) ? (int)$request['openId'] : '';
  558. $login = $request['login'] ? (int)$request['login'] : null;
  559. $mt4LoginPwd = isset($request['mt4LoginPwd']) ? $request['mt4LoginPwd'] : '';
  560. $mt4ViewPwd = isset($request['mt4ViewPwd']) ? $request['mt4ViewPwd'] : '';
  561. $open = Open::findOne(['id' => $openId]);
  562. if ($open->mt4_login != null) {
  563. return $this->outJson(0, [], '已开户,请刷新当前页');
  564. }
  565. $open->mt4_login = $login;
  566. $open->mt4_login_pwd = $mt4LoginPwd;
  567. $open->mt4_view_pwd = $mt4ViewPwd;
  568. $open->save();
  569. $this->outJson(1, ['id' => $openId], '提交成功');
  570. }
  571. /**
  572. * 银行code和银行名称的对应
  573. * @param $bank_code
  574. * @return string
  575. */
  576. protected function bankNameByBankCode($bank_code)
  577. {
  578. $bank_name = '';
  579. switch ($bank_code) {
  580. case '102':
  581. $bank_name = '工商银行';
  582. break;
  583. case '103':
  584. $bank_name = '农业银行';
  585. break;
  586. case '104':
  587. $bank_name = '中国银行';
  588. break;
  589. case '105':
  590. $bank_name = '建设银行';
  591. break;
  592. case '308':
  593. $bank_name = '招商银行';
  594. break;
  595. case '301':
  596. $bank_name = '交通银行';
  597. break;
  598. case '305':
  599. $bank_name = '民生银行';
  600. break;
  601. case '302':
  602. $bank_name = '中信银行';
  603. break;
  604. case '303':
  605. $bank_name = '光大银行';
  606. break;
  607. case '309':
  608. $bank_name = '兴业银行';
  609. break;
  610. case '4031000':
  611. $bank_name = '北京银行';
  612. break;
  613. case '306':
  614. $bank_name = '广发银行';
  615. break;
  616. case '304':
  617. $bank_name = '华夏银行';
  618. break;
  619. case '403':
  620. $bank_name = '邮储银行';
  621. break;
  622. case '310':
  623. $bank_name = '浦发银行';
  624. break;
  625. case '4105840':
  626. $bank_name = '平安银行';
  627. break;
  628. case '4012900':
  629. $bank_name = '上海银行';
  630. break;
  631. case '4233310':
  632. $bank_name = '杭州银行';
  633. break;
  634. case '316':
  635. $bank_name = '浙商银行';
  636. break;
  637. case '4504520':
  638. $bank_name = '青岛银行';
  639. break;
  640. case '4083320':
  641. $bank_name = '宁波银行';
  642. break;
  643. case '4341100':
  644. $bank_name = '天津银行';
  645. break;
  646. case '4478210':
  647. $bank_name = '兰州银行';
  648. break;
  649. case '4243010':
  650. $bank_name = '南京银行';
  651. break;
  652. case '4296510':
  653. $bank_name = '成都银行';
  654. break;
  655. case '322':
  656. $bank_name = '上海农商银行';
  657. break;
  658. case '4021000':
  659. $bank_name = '北京农村商业银行';
  660. break;
  661. }
  662. return $bank_name;
  663. }
  664. }