TestController.php 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. <?php
  2. namespace addons\QiDingDong\console\controllers;
  3. use addons\QiDingDong\common\enums\QiDingDongEnums;
  4. use addons\QiDingDong\common\expand\sdk\qidingdong\src\model\BrandModel;
  5. use addons\QiDingDong\common\expand\sdk\qidingdong\src\model\ContentBaseModel;
  6. use addons\QiDingDong\common\expand\sdk\qidingdong\src\model\ContentModel;
  7. use addons\QiDingDong\common\expand\sdk\qidingdong\src\model\ContentValueModel;
  8. use addons\QiDingDong\common\expand\sdk\qidingdong\src\model\RefundUploadResourceModel;
  9. use addons\QiDingDong\common\expand\sdk\qidingdong\src\model\RegionModel;
  10. use addons\QiDingDong\common\expand\sdk\qidingdong\src\request\BrandRequest;
  11. use addons\QiDingDong\common\expand\sdk\qidingdong\src\request\RefundUploadResourceRequest;
  12. use addons\QiDingDong\common\expand\sdk\qidingdong\src\request\RegionRequest;
  13. use addons\QiDingDong\common\helper\AesHelper;
  14. use addons\QiDingDong\common\helper\RequestHelper;
  15. use addons\QiDingDong\common\helper\RsaHelper;
  16. use addons\QiDingDong\common\listeners\OrderPaidListener;
  17. use addons\QiDingDong\common\listeners\OrderRefundFinishListener;
  18. use addons\QiDingDong\common\listeners\OrderRefundListener;
  19. use addons\QiDingDong\common\models\QiDingDongEvent;
  20. use addons\QiDingDong\common\models\QiDingDongRegion;
  21. use common\enums\StatusEnum;
  22. use common\models\common\Region;
  23. use GuzzleHttp\Exception\GuzzleException;
  24. use yii\console\Controller;
  25. use yii\helpers\Json;
  26. class TestController extends Controller
  27. {
  28. public function actionReq()
  29. {
  30. try {
  31. var_dump(bcmul(bcmul(bcmul(8, 150, 2), 0.01, 2), 0.01, 2));
  32. $req = new BrandRequest([]);
  33. $cParams = new ContentModel();
  34. $time = intval(microtime(true) * 1000);
  35. $cParams->app_key = "2038633d-f9b6-c0e0-62b9-63c9afb58d61";
  36. $cParams->time = $time;
  37. $cParams->lock = "";
  38. $params = new BrandModel();
  39. $params->page_size = 20;
  40. $params->page = 1;
  41. $base = new ContentBaseModel();
  42. $base->equipment = "";
  43. $base->time = $time;
  44. $base->source = 99;
  45. $base->version = "v3.2.1";
  46. $base->token = "94FFFD91A670A91A0CB0998BBB2B5E5C";
  47. $content = new ContentValueModel();
  48. $content->data = $params;
  49. $content->base = $base;
  50. $json = Json::encode($content->toArray());
  51. var_dump($json);
  52. $encrypt = AesHelper::encrypt($json);
  53. RsaHelper::publicKey("/data/project/qimall/qdd_public.key");
  54. $cParams->lock = RsaHelper::publicEncrypt($encrypt[1]);
  55. $cParams->content = $encrypt[0];
  56. var_dump($cParams->toArray());
  57. $resp = $req->send($cParams);
  58. $res = $resp->toArray();
  59. var_dump($res);
  60. $lock = RsaHelper::publicDecrypt($res['lock']);
  61. $content = AesHelper::decrypt($res['content'], $lock);
  62. var_dump($lock);
  63. var_dump($content);
  64. } catch (\Exception $e) {
  65. var_dump(1, $e->getMessage(), $e->getFile(), $e->getLine());
  66. } catch (GuzzleException $e) {
  67. var_dump(2, $e->getMessage());
  68. }
  69. }
  70. public function actionOrder()
  71. {
  72. (new OrderPaidListener())->async_handle(['id' => 13025]);
  73. // (new OrderRefundListener())->async_handle(['id' => 441]);
  74. // (new OrderRefundFinishListener())->handleSync(['id' => 436]);
  75. }
  76. public function actionRegion()
  77. {
  78. $provinces = $this->region(0);
  79. $inserts = [];
  80. foreach ($provinces as $province) {
  81. $citys = $this->region($province['region_id']);
  82. $inserts[] = [
  83. 'name' => $province['region_name'],
  84. 'level' => 1,
  85. 'id' => $province['region_id'],
  86. 'province_id' => 0,
  87. 'province' => "",
  88. 'city_id' => 0,
  89. 'city' => "",
  90. 'region'=> $province['region_name'],
  91. 'created_at' => time(),
  92. 'updated_at' => time(),
  93. ];
  94. foreach ($citys as $city) {
  95. $districts = $this->region($city['region_id']);
  96. $inserts[] = [
  97. 'name' => $city['region_name'],
  98. 'level' => 2,
  99. 'id' => $city['region_id'],
  100. 'province_id' => $province['region_id'],
  101. 'province' => $province['region_name'],
  102. 'city_id' => 0,
  103. 'city' => "",
  104. 'region'=> "{$province['region_name']} {$city['region_name']}",
  105. 'created_at' => time(),
  106. 'updated_at' => time(),
  107. ];
  108. foreach ($districts as $district) {
  109. $inserts[] = [
  110. 'name' => $district['region_name'],
  111. 'level' => 3,
  112. 'id' => $district['region_id'],
  113. 'province_id' => $province['region_id'],
  114. 'province' => $province['region_name'],
  115. 'city_id' => $city['region_id'],
  116. 'city' => $city['region_name'],
  117. 'region'=> "{$province['region_name']} {$city['region_name']} {$district['region_name']}",
  118. 'created_at' => time(),
  119. 'updated_at' => time(),
  120. ];
  121. }
  122. }
  123. }
  124. $cnt = 10;
  125. $iArr = array_chunk($inserts, $cnt);
  126. foreach ($iArr as $item) {
  127. QiDingDongRegion::find()->createCommand()->batchInsert(QiDingDongRegion::tableName(), array_keys($item[0]), $item)->execute();
  128. }
  129. }
  130. protected function region(int $parent_id)
  131. {
  132. // 获取配送方式
  133. $mall_id = 1;
  134. $contentModel = RequestHelper::contentModelInstance($mall_id);
  135. $contentModel->content->data = new RegionModel();
  136. // $contentModel->content->data = new RegionAllModel();
  137. $contentModel->content->data->device = QiDingDongEnums::REQUEST_PARAMS_DEVICE;
  138. $contentModel->content->data->parent_id = $parent_id;
  139. return RequestHelper::send(new RegionRequest(), RequestHelper::enCrypto($contentModel, $mall_id), $mall_id);
  140. }
  141. public function actionMap()
  142. {
  143. $level = 3;
  144. /**
  145. * @var $item QiDingDongRegion
  146. */
  147. foreach (QiDingDongRegion::find()->where(['local_id' => StatusEnum::DISABLED])->andWhere(['level' => $level])->each() as $item) {
  148. // $parent = QiShangTongRegion::findOne(['id' => $item->city_id]);
  149. // $parent = QiDingDongRegion::findOne(['id' => $item->province_id]);
  150. // if (in_array($item->province_id, [132, 151, 2370])) {
  151. // $parent = Region::findOne(['name' => $parent->name, 'level' => $level]);
  152. if ($level == 3) {
  153. $parent = QiDingDongRegion::findOne(['id' => $item->city_id]);
  154. $region = Region::findOne(['name' => $item->name, 'level' => $level, 'parent_id' => $parent->local_id]); // , 'parent_id' => $parent->id
  155. }
  156. // }
  157. // var_dump($parent->local_name, $parent->local_id, $item->name, !empty($region) ? $region->toArray() : []);
  158. // break;
  159. if (!empty($region)) {
  160. var_dump("============$item->name");
  161. $item->local_id = $region->id;
  162. $item->local_name = $region->name;
  163. if ($level == 2 && !empty($parent)) {
  164. // 记录省级
  165. $item->local_province_id = $parent->local_id;
  166. $item->local_province = $parent->local_province;
  167. } elseif ($level == 3 && !empty($parent)) {
  168. // 记录省级
  169. $item->local_province_id = $parent->local_province_id;
  170. $item->local_city_id = $parent->local_id;
  171. $item->local_province = $parent->local_province;
  172. $item->local_city = $parent->local_city;
  173. }
  174. $item->save();
  175. } else {
  176. var_dump("······$item->name");
  177. }
  178. }
  179. }
  180. public function actionUp()
  181. {
  182. $mall_id = 1;
  183. $image = 'https://img.lanyipp.com//images/2023/11/30/image_1701317607_BuQVUdKu.jpg';
  184. $iInfo = getimagesize($image);
  185. $iContentModel = RequestHelper::contentModelInstance($mall_id);
  186. $iContentModel->content->data = new RefundUploadResourceModel();
  187. $iContentModel->content->data->file = "data:{$iInfo['mime']};base64,".base64_encode(file_get_contents($image));
  188. $iContentModel->content->data->resource_type = StatusEnum::ENABLED; // 图片
  189. $iRes = RequestHelper::send(new RefundUploadResourceRequest(), RequestHelper::enCrypto($iContentModel, $mall_id), $mall_id);
  190. /**
  191. * array(2) {
  192. ["object"]=>
  193. string(36) "2023/12/05/20231205113728650250.jpeg"
  194. ["url"]=>
  195. string(31) "http://csstatics.7dingdong.com/"
  196. }
  197. */
  198. }
  199. public function actionDe()
  200. {
  201. var_dump(123);
  202. /**
  203. * @var $each QiDingDongEvent
  204. */
  205. foreach (QiDingDongEvent::find()->where(['like', 'content', '[]'])->each() as $each) {
  206. var_dump($each->id);
  207. $each->content = RequestHelper::decrypt($each->post, 1);
  208. $each->mall_id = 1;
  209. $each->save();
  210. }
  211. }
  212. }