diff --git a/demo/src/main/java/com/example/demo/Dao/productMapper.java b/demo/src/main/java/com/example/demo/Dao/productMapper.java index b0708e3..7207dfd 100644 --- a/demo/src/main/java/com/example/demo/Dao/productMapper.java +++ b/demo/src/main/java/com/example/demo/Dao/productMapper.java @@ -7,11 +7,21 @@ import java.util.List; @Mapper public interface productMapper { + @Select("select * from product where productName like '%#{productName}%'") + public List findByNameLike(String productName); + + @Select("select * from product where productName = #{category}") + public List findByCategory(String category); + + + @Select("select * from product where intrate = #{intrate} order by intrate ASC") + public List findByIntrate(float intrate); + @Select("select * from product where productNum = #{productNum}") public Product selectProductByProductNum(long productNum); @Select("select * from product where productName = #{productName}") - public Product selectProductByProductName(long productName); + public Product selectProductByProductName(String productName); @Select("select * from product") public List select(); diff --git a/demo/src/main/java/com/example/demo/Dao/usageDateMapper.java b/demo/src/main/java/com/example/demo/Dao/usageDateMapper.java index ae239f8..0e24a13 100644 --- a/demo/src/main/java/com/example/demo/Dao/usageDateMapper.java +++ b/demo/src/main/java/com/example/demo/Dao/usageDateMapper.java @@ -14,6 +14,10 @@ public interface usageDateMapper { @Select("select * from usagedate") public List select(); + + @Select("select productNum from usageDate group by productNum order by count(productNum) DESC") + public List selectByCount(); + @Insert("insert into usagedate(checkNum, productNum, userNum," + " bankAccount, bankNum, year, amount, startTime)" + " values (#{checkNum},#{productNum},#{userNum},#{bankAccount},#{bankNum}," + diff --git a/demo/src/test/java/com/example/demo/searchService/controller/SearchServiceController.java b/demo/src/test/java/com/example/demo/searchService/controller/SearchServiceController.java new file mode 100644 index 0000000..88b93d1 --- /dev/null +++ b/demo/src/test/java/com/example/demo/searchService/controller/SearchServiceController.java @@ -0,0 +1,38 @@ +package com.example.demo.searchService.controller; + + +import com.example.demo.bean.Product; +import com.example.demo.searchService.service.ProductSearchService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; + +@Controller +public class SearchServiceController { + private ProductSearchService productSearchService; + @RequestMapping("/search") + public List productSearch(HttpServletRequest request, HttpServletResponse response){ + List list = new ArrayList(); + String productName = request.getParameter("productName"); + String category = request.getParameter("category"); + float intrate = Integer.parseInt(request.getParameter("intrate")); + if(productName!=null){ + list = productSearchService.findByNameLike(productName); + //按关键字搜索 + }else if(category!=null){ + list = productSearchService.findByCategory(category); + //按产品类别搜索 + }else if(intrate!=0){ + list = productSearchService.findByIntrate(intrate); + //按利率排序由低到高 + }else{ + list = productSearchService.findByCount(); + //默认按产品使用的产品的数量由高到低排序 + } + return list; + } +} diff --git a/demo/src/test/java/com/example/demo/searchService/service/ProductSearchService.java b/demo/src/test/java/com/example/demo/searchService/service/ProductSearchService.java new file mode 100644 index 0000000..f681cc1 --- /dev/null +++ b/demo/src/test/java/com/example/demo/searchService/service/ProductSearchService.java @@ -0,0 +1,19 @@ +package com.example.demo.searchService.service; + +import com.example.demo.bean.Product; + +import java.util.List; + +public interface ProductSearchService { + //按关键字查询 + List findByNameLike(String productName); + + //按类别查询 + List findByCategory(String category); + + //按利率从高到低 + List findByIntrate(float intrate); + + ////默认按产品使用的产品的数量由高到低排序 + List findByCount(); +} diff --git a/demo/src/test/java/com/example/demo/searchService/service/impl/ProductSearchServiceImpl.java b/demo/src/test/java/com/example/demo/searchService/service/impl/ProductSearchServiceImpl.java new file mode 100644 index 0000000..96c33fc --- /dev/null +++ b/demo/src/test/java/com/example/demo/searchService/service/impl/ProductSearchServiceImpl.java @@ -0,0 +1,45 @@ +package com.example.demo.searchService.service.impl; + +import com.example.demo.Dao.productMapper; +import com.example.demo.Dao.usageDateMapper; +import com.example.demo.bean.Product; +import com.example.demo.searchService.service.ProductSearchService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.ArrayList; +import java.util.List; + +public class ProductSearchServiceImpl implements ProductSearchService { + @Autowired + productMapper productMapper; + usageDateMapper usageDateMapper; + Product product; + + @Override + public List findByNameLike(String productName){ + return productMapper.findByNameLike(productName); + } + + @Override + public List findByCategory(String category){ + return productMapper.findByCategory(category); + } + + @Override + public List findByIntrate(float intrate){ + return productMapper.findByIntrate(intrate); + } + + @Override + public List findByCount(){ + List productList = new ArrayList(); + List listusage = usageDateMapper.selectByCount(); + int[] arr = listusage.stream().mapToInt(Integer::valueOf).toArray(); + for(int i=0;i