commit 062cae2329a4619b3f6c30b0571bc546d7c48787 Author: 李亚楠 Date: Fri Jun 19 11:56:32 2020 +0800 初始化 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a2a3040 --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..a45eb6b --- /dev/null +++ b/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,118 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.6"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if (mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if (mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if (!outputFile.getParentFile().exists()) { + if (!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000..2cc7d4a Binary files /dev/null and b/.mvn/wrapper/maven-wrapper.jar differ diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..642d572 --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/db/es_.sql b/db/es_.sql new file mode 100644 index 0000000..0c0a7b5 --- /dev/null +++ b/db/es_.sql @@ -0,0 +1,426 @@ +-- -------------------------------------------------------- +-- 主机: 127.0.0.1 +-- 服务器版本: 8.0.18 - MySQL Community Server - GPL +-- 服务器OS: Win64 +-- HeidiSQL 版本: 10.2.0.5599 +-- -------------------------------------------------------- + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET NAMES utf8 */; +/*!50503 SET NAMES utf8mb4 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; + + +-- Dumping database structure for master +CREATE DATABASE IF NOT EXISTS `es_` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; +USE `es_`; + +-- Dumping structure for table master.user +CREATE TABLE IF NOT EXISTS `es_goods` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `goods_name` varchar(100) DEFAULT NULL COMMENT '商品名', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='商品'; + +-- Dumping data for table master.es_goods: ~0 rows (大约) +DELETE FROM `es_goods`; + +INSERT INTO `es_goods` (`goods_name`) VALUES ('测试面膜'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('MEDIHEAL/美迪惠尔可莱丝针剂水库面膜贴10片'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('SNP海洋燕窝补水美白面膜10片'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Paparecipe春雨 天然蜂蜜补水面膜 10片装'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('RAY 银色蚕丝面膜 10片(泰国)'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('RAY 金色蚕丝面膜 10片(泰版)'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('补水测试面膜'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('华为畅享7 Plus 3GB 32GB 移动联通电信4G手机 双卡双待'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('华为畅享7 Plus 4GB 64GB 移动联通电信4G手机 双卡双待'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('华为 nova 2 4GB 64GB移动联通电信4G手机'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('华为 nova 2 Plus 4GB 128GB 移动联通电信4G手机'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('华为 Mate9 Pro 4GB 64GB版 移动联通电信4G手机 双卡双待'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('华为 Mate9 Pro 6GB 128GB版 移动联通电信4G手机 双卡双待'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('华为 HUAWEI P10 全网通 4GB+64GB 移动联通电信4G手机 双卡双待'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('华为 Mate9 4GB 64GB版 移动联通电信4G手机 双卡双待'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('华为 Mate9 6GB 128GB版 移动联通电信4G手机 双卡双待'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('华为畅享6 3G 16G全网通4G手机'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('华为 麦芒5 64G全网通4G智能手机'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('华为 nova 青春版 4GB 64GB全网通4G智能拍照手机'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('【根源修护 战“痘”明星】Aquascutum雅格狮丹粉刺调理复方精油30ml/瓶 净痘淡印'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('荣耀9 全网通 高配版 6GB+64GB 移动联通电信4G手机 双卡双待'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('乐心ziva 智能手环测心率手表蓝牙计步器安卓苹果ios防水运动手环'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('乐心/lifesense Mambo 防水蓝牙微信互联安卓苹果智能手表'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('乐心 MAMBO HR 智能手环 心率手环 来电显示 震动提醒 计步 防水 微信互联 黑色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('乐心体脂秤s5智能测量仪家用人体健康电子减肥称体重脂肪秤精准'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('【实付款满69包邮】美颜秘笈果冻口红不脱色不沾杯防水持久保湿滋润咬温变唇膏口红第二支限时半价'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('LG竹盐迪士尼卡通啫喱型按压牙膏清雅薄荷 去牙渍口臭'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('美颜秘笈植物口红哑光持久保湿滋润口红不易褪色不干唇膏唇彩【送肌美精面膜】第二支限时半价'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('韩国进口LG睿嫣润膏舒盈洗发水250ml补水保湿莹润 【2支装】'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('美颜秘笈唇釉唇彩持久保湿滋润不易沾杯脱色持久不易口红唇液咬唇【送1片肌美精面膜】 第二支限时半价'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('美颜秘笈限量果冻口红温变不沾杯不脱色 +植物口红持久滋润【限时特价】'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('LG倍瑞傲全优倍护牙膏 120g(酷爽薄荷、清雅薄荷、柠檬舒缓)限时特价,第二件半价'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('韩国LG竹盐派缤成人牙膏按压式285g清新口气 薄荷香型'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('韩国LG倍瑞傲派缤成人牙膏 285g按压式 去口臭气包邮'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('摩托罗拉 Motorola 青柚 前后1600w像素 全网通智能手机 双卡双待 4GB+32GB'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('摩托罗拉 Motorola z2 play 全网通智能手机 双卡双待 4GB+64GB'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('瑞士Lady show淑女秀 知名抗衰皮肤研究院配方 清新素颜 透感轻盈隔离妆前乳 spf30+++'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Lady show淑女秀 净泉修复娇嫩靓颜冰面膜 舒缓补水保湿 提亮肤色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Aquascutum雅格狮丹祛黑眼圈复方精油30ml/瓶 排浊补水 重现紧实水润双眸'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Aquascutum雅格狮丹保加利亚玫瑰纯露200ml/瓶 拒绝细纹 看得见的白皙水润'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Aquascutum雅格狮丹法国薰衣草纯露200ml/瓶 控油保湿 淡印舒敏 战“痘”好搭档'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Lady show淑女秀 葡萄籽清肌亮润卸妆油 深层清洁'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Aquascutum雅格狮丹玫瑰精油洁面膏〓深层清洁滋养肌底'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('请勿拍'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Aquascutum雅格狮丹保加利亚玫瑰身体乳200ml/瓶 柔滑保湿 肌肤呈现水润活力'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('日本kracie肌美精3D面膜 深层净白渗透面膜 蓝色1片'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)电吹风机家用 折叠时尚便捷吹风筒VS906RCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)电吹风机家用 美发壁挂式迷你吹风筒(1200W)红色VS905ACN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)时尚造型吹风筒 迷你便携可折叠吹风机小(1200W)VS908PCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)电吹风家用 负离子恒温护发吹风筒(1200W)VS912PICN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣VS 2000W家用大功率不伤发冷热风恒温吹风筒发廊电吹风VS5543PICN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)电吹风机家用 大功率吹风筒VS53CN (1875W)'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)电吹风机家用 大功率强风吹风筒VS9142BCN (1600W)'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)电吹风机家用 冷热恒温不伤发 吹风筒(1875W)VS53IBCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)吹风机家用 负离子大功率吹风筒(1600W)粉红色 VSD590PCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 负离子大功率吹风筒 恒温护发电吹风(1600W)黑色VSD590BCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)负离子恒温护发吹风筒(1200W) 粉红色 VS912PICN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 折叠收线电吹风冷热风家用负离子恒温机风筒1700W VS289PCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 负离子恒温护发 大功率强风吹风筒(1600W 红色 VSD271CN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)直发器卷直两用 陶瓷面板不伤发直夹板 粉红色 16MM'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)迷你便携 陶瓷不伤发空气刘海梨花头电卷棒 粉色 25MM'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)陶瓷不伤发 空气刘海梨花头电卷棒 红色 25MM VSCD63ACN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 负离子直卷两用陶瓷不伤发电卷棒直板夹 粉色 32MM VSI3270PICN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)电吹风机 家用造型风梳 直/卷发造型卷发棒 VSAS80SCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 卷发棒直发器 多功能造型神器干湿两用不伤发 VSAS80PICN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)全自动卷发器 电动水波纹防烫大卷发棒 懒人烫发神器 VS901PCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 直发器 内扣空气刘海拉直板夹 粉色花纹 14MM VS2856PCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 直发器卷直两用夹板 内扣空气刘海拉直板夹 粉红色 VSCS80PCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 直发器陶瓷恒温不伤发夹板 粉红色 25MM VSCS50PCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 直发器干湿两用直板夹 迷你便携拉直内扣夹板'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 卷发棒直发器美发梳套装组合迷你三件套送礼方便 VSCS8063CN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 陶瓷电卷发棒直卷两用夹板 烫发不伤发 银白色 38MM'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 陶瓷电卷发棒直卷两用烫发不伤发 金黄色 38MM VSCD86TCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)陶瓷波浪电发夹粟米玉米烫三管蛋卷棒 粉色 VS2338PICN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)卷发棒陶瓷不伤发 自然卷大卷金黄蛋卷梨花头 32MM VSCD82CCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)大卷梳子不伤发圆卷发梳梨花头圆滚头梳负离子美发梳'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 负离子梳子 防静电卷发直发造型梳美发梳 黑色VS794487BCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 负离子梳子 防静电卷发直发造型梳美发梳 红色 VS794487RCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)气垫发梳防静电 气囊按摩梳子 粉红色 VSF76003APBCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)气垫梳子 袋装软垫发梳 按摩梳 粉红色 VSF76204APBCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)梳子迷你圆卷发梳梨花头金属热板美发梳子 VSF76205APBCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)卷发梳防静电 大卷圆发梳 按摩造型梳 粉红色 VST76105PCN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS) 塑料防静电顺发内扣两用美发密齿梳 VST93507CN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('沙宣(VS)直发造型防静电顺发内扣按摩尖尾梳 VST93509CN'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('DELSEY法国大使 休闲电脑双肩包'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('DELSEY法国大使休闲背包男士时尚学院风功能双肩包'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('DELSEY法国大使拉杆箱20寸带前置口袋电脑袋万向轮旅行登机箱'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('DELSEY法国大使拉杆旅行箱20寸842万向轮行李箱'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('法国大使(Delsey)时尚流行电脑包防水双肩手提两用包男女书包橙红色70370760004'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('RAY蚕丝金银色面膜20片(泰版)'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('淑女秀 活力紧致滋养修复眼膜 提亮眼周肌肤,去熊猫眼,预防法令纹,一片双效 10片/盒'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('RAY 蚕丝面膜金色+银色(泰版)'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('RAY 金色蚕丝面膜 10片(泰版)*2'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('RAY 银色蚕丝面膜 10片(泰国)*2'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Paparecipe春雨 天然蜂蜜补水面膜 *2'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('MEDIHEAL/美迪惠尔可莱丝针剂水库面膜贴*2'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('I-Mu/幻响 小旺礼物蓝牙音箱可爱创意音响迷你无线手机电脑低音炮'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('I-Mu/幻响小旺创意狗指环扣手机金属懒人支架贴'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Aquascutum雅格狮丹茶树精油15ml/瓶 澳洲茶树萃取 强健肌底 镇静止痒'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('imu幻响风小净电动智能纳米防雾霾pm2.5口罩送风透气防霾甲醛防尘'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('幻响(i-mu) 口罩 标准防护PM2.5 雾霾粉尘油烟抗菌儿童孕妇男女透气 标准防护口罩(8片装)'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('幻响防护口罩 (增强型)新国标A级纳米防护PM2.5防雾霾粉尘油烟抗菌儿童孕妇男女透气(5片装)'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('幻响(i-mu) 10000毫安超薄充电宝\\移动电源 刀锋8 支持Type-C与双USB 刀锋8'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('幻响(i-mu)小L LED折叠护眼灯 学习阅读灯 床头灯 国标认证 护眼无蓝光 金属材质'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('imu幻响 LED护眼台灯学生儿童工作台灯折叠床头灯可调光护眼灯'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('幻响(i-mu)小吉 创意多媒体音响/音箱-蓝牙版 无线蓝牙连接 时尚外观设计 内置锂电'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Ladyshow淑女秀舒缓提靓美肤面膜5PC/盒 滋养美白 改善肤色 还原光泽美肌'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('【24小时白金级补水润养】Ladyshow淑女秀补水保湿靓肤面膜5PC/盒 快速补水 持续保湿'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('重塑弹性美肌 链接紧实年轻Ladyshow淑女秀提拉紧致靓肤面膜5PC/盒 收缩毛孔 焕颜靓润美肌'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('预售面膜'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('【F码】美颜秘笈限量果冻口红温变不沾杯不脱色 +植物口红持久滋润'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('掌阅iReader Light青春版电子墨水屏wifi传书 6英寸触模屏电子书阅读器'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('掌阅iReader Light 原装保护套PU皮+PC 适用6英寸'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('【官方旗舰店】掌阅iReader Ocean6.8英寸纯平触摸屏电子书阅读器'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('【官方旗舰店】掌阅iReader Light 阅读器真皮保护套 适用6英寸 适用6英寸light'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('【官方旗舰店】掌阅iReader Light悦享版6英寸电纸书电子书阅读器 炫彩版'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('测试存稿'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Chief Mi-清蜜美瞳 半年抛【灰色】 一盒一片装 买一送一'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('测试我也'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('测试勿拍4'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('测试勿拍5'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷保湿水嫩面膜贴 玻尿酸面膜补水保湿 收缩毛孔 正品包邮'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸魔力纤长睫毛膏3.5g 纤长浓密卷翘不晕染 小刷头 易卸妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸臻白焕采亮肤水120ml 补水淡化痘印化妆水 美白祛斑'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸臻白焕采亮肤乳液100ml 白皙保湿补水提亮肤色 美白补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸肌初美容液Ⅰ 清爽型爽肤水 吸收酵母提取液 深层保湿补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸肌初美容液2瓶组合装 酵母提取液 补水保湿'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜睡眠面膜120g 免洗补水白皙收缩毛孔'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜眼唇卸妆液100ml 眼部卸妆水温和卸妆乳清爽卸妆油'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜去角质霜啫哩 面部全身温和去死皮膏身体脸部男女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜卸妆油150ml 温和脸部深层清洁改善黑头卸妆水乳液'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸焕采泡沫洁面膏100ml 温和洗面奶亮肤补水深层清洁洁面乳男女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌爽肤水150ml 控油补水收缩毛孔二次清洁化妆水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌洁面水乳液护肤品套装 补水控油收缩毛孔化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌洁面乳100ml 洗面奶补水保湿去控油收缩毛孔清洁'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清新冰爽防晒霜SPF35 PA+++ 面部全身防晒乳防汗防水男女学生'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸洗面奶女 深层清洁 补水保湿清洁毛孔 泡沫洁面乳男女通用'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸水漾沁透眼啫喱眼霜30g 淡化眼袋黑眼圈细纹 改善脂肪粒'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸气垫BB霜祼妆遮瑕 控油保湿 自然持久不脱妆送替换芯正品国货'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾面部护理套装 水乳精华深层补水保湿滋润护肤品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾补水精华露40ml 温和补水 保湿滋润肌肤 改善肤色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾深层补水保湿护肤品套装 化妆品滋润女男'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾洁面乳100ml 补水控油洗面奶 深层清洁毛孔改善黑头'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾柔肤水150ml 深层补水二次清洁细致收缩毛孔'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾柔肤乳100ml 锁水深层补水保湿控油滋润 温和无刺激'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿霜50g 面部精华 滋润补水保湿 补水面霜女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿液150ml 温和无刺激 深层补水滋润 保湿护肤品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿乳液100ml 深层补水保湿滋润肌肤 温和无刺激'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸御痕修护液 补水保湿精华液原液 促进吸收收缩毛孔提亮肤色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润眼啫喱30g淡化黑眼圈眼袋眼细纹脂肪粒补水提拉紧致'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润活力保湿霜50g 补水紧致面霜护肤品化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润泡沫洁面膏100ml 温和洁面弱酸性氨基酸洗面奶'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润亲肤乳液120ml 锁水补水保湿紧致收缩毛孔化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸干湿两用粉饼12g 正品提亮肤色 遮瑕 定妆控油化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸希芸鲨烷柔嫩护手霜75g+30g 补水保湿深层滋养防干裂'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸嫩白修护液小蓝瓶10ml 面部精华 美白保湿淡斑 肌底液 精华液'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸嫩白修护液40ml+10ml 祛斑淡斑去黄 美白补水 保湿面部精华'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸卸妆乳液150ml 深层清洁温和脸部眼唇部 温和卸妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸化妆品护肤套装 补水保湿白皙淡化痘印提亮肤色养白肌肤'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸净颜修容隔离霜35ml 妆前乳 提亮肤色 隔离紫外线紫色绿色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸倾心水漾限量礼盒 补水保湿套装 气垫BB隔离柔肤水乳液精华'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸亮肤精华露/液35ml 补水 淡化黑色素 提亮均匀肤色 美白祛斑'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸丝绒盈润唇膏3.5g 口红哑光 雾面持久保湿滋润不脱色咬唇妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸面部护理套装 深层补水保湿 温和不刺激 化妆品套装女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸肌初悦享限量礼盒 补水保湿护肤套装 软化角质'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸美白淡斑补水护肤套装 化妆品保湿淡化痘印 美白补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸纯净清颜活肤按摩霜120g 补水保湿收缩毛孔深层清洁'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸清透肌爽肤乳液100ml 补水保湿收缩毛孔清爽控油'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸水漾眼霜30g 眼部护理补水保湿淡化眼袋黑眼圈细纹'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸水漾沁透滋养霜50g 保湿补水锁水面霜 滋润防干燥'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸幻时凝润紧致补水保湿化妆品套装 淡化干纹细纹'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸幻时凝润亲肤水120ml 补水紧致补水淡化细纹保湿'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸希芸肌初美容液Ⅱ 滋润型 酵母提取液 精华水 爽肤水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷保湿水嫩面膜贴 玻尿酸面膜补水保湿 收缩毛孔 正品包邮'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸魔力纤长睫毛膏3.5g 纤长浓密卷翘不晕染 小刷头 易卸妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸臻白焕采亮肤水120ml 补水淡化痘印化妆水 美白祛斑'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸臻白焕采亮肤乳液100ml 白皙保湿补水提亮肤色 美白补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸肌初美容液Ⅰ 清爽型爽肤水 吸收酵母提取液 深层保湿补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸肌初美容液2瓶组合装 酵母提取液 补水保湿'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜睡眠面膜120g 免洗补水白皙收缩毛孔'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜眼唇卸妆液100ml 眼部卸妆水温和卸妆乳清爽卸妆油'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜去角质霜啫哩 面部全身温和去死皮膏身体脸部男女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜卸妆油150ml 温和脸部深层清洁改善黑头卸妆水乳液'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸焕采泡沫洁面膏100ml 温和洗面奶亮肤补水深层清洁洁面乳男女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌爽肤水150ml 控油补水收缩毛孔二次清洁化妆水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌洁面水乳液护肤品套装 补水控油收缩毛孔化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌洁面乳100ml 洗面奶补水保湿去控油收缩毛孔清洁'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清新冰爽防晒霜SPF35 PA+++ 面部全身防晒乳防汗防水男女学生'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸洗面奶女 深层清洁 补水保湿清洁毛孔 泡沫洁面乳男女通用'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸水漾沁透眼啫喱眼霜30g 淡化眼袋黑眼圈细纹 改善脂肪粒'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸气垫BB霜祼妆遮瑕 控油保湿 自然持久不脱妆送替换芯正品国货'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾面部护理套装 水乳精华深层补水保湿滋润护肤品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾补水精华露40ml 温和补水 保湿滋润肌肤 改善肤色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾深层补水保湿护肤品套装 化妆品滋润女男'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾洁面乳100ml 补水控油洗面奶 深层清洁毛孔改善黑头'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾柔肤水150ml 深层补水二次清洁细致收缩毛孔'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾柔肤乳100ml 锁水深层补水保湿控油滋润 温和无刺激'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿霜50g 面部精华 滋润补水保湿 补水面霜女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿液150ml 温和无刺激 深层补水滋润 保湿护肤品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿乳液100ml 深层补水保湿滋润肌肤 温和无刺激'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸御痕修护液 补水保湿精华液原液 促进吸收收缩毛孔提亮肤色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润眼啫喱30g淡化黑眼圈眼袋眼细纹脂肪粒补水提拉紧致'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润活力保湿霜50g 补水紧致面霜护肤品化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润泡沫洁面膏100ml 温和洁面弱酸性氨基酸洗面奶'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润亲肤乳液120ml 锁水补水保湿紧致收缩毛孔化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸干湿两用粉饼12g 正品提亮肤色 遮瑕 定妆控油化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸希芸鲨烷柔嫩护手霜75g+30g 补水保湿深层滋养防干裂'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸嫩白修护液小蓝瓶10ml 面部精华 美白保湿淡斑 肌底液 精华液'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸嫩白修护液40ml+10ml 祛斑淡斑去黄 美白补水 保湿面部精华'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸卸妆乳液150ml 深层清洁温和脸部眼唇部 温和卸妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸化妆品护肤套装 补水保湿白皙淡化痘印提亮肤色养白肌肤'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸净颜修容隔离霜35ml 妆前乳 提亮肤色 隔离紫外线紫色绿色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸倾心水漾限量礼盒 补水保湿套装 气垫BB隔离柔肤水乳液精华'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸亮肤精华露/液35ml 补水 淡化黑色素 提亮均匀肤色 美白祛斑'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸丝绒盈润唇膏3.5g 口红哑光 雾面持久保湿滋润不脱色咬唇妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸面部护理套装 深层补水保湿 温和不刺激 化妆品套装女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸肌初悦享限量礼盒 补水保湿护肤套装 软化角质'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸美白淡斑补水护肤套装 化妆品保湿淡化痘印 美白补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸纯净清颜活肤按摩霜120g 补水保湿收缩毛孔深层清洁'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸清透肌爽肤乳液100ml 补水保湿收缩毛孔清爽控油'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸水漾眼霜30g 眼部护理补水保湿淡化眼袋黑眼圈细纹'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸水漾沁透滋养霜50g 保湿补水锁水面霜 滋润防干燥'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸幻时凝润紧致补水保湿化妆品套装 淡化干纹细纹'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸幻时凝润亲肤水120ml 补水紧致补水淡化细纹保湿'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸希芸肌初美容液Ⅱ 滋润型 酵母提取液 精华水 爽肤水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷美容油礼盒 面部修护精华油保湿滋润精油角鲨烷软化角质'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷美容油礼盒 面部修护精华油保湿滋润精油角鲨烷软化角质'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷美容油礼盒 面部修护精华油保湿滋润精油角鲨烷软化角质'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷保湿水嫩面膜贴清爽型 玻尿酸面膜补水保湿 收缩毛孔包邮'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷保湿水嫩面膜贴 玻尿酸面膜补水保湿 收缩毛孔 正品包邮'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸魔力纤长睫毛膏3.5g 纤长浓密卷翘不晕染 小刷头 易卸妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸臻白焕采亮肤水120ml 补水淡化痘印化妆水 美白祛斑'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸臻白焕采亮肤乳液100ml 白皙保湿补水提亮肤色 美白补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸肌初美容液Ⅰ 清爽型爽肤水 吸收酵母提取液 深层保湿补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸肌初美容液2瓶组合装 酵母提取液 补水保湿'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜睡眠面膜120g 免洗补水白皙收缩毛孔'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜眼唇卸妆液100ml 眼部卸妆水温和卸妆乳清爽卸妆油'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜去角质霜啫哩 面部全身温和去死皮膏身体脸部男女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜卸妆油150ml 温和脸部深层清洁改善黑头卸妆水乳液'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸焕采泡沫洁面膏100ml 温和洗面奶亮肤补水深层清洁洁面乳男女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌爽肤水150ml 控油补水收缩毛孔二次清洁化妆水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌洁面水乳液护肤品套装 补水控油收缩毛孔化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌洁面乳100ml 洗面奶补水保湿去控油收缩毛孔清洁'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清新冰爽防晒霜SPF35 PA+++ 面部全身防晒乳防汗防水男女学生'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸洗面奶女 深层清洁 补水保湿清洁毛孔 泡沫洁面乳男女通用'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸水漾沁透眼啫喱眼霜30g 淡化眼袋黑眼圈细纹 改善脂肪粒'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸气垫BB霜祼妆遮瑕 控油保湿 自然持久不脱妆送替换芯正品国货'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾面部护理套装 水乳精华深层补水保湿滋润护肤品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾补水精华露40ml 温和补水 保湿滋润肌肤 改善肤色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾深层补水保湿护肤品套装 化妆品滋润女男'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾洁面乳100ml 补水控油洗面奶 深层清洁毛孔改善黑头'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾柔肤水150ml 深层补水二次清洁细致收缩毛孔'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾柔肤乳100ml 锁水深层补水保湿控油滋润 温和无刺激'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿霜50g 面部精华 滋润补水保湿 补水面霜女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿液150ml 温和无刺激 深层补水滋润 保湿护肤品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿乳液100ml 深层补水保湿滋润肌肤 温和无刺激'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸御痕修护液 补水保湿精华液原液 促进吸收收缩毛孔提亮肤色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润眼啫喱30g淡化黑眼圈眼袋眼细纹脂肪粒补水提拉紧致'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润活力保湿霜50g 补水紧致面霜护肤品化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润泡沫洁面膏100ml 温和洁面弱酸性氨基酸洗面奶'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润亲肤乳液120ml 锁水补水保湿紧致收缩毛孔化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸干湿两用粉饼12g 正品提亮肤色 遮瑕 定妆控油化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸希芸鲨烷柔嫩护手霜75g+30g 补水保湿深层滋养防干裂'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸嫩白修护液小蓝瓶10ml 面部精华 美白保湿淡斑 肌底液 精华液'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸嫩白修护液40ml+10ml 祛斑淡斑去黄 美白补水 保湿面部精华'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸卸妆乳液150ml 深层清洁温和脸部眼唇部 温和卸妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸化妆品护肤套装 补水保湿白皙淡化痘印提亮肤色养白肌肤'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸净颜修容隔离霜35ml 妆前乳 提亮肤色 隔离紫外线紫色绿色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸倾心水漾限量礼盒 补水保湿套装 气垫BB隔离柔肤水乳液精华'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸亮肤精华露/液35ml 补水 淡化黑色素 提亮均匀肤色 美白祛斑'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸丝绒盈润唇膏3.5g 口红哑光 雾面持久保湿滋润不脱色咬唇妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸面部护理套装 深层补水保湿 温和不刺激 化妆品套装女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸肌初悦享限量礼盒 补水保湿护肤套装 软化角质'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸美白淡斑补水护肤套装 化妆品保湿淡化痘印 美白补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸纯净清颜活肤按摩霜120g 补水保湿收缩毛孔深层清洁'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸清透肌爽肤乳液100ml 补水保湿收缩毛孔清爽控油'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸水漾眼霜30g 眼部护理补水保湿淡化眼袋黑眼圈细纹'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸水漾沁透滋养霜50g 保湿补水锁水面霜 滋润防干燥'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸幻时凝润紧致补水保湿化妆品套装 淡化干纹细纹'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸幻时凝润亲肤水120ml 补水紧致补水淡化细纹保湿'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸希芸肌初美容液Ⅱ 滋润型 酵母提取液 精华水 爽肤水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('自营测试'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷美容油礼盒 面部修护精华油保湿滋润精油角鲨烷软化角质'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷保湿水嫩面膜贴清爽型 玻尿酸面膜补水保湿 收缩毛孔包邮'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷保湿水嫩面膜贴 玻尿酸面膜补水保湿 收缩毛孔 正品包邮'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸魔力纤长睫毛膏3.5g 纤长浓密卷翘不晕染 小刷头 易卸妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸臻白焕采亮肤水120ml 补水淡化痘印化妆水 美白祛斑'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸臻白焕采亮肤乳液100ml 白皙保湿补水提亮肤色 美白补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸肌初美容液Ⅰ 清爽型爽肤水 吸收酵母提取液 深层保湿补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸肌初美容液2瓶组合装 酵母提取液 补水保湿'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜睡眠面膜120g 免洗补水白皙收缩毛孔'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜眼唇卸妆液100ml 眼部卸妆水温和卸妆乳清爽卸妆油'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜去角质霜啫哩 面部全身温和去死皮膏身体脸部男女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜卸妆油150ml 温和脸部深层清洁改善黑头卸妆水乳液'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸焕采泡沫洁面膏100ml 温和洗面奶亮肤补水深层清洁洁面乳男女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌爽肤水150ml 控油补水收缩毛孔二次清洁化妆水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌洁面水乳液护肤品套装 补水控油收缩毛孔化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌洁面乳100ml 洗面奶补水保湿去控油收缩毛孔清洁'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清新冰爽防晒霜SPF35 PA+++ 面部全身防晒乳防汗防水男女学生'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸洗面奶女 深层清洁 补水保湿清洁毛孔 泡沫洁面乳男女通用'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸水漾沁透眼啫喱眼霜30g 淡化眼袋黑眼圈细纹 改善脂肪粒'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸气垫BB霜祼妆遮瑕 控油保湿 自然持久不脱妆送替换芯正品国货'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾面部护理套装 水乳精华深层补水保湿滋润护肤品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾补水精华露40ml 温和补水 保湿滋润肌肤 改善肤色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾深层补水保湿护肤品套装 化妆品滋润女男'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾洁面乳100ml 补水控油洗面奶 深层清洁毛孔改善黑头'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾柔肤水150ml 深层补水二次清洁细致收缩毛孔'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾柔肤乳100ml 锁水深层补水保湿控油滋润 温和无刺激'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿霜50g 面部精华 滋润补水保湿 补水面霜女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿液150ml 温和无刺激 深层补水滋润 保湿护肤品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿乳液100ml 深层补水保湿滋润肌肤 温和无刺激'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸御痕修护液 补水保湿精华液原液 促进吸收收缩毛孔提亮肤色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润眼啫喱30g淡化黑眼圈眼袋眼细纹脂肪粒补水提拉紧致'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润活力保湿霜50g 补水紧致面霜护肤品化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润泡沫洁面膏100ml 温和洁面弱酸性氨基酸洗面奶'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润亲肤乳液120ml 锁水补水保湿紧致收缩毛孔化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸干湿两用粉饼12g 正品提亮肤色 遮瑕 定妆控油化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸希芸鲨烷柔嫩护手霜75g+30g 补水保湿深层滋养防干裂'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸嫩白修护液小蓝瓶10ml 面部精华 美白保湿淡斑 肌底液 精华液'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸嫩白修护液40ml+10ml 祛斑淡斑去黄 美白补水 保湿面部精华'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸卸妆乳液150ml 深层清洁温和脸部眼唇部 温和卸妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸化妆品护肤套装 补水保湿白皙淡化痘印提亮肤色养白肌肤'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸净颜修容隔离霜35ml 妆前乳 提亮肤色 隔离紫外线紫色绿色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸倾心水漾限量礼盒 补水保湿套装 气垫BB隔离柔肤水乳液精华'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸亮肤精华露/液35ml 补水 淡化黑色素 提亮均匀肤色 美白祛斑'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸丝绒盈润唇膏3.5g 口红哑光 雾面持久保湿滋润不脱色咬唇妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸面部护理套装 深层补水保湿 温和不刺激 化妆品套装女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸肌初悦享限量礼盒 补水保湿护肤套装 软化角质'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸美白淡斑补水护肤套装 化妆品保湿淡化痘印 美白补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸纯净清颜活肤按摩霜120g 补水保湿收缩毛孔深层清洁'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸清透肌爽肤乳液100ml 补水保湿收缩毛孔清爽控油'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸水漾眼霜30g 眼部护理补水保湿淡化眼袋黑眼圈细纹'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸水漾沁透滋养霜50g 保湿补水锁水面霜 滋润防干燥'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸幻时凝润紧致补水保湿化妆品套装 淡化干纹细纹'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸幻时凝润亲肤水120ml 补水紧致补水淡化细纹保湿'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸希芸肌初美容液Ⅱ 滋润型 酵母提取液 精华水 爽肤水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷美容油礼盒 面部修护精华油保湿滋润精油角鲨烷软化角质'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷保湿水嫩面膜贴清爽型 玻尿酸面膜补水保湿 收缩毛孔包邮'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷保湿水嫩面膜贴 玻尿酸面膜补水保湿 收缩毛孔 正品包邮'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸魔力纤长睫毛膏3.5g 纤长浓密卷翘不晕染 小刷头 易卸妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸臻白焕采亮肤水120ml 补水淡化痘印化妆水 美白祛斑'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸臻白焕采亮肤乳液100ml 白皙保湿补水提亮肤色 美白补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸肌初美容液Ⅰ 清爽型爽肤水 吸收酵母提取液 深层保湿补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸肌初美容液2瓶组合装 酵母提取液 补水保湿'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜睡眠面膜120g 免洗补水白皙收缩毛孔'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜眼唇卸妆液100ml 眼部卸妆水温和卸妆乳清爽卸妆油'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜去角质霜啫哩 面部全身温和去死皮膏身体脸部男女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸纯净清颜卸妆油150ml 温和脸部深层清洁改善黑头卸妆水乳液'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸焕采泡沫洁面膏100ml 温和洗面奶亮肤补水深层清洁洁面乳男女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌爽肤水150ml 控油补水收缩毛孔二次清洁化妆水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌洁面水乳液护肤品套装 补水控油收缩毛孔化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清透肌洁面乳100ml 洗面奶补水保湿去控油收缩毛孔清洁'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸清新冰爽防晒霜SPF35 PA+++ 面部全身防晒乳防汗防水男女学生'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸洗面奶女 深层清洁 补水保湿清洁毛孔 泡沫洁面乳男女通用'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸水漾沁透眼啫喱眼霜30g 淡化眼袋黑眼圈细纹 改善脂肪粒'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸气垫BB霜祼妆遮瑕 控油保湿 自然持久不脱妆送替换芯正品国货'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾面部护理套装 水乳精华深层补水保湿滋润护肤品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾补水精华露40ml 温和补水 保湿滋润肌肤 改善肤色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾深层补水保湿护肤品套装 化妆品滋润女男'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾洁面乳100ml 补水控油洗面奶 深层清洁毛孔改善黑头'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾柔肤水150ml 深层补水二次清洁细致收缩毛孔'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾柔肤乳100ml 锁水深层补水保湿控油滋润 温和无刺激'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿霜50g 面部精华 滋润补水保湿 补水面霜女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿液150ml 温和无刺激 深层补水滋润 保湿护肤品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸新水漾保湿乳液100ml 深层补水保湿滋润肌肤 温和无刺激'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸御痕修护液 补水保湿精华液原液 促进吸收收缩毛孔提亮肤色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润眼啫喱30g淡化黑眼圈眼袋眼细纹脂肪粒补水提拉紧致'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润活力保湿霜50g 补水紧致面霜护肤品化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润泡沫洁面膏100ml 温和洁面弱酸性氨基酸洗面奶'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸幻时凝润亲肤乳液120ml 锁水补水保湿紧致收缩毛孔化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸干湿两用粉饼12g 正品提亮肤色 遮瑕 定妆控油化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸希芸鲨烷柔嫩护手霜75g+30g 补水保湿深层滋养防干裂'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸嫩白修护液小蓝瓶10ml 面部精华 美白保湿淡斑 肌底液 精华液'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸嫩白修护液40ml+10ml 祛斑淡斑去黄 美白补水 保湿面部精华'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸卸妆乳液150ml 深层清洁温和脸部眼唇部 温和卸妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸化妆品护肤套装 补水保湿白皙淡化痘印提亮肤色养白肌肤'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸净颜修容隔离霜35ml 妆前乳 提亮肤色 隔离紫外线紫色绿色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸倾心水漾限量礼盒 补水保湿套装 气垫BB隔离柔肤水乳液精华'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸亮肤精华露/液35ml 补水 淡化黑色素 提亮均匀肤色 美白祛斑'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸丝绒盈润唇膏3.5g 口红哑光 雾面持久保湿滋润不脱色咬唇妆'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸面部护理套装 深层补水保湿 温和不刺激 化妆品套装女'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸肌初悦享限量礼盒 补水保湿护肤套装 软化角质'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸美白淡斑补水护肤套装 化妆品保湿淡化痘印 美白补水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸纯净清颜活肤按摩霜120g 补水保湿收缩毛孔深层清洁'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸清透肌爽肤乳液100ml 补水保湿收缩毛孔清爽控油'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸水漾眼霜30g 眼部护理补水保湿淡化眼袋黑眼圈细纹'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸水漾沁透滋养霜50g 保湿补水锁水面霜 滋润防干燥'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸幻时凝润紧致补水保湿化妆品套装 淡化干纹细纹'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸幻时凝润亲肤水120ml 补水紧致补水淡化细纹保湿'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('Syrinx/希芸希芸肌初美容液Ⅱ 滋润型 酵母提取液 精华水 爽肤水'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('希芸鲨烷美容油礼盒 面部修护精华油保湿滋润精油角鲨烷软化角质'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('防晒乳'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('健美创研炫彩魅惑正品口红持久保湿唇膏豆沙色品牌化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('去黑头收缩毛孔套装吸祛黑头导出液鼻贴粉刺撕拉式黑面膜'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('健美创研新型滋润口红持久保湿唇膏不易掉色正品斩男色'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('惠品优购】健美创研炫彩魅惑正品口红持久保湿唇膏豆沙色品牌化妆品'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('尿性面膜'); +INSERT INTO `es_goods` (`goods_name`) VALUES ('自营测试'); diff --git a/mvnw b/mvnw new file mode 100644 index 0000000..a16b543 --- /dev/null +++ b/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100644 index 0000000..c8d4337 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..8f0a15d --- /dev/null +++ b/pom.xml @@ -0,0 +1,80 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.3.0.RELEASE + + + com.example + es + 0.0.1-SNAPSHOT + es + Demo project for Spring Boot + + + 1.8 + + + + + org.springframework.boot + spring-boot-starter-data-elasticsearch + + + + cn.hutool + hutool-all + 5.2.4 + + + com.baomidou + mybatis-plus-boot-starter + 3.2.0 + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + mysql + mysql-connector-java + runtime + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/src/main/java/com/example/es/EsApplication.java b/src/main/java/com/example/es/EsApplication.java new file mode 100644 index 0000000..8eae489 --- /dev/null +++ b/src/main/java/com/example/es/EsApplication.java @@ -0,0 +1,15 @@ +package com.example.es; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +@MapperScan("com.example.sys.mapper") +public class EsApplication { + + public static void main(String[] args) { + SpringApplication.run(EsApplication.class, args); + } + +} diff --git a/src/main/java/com/example/es/config/RestClientConfig.java b/src/main/java/com/example/es/config/RestClientConfig.java new file mode 100644 index 0000000..b958b50 --- /dev/null +++ b/src/main/java/com/example/es/config/RestClientConfig.java @@ -0,0 +1,21 @@ +package com.example.es.config; + +import org.elasticsearch.client.RestHighLevelClient; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.elasticsearch.client.ClientConfiguration; +import org.springframework.data.elasticsearch.client.RestClients; +import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration; + +@Configuration +public class RestClientConfig extends AbstractElasticsearchConfiguration { + + @Override + @Bean + public RestHighLevelClient elasticsearchClient() { + final ClientConfiguration clientConfiguration = ClientConfiguration.builder() + .connectedTo("localhost:9200") + .build(); + return RestClients.create(clientConfiguration).rest(); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/es/controller/EsSearchController.java b/src/main/java/com/example/es/controller/EsSearchController.java new file mode 100644 index 0000000..4b088e7 --- /dev/null +++ b/src/main/java/com/example/es/controller/EsSearchController.java @@ -0,0 +1,115 @@ +package com.example.es.controller; + +import cn.hutool.core.bean.BeanUtil; +import com.example.es.document.ESGoodsDocument; +import com.example.es.service.EsSearchService; +import com.example.sys.mapper.ESGoodsMapper; +import com.example.sys.entity.ESGoodsEntity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * elasticsearch 搜索 + * + * @author zhoudong + * @version 0.1 + * @date 2018/12/13 15:09 + */ +@RestController +public class EsSearchController { + private Logger log = LoggerFactory.getLogger(getClass()); + + @Resource + private EsSearchService esSearchService; + @Resource + private ESGoodsMapper ESGoodsMapper; + + /** + * 初始化数据 + * + * @return + */ + @RequestMapping("init") + public String init() { + List rollCallCurriculumEntities = ESGoodsMapper.selectList(null); + + for (ESGoodsEntity ESGoodsEntity : rollCallCurriculumEntities) { + ESGoodsDocument ESGoodsDocument = new ESGoodsDocument(); + BeanUtil.copyProperties(ESGoodsEntity, ESGoodsDocument); + esSearchService.save(ESGoodsDocument); + } + return "success"; + } + + /** + * 新增 / 修改索引 + * + * @return + */ + @RequestMapping("save") + public String add(@RequestBody ESGoodsDocument ESGoodsDocument) { + esSearchService.save(ESGoodsDocument); + return "success"; + } + + /** + * 删除索引 + * + * @return + */ + @RequestMapping("delete/{id}") + public String delete(@PathVariable String id) { + esSearchService.delete(id); + return "success"; + } + + /** + * 清空索引 + * + * @return + */ + @RequestMapping("delete_all") + public String deleteAll() { + esSearchService.deleteAll(); + return "success"; + } + + /** + * 根据ID获取 + * + * @return + */ + @RequestMapping("get/{id}") + public ESGoodsDocument getById(@PathVariable String id) { + return esSearchService.getById(id); + } + + /** + * 根据获取全部 + * + * @return + */ + @RequestMapping("get_all") + public List getAll() { + return esSearchService.getAll(); + } + + /** + * 搜索 + * + * @param keyword + * @return + */ + @RequestMapping("query/{keyword}") + public List query(@PathVariable String keyword) { + return esSearchService.query(keyword, ESGoodsDocument.class); + } + +} diff --git a/src/main/java/com/example/es/document/ESGoodsDocument.java b/src/main/java/com/example/es/document/ESGoodsDocument.java new file mode 100644 index 0000000..9e77db1 --- /dev/null +++ b/src/main/java/com/example/es/document/ESGoodsDocument.java @@ -0,0 +1,22 @@ +package com.example.es.document; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.elasticsearch.annotations.Document; +import org.springframework.data.elasticsearch.annotations.Field; +import org.springframework.data.elasticsearch.annotations.FieldType; + +import java.io.Serializable; + +@Document(indexName = "es_goods") +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ESGoodsDocument implements Serializable { + @Id + private Long id; + @Field(type = FieldType.Text, analyzer = "ik_max_word", searchAnalyzer = "ik_max_word") + private String goodsName; +} diff --git a/src/main/java/com/example/es/repository/ESGoodsDocumentRepository.java b/src/main/java/com/example/es/repository/ESGoodsDocumentRepository.java new file mode 100644 index 0000000..f908e2a --- /dev/null +++ b/src/main/java/com/example/es/repository/ESGoodsDocumentRepository.java @@ -0,0 +1,9 @@ +package com.example.es.repository; + +import com.example.es.document.ESGoodsDocument; +import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; +import org.springframework.stereotype.Component; + +@Component +public interface ESGoodsDocumentRepository extends ElasticsearchRepository { +} diff --git a/src/main/java/com/example/es/service/BaseSearchService.java b/src/main/java/com/example/es/service/BaseSearchService.java new file mode 100644 index 0000000..38580ca --- /dev/null +++ b/src/main/java/com/example/es/service/BaseSearchService.java @@ -0,0 +1,16 @@ +package com.example.es.service; + +import java.util.List; + + +public interface BaseSearchService { + + /** + * 搜 索 + * + * @param keyword + * @param clazz + * @return + */ + List query(String keyword, Class clazz); +} diff --git a/src/main/java/com/example/es/service/EsSearchService.java b/src/main/java/com/example/es/service/EsSearchService.java new file mode 100644 index 0000000..1626f16 --- /dev/null +++ b/src/main/java/com/example/es/service/EsSearchService.java @@ -0,0 +1,38 @@ +package com.example.es.service; + +import com.example.es.document.ESGoodsDocument; + +import java.util.List; + +public interface EsSearchService extends BaseSearchService { + /** + * 保存 + * @auther: zhoudong + * @date: 2018/12/13 16:02 + */ + void save(ESGoodsDocument... ESGoodsDocuments); + + /** + * 删除 + * @param id + */ + void delete(String id); + + /** + * 清空索引 + */ + void deleteAll(); + + /** + * 根据ID查询 + * @param id + * @return + */ + ESGoodsDocument getById(String id); + + /** + * 查询全部 + * @return + */ + List getAll(); +} diff --git a/src/main/java/com/example/es/service/impl/BaseSearchServiceImpl.java b/src/main/java/com/example/es/service/impl/BaseSearchServiceImpl.java new file mode 100644 index 0000000..80b236d --- /dev/null +++ b/src/main/java/com/example/es/service/impl/BaseSearchServiceImpl.java @@ -0,0 +1,59 @@ +package com.example.es.service.impl; + +import com.example.es.service.BaseSearchService; +import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.common.text.Text; +import org.elasticsearch.index.query.Operator; +import org.elasticsearch.index.query.QueryBuilder; +import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.index.query.QueryStringQueryBuilder; +import org.elasticsearch.search.SearchHit; +import org.elasticsearch.search.SearchHits; +import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; +import org.elasticsearch.search.sort.SortBuilders; +import org.elasticsearch.search.sort.SortOrder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.elasticsearch.core.*; +import org.springframework.data.elasticsearch.core.query.AliasQuery; +import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; +import org.springframework.data.elasticsearch.core.query.Query; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * elasticsearch 搜索引擎 + * + * @author lyn + * @version 0.1 + * @date 2018/12/13 15:33 + */ +@Service +public class BaseSearchServiceImpl implements BaseSearchService { + private Logger log = LoggerFactory.getLogger(getClass()); + @Resource + private ElasticsearchOperations searchOperations; + + @Override + public List query(String keyword, Class clazz) { + Query searchQuery = new NativeSearchQueryBuilder() + .withQuery(new QueryStringQueryBuilder(keyword).field("goodsName")) + .withSort(SortBuilders.scoreSort().order(SortOrder.DESC)) + // .withSort(new FieldSortBuilder("createTime").order(SortOrder.DESC)) + .build(); + SearchHitsIterator stream = searchOperations + .searchForStream(searchQuery, clazz); + List list = new ArrayList<>(); + while (stream.hasNext()) { + list.add(stream.next().getContent()); + } + stream.close(); + return list; + } + +} diff --git a/src/main/java/com/example/es/service/impl/EsSearchServiceImpl.java b/src/main/java/com/example/es/service/impl/EsSearchServiceImpl.java new file mode 100644 index 0000000..5fd4f44 --- /dev/null +++ b/src/main/java/com/example/es/service/impl/EsSearchServiceImpl.java @@ -0,0 +1,62 @@ +package com.example.es.service.impl; + +import cn.hutool.json.JSONUtil; +import com.example.es.document.ESGoodsDocument; +import com.example.es.repository.ESGoodsDocumentRepository; +import com.example.es.service.EsSearchService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.elasticsearch.core.ElasticsearchOperations; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * elasticsearch 搜索引擎 service实现 + * + * @author zhoudong + * @version 0.1 + * @date 2018/12/13 15:33 + */ +@Service +public class EsSearchServiceImpl extends BaseSearchServiceImpl implements EsSearchService { + private Logger log = LoggerFactory.getLogger(getClass()); + @Resource + private ElasticsearchOperations searchOperations; + @Resource + private ESGoodsDocumentRepository ESGoodsDocumentRepository; + + @Override + public void save(ESGoodsDocument... ESGoodsDocuments) { + if (ESGoodsDocuments.length > 0) { + log.info("【保存索引】:{}", JSONUtil.toJsonStr(ESGoodsDocumentRepository + .saveAll(Arrays.asList(ESGoodsDocuments)))); + } + } + + @Override + public void delete(String id) { + ESGoodsDocumentRepository.deleteById(id); + } + + @Override + public void deleteAll() { + ESGoodsDocumentRepository.deleteAll(); + } + + @Override + public ESGoodsDocument getById(String id) { + return ESGoodsDocumentRepository.findById(id).get(); + } + + @Override + public List getAll() { + List list = new ArrayList<>(); + ESGoodsDocumentRepository.findAll().forEach(list::add); + return list; + } + +} diff --git a/src/main/java/com/example/sys/entity/ESGoodsEntity.java b/src/main/java/com/example/sys/entity/ESGoodsEntity.java new file mode 100644 index 0000000..8562cd7 --- /dev/null +++ b/src/main/java/com/example/sys/entity/ESGoodsEntity.java @@ -0,0 +1,23 @@ +package com.example.sys.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@TableName("es_goods") +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ESGoodsEntity implements Serializable { + /** + * + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + private String goodsName; +} diff --git a/src/main/java/com/example/sys/mapper/ESGoodsMapper.java b/src/main/java/com/example/sys/mapper/ESGoodsMapper.java new file mode 100644 index 0000000..a5ed3f5 --- /dev/null +++ b/src/main/java/com/example/sys/mapper/ESGoodsMapper.java @@ -0,0 +1,11 @@ +package com.example.sys.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.example.sys.entity.ESGoodsEntity; + +/** + * + */ +public interface ESGoodsMapper extends BaseMapper { + +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..2b3f709 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,18 @@ +spring: + datasource: + hikari: + pool-name: HikariCP + auto-commit: false + url: jdbc:mysql://localhost:3306/es_?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true + username: root + password: dreamlyn + driver-class-name: com.mysql.cj.jdbc.Driver + +mybatis-plus: + tenant-enable: true + mapper-locations: classpath:/mapper/*Mapper.xml + global-config: + banner: false + db-config: + id-type: auto + field-strategy: NOT_EMPTY \ No newline at end of file diff --git a/src/test/java/com/example/es/EsApplicationTests.java b/src/test/java/com/example/es/EsApplicationTests.java new file mode 100644 index 0000000..60481a4 --- /dev/null +++ b/src/test/java/com/example/es/EsApplicationTests.java @@ -0,0 +1,20 @@ +package com.example.es; + +import org.apache.lucene.analysis.core.KeywordAnalyzer; +import org.apache.lucene.analysis.standard.StandardAnalyzer; +import org.apache.lucene.index.IndexWriter; +import org.elasticsearch.index.analysis.Analysis; +import org.elasticsearch.index.analysis.IndexAnalyzers; +import org.elasticsearch.index.analysis.KeywordAnalyzerProvider; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class EsApplicationTests { + + @Test + void contextLoads() { + + } + +}