当前位置:网站首页>Seckill system 3- product list and product details
Seckill system 3- product list and product details
2022-07-03 15:21:00 【You are my forever bug】
1、 First, add data in the database
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、 according to Mybatis-plus Reverse engineering generates corresponding files from database tables
3、 Get List of goods
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;
/** * Jump to product page * @param * @param model * @param * @return */
@RequestMapping("/toList")
public String toList(Model model,User user){
// Put user information To the front page
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> * Commodity list Service implementation class * </p> * * @author jobob * @since 2022-06-14 */
@Service
public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements IGoodsService {
@Autowired(required = false)
GoodsMapper goodsMapper;
/** * Get a list of products * @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>
And the front-end product list page
<!DOCTYPE html>
<html lang="en"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title> List of goods </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"> Second kill commodity list </div>
<table class="table" id="goodslist">
<tr>
<td> Name of commodity </td>
<td> Commodity images </td>
<td> The original price of the goods </td>
<td> price spike </td>
<td> Inventory quantity </td>
<td> details </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}"> details </a></td>
</tr>
</table>
</div>
</body>
</html>
function :
边栏推荐
- Mysql报错:[ERROR] mysqld: File ‘./mysql-bin.010228‘ not found (Errcode: 2 “No such file or directory“)
- 【pytorch学习笔记】Datasets and Dataloaders
- XWiki Installation Tips
- 【云原生训练营】模块七 Kubernetes 控制平面组件:调度器与控制器
- 整形和浮点型是如何在内存中的存储
- Global and Chinese market of air cargo logistics 2022-2028: Research Report on technology, participants, trends, market size and share
- 什么是Label encoding?one-hot encoding ,label encoding两种编码该如何区分和使用?
- [pytorch learning notes] datasets and dataloaders
- [transform] [practice] use pytoch's torch nn. Multiheadattention to realize self attention
- Atlas atlas torque gun USB communication tutorial based on mtcom
猜你喜欢
Introduction, use and principle of synchronized
Can‘t connect to MySQL server on ‘localhost‘
Basic SQL tutorial
[cloud native training camp] module 7 kubernetes control plane component: scheduler and controller
第04章_逻辑架构
Concurrency-02-visibility, atomicity, orderliness, volatile, CAS, atomic class, unsafe
What are the composite types of Blackhorse Clickhouse, an OLAP database recognized in the industry
百度智能云助力石嘴山市升级“互联网+养老服务”智慧康养新模式
[transform] [practice] use pytoch's torch nn. Multiheadattention to realize self attention
【云原生训练营】模块七 Kubernetes 控制平面组件:调度器与控制器
随机推荐
Leetcode the smallest number of the rotation array of the offer of the sword (11)
[pytorch learning notes] datasets and dataloaders
Global and Chinese markets for sterile packaging 2022-2028: Research Report on technology, participants, trends, market size and share
Popular understanding of gradient descent
Redis lock Optimization Practice issued by gaobingfa
Visual upper system design and development (Halcon WinForm) -1 Process node design
Leetcode sword offer find the number I (nine) in the sorted array
Summary of concurrent full knowledge points
Kubernetes will show you from beginning to end
The first character of leetcode sword offer that only appears once (12)
Enable multi-threaded download of chrome and edge browsers
北京共有产权房出租新规实施的租赁案例
[attention mechanism] [first vit] Detr, end to end object detection with transformers the main components of the network are CNN and transformer
Besides lying flat, what else can a 27 year old do in life?
【注意力机制】【首篇ViT】DETR,End-to-End Object Detection with Transformers网络的主要组成是CNN和Transformer
在MapReduce中利用MultipleOutputs输出多个文件
什么是Label encoding?one-hot encoding ,label encoding两种编码该如何区分和使用?
C语言刷题~Leetcode与牛客网简单题
基于SVN分支开发模式流程浅析
Kubernetes - YAML文件解读