DefaultController.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. namespace addons\HuijuBill\backend\controllers;
  3. use addons\HuijuBill\common\service\BillService;
  4. use Yii;
  5. use common\controllers\AddonsController;
  6. use common\enums\AddonsEnum;
  7. use yii\helpers\Json;
  8. /**
  9. * 默认控制器
  10. *
  11. * Class DefaultController
  12. * @package addons\HuijuBill\backend\controllers
  13. */
  14. class DefaultController extends BaseController
  15. {
  16. public $enableCsrfValidation = false;
  17. /**
  18. * 首页
  19. *
  20. * @return void
  21. */
  22. public function actionIndex()
  23. {
  24. if ($this->request->isAjax) {
  25. $data = Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_HUIJU_BILL, 'basic');
  26. $data && $data['huijubill_trade_channel'] = Json::decode($data['huijubill_trade_channel']);
  27. return $this->success('ok', ['settings' => $data]);
  28. }
  29. return $this->render('index');
  30. }
  31. /**
  32. * 表单提交
  33. *
  34. * @return void
  35. */
  36. public function actionSubmit()
  37. {
  38. if ($this->request->isAjax) {
  39. // post
  40. $post = $this->request->post();
  41. $res = Yii::$app->services->validate->validate($post, [
  42. [
  43. [
  44. 'huijubill_merchant_no',
  45. 'huijubill_status',
  46. 'huijubill_trade_channel',
  47. 'huijubill_wechat_trade_name',
  48. 'huijubill_mp_wx_open',
  49. 'huijubill_wechat_open',
  50. 'huijubill_wechat_h5_open',
  51. 'huijubill_alipay_trade_name',
  52. 'huijubill_alipay_h5_open',
  53. 'huijubill_fastpay_trade_name',
  54. ],
  55. 'required'
  56. ],
  57. ]);
  58. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  59. // 写入配置
  60. $configs['basic'] = $post;
  61. Yii::$app->services->setting->addons->set($this->mall_id, AddonsEnum::ADDONS_NAME_HUIJU_BILL, $configs);
  62. // 支付配置同时写入商城配置
  63. $huijubill_configs = [
  64. 'status' => $post['huijubill_status'],
  65. 'merchant_no' => $post['huijubill_merchant_no'],
  66. // 'wechat_app_id' => $post['wechat_app_id'],
  67. ];
  68. $data = [
  69. 'pay' => [
  70. 'huiju_bill' => Json::encode($huijubill_configs),
  71. ],
  72. ];
  73. Yii::$app->services->setting->mall->set($this->mall_id, $data);
  74. return $this->success('ok');
  75. }
  76. }
  77. /**
  78. * 商户信息
  79. *
  80. * @return void
  81. */
  82. public function actionInfo()
  83. {
  84. if ($this->request->isAjax) {
  85. $service = new BillService(['mall_id' => $this->mall_id]);
  86. //fix 数字太长,json解析后格式问题
  87. $data = $service->getInfo();
  88. $data = array_map(function($v){ return ''.$v.' '; },$data);
  89. return $this->success('ok', $data);
  90. }
  91. }
  92. /**
  93. * 获取签约内容
  94. *
  95. * @return void
  96. */
  97. public function actionSignContent()
  98. {
  99. if ($this->request->isAjax) {
  100. // 未签约
  101. if (
  102. !Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_HUIJU_BILL, 'basic.sign_status'
  103. )) {
  104. $service = new BillService(['mall_id' => $this->mall_id]);
  105. return $this->success('ok', $service->getSignContent());
  106. }
  107. return $this->success('ok', '');
  108. }
  109. }
  110. /**
  111. * 执行签约
  112. *
  113. * @return void
  114. */
  115. public function actionConfirmSign()
  116. {
  117. if ($this->request->isAjax) {
  118. $service = new BillService(['mall_id' => $this->mall_id]);
  119. return $service->confirmSign() ? $this->success('ok') : $this->error($service->error);
  120. }
  121. }
  122. }