当前位置:网站首页>秒殺系統3-商品列錶和商品詳情
秒殺系統3-商品列錶和商品詳情
2022-07-03 15:20:00 【ジ你是我永遠のbugグ】
1、首先在數據庫添加數據
INSERT INTO `t_goods` VALUES (1, 'Iphone 12 64G', 'Iphone 12 64G', '/img/iphone12.png', 'Iphone 12 64G', 5299.00, 100);
INSERT INTO `t_goods` VALUES (2, 'Iphone12Pro128G', 'Iphone12Pro128G', '/img/iphone12pro.png', 'Iphone12Pro128G', 6299.00, 100);
INSERT INTO `t_seckill_goods` VALUES (1, 1, 4299.00, 10, '2022-06-15 00:00:00', '2022-07-15 00:00:00');
INSERT INTO `t_seckill_goods` VALUES (2, 2, 5299.00, 10, '2022-06-15 00:00:00', '2022-07-15 00:00:00');
2、根據 Mybatis-plus 逆向工程將數據庫錶生成相應文件
3、在接口中獲取 商品列錶
package com.example.seckill.controller;
import com.example.seckill.common.RespBean;
import com.example.seckill.controller.parm.LoginRequestParam;
import com.example.seckill.pojo.User;
import com.example.seckill.service.IGoodsService;
import com.example.seckill.service.IUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@RequestMapping("/goods")
@Controller
@Slf4j
public class GoodsController {
@Autowired
IGoodsService goodsService;
@Autowired
IUserService userService;
/** * 跳轉商品頁 * @param * @param model * @param * @return */
@RequestMapping("/toList")
public String toList(Model model,User user){
// 將用戶信息 傳到前端頁面
model.addAttribute("user",user);
model.addAttribute("goodsList",goodsService.findGoodsList());
return "goodsList";
}
}
package com.example.seckill.service.impl;
import com.example.seckill.controller.outPutParm.GoodsListOutPut;
import com.example.seckill.pojo.Goods;
import com.example.seckill.mapper.GoodsMapper;
import com.example.seckill.service.IGoodsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/** * <p> * 商品錶 服務實現類 * </p> * * @author jobob * @since 2022-06-14 */
@Service
public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements IGoodsService {
@Autowired(required = false)
GoodsMapper goodsMapper;
/** * 獲取商品列錶 * @return */
@Override
public List<GoodsListOutPut> findGoodsList() {
List<GoodsListOutPut> goodsList= goodsMapper.findGoodsList();
return goodsList;
}
}
<select id="findGoodsList" resultType="com.example.seckill.controller.outPutParm.GoodsListOutPut">
SELECT g.id,
g.goods_name,
g.goods_title,
g.goods_img,
g.goods_price,
g.goods_stock,
sg.seckill_price,
sg.stock_count,
sg.start_date,
sg.end_date
FROM t_goods g
LEFT JOIN t_seckill_goods sg on g.id = sg.goods_id
</select>
以及前端商品列錶頁面
<!DOCTYPE html>
<html lang="en"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>商品列錶</title>
<!-- jquery -->
<script type="text/javascript" th:src="@{/js/jquery.min.js}"></script>
<!-- bootstrap -->
<link rel="stylesheet" type="text/css" th:href="@{/bootstrap/css/bootstrap.min.css}"/>
<script type="text/javascript" th:src="@{/bootstrap/js/bootstrap.min.js}"></script>
<!-- layer -->
<script type="text/javascript" th:src="@{/layer/layer.js}"></script>
<!-- common.js -->
<script type="text/javascript" th:src="@{/js/common.js}"></script>
</head>
<body>
<div class="panel panel-default">
<div class="panel-heading">秒殺商品列錶</div>
<table class="table" id="goodslist">
<tr>
<td>商品名稱</td>
<td>商品圖片</td>
<td>商品原價</td>
<td>秒殺價</td>
<td>庫存數量</td>
<td>詳情</td>
</tr>
<tr th:each="goods,goodsStat : ${goodsList}">
<td th:text="${goods.goodsName}"></td>
<td><img th:src="@{${goods.goodsImg}}" width="100" height="100"/></td>
<td th:text="${goods.goodsPrice}"></td>
<td th:text="${goods.seckillPrice}"></td>
<td th:text="${goods.stockCount}"></td>
<td><a th:href="'/goodsDetail.html?goodsId='+${goods.id}">詳情</a></td>
</tr>
</table>
</div>
</body>
</html>
運行:
边栏推荐
- Idea does not specify an output path for the module
- 解决pushgateway数据多次推送会覆盖的问题
- Kubernetes will show you from beginning to end
- [probably the most complete in Chinese] pushgateway entry notes
- Puppet自动化运维排错案例
- 【云原生训练营】模块八 Kubernetes 生命周期管理和服务发现
- 使用JMeter对WebService进行压力测试
- Atlas atlas torque gun USB communication tutorial based on mtcom
- 整形和浮点型是如何在内存中的存储
- Leetcode the smallest number of the rotation array of the offer of the sword (11)
猜你喜欢
Finally, someone explained the financial risk management clearly
Popular understanding of linear regression (I)
Jvm-03-runtime data area PC, stack, local method stack
Visual upper system design and development (Halcon WinForm) -3 Image control
Kubernetes带你从头到尾捋一遍
Chapter 04_ Logical architecture
[transform] [practice] use pytoch's torch nn. Multiheadattention to realize self attention
The markdown file obtains the pictures of the network and stores them locally and modifies the URL
Kubernetes vous emmène du début à la fin
[pytorch learning notes] datasets and dataloaders
随机推荐
SQL server installation location cannot be changed
【云原生训练营】模块七 Kubernetes 控制平面组件:调度器与控制器
视觉上位系统设计开发(halcon-winform)-3.图像控件
Finally, someone explained the financial risk management clearly
[transformer] Introduction - the original author of Harvard NLP presented the annotated transformer in the form of line by line implementation in early 2018
Win10 enterprise 2016 long term service activation tutorial
函数栈帧的创建和销毁
Jvm-05-object, direct memory, string constant pool
Characteristics of MySQL InnoDB storage engine -- Analysis of row lock
[combinatorics] permutation and combination (set permutation, step-by-step processing example)
XWiki安装使用技巧
Enable multi-threaded download of chrome and edge browsers
Introduction to redis master-slave, sentinel and cluster mode
[pytorch learning notes] transforms
官网MapReduce实例代码详细批注
详解指针进阶2
What is one hot encoding? In pytoch, there are two ways to turn label into one hot coding
The first character of leetcode sword offer that only appears once (12)
Kubernetes帶你從頭到尾捋一遍
Reentrantlock usage and source code analysis