2) { $rs[] = "{$item['province_name']}{$item['city_name']}{$item['county_name']}"; } else { $rs[] = "{$item['province_name']}{$item['city_name']}"; } } $body = file_get_contents('./req.json'); $body = Json::decode($body); $freight_template = $body['freight_template']; $all_freight_calc_method = $freight_template['all_freight_calc_method']; $freight_calc_method_list = $all_freight_calc_method['freight_calc_method_list']; foreach ($freight_calc_method_list as $item) { if (!empty($item['address_infos'])) { foreach ($item['address_infos'] as $address_info) { // var_dump($address_info); $addr = "{$address_info['province_name']}{$address_info['city_name']}"; if (count($address_info) > 2) { $addr .= $address_info['county_name']; } // if (!in_array($addr, $rs)) var_dump($address_info); } } else { var_dump($item); } } return; $config = \Yii::$app->services->setting->addons->get(162, WechatVideoShopEnums::ADDONS_NAME, 'basic'); $config = WechatVideoShop::findOne(['id' => $config['sharer_default_apply_shop_id']]); try { $req = new AddressCodeRequest($config->toArray()); $model = new AddressCodeModel(); $model->addr_code = 0; $country = WechatRequestHelper::accessTokenAndToArray($req, $model); $lists = []; foreach ($country['next_level_addrs'] as $next_level_addr) { $req = new AddressCodeRequest($config->toArray()); $model = new AddressCodeModel(); $model->addr_code = $next_level_addr['code']; $province_list = WechatRequestHelper::accessTokenAndToArray($req, $model); foreach ($province_list['next_level_addrs'] as $p_next_level_addr) { $req = new AddressCodeRequest($config->toArray()); $model = new AddressCodeModel(); $model->addr_code = $p_next_level_addr['code']; $city_list = WechatRequestHelper::accessTokenAndToArray($req, $model); foreach ($city_list['next_level_addrs'] as $c_next_level_addr) { // $req = new AddressCodeRequest($config->toArray()); // $model = new AddressCodeModel(); // $model->addr_code = $c_next_level_addr['code']; // $district_list = WechatRequestHelper::accessTokenAndToArray($req, $model); // foreach ($district_list['next_level_addrs'] as $d_next_level_addr) { if ($next_level_addr['name'] == $p_next_level_addr['name']) { $lists[] = [ 'province_name' => $next_level_addr['name'], 'city_name' => $c_next_level_addr['name'], ]; } else { $lists[] = [ 'province_name' => $next_level_addr['name'], 'city_name' => $p_next_level_addr['name'], 'county_name' => $c_next_level_addr['name'], ]; } // } } } } file_put_contents("./wx-region.json", Json::encode($lists)); } catch (\Exception $e) { var_dump($e->getMessage()); } return; // $crypto = new Crypto("xxxxx", base64_encode('xxxxxxxxxxxxxxxx')); // $ret = $crypto->en([1,2,3,4]); // var_dump($ret); // var_dump($crypto->de($ret['encrypt'], $ret['msg_signature'], $ret['nonce'], $ret['timestamp'])); // file_put_contents(\Yii::$app->basePath . "/cat.json", Json::encode($resp)); // var_dump($resp); // $resp = WechatRequestHelper::accessTokenAndToArray(new DeliveryCompanyListRequest($config), new EmptyModel()); // foreach ($resp['company_list'] as &$item) { // $item['created_at'] = time(); // $item['updated_at'] = time(); // } // WechatVideoShopExpressCompany::find()->createCommand()->batchInsert( // WechatVideoShopExpressCompany::tableName(), // array_keys($resp['company_list'][0]), $resp['company_list'])->execute(); // foreach (WechatVideoShopExpressCompany::find()->each() as $row) { // $row->company_id = Express::find()->where(['code' => $row->delivery_id])->select('id')->scalar(); // if (empty($row->company_id)) { // $row->company_id = 10000; // $row->save(); // } // } try { // (new GoodsService())->push(1, [ // 'goods_id' => 24, // 'attrs' => [ // '品牌' => '七件事', // '是否属于医疗器械' => '否', // '净含量' => '其他', // '功效' => '其他', // '保质期' => '1年', // '产地' => '中国大陆', // ], // 'cat_id' => 1003, // 'seven_day_return' => StatusEnum::ENABLED, // 'qualifications' => [], // 'brand_id' => '' // ]); // (new CateService())->create(1, ['level1' => 1001, 'level2' => 1002, 'level3' => 1005]); // (new ShopInfoService(1))->info(); // (new CateService())->detail(6091); // $this->mpRegion(); $this->noMpRegion(); // var_dump(\Yii::$app->services->setting->mall->get(1, "return_address")); // (new ShopService())->auth(['mall_id' => 1]); // (new OrderPaidListener())->async_handle(['id' => 50237]); // (new OrderDeliveryListener())->async_handle(['id' => 6073]); // SyncSharerLogic::sharer(); // (new GoodsUpdateListener())->async_handle(['mall_id' => 162, 'goods_id' => 1165]); // (new GoodsUpdateListener())->async_handle(['mall_id' => 162, 'goods_id' => 1133]); // (new OrderFinishListener())->async_handle(['id' => 8812]); // $cond_upgrade = new \addons\WechatVideoShop\common\logic\ConditionUpgradeLogic(); // $cond_upgrade->execute(\addons\WechatVideoShop\common\enums\WechatVideoShopEnums::ADDONS_NAME, // (new \addons\WechatVideoShop\common\models\WechatVideoShopSharer()), (new \addons\WechatVideoShop\common\models\WechatVideoShopLevel()), [ // 'id' => 0, // 'user_id' => 15022, // 'mall_id' => 1 // ]); } catch (\Exception $e) { var_dump($e->getFile(), $e->getLine(), $e->getMessage()); } } protected function noMpRegion() { $data = file_get_contents(\Yii::$app->basePath . "/no_city.json"); $data = Json::decode($data); $data = array_filter($data, function ($val) { return $val['p_id'] != 3272; }); // var_dump(count($data)); foreach ($data as $datum) { var_dump($datum); } } protected function mpRegion() { $provinces = Region::lists([ 'where' => [ ['level' => 1] ] ]); $not_mp = []; foreach ($provinces as $province) { $item = WechatVideoShopRegion::find()->where(['level' => 1]) ->andWhere(['name' => $province['name']]) ->one(); if (!empty($item)) { // 二级 $citys = Region::lists([ 'where' => [ ['level' => 2], ['parent_id' => $province['id']], ] ]); foreach ($citys as $city) { // var_dump("city: {$city['id']}"); $iCity = WechatVideoShopRegion::find() ->where(['level' => 2]) ->andWhere(['level_one_code' => $item->id]) ->andWhere(['name' => $city['name']]) ->one(); // 三级 if (!empty($iCity)) { $districts = Region::lists([ 'where' => [ ['level' => 3], ['parent_id' => $city['id']], ] ]); foreach ($districts as $district) { // var_dump("district: {$district['id']}"); $iDistrict = WechatVideoShopRegion::find() ->where(['level' => 3]) ->andWhere(['level_one_code' => $item->id]) ->andWhere(['level_two_code' => $iCity->id]) ->andWhere(['name' => $district['name']]) ->one(); if (!empty($iDistrict)) { $iDistrict->local_id = $district['id']; $iDistrict->local_name = $district['name']; $iDistrict->local_one_id = $province['id']; $iDistrict->local_one_name = $province['name']; $iDistrict->local_two_id = $city['id']; $iDistrict->local_two_name = $city['name']; $iDistrict->save(); } else { var_dump("地区: {$district['id']} -> {$district['name']}"); $not_mp[] = [ 'level' => 3, 'id' => $district['id'], 'name' => $district['name'], 'p_id' => $province['id'], 'p_name' => $province['name'], 'c_id' => $city['id'], 'c_name' => $city['name'], ]; } } $iCity->local_id = $city['id']; $iCity->local_name = $city['name']; $iCity->local_one_id = $province['id']; $iCity->local_one_name = $province['name']; $iCity->save(); } else { var_dump("城市: {$city['id']} -> {$city['name']}"); $not_mp[] = [ 'level' => 2, 'id' => $city['id'], 'name' => $city['name'], 'p_id' => $province['id'], 'p_name' => $province['name'], ]; } } // $item->local_id = $province['id']; // $item->local_name = $province['name']; // $item->save(); } // var_dump(!empty($item) ? $item->id : $province['name']); file_put_contents(\Yii::$app->basePath . "/no_city.json", Json::encode($not_mp)); } } protected function region(array $config) { $addressCodeModel = new AddressCodeModel(); $resp = WechatRequestHelper::accessTokenAndToArray(new AddressCodeRequest($config), $addressCodeModel); $next_key = 'next_level_addrs'; $inserts = []; if (!empty($resp)) { foreach ($resp[$next_key] as $item) { $addressCodeModel = new AddressCodeModel(); $addressCodeModel->addr_code = $item['code']; $resp1 = WechatRequestHelper::accessTokenAndToArray(new AddressCodeRequest($config), $addressCodeModel); if (!empty($resp1)) { foreach ($resp1[$next_key] as $item1) { // $model = new WechatVideoShopRegion(); // $model->id = $item1['code']; // $model->name = $item1['name']; // $model->level = $item1['level']; // $model->level_one_code = $item['code']; // $model->level_one_name = $item['name']; // $model->save(); $inserts[] = [ 'id' => $item1['code'], 'name' => $item1['name'], 'level' => $item1['level'], 'level_one_code' => $item['code'], 'level_one_name' => $item['name'], 'level_two_code' => 0, 'level_two_name' => '', 'level_three_code' => 0, 'level_three_name' => '', ]; var_dump("{$item1['name']} -> {$item1['code']} -> {$item1['level']}"); $addressCodeModel = new AddressCodeModel(); $addressCodeModel->addr_code = $item1['code']; $resp2 = WechatRequestHelper::accessTokenAndToArray(new AddressCodeRequest($config), $addressCodeModel); if (!empty($resp2)) { foreach ($resp2[$next_key] as $item2) { // $model = new WechatVideoShopRegion(); // $model->id = $item2['code']; // $model->name = $item2['name']; // $model->level = $item2['level']; // $model->level_one_code = $item['code']; // $model->level_one_name = $item['name']; // $model->level_two_code = $item1['code']; // $model->level_two_name = $item1['name']; // $model->save(); $inserts[] = [ 'id' => $item2['code'], 'name' => $item2['name'], 'level' => $item2['level'], 'level_one_code' => $item['code'], 'level_one_name' => $item['name'], 'level_two_code' => $item1['code'], 'level_two_name' => $item1['name'], 'level_three_code' => 0, 'level_three_name' => '', ]; var_dump("{$item2['name']} -> {$item2['code']} -> {$item2['level']}"); $addressCodeModel = new AddressCodeModel(); $addressCodeModel->addr_code = $item2['code']; $resp3 = WechatRequestHelper::accessTokenAndToArray(new AddressCodeRequest($config), $addressCodeModel); if (!empty($resp3)) { foreach ($resp3[$next_key] as $item3) { // $model = new WechatVideoShopRegion(); // $model->id = $item3['code']; // $model->name = $item3['name']; // $model->level = $item3['level']; // $model->level_one_code = $item['code']; // $model->level_one_name = $item['name']; // $model->level_two_code = $item1['code']; // $model->level_two_name = $item1['name']; // $model->level_three_code = $item2['code']; // $model->level_three_name = $item2['name']; // $model->save(); $inserts[] = [ 'id' => $item3['code'], 'name' => $item3['name'], 'level' => $item3['level'], 'level_one_code' => $item['code'], 'level_one_name' => $item['name'], 'level_two_code' => $item1['code'], 'level_two_name' => $item1['name'], 'level_three_code' => $item2['code'], 'level_three_name' => $item2['name'], ]; var_dump("{$item3['name']} -> {$item3['code']} -> {$item3['level']}"); } } // usleep(mt_rand(100000, 300000)); } } // usleep(mt_rand(100000, 300000)); } } // usleep(mt_rand(100000, 300000)); } } if (!empty($inserts)) { $inserts1 = array_chunk($inserts, 5000); foreach ($inserts1 as $item) { WechatVideoShopRegion::find()->createCommand() ->batchInsert(WechatVideoShopRegion::tableName(), array_keys($item[0]), $item)->execute(); } } } }