diff --git a/elmclient/src/main.js b/elmclient/src/main.js
index 0d16212..ff03842 100644
--- a/elmclient/src/main.js
+++ b/elmclient/src/main.js
@@ -46,7 +46,7 @@ router.beforeEach(function (to, from, next) {
let user = sessionStorage.getItem('user');
//除了登录、注册、首页、商家列表、商家信息之外,都需要判断是否登录
if (!(to.path == '/' || to.path == '/index' || to.path == '/businessList' || to.path == '/businessInfo' ||
- to.path == '/login' || to.path == '/register' || to.path == '/my' || to.path == '/error403')) {
+ to.path == '/login' || to.path == '/register' || to.path == '/my' || to.path == '/error403' || to.path == '/searchResults')) {
if (user == null) {
router.push('/login');
// location.reload();
diff --git a/elmclient/src/router/index.js b/elmclient/src/router/index.js
index 51a5d0e..eeee01c 100644
--- a/elmclient/src/router/index.js
+++ b/elmclient/src/router/index.js
@@ -17,6 +17,7 @@ import My from '../views/My.vue';
import PointsDetails from '../views/PointsDetails.vue';
import Wallet from '../views/Wallet.vue';
import Error403 from '../components/Error403';
+import SearchResults from "../views/SearchResults";
const routes = [{
@@ -83,6 +84,10 @@ const routes = [{
path: '/error403',
name: 'Error403',
component: Error403
+ }, {
+ path: '/searchResults',
+ name: 'SearchResults',
+ component: SearchResults
}
];
diff --git a/elmclient/src/views/Index.vue b/elmclient/src/views/Index.vue
index c9b3000..d0e60c6 100644
--- a/elmclient/src/views/Index.vue
+++ b/elmclient/src/views/Index.vue
@@ -8,19 +8,19 @@
天津大学北洋园校区
-
-
+
-
@@ -135,7 +135,7 @@
@@ -331,6 +331,11 @@
import Footer from '../components/Footer.vue';
export default {
name: 'Index',
+ data(){
+ return{
+ keyword: ''
+ }
+ },
mounted() {
document.onscroll = () => {
//获取滚动条位置
@@ -370,7 +375,16 @@
orderTypeId: orderTypeId
}
});
- }
+ },
+ toSearch(){
+ if(this.keyword==='') return;
+ this.$router.push({
+ path: '/searchResults',
+ query: {
+ keyword: this.keyword
+ }
+ });
+ }
}
}
@@ -460,10 +474,21 @@
user-select: none;
}
+ .wrapper .search .search-fixed-top .search-box input{
+ border: none;
+ outline: none;
+ height: 4vw;
+ font-size: 3vw;
+ }
+
.wrapper .search .search-fixed-top .search-box .fa-search {
margin-right: 1vw;
}
+ .blue-icon {
+ color: #01B0F2;
+ }
+
/****************** 点餐分类部分 ******************/
.wrapper .foodtype {
width: 100%;
diff --git a/elmclient/src/views/SearchResults.vue b/elmclient/src/views/SearchResults.vue
new file mode 100644
index 0000000..fa613fe
--- /dev/null
+++ b/elmclient/src/views/SearchResults.vue
@@ -0,0 +1,428 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
未找到任何结果,请尝试其他关键词
+
+
+
+ -
+
+
+
![]()
+
{{ item.quantity }}
+
+
+
+
¥{{ item.starPrice }}起送 | ¥{{ item.deliveryPrice }}配送
+
+
+
+
+
+
+
+
+
+ -
+
+
![]()
+
+
+
+
¥{{item.foodPrice}}
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springcloud_elm/.idea/compiler.xml b/springcloud_elm/.idea/compiler.xml
index 563a856..54b6c28 100644
--- a/springcloud_elm/.idea/compiler.xml
+++ b/springcloud_elm/.idea/compiler.xml
@@ -20,6 +20,7 @@
+
diff --git a/springcloud_elm/.idea/encodings.xml b/springcloud_elm/.idea/encodings.xml
index c8aaf0a..a983912 100644
--- a/springcloud_elm/.idea/encodings.xml
+++ b/springcloud_elm/.idea/encodings.xml
@@ -29,6 +29,8 @@
+
+
diff --git a/springcloud_elm/.idea/misc.xml b/springcloud_elm/.idea/misc.xml
index cf56487..b9120de 100644
--- a/springcloud_elm/.idea/misc.xml
+++ b/springcloud_elm/.idea/misc.xml
@@ -5,6 +5,7 @@
diff --git a/springcloud_elm/.idea/uiDesigner.xml b/springcloud_elm/.idea/uiDesigner.xml
new file mode 100644
index 0000000..e96534f
--- /dev/null
+++ b/springcloud_elm/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/springcloud_elm/.idea/vcs.xml b/springcloud_elm/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/springcloud_elm/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/springcloud_elm/gateway_server_14000/src/main/resources/application.yml b/springcloud_elm/gateway_server_14000/src/main/resources/application.yml
index e40ddcb..a408f74 100644
--- a/springcloud_elm/gateway_server_14000/src/main/resources/application.yml
+++ b/springcloud_elm/gateway_server_14000/src/main/resources/application.yml
@@ -52,6 +52,11 @@ spring:
predicates:
- Path=/OrdersController/*/**
+ - id: searchServer
+ uri: lb://search-server
+ predicates:
+ - Path=/SearchController/*/**
+
eureka:
client:
service-url:
diff --git a/springcloud_elm/gateway_server_14000/target/classes/application.yml b/springcloud_elm/gateway_server_14000/target/classes/application.yml
index e40ddcb..a408f74 100644
--- a/springcloud_elm/gateway_server_14000/target/classes/application.yml
+++ b/springcloud_elm/gateway_server_14000/target/classes/application.yml
@@ -52,6 +52,11 @@ spring:
predicates:
- Path=/OrdersController/*/**
+ - id: searchServer
+ uri: lb://search-server
+ predicates:
+ - Path=/SearchController/*/**
+
eureka:
client:
service-url:
diff --git a/springcloud_elm/pom.xml b/springcloud_elm/pom.xml
index 675441b..54652e8 100644
--- a/springcloud_elm/pom.xml
+++ b/springcloud_elm/pom.xml
@@ -23,6 +23,7 @@
orders_server_10601
config_server_15000
config_server_15001
+ search_server_116000
pom
diff --git a/springcloud_elm/search_server_11600/pom.xml b/springcloud_elm/search_server_11600/pom.xml
new file mode 100644
index 0000000..b0b06a4
--- /dev/null
+++ b/springcloud_elm/search_server_11600/pom.xml
@@ -0,0 +1,68 @@
+
+
+
+ springcloud_elm
+ com.neusoft
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ search_server_11600
+
+
+ 8
+ 8
+
+
+
+
+ org.ansj
+ ansj_seg
+ 5.1.1
+
+
+ org.springframework.cloud
+ spring-cloud-bus
+
+
+ org.springframework.cloud
+ spring-cloud-stream-binder-rabbit
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ org.springframework.cloud
+ spring-cloud-starter-config
+
+
+ org.springframework.cloud
+ spring-cloud-starter-netflix-eureka-client
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 2.0.1
+
+
+ mysql
+ mysql-connector-java
+ 8.0.20
+ runtime
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+ true
+
+
+
\ No newline at end of file
diff --git a/springcloud_elm/search_server_11600/src/main/java/com/neusoft/MyApplication.java b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/MyApplication.java
new file mode 100644
index 0000000..556aefa
--- /dev/null
+++ b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/MyApplication.java
@@ -0,0 +1,13 @@
+package com.neusoft;
+
+import org.ansj.domain.Result;
+import org.ansj.splitWord.analysis.ToAnalysis;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class MyApplication {
+ public static void main(String[] args){
+ SpringApplication.run(MyApplication.class,args);
+ }
+}
diff --git a/springcloud_elm/search_server_11600/src/main/java/com/neusoft/controller/SearchController.java b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/controller/SearchController.java
new file mode 100644
index 0000000..287e37e
--- /dev/null
+++ b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/controller/SearchController.java
@@ -0,0 +1,34 @@
+package com.neusoft.controller;
+
+import com.neusoft.po.Business;
+import com.neusoft.po.CommonResult;
+import com.neusoft.po.Food;
+import com.neusoft.service.SearchService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RefreshScope
+@RestController
+@RequestMapping("/SearchController")
+public class SearchController {
+ @Autowired
+ private SearchService searchService;
+
+ @GetMapping("/listFoodByKeyword/{keyword}")
+ public CommonResult> listFoodByKeyword(@PathVariable("keyword") String keyword) throws Exception {
+ List list= searchService.listFoodByKeyword(keyword);
+ return new CommonResult<>(200,"success",list);
+ }
+
+ @GetMapping("/listBusinessByKeyword/{keyword}")
+ public CommonResult> listBusinessByKeyword(@PathVariable("keyword") String keyword) throws Exception {
+ List list= searchService.listBusinessByKeyword(keyword);
+ return new CommonResult<>(200,"success",list);
+ }
+}
diff --git a/springcloud_elm/search_server_11600/src/main/java/com/neusoft/mapper/BusinessMapper.java b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/mapper/BusinessMapper.java
new file mode 100644
index 0000000..cde1ada
--- /dev/null
+++ b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/mapper/BusinessMapper.java
@@ -0,0 +1,11 @@
+package com.neusoft.mapper;
+
+import com.neusoft.po.Business;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface BusinessMapper {
+ public List listBusinessByKeyword(List keywords);
+}
\ No newline at end of file
diff --git a/springcloud_elm/search_server_11600/src/main/java/com/neusoft/mapper/FoodMapper.java b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/mapper/FoodMapper.java
new file mode 100644
index 0000000..7142eb6
--- /dev/null
+++ b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/mapper/FoodMapper.java
@@ -0,0 +1,11 @@
+package com.neusoft.mapper;
+
+import com.neusoft.po.Food;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface FoodMapper {
+ public List listFoodByKeyWord(List keywords);
+}
diff --git a/springcloud_elm/search_server_11600/src/main/java/com/neusoft/po/Business.java b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/po/Business.java
new file mode 100644
index 0000000..410bdf7
--- /dev/null
+++ b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/po/Business.java
@@ -0,0 +1,96 @@
+package com.neusoft.po;
+
+import java.util.List;
+
+public class Business {
+ private Integer businessId;
+ private String businessName;
+ private String businessAddress;
+ private String businessExplain;
+ private String businessImg;
+ private Integer orderTypeId;
+ private double starPrice;
+ private double deliveryPrice;
+ private String remarks;
+ private List foodList;
+
+ public Integer getBusinessId() {
+ return businessId;
+ }
+
+ public void setBusinessId(Integer businessId) {
+ this.businessId = businessId;
+ }
+
+ public String getBusinessName() {
+ return businessName;
+ }
+
+ public void setBusinessName(String businessName) {
+ this.businessName = businessName;
+ }
+
+ public String getBusinessAddress() {
+ return businessAddress;
+ }
+
+ public void setBusinessAddress(String businessAddress) {
+ this.businessAddress = businessAddress;
+ }
+
+ public String getBusinessExplain() {
+ return businessExplain;
+ }
+
+ public void setBusinessExplain(String businessExplain) {
+ this.businessExplain = businessExplain;
+ }
+
+ public String getBusinessImg() {
+ return businessImg;
+ }
+
+ public void setBusinessImg(String businessImg) {
+ this.businessImg = businessImg;
+ }
+
+ public Integer getOrderTypeId() {
+ return orderTypeId;
+ }
+
+ public void setOrderTypeId(Integer orderTypeId) {
+ this.orderTypeId = orderTypeId;
+ }
+
+ public double getStarPrice() {
+ return starPrice;
+ }
+
+ public void setStarPrice(double starPrice) {
+ this.starPrice = starPrice;
+ }
+
+ public double getDeliveryPrice() {
+ return deliveryPrice;
+ }
+
+ public void setDeliveryPrice(double deliveryPrice) {
+ this.deliveryPrice = deliveryPrice;
+ }
+
+ public String getRemarks() {
+ return remarks;
+ }
+
+ public void setRemarks(String remarks) {
+ this.remarks = remarks;
+ }
+
+ public List getFoodList() {
+ return foodList;
+ }
+
+ public void setFoodList(List foodList) {
+ this.foodList = foodList;
+ }
+}
diff --git a/springcloud_elm/search_server_11600/src/main/java/com/neusoft/po/CommonResult.java b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/po/CommonResult.java
new file mode 100644
index 0000000..84f1b51
--- /dev/null
+++ b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/po/CommonResult.java
@@ -0,0 +1,41 @@
+package com.neusoft.po;
+
+import java.io.Serializable;
+
+public class CommonResult implements Serializable {
+ private Integer code;
+ private String message;
+ private T result;
+
+ public CommonResult() {}
+
+ public CommonResult(Integer code, String message, T result) {
+ this.code = code;
+ this.message = message;
+ this.result = result;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public void setCode(Integer code) {
+ this.code = code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public T getResult() {
+ return result;
+ }
+
+ public void setResult(T result) {
+ this.result = result;
+ }
+}
diff --git a/springcloud_elm/search_server_11600/src/main/java/com/neusoft/po/Food.java b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/po/Food.java
new file mode 100644
index 0000000..25ed16e
--- /dev/null
+++ b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/po/Food.java
@@ -0,0 +1,69 @@
+package com.neusoft.po;
+
+public class Food {
+ private Integer foodId;
+ private String foodName;
+ private String foodExplain;
+ private String foodImg;
+ private Double foodPrice;
+ private Integer businessId;
+ private String remarks;
+
+ public Integer getFoodId() {
+ return foodId;
+ }
+
+ public void setFoodId(Integer foodId) {
+ this.foodId = foodId;
+ }
+
+ public String getFoodName() {
+ return foodName;
+ }
+
+ public void setFoodName(String foodName) {
+ this.foodName = foodName;
+ }
+
+ public String getFoodExplain() {
+ return foodExplain;
+ }
+
+ public void setFoodExplain(String foodExplain) {
+ this.foodExplain = foodExplain;
+ }
+
+ public String getFoodImg() {
+ return foodImg;
+ }
+
+ public void setFoodImg(String foodImg) {
+ this.foodImg = foodImg;
+ }
+
+ public Double getFoodPrice() {
+ return foodPrice;
+ }
+
+ public void setFoodPrice(Double foodPrice) {
+ this.foodPrice = foodPrice;
+ }
+
+ public Integer getBusinessId() {
+ return businessId;
+ }
+
+ public void setBusinessId(Integer businessId) {
+ this.businessId = businessId;
+ }
+
+ public String getRemarks() {
+ return remarks;
+ }
+
+ public void setRemarks(String remarks) {
+ this.remarks = remarks;
+ }
+
+
+}
diff --git a/springcloud_elm/search_server_11600/src/main/java/com/neusoft/service/SearchService.java b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/service/SearchService.java
new file mode 100644
index 0000000..44f872a
--- /dev/null
+++ b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/service/SearchService.java
@@ -0,0 +1,12 @@
+package com.neusoft.service;
+
+import com.neusoft.po.Business;
+import com.neusoft.po.Food;
+
+import java.util.List;
+
+public interface SearchService {
+ public List listFoodByKeyword(String query);
+
+ public List listBusinessByKeyword(String query);
+}
diff --git a/springcloud_elm/search_server_11600/src/main/java/com/neusoft/service/impl/SearchServiceImpl.java b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/service/impl/SearchServiceImpl.java
new file mode 100644
index 0000000..9a6fd64
--- /dev/null
+++ b/springcloud_elm/search_server_11600/src/main/java/com/neusoft/service/impl/SearchServiceImpl.java
@@ -0,0 +1,43 @@
+package com.neusoft.service.impl;
+
+import com.neusoft.mapper.BusinessMapper;
+import com.neusoft.mapper.FoodMapper;
+import com.neusoft.po.Business;
+import com.neusoft.po.Food;
+import com.neusoft.service.SearchService;
+import org.ansj.domain.Result;
+import org.ansj.domain.Term;
+import org.ansj.splitWord.analysis.ToAnalysis;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class SearchServiceImpl implements SearchService {
+ @Autowired
+ private FoodMapper foodMapper;
+ @Autowired
+ private BusinessMapper businessMapper;
+
+ @Override
+ public List listFoodByKeyword(String query) {
+ Result res = ToAnalysis.parse(query);
+ List keywords=new ArrayList<>();
+ for(Term term:res){
+ keywords.add(term.getName());
+ }
+ return foodMapper.listFoodByKeyWord(keywords);
+ }
+
+ @Override
+ public List listBusinessByKeyword(String query) {
+ Result res = ToAnalysis.parse(query);
+ List keywords=new ArrayList<>();
+ for(Term term:res){
+ keywords.add(term.getName());
+ }
+ return businessMapper.listBusinessByKeyword(keywords);
+ }
+}
\ No newline at end of file
diff --git a/springcloud_elm/search_server_11600/src/main/resources/bootstrap.yml b/springcloud_elm/search_server_11600/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..23fd6ac
--- /dev/null
+++ b/springcloud_elm/search_server_11600/src/main/resources/bootstrap.yml
@@ -0,0 +1,19 @@
+spring:
+ cloud:
+ config:
+ name: search_server_11600
+ profile: dev
+ label: master
+ discovery:
+ enabled: true
+ service-id: config-server
+
+eureka:
+ client:
+ service-url:
+ defaultZone: http://eurekaServer13000:13000/eureka/,http://eurekaServer13001:13001/eureka/
+ instance:
+ prefer-ip-address: true #使用ip地址向eureka server进行注册
+ instance-id: ${spring.cloud.client.ip-address}:${server.port} #设置eureka控制台中显示的注册信息
+ lease-renewal-interval-in-seconds: 5
+ lease-expiration-duration-in-seconds: 15
\ No newline at end of file
diff --git a/springcloud_elm/search_server_11600/src/main/resources/mapper/BusinessMapper.xml b/springcloud_elm/search_server_11600/src/main/resources/mapper/BusinessMapper.xml
new file mode 100644
index 0000000..2e93ba3
--- /dev/null
+++ b/springcloud_elm/search_server_11600/src/main/resources/mapper/BusinessMapper.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/springcloud_elm/search_server_11600/src/main/resources/mapper/FoodMapper.xml b/springcloud_elm/search_server_11600/src/main/resources/mapper/FoodMapper.xml
new file mode 100644
index 0000000..7de9d2d
--- /dev/null
+++ b/springcloud_elm/search_server_11600/src/main/resources/mapper/FoodMapper.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/springcloud_elm/search_server_11600/target/classes/bootstrap.yml b/springcloud_elm/search_server_11600/target/classes/bootstrap.yml
new file mode 100644
index 0000000..23fd6ac
--- /dev/null
+++ b/springcloud_elm/search_server_11600/target/classes/bootstrap.yml
@@ -0,0 +1,19 @@
+spring:
+ cloud:
+ config:
+ name: search_server_11600
+ profile: dev
+ label: master
+ discovery:
+ enabled: true
+ service-id: config-server
+
+eureka:
+ client:
+ service-url:
+ defaultZone: http://eurekaServer13000:13000/eureka/,http://eurekaServer13001:13001/eureka/
+ instance:
+ prefer-ip-address: true #使用ip地址向eureka server进行注册
+ instance-id: ${spring.cloud.client.ip-address}:${server.port} #设置eureka控制台中显示的注册信息
+ lease-renewal-interval-in-seconds: 5
+ lease-expiration-duration-in-seconds: 15
\ No newline at end of file
diff --git a/springcloud_elm/search_server_11600/target/classes/mapper/BusinessMapper.xml b/springcloud_elm/search_server_11600/target/classes/mapper/BusinessMapper.xml
new file mode 100644
index 0000000..2e93ba3
--- /dev/null
+++ b/springcloud_elm/search_server_11600/target/classes/mapper/BusinessMapper.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/springcloud_elm/search_server_11600/target/classes/mapper/FoodMapper.xml b/springcloud_elm/search_server_11600/target/classes/mapper/FoodMapper.xml
new file mode 100644
index 0000000..7de9d2d
--- /dev/null
+++ b/springcloud_elm/search_server_11600/target/classes/mapper/FoodMapper.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
\ No newline at end of file