diff --git a/springBootBlog/src/main/resources/templates/posts.html b/springBootBlog/src/main/resources/templates/posts.html index 131606cc7..ee5e43a7b 100644 --- a/springBootBlog/src/main/resources/templates/posts.html +++ b/springBootBlog/src/main/resources/templates/posts.html @@ -31,7 +31,7 @@
Author
- diff --git a/springWarehouse/data/merchant_sample.csv b/springWarehouse/data/merchant_sample.csv index 9c35ac684..a3102ee19 100644 --- a/springWarehouse/data/merchant_sample.csv +++ b/springWarehouse/data/merchant_sample.csv @@ -1,4 +1,16 @@ name,city,type,status merchant-1,taipei,normal,0 merchant-2,sapporo,normal,0 +merchant-3,kushiro,normal,0 +merchant-1,taipei,normal,0 +merchant-2,sapporo,normal,0 +merchant-3,kushiro,normal,0 +merchant-1,taipei,normal,0 +merchant-2,sapporo,normal,0 +merchant-3,kushiro,normal,0 +merchant-1,taipei,normal,0 +merchant-2,sapporo,normal,0 +merchant-3,kushiro,normal,0 +merchant-1,taipei,normal,0 +merchant-2,sapporo,normal,0 merchant-3,kushiro,normal,0 \ No newline at end of file diff --git a/springWarehouse/pom.xml b/springWarehouse/pom.xml index 3ba22b720..23f8f4be3 100644 --- a/springWarehouse/pom.xml +++ b/springWarehouse/pom.xml @@ -164,6 +164,11 @@ 1.7.0 + + org.springframework.boot + spring-boot-starter-data-jpa + + diff --git a/springWarehouse/sql/ddl/order.sql b/springWarehouse/sql/ddl/order.sql index a4003ce95..543f33058 100644 --- a/springWarehouse/sql/ddl/order.sql +++ b/springWarehouse/sql/ddl/order.sql @@ -16,6 +16,10 @@ CREATE TABLE IF NOT EXISTS orders ( INSERT INTO orders(id, merchant_id, product_id, amount, status, create_time, update_time) VALUES -("213ac245-7a2a-453b-a4a7-149426b13f84", 1, 1, 1, "completed", now(), now()), -("d42b3224-b715-46af-9294-3b2ecc6ccc7a", 2, 2, 1, "cancelled", now(), now()), +("213ac24efgefdf84", 1, 1, 1, "completed", now(), now()), +("d42b3224-b715-4gfgf-3b2eccc7a", 2, 2, 1, "cancelled", now(), now()), +("d42b322;;4-b715-4gfgf-3b2eccc7a", 2, 2, 1, "cancelled", now(), now()), +("-b715-4gfg;;f-3b2eccc7a", 2, 2, 1, "cancelled", now(), now()), +("-b715-4gfgf-", 2, 2, 1, "cancelled", now(), now()), +("d42b3224--4gfgf-3b2eccc7a", 2, 2, 1, "cancelled", now(), now()), (uuid(), 1, 3, 1, "pending", now(), now()); \ No newline at end of file diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/WarehouseApplication.java b/springWarehouse/src/main/java/com/yen/springWarehouse/WarehouseApplication.java index cbf320879..86be75cec 100644 --- a/springWarehouse/src/main/java/com/yen/springWarehouse/WarehouseApplication.java +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/WarehouseApplication.java @@ -16,4 +16,4 @@ public static void main(String[] args) { SpringApplication.run(WarehouseApplication.class, args); } -} +} \ No newline at end of file diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/bean/Merchant.java b/springWarehouse/src/main/java/com/yen/springWarehouse/bean/Merchant.java index 1c1bb78de..b41debd71 100644 --- a/springWarehouse/src/main/java/com/yen/springWarehouse/bean/Merchant.java +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/bean/Merchant.java @@ -8,17 +8,22 @@ import lombok.Data; import lombok.NoArgsConstructor; +import javax.persistence.*; import java.io.Serializable; @Data +@Entity @AllArgsConstructor @NoArgsConstructor -@TableName("merchant") +//@TableName("merchant") +@Table(name="merchant") public class Merchant implements Serializable { private static final long serialVersionUID = 234345356533250815L; - @TableId(type = IdType.AUTO) + @Id + @GeneratedValue(strategy= GenerationType.IDENTITY) + //@TableId(type = IdType.AUTO) private int id; @TableField("name") diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/config/CorsConfig.java b/springWarehouse/src/main/java/com/yen/springWarehouse/config/CorsConfig.java new file mode 100644 index 000000000..db41036c9 --- /dev/null +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/config/CorsConfig.java @@ -0,0 +1,33 @@ +package com.yen.springWarehouse.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class CorsConfig { + + @Bean + public WebMvcConfigurer corsConfigurer() { + return new WebMvcConfigurer() { + @Override + public void addCorsMappings(CorsRegistry registry) { + + //映射路徑 + registry.addMapping("/**") + //允許跨網域請求的來源 + .allowedOrigins("/*") + //允許跨域攜帶cookie資訊,預設跨網域請求是不攜帶cookie資訊的。 + .allowCredentials(true) + //允許使用那些請求方式 + .allowedMethods("GET", "POST", "PUT", "DELETE") + //允許哪些Header + .allowedHeaders("/*") + //可獲取哪些Header(因為跨網域預設不能取得全部Header資訊) + .exposedHeaders("Header1", "Header2"); + } + }; + } + +} diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/controller/MerchantController.java b/springWarehouse/src/main/java/com/yen/springWarehouse/controller/MerchantController.java index c24e00731..5268ab2cf 100644 --- a/springWarehouse/src/main/java/com/yen/springWarehouse/controller/MerchantController.java +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/controller/MerchantController.java @@ -1,21 +1,27 @@ package com.yen.springWarehouse.controller; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.pagehelper.PageInfo; import com.yen.springWarehouse.bean.Merchant; import com.yen.springWarehouse.bean.ProductType; +import com.yen.springWarehouse.repository.MerchantRepository; import com.yen.springWarehouse.service.MerchantService; import com.yen.springWarehouse.util.csvUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; + import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.BufferedReader; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -25,9 +31,14 @@ @RequestMapping("/merchant") public class MerchantController { + private final int PAGINATIONSIZE = 3; + @Autowired MerchantService merchantService; + @Autowired + MerchantRepository merchantRepository; + @GetMapping("/toInput") public String input(Map map) { @@ -78,30 +89,50 @@ public String createBatch(@RequestParam("file") MultipartFile file, Map map, @RequestParam(value="pageNo", required=false, defaultValue="1") String pageNoStr) { - - int pageNo; - - // check pageNo - pageNo = Integer.parseInt(pageNoStr); - if(pageNo < 1){ - pageNo = 1; + public String list(@RequestParam(value = "pageNum", required = false, defaultValue = "0") int pageNum, + @RequestParam(value="pageSize", defaultValue = "0" + PAGINATIONSIZE) int pageSize, + Map map) { + + //pageNum = 2; + log.info(">>> pageNum = {}", pageNum); + +// Page page = new Page<>(pageNum, PAGINATIONSIZE); +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// IPage iPage = merchantService.page(page, +// new LambdaQueryWrapper() +// .orderByAsc(Merchant::getId) +// ); +// log.info("iPage.total = {}, iPage.getPages = {} iPage = {}", iPage.getTotal(), iPage.getPages(), iPage); +// map.put("page", iPage); + + + Pageable pageRequest = PageRequest.of(pageNum, pageSize, Sort.by(Sort.Direction.DESC, "id")); + Page merchantsPage = merchantRepository.findAll(pageRequest); //merchantService //postRepository.findAll(pageRequest); + List merchants = merchantsPage.toList(); + log.info(">>> merchants length = {}", merchants.toArray().length); + PageInfo pageInfo = null; + //為了程式的嚴謹性,判斷非空: + if(pageNum <= 0){ + pageNum = 0; + } + log.info("當前頁是:"+pageNum+"顯示條數是:"+pageSize); + //1.引入分頁外掛,pageNum是第幾頁,pageSize是每頁顯示多少條,預設查詢總數count + PageHelper.startPage(pageNum, pageSize); + //2.緊跟的查詢就是一個分頁查詢-必須緊跟.後面的其他查詢不會被分頁,除非再次呼叫PageHelper.startPage + try { + //Page postList = postRepository.findAll(pageRequest);//service查詢所有的資料的介面 + List merchantList = merchantService.getAllMerchant();//service查詢所有的資料的介面 + log.info(">>> 分頁資料:" + merchantList.get(0).toString()); + //3.使用PageInfo包裝查詢後的結果,5是連續顯示的條數,結果list型別是Page + pageInfo = new PageInfo(merchantList, pageSize); + //4.使用model/map/modelandview等帶回前端 + System.out.println(">>> (merchant) pageInfo = " + pageInfo.getPages()); + + map.put("pageInfo",pageInfo); + map.put("merchants", merchants); + }finally { + PageHelper.clearPage(); //清理 ThreadLocal 儲存的分頁引數,保證執行緒安全 } - - /* - * 1st param:which page - * 2nd param : record count per page - */ - log.info("pageNo = {}", pageNo); - Page page = new Page<>(pageNo,3); - QueryWrapper queryWrapper = new QueryWrapper<>(); - IPage iPage = merchantService.page(page, - new LambdaQueryWrapper() - .orderByAsc(Merchant::getId) - ); - log.info("iPage.total = {}, iPage.getPages = {} iPage = {}", iPage.getTotal(), iPage.getPages(), iPage); - map.put("page", iPage); - return "merchant/list_merchant"; } @@ -112,7 +143,7 @@ public String remove(@PathVariable("typeId") Integer typeId) { return "redirect:/merchant/list"; } - @GetMapping(value="/preUpdate/{typeId}") + @GetMapping(value = "/preUpdate/{typeId}") public String preUpdate(@PathVariable("typeId") Integer typeId, Map map) { Merchant merchant = merchantService.getById(typeId); @@ -121,7 +152,7 @@ public String preUpdate(@PathVariable("typeId") Integer typeId, Map { List getMerchantList(Page merchantPage, @Param("ew") QueryWrapper wrapper); + + List getAllMerchant(); } diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/merchantMapper.xml b/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/merchantMapper.xml index 8f2b7c988..b0c900929 100644 --- a/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/merchantMapper.xml +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/merchantMapper.xml @@ -5,8 +5,7 @@ - - + + + + \ No newline at end of file diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/repository/MerchantRepository.java b/springWarehouse/src/main/java/com/yen/springWarehouse/repository/MerchantRepository.java new file mode 100644 index 000000000..61364e1eb --- /dev/null +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/repository/MerchantRepository.java @@ -0,0 +1,9 @@ +package com.yen.springWarehouse.repository; + +import com.yen.springWarehouse.bean.Merchant; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Component; + +@Component +public interface MerchantRepository extends PagingAndSortingRepository { +} diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/service/MerchantService.java b/springWarehouse/src/main/java/com/yen/springWarehouse/service/MerchantService.java index 16fd9091c..f890e8f4b 100644 --- a/springWarehouse/src/main/java/com/yen/springWarehouse/service/MerchantService.java +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/service/MerchantService.java @@ -7,8 +7,11 @@ import com.yen.springWarehouse.util.MerchantQueryHelper; import com.yen.springWarehouse.util.ProductQueryHelper; +import java.util.List; + public interface MerchantService extends IService { Page getMerchantPage(MerchantQueryHelper helper, Integer pageNo, Integer pageSize); + List getAllMerchant(); } diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/service/impl/MerchantServiceImpl.java b/springWarehouse/src/main/java/com/yen/springWarehouse/service/impl/MerchantServiceImpl.java index 857899b61..c0fe3a7dd 100644 --- a/springWarehouse/src/main/java/com/yen/springWarehouse/service/impl/MerchantServiceImpl.java +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/service/impl/MerchantServiceImpl.java @@ -51,4 +51,9 @@ public Page getMerchantPage(MerchantQueryHelper helper, Integer pageNo return new Page<>(); } + @Override + public List getAllMerchant() { + return merchantMapper.getAllMerchant(); + } + } diff --git a/springWarehouse/src/main/resources/templates/main.html b/springWarehouse/src/main/resources/templates/main.html index bae2e6067..f944a50e8 100644 --- a/springWarehouse/src/main/resources/templates/main.html +++ b/springWarehouse/src/main/resources/templates/main.html @@ -46,7 +46,7 @@ - \ No newline at end of file