From 72b2f548d0119ea73a2a622c5d9ed8b42de80be4 Mon Sep 17 00:00:00 2001 From: yennanliu Date: Fri, 13 Oct 2023 10:07:08 +0800 Subject: [PATCH 01/11] add Order bean, mapper, service, impl, controller --- .../com/yen/springWarehouse/bean/Order.java | 39 +++++++++++++ .../controller/OrderController.java | 55 +++++++++++++++++++ .../springWarehouse/mapper/OrderMapper.java | 17 ++++++ .../springWarehouse/mapper/OrderMapper.xml | 22 ++++++++ .../springWarehouse/service/OrderService.java | 13 +++++ .../service/impl/OrderServiceImpl.java | 37 +++++++++++++ .../util/OrderQueryHelper.java | 9 +++ 7 files changed, 192 insertions(+) create mode 100644 springWarehouse/src/main/java/com/yen/springWarehouse/bean/Order.java create mode 100644 springWarehouse/src/main/java/com/yen/springWarehouse/controller/OrderController.java create mode 100644 springWarehouse/src/main/java/com/yen/springWarehouse/mapper/OrderMapper.java create mode 100644 springWarehouse/src/main/java/com/yen/springWarehouse/mapper/OrderMapper.xml create mode 100644 springWarehouse/src/main/java/com/yen/springWarehouse/service/OrderService.java create mode 100644 springWarehouse/src/main/java/com/yen/springWarehouse/service/impl/OrderServiceImpl.java create mode 100644 springWarehouse/src/main/java/com/yen/springWarehouse/util/OrderQueryHelper.java diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/bean/Order.java b/springWarehouse/src/main/java/com/yen/springWarehouse/bean/Order.java new file mode 100644 index 000000000..b3e34f47d --- /dev/null +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/bean/Order.java @@ -0,0 +1,39 @@ +package com.yen.springWarehouse.bean; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +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; +import java.time.LocalDateTime; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("order") +public class Order implements Serializable { + + private static final long serialVersionUID = 58533333369667604L; + + @TableId(type = IdType.AUTO) + private int id; + + @TableField("merchant_id") + private int merchantId; + + @TableField("product_id") + private int productId; + + @TableField("amount") + private int amount; + + @TableField("create_time") + private LocalDateTime createTime; + + @TableField("update_time") + private LocalDateTime updateTime; +} diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/controller/OrderController.java b/springWarehouse/src/main/java/com/yen/springWarehouse/controller/OrderController.java new file mode 100644 index 000000000..56a802df5 --- /dev/null +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/controller/OrderController.java @@ -0,0 +1,55 @@ +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.yen.springWarehouse.bean.Order; +import com.yen.springWarehouse.service.OrderService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.Map; + +@Slf4j +@Controller +@RequestMapping("/order") +public class OrderController { + + @Autowired + OrderService orderService; + + + @GetMapping("/list") + public String list(Map map, @RequestParam(value="pageNo", required=false, defaultValue="1") String pageNoStr) { + + // TODO : refactor to pageUtil (a common method handle paging request) + int pageNo; + + // check pageNo + pageNo = Integer.parseInt(pageNoStr); + if(pageNo < 1){ + pageNo = 1; + } + + /* + * 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 = orderService.page(page, + new LambdaQueryWrapper() + .orderByAsc(Order::getId) + ); + log.info("iPage.total = {}, iPage.getPages = {} iPage = {}", iPage.getTotal(), iPage.getPages(), iPage); + map.put("page", iPage); + + return "order/list_order"; + } +} diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/OrderMapper.java b/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/OrderMapper.java new file mode 100644 index 000000000..601005241 --- /dev/null +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/OrderMapper.java @@ -0,0 +1,17 @@ +package com.yen.springWarehouse.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yen.springWarehouse.bean.Order; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface OrderMapper extends BaseMapper { + + List getOrderList(Page orderPage, @Param("ew") Wrapper wrapper); + +} diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/OrderMapper.xml b/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/OrderMapper.xml new file mode 100644 index 000000000..7a7cea663 --- /dev/null +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/OrderMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/service/OrderService.java b/springWarehouse/src/main/java/com/yen/springWarehouse/service/OrderService.java new file mode 100644 index 000000000..e565f7bfe --- /dev/null +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/service/OrderService.java @@ -0,0 +1,13 @@ +package com.yen.springWarehouse.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.yen.springWarehouse.bean.Order; +import com.yen.springWarehouse.bean.Product; +import com.yen.springWarehouse.util.OrderQueryHelper; +import com.yen.springWarehouse.util.ProductQueryHelper; + +public interface OrderService extends IService { + + Page getOrderPage(OrderQueryHelper helper, Integer pageNo, Integer pageSize); +} diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/service/impl/OrderServiceImpl.java b/springWarehouse/src/main/java/com/yen/springWarehouse/service/impl/OrderServiceImpl.java new file mode 100644 index 000000000..692bb455a --- /dev/null +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/service/impl/OrderServiceImpl.java @@ -0,0 +1,37 @@ +package com.yen.springWarehouse.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yen.springWarehouse.bean.Order; +import com.yen.springWarehouse.mapper.OrderMapper; +import com.yen.springWarehouse.service.OrderService; +import com.yen.springWarehouse.util.OrderQueryHelper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@Transactional(rollbackFor = Exception.class) +public class OrderServiceImpl extends ServiceImpl implements OrderService { + + @Override + public Page getOrderPage(OrderQueryHelper helper, Integer pageNo, Integer pageSize) { + + + Page page = new Page<>(pageNo,pageSize); + QueryWrapper orderWrapper = new QueryWrapper<>(); + + List orderList = baseMapper.getOrderList(page, orderWrapper); + + if(CollectionUtils.isNotEmpty(orderList)){ + page.setRecords(orderList); + return page; + } + + return new Page<>(); + } + +} diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/util/OrderQueryHelper.java b/springWarehouse/src/main/java/com/yen/springWarehouse/util/OrderQueryHelper.java new file mode 100644 index 000000000..e38115b68 --- /dev/null +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/util/OrderQueryHelper.java @@ -0,0 +1,9 @@ +package com.yen.springWarehouse.util; + +import java.io.Serializable; + +public class OrderQueryHelper implements Serializable { + + private static final long serialVersionUID = -977444405069L; + +} From ef08d87498f3c2fca2d08396d214e19bccda9a98 Mon Sep 17 00:00:00 2001 From: yennanliu Date: Fri, 13 Oct 2023 10:28:12 +0800 Subject: [PATCH 02/11] add order html, fix order id strategy, fix mapper, update url in main html --- .../com/yen/springWarehouse/bean/Order.java | 7 +- .../controller/OrderController.java | 1 + .../springWarehouse/mapper/OrderMapper.xml | 2 +- .../src/main/resources/templates/main.html | 7 + .../templates/order/input_order.html | 25 ++++ .../resources/templates/order/list_order.html | 122 ++++++++++++++++++ .../templates/order/update_order.html | 27 ++++ 7 files changed, 187 insertions(+), 4 deletions(-) create mode 100644 springWarehouse/src/main/resources/templates/order/input_order.html create mode 100644 springWarehouse/src/main/resources/templates/order/list_order.html create mode 100644 springWarehouse/src/main/resources/templates/order/update_order.html diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/bean/Order.java b/springWarehouse/src/main/java/com/yen/springWarehouse/bean/Order.java index b3e34f47d..598461f11 100644 --- a/springWarehouse/src/main/java/com/yen/springWarehouse/bean/Order.java +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/bean/Order.java @@ -14,13 +14,14 @@ @Data @AllArgsConstructor @NoArgsConstructor -@TableName("order") +@TableName("orders") public class Order implements Serializable { private static final long serialVersionUID = 58533333369667604L; - @TableId(type = IdType.AUTO) - private int id; + // https://www.cnblogs.com/mark5/p/14268122.html + @TableId(type = IdType.ASSIGN_UUID) + private String id; @TableField("merchant_id") private int merchantId; diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/controller/OrderController.java b/springWarehouse/src/main/java/com/yen/springWarehouse/controller/OrderController.java index 56a802df5..f01b7b784 100644 --- a/springWarehouse/src/main/java/com/yen/springWarehouse/controller/OrderController.java +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/controller/OrderController.java @@ -52,4 +52,5 @@ public String list(Map map, @RequestParam(value="pageNo", requir return "order/list_order"; } + } diff --git a/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/OrderMapper.xml b/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/OrderMapper.xml index 7a7cea663..515b4e3a0 100644 --- a/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/OrderMapper.xml +++ b/springWarehouse/src/main/java/com/yen/springWarehouse/mapper/OrderMapper.xml @@ -12,7 +12,7 @@ select * from - order + orders ${ew.sqlSegment} diff --git a/springWarehouse/src/main/resources/templates/main.html b/springWarehouse/src/main/resources/templates/main.html index dd87cd4d1..4d7657541 100644 --- a/springWarehouse/src/main/resources/templates/main.html +++ b/springWarehouse/src/main/resources/templates/main.html @@ -32,6 +32,13 @@ +
+ +