MaterialController.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <?php
  2. /**
  3. * MaterialController.php
  4. * todo 文件描述
  5. * Created on 2025/1/11 上午10:48
  6. * @author: hankaige
  7. */
  8. namespace app\modules\admin\controllers;
  9. use app\models\Color;
  10. use app\models\Qrcode;
  11. use app\modules\admin\models\material\CategoryForm;
  12. use app\modules\admin\models\material\MaterialForm;
  13. use app\modules\admin\models\QrcodeForm;
  14. use yii\helpers\Json;
  15. class MaterialController extends BaseController
  16. {
  17. public function actionMaterialCategoryList()
  18. {
  19. $form = new CategoryForm();
  20. $form->scenario = $form::SCENE_LIST;
  21. $form->store_id = get_store_id();
  22. $form->attributes = get_params();
  23. return $this->asJson($form->getList());
  24. }
  25. public function actionMaterialCategoryEdit()
  26. {
  27. $form = new CategoryForm();
  28. $form->scenario = $form::SCENE_EDIT;
  29. $form->store_id = get_store_id();
  30. $form->attributes = post_params();
  31. return $this->asJson($form->postEdit());
  32. }
  33. public function actionMaterialCategoryDelete()
  34. {
  35. $form = new CategoryForm();
  36. $form->scenario = $form::SCENE_DELETE;
  37. $form->store_id = get_store_id();
  38. $form->attributes = post_params();
  39. return $this->asJson($form->postDelete());
  40. }
  41. public function actionMaterialCategoryStatus()
  42. {
  43. $form = new CategoryForm();
  44. $form->scenario = $form::SCENE_STATUS;
  45. $form->store_id = get_store_id();
  46. $form->attributes = post_params();
  47. return $this->asJson($form->postStatus());
  48. }
  49. public function actionMaterialCategoryListNoPage()
  50. {
  51. $form = new CategoryForm();
  52. $form->store_id = get_store_id();
  53. $form->attributes = get_params();
  54. return $this->asJson($form->getListNoPage());
  55. }
  56. public function actionMaterialList()
  57. {
  58. $form = new MaterialForm();
  59. $form->scenario = $form::SCENE_LIST;
  60. $form->store_id = get_store_id();
  61. $form->attributes = get_params();
  62. return $this->asJson($form->getList());
  63. }
  64. public function actionMaterialEdit()
  65. {
  66. $form = new MaterialForm();
  67. $form->scenario = $form::SCENE_EDIT;
  68. $form->store_id = get_store_id();
  69. $form->attributes = post_params();
  70. return $this->asJson($form->postEdit());
  71. }
  72. public function actionMaterialDelete()
  73. {
  74. $form = new MaterialForm();
  75. $form->scenario = $form::SCENE_DELETE;
  76. $form->store_id = get_store_id();
  77. $form->attributes = post_params();
  78. return $this->asJson($form->postDelete());
  79. }
  80. public function actionMaterialStatus()
  81. {
  82. $form = new MaterialForm();
  83. $form->scenario = $form::SCENE_STATUS;
  84. $form->store_id = get_store_id();
  85. $form->attributes = post_params();
  86. return $this->asJson($form->postStatus());
  87. }
  88. public function actionMaterialTop()
  89. {
  90. $form = new MaterialForm();
  91. $form->scenario = $form::SCENE_STATUS;
  92. $form->store_id = get_store_id();
  93. $form->attributes = post_params();
  94. return $this->asJson($form->postTop());
  95. }
  96. public function actionGetQrcodeSetting()
  97. {
  98. //兼容联盟
  99. $is_saas = get_params('is_saas', 0);
  100. if ($is_saas) {
  101. $store_id = -1;
  102. } else {
  103. $store_id = get_store_id();
  104. }
  105. $qrcode = Qrcode::findOne(['store_id' => $store_id, 'is_delete' => 0, 'type' => Qrcode::TYPE_MATERIAL]);
  106. // \Yii::error($qrcode->font);
  107. $color = Color::find()->select('id, color')->andWhere(['is_delete' => 0])->asArray()->all();
  108. $font_position = json_decode($qrcode->font_position, TRUE);
  109. $qrcode_position = json_decode($qrcode->qrcode_position, TRUE);
  110. $avatar_position = json_decode($qrcode->avatar_position, TRUE);
  111. $avatar_size = json_decode($qrcode->avatar_size, TRUE);
  112. $qrcode_size = json_decode($qrcode->qrcode_size, TRUE);
  113. $font_size = json_decode($qrcode->font, TRUE);
  114. // \Yii::error($font_size);
  115. $first = Color::findOne(['color' => $font_size['color']]);
  116. $res = [
  117. 'qrcode_bg' => $qrcode->qrcode_bg ?: \Yii::$app->request->hostInfo . \Yii::$app->request->baseUrl . '/web/v1/statics/images/2_1.png',
  118. 'qrcode_pic' => \Yii::$app->request->hostInfo . \Yii::$app->request->baseUrl . '/web/v1/statics/images/1.png',
  119. 'avatar' => \Yii::$app->request->hostInfo . \Yii::$app->request->baseUrl . '/web/v1/statics/images/avatar.png',
  120. 'qrcode' => $qrcode,
  121. 'color' => $color,
  122. 'first' => $first->id,
  123. 'font_c' => Json::decode($qrcode->font, TRUE)['color'] ? Json::decode($qrcode->font, TRUE)['color'] : ($first->color ?: "#000"),
  124. 'avatar_w' => $avatar_size['w'] ?: '63',
  125. 'avatar_x' => $avatar_position['x'] ?: '50',
  126. 'avatar_y' => $avatar_position['y'] ?: '160',
  127. 'qrcode_w' => $qrcode_size['w'] ?: '169',
  128. 'qrcode_c' => empty($qrcode_size['c']) ? 1 : (($qrcode_size['c'] == "true") ? 1 : 0),
  129. 'qrcode_x' => $qrcode_position['x'] ?: '65',
  130. 'qrcode_y' => $qrcode_position['y'] ?: '240',
  131. 'font_x' => $font_position['x'] ?: '124',
  132. 'font_y' => $font_position['y'] ?: '180',
  133. 'font_w' => $font_size['size'] ?: '20',
  134. ];
  135. return $this->asJson(['code' => 0, 'msg' => 'success', 'data' => $res]);
  136. }
  137. public function actionQrcode()
  138. {
  139. $store_id = get_store_id();
  140. //兼容联盟
  141. $is_saas = post_params('is_saas', 0);
  142. if ($is_saas) {
  143. $store_id = -1;
  144. }
  145. $qrcode = Qrcode::findOne(['store_id' => $store_id, 'is_delete' => 0, 'type' => Qrcode::TYPE_MATERIAL]);
  146. if (!$qrcode) {
  147. $qrcode = new Qrcode();
  148. }
  149. $form = new QrcodeForm();
  150. $form->attributes = post_params();
  151. $form->store_id = $store_id;
  152. $form->qrcode = $qrcode;
  153. $form->type = Qrcode::TYPE_MATERIAL;
  154. return $this->asJson($form->save());
  155. }
  156. //基础设置
  157. public function actionMaterialSetting()
  158. {
  159. $form = new MaterialForm();
  160. $form->scenario = $form::SCENE_SETTING;
  161. $form->store_id = get_store_id();
  162. $form->attributes = post_params();
  163. return $this->asJson($form->materialSetting());
  164. }
  165. }