当前位置:网站首页>秒殺系統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>
運行:
边栏推荐
- socket. IO build distributed web push server
- 什么是one-hot encoding?Pytorch中,将label变成one hot编码的两种方式
- Global and Chinese market of air cargo logistics 2022-2028: Research Report on technology, participants, trends, market size and share
- 详解指针进阶2
- [transform] [practice] use pytoch's torch nn. Multiheadattention to realize self attention
- Dataframe returns the whole row according to the value
- 【云原生训练营】模块七 Kubernetes 控制平面组件:调度器与控制器
- The method of parameter estimation of user-defined function in MATLAB
- Visual upper system design and development (Halcon WinForm) -2 Global variable design
- Kubernetes帶你從頭到尾捋一遍
猜你喜欢
Kubernetes 进阶训练营 Pod基础
Chapter 04_ Logical architecture
Jvm-08-garbage collector
Baidu AI Cloud helps Shizuishan upgrade the smart health care model of "Internet + elderly care services"
Kubernetes带你从头到尾捋一遍
如何使用 @NotNull等注解校验 并全局异常处理
视觉上位系统设计开发(halcon-winform)
Redis lock Optimization Practice issued by gaobingfa
什么是embedding(把物体编码为一个低维稠密向量),pytorch中nn.Embedding原理及使用
什么是one-hot encoding?Pytorch中,将label变成one hot编码的两种方式
随机推荐
The state does not change after the assignment of El switch
[pytorch learning notes] transforms
Enable multi-threaded download of chrome and edge browsers
redis单线程问题强制梳理门外汉扫盲
What is embedding (encoding an object into a low dimensional dense vector), NN in pytorch Principle and application of embedding
Introduction, use and principle of synchronized
视觉上位系统设计开发(halcon-winform)-5.相机
阿特拉斯atlas扭矩枪 USB通讯教程基于MTCOM
Jvm-04-runtime data area heap, method area
Kubernetes advanced training camp pod Foundation
Stress test WebService with JMeter
Matplotlib drawing label cannot display Chinese problems
Concurrency-01-create thread, sleep, yield, wait, join, interrupt, thread state, synchronized, park, reentrantlock
Using Tengine to solve the session problem of load balancing
Markdown file titles are all reduced by one level
视觉上位系统设计开发(halcon-winform)-2.全局变量设计
Using multipleoutputs to output multiple files in MapReduce
What are the composite types of Blackhorse Clickhouse, an OLAP database recognized in the industry
Nppexec get process return code
Characteristics of MySQL InnoDB storage engine -- Analysis of row lock