PondController.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace app\modules\client\controllers\v1;
  3. use app\librarys\Picqer\Barcode\BarcodeGeneratorJPG;
  4. use app\models\Level;
  5. use app\models\User;
  6. use app\modules\client\controllers\BaseController;
  7. use app\modules\client\models\v1\pond\PondForm;
  8. use app\modules\client\models\v1\pond\PondLogForm;
  9. use app\utils\QrCode;
  10. use app\utils\ShareQrcode;
  11. class PondController extends BaseController
  12. {
  13. public function behaviors()
  14. {
  15. return parent::behaviors();
  16. }
  17. //奖品列表
  18. public function actionIndex()
  19. {
  20. $form = new PondForm();
  21. $form->attributes = get_params();
  22. $form->store_id = get_store_id();
  23. $form->user_id = get_user_id();
  24. return $this->asJson($form->index());
  25. }
  26. //立即抽奖
  27. public function actionLottery()
  28. {
  29. $form = new PondForm();
  30. $form->attributes = get_params();
  31. $form->store_id = get_store_id();
  32. $form->user_id = get_user_id();
  33. $data = $form->lottery();
  34. return $this->asJson($data);
  35. }
  36. //中奖记录
  37. public function actionPrize()
  38. {
  39. $form = new PondLogForm();
  40. $form->page = get_params('page');
  41. $form->limit = 10;
  42. $form->store_id = get_store_id();
  43. $form->user_id = get_user_id();
  44. return $this->asJson($form->search());
  45. }
  46. public function actionDel()
  47. {
  48. $form = new PondLogForm();
  49. $form->id = get_params('id');
  50. $form->store_id = get_store_id();
  51. $form->user_id = get_user_id();
  52. return $this->asJson($form->del());
  53. }
  54. //海报
  55. public function actionQrcode() {
  56. $saas_user_id = get_saas_user_id();
  57. $scene = "{$saas_user_id}";
  58. if (is_wechat_platform()) {
  59. $res = ShareQrcode::wxQrcode('md_admin/md-center/self-mention', $scene);
  60. if (isset($res['code']) && $res['code'] == 1) {
  61. return $this->asJson([
  62. 'code' => 1,
  63. 'msg' => $res['response']['errmsg'],
  64. ]);
  65. }
  66. } elseif (is_alipay_platform()) {
  67. $res = ShareQrcode::getAlipayQrcode('md_admin/md-center/self-mention', $scene);
  68. if (empty($res['code']) || $res['code'] != 10000) {
  69. return $this->asJson($res);
  70. }
  71. $res['url_path'] = $res['qr_code_url_circle_blue'];
  72. } else {
  73. $file_name = md5('md_admin/md-center/self-mention' . $scene.get_store_id());
  74. // 保存小程序码到文件
  75. $dir = \Yii::$app->runtimePath . '/image/wx_qrcode';
  76. if (! is_dir($dir)) {
  77. mkdir($dir, 0777, true);
  78. }
  79. $url = str_replace('http://', 'https://', \Yii::$app->request->hostInfo . '/runtime/image/wx_qrcode/' . $file_name);
  80. QrCode::image(\Yii::$app->request->hostInfo . '/h5/#/md_admin/md-center/self-mention', 600, false, 'L', 'JPEG', 0, ['255,255,255', '0,0,0'], 1, false, $dir. '/' .$file_name . '.jpg');
  81. $res = [
  82. 'code' => 0,
  83. 'root_path' => $dir . '/' . $file_name . '.jpg',
  84. 'url_path' => $url . '.jpg',
  85. ];
  86. }
  87. $level = User::findOne(get_user_id())->level;
  88. $level_name = Level::findOne(['level' => $level])->name;
  89. $id = sprintf("%011d", get_user_id());
  90. $generator = new BarcodeGeneratorJPG();
  91. $barcode = $generator->getBarcode($id, $generator::TYPE_CODE_128, 2, 30);
  92. $filename = md5('user_clerk_' . $id);
  93. $code_path = \Yii::$app->runtimePath . '/image/' . $filename . '.jpg';
  94. $pic_url = str_replace('http://', 'https://', \Yii::$app->request->hostInfo . '/runtime/image/' . $filename . '.jpg');
  95. file_put_contents($code_path, $barcode);
  96. // $barcode = base64_encode($barcode);
  97. return $this->asJson([
  98. 'code' => 0,
  99. 'data' => [
  100. 'qr_url' => $res['url_path'],
  101. 'name' => get_saas_user()->name,
  102. 'avatar' => get_saas_user()->avatar,
  103. 'level_name' => $level_name ?: '普通用户',
  104. 'code_path' => $pic_url
  105. ]
  106. ]);
  107. }
  108. }