栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

10天手敲一个SpringBoot网上商城项目(六)——删除收货地址/展示商品热销排行

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

10天手敲一个SpringBoot网上商城项目(六)——删除收货地址/展示商品热销排行

静态资源及sql文件分享
链接:https://pan.baidu.com/s/1X-yjmQcPD3PqS21x0HplNA?pwd=23gr
提取码:23gr

文章目录
    • 删除收货地址
      • 1.删除收货地址-持久层
        • 1.1规划需要执行的SQL语句
        • 1.2设计接口和抽象方法
        • 1.3编写映射
        • 1.4单元测试
      • 2.删除收货地址-业务层
        • 2.1规划异常
        • 2.2设计接口和抽象方法及实现
        • 2.3单元测试
      • 3.删除收货地址-控制层
        • 3.1处理异常
        • 3.2设计请求
        • 3.3处理请求
        • 3.4单元测试
      • 4.删除收货地址-前端页面
    • 商品热销排行
      • 1.创建数据表
      • 2.创建商品的实体类
      • 3.商品热销排行-持久层
        • 3.1 规划需要执行的SQL语句
        • 3.2 设计接口和抽象方法
        • 3.3 编写映射
      • 4.商品热销排行-业务层
        • 4.1 规划异常
        • 4.2 设计接口和抽象方法及实现
      • 5.商品热销排行-控制层
        • 5.1 处理异常
        • 5.2 设计请求
        • 5.3 处理请求
      • 6.商品-热销排行-前端页面

删除收货地址 1.删除收货地址-持久层 1.1规划需要执行的SQL语句

1.在删除之前判断该数据是否存在,需要执行查询语句看能否查到该数据,还需要根据返回的aid获取uid并和session中的uid进行比较判断归属是否正确,这一条SQL语句在设置收货地址时已经开发,无需重复开发

2.开发执行删除的SQL语句

delete from t_address where aid=?

3.需要判断删除的地址是否是默认地址(使用aid查询到的地址对象的getIsDefault方法),如果判断出删的是默认地址,则还需要定义把哪个地址设为默认,这里定义最新修改的为默认地址.

开发该SQL语句

select * from t_address where uid=? order by modified_time DESC limit 0,1

其中limit 0,1表示查询到的第一条数据(limit (n-1),pageSize),这样查询后就只会获得第一条数据

4.如果用户本身就只有一条地址,那么删除后其他操作就可以不进行了,所以需要查询该用户的所有地址数量,在设置收货地址时已经开发,无需重复开发

1.2设计接口和抽象方法

在AddressMapper接口中进行抽象方法的设计

Integer deleteByAid(Integer aid);


Address findLastModified(Integer uid);
1.3编写映射

在AddressMapper.xml文件中进行映射


    delete from t_address where aid=#{aid}




4.商品热销排行-业务层 4.1 规划异常

只要是查询,不涉及到增删改的,都没有异常,无非就是没有该数据然后返回空

4.2 设计接口和抽象方法及实现

1.创建IProductService接口,并在接口中添加findHotList()方法

public interface IProductService {
    
    List findHotList();
}

2.在业务层创建ProductServiceImpl类并实现该方法

package com.cy.store.service.impl;
import com.cy.store.entity.Product;
import com.cy.store.mapper.ProductMapper;
import com.cy.store.service.IProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;


@Service
public class ProductServiceImpl implements IProductService {
    @Autowired
    private ProductMapper productMapper;

    @Override
    public List findHotList() {
        List list = productMapper.findHotList();
        for (Product product : list) {
            product.setPriority(null);
            product.setCreatedUser(null);
            product.setCreatedTime(null);
            product.setModifiedUser(null);
            product.setModifiedTime(null);
        }
        return list;
    }
}
5.商品热销排行-控制层 5.1 处理异常

无异常。

5.2 设计请求
  • /products/hot_list
  • GET
  • 不需要请求参数
  • JsonResult
5.3 处理请求

1.创建ProductController类并使其继承BaseController类,在类中编写处理请求的方法

@RestController
@RequestMapping("products")
public class ProductController extends BaseController {
    @Autowired
    private IProductService productService;

    @RequestMapping("hot_list")
    public JsonResult> getHotList() {
        List data = productService.findHotList();
        return new JsonResult>(OK, data);
    }
}

2.为了能不登录也可以访问该数据,需要将products/**请求添加到白名单中:

在LoginInterceptorConfigure类的addInterceptors方法中添加代码:

patterns.add("/products/**");
6.商品-热销排行-前端页面

1.在index.html页面给“热销排行”列表的div标签设置id属性值

2.在index.html页面中添加展示热销排行商品的js代码


关于image标签里面的属性src=“…#{image}collect.png” class=“img-responsive”

  • …代表跳到父文件夹,即index.html的父文件夹static
  • …后面和collect前面不需要单斜杠,因为数据库中图片地址的数据前面后面加的有

关于a标签里面的href=“product.html?id=#{id}”

  • 这里是为了点击超链接进入商品详情页时可以把商品id传给详情页,使两个页面形成联系
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/826246.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号