当前位置: 首页 > news >正文

电商网站开发面试题刷关键词的平台

电商网站开发面试题,刷关键词的平台,wordpress 视频 播放,软件界面设计方案地址簿相关功能 1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计1.1.3 表设计 1.2 代码实现1.2.1 Mapper层1.2.2 Service层1.2.3 Controller层 1.1 需求分析和设计 1.1.1 产品原型 地址簿,指的是消费者用户的地址信息,用户登录成功后可以维护自己的地…

地址簿相关功能

  • 1.1 需求分析和设计
    • 1.1.1 产品原型
    • 1.1.2 接口设计
    • 1.1.3 表设计
  • 1.2 代码实现
    • 1.2.1 Mapper层
    • 1.2.2 Service层
    • 1.2.3 Controller层

1.1 需求分析和设计

1.1.1 产品原型

地址簿,指的是消费者用户的地址信息,用户登录成功后可以维护自己的地址信息。同一个用户可以有多个地址信息,但是只能有一个默认地址
在这里插入图片描述

对于地址簿管理,有以下几个功能:

  • 查询地址列表
  • 新增地址
  • 修改地址
  • 删除地址
  • 设置默认地址
  • 查询默认地址

1.1.2 接口设计

根据上述原型图先粗粒度设计接口,共包含7个接口。

接口设计:

  • 新增地址
  • 查询登录用户所有地址
  • 查询默认地址
  • 根据id修改地址
  • 根据id删除地址
  • 根据id查询地址
  • 设置默认地址

接下来细粒度分析每个接口,明确每个接口的请求方式、请求路径、传入参数和返回值。

1). 新增地址
在这里插入图片描述

2). 查询登录用户所有地址

在这里插入图片描述

3). 查询默认地址

在这里插入图片描述

4). 修改地址
在这里插入图片描述
5). 根据id删除地址

在这里插入图片描述

6). 根据id查询地址

在这里插入图片描述

7). 设置默认地址

在这里插入图片描述

1.1.3 表设计

用户的地址信息会存储在address_book表,即地址簿表中。具体表结构如下:

字段名数据类型说明备注
idbigint主键自增
user_idbigint用户id逻辑外键
consigneevarchar(50)收货人
sexvarchar(2)性别
phonevarchar(11)手机号
province_codevarchar(12)省份编码
province_namevarchar(32)省份名称
city_codevarchar(12)城市编码
city_namevarchar(32)城市名称
district_codevarchar(12)区县编码
district_namevarchar(32)区县名称
detailvarchar(200)详细地址信息具体到门牌号
labelvarchar(100)标签公司、家、学校
is_defaulttinyint(1)是否默认地址1是 0否

这里面有一个字段is_default,实际上我们在设置默认地址时,只需要更新这个字段就可以了。

1.2 代码实现

1.2.1 Mapper层

创建AddressBookMapper.java

package com.sky.mapper;import com.sky.entity.AddressBook;
import org.apache.ibatis.annotations.*;
import java.util.List;@Mapper
public interface AddressBookMapper {/*** 条件查询* @param addressBook* @return*/List<AddressBook> list(AddressBook addressBook);/*** 新增* @param addressBook*/@Insert("insert into address_book" +"        (user_id, consignee, phone, sex, province_code, province_name, city_code, city_name, district_code," +"         district_name, detail, label, is_default)" +"        values (#{userId}, #{consignee}, #{phone}, #{sex}, #{provinceCode}, #{provinceName}, #{cityCode}, #{cityName}," +"                #{districtCode}, #{districtName}, #{detail}, #{label}, #{isDefault})")void insert(AddressBook addressBook);/*** 根据id查询* @param id* @return*/@Select("select * from address_book where id = #{id}")AddressBook getById(Long id);/*** 根据id修改* @param addressBook*/void update(AddressBook addressBook);/*** 根据 用户id修改 是否默认地址* @param addressBook*/@Update("update address_book set is_default = #{isDefault} where user_id = #{userId}")void updateIsDefaultByUserId(AddressBook addressBook);/*** 根据id删除地址* @param id*/@Delete("delete from address_book where id = #{id}")void deleteById(Long id);}

创建AddressBookMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sky.mapper.AddressBookMapper"><select id="list" parameterType="AddressBook" resultType="AddressBook">select * from address_book<where><if test="userId != null">and user_id = #{userId}</if><if test="phone != null">and phone = #{phone}</if><if test="isDefault != null">and is_default = #{isDefault}</if></where></select><update id="update" parameterType="addressBook">update address_book<set><if test="consignee != null">consignee = #{consignee},</if><if test="sex != null">sex = #{sex},</if><if test="phone != null">phone = #{phone},</if><if test="detail != null">detail = #{detail},</if><if test="label != null">label = #{label},</if><if test="isDefault != null">is_default = #{isDefault},</if></set>where id = #{id}</update></mapper>

1.2.2 Service层

创建AddressBookService.java

package com.sky.service;import com.sky.entity.AddressBook;
import java.util.List;public interface AddressBookService {List<AddressBook> list(AddressBook addressBook);void save(AddressBook addressBook);AddressBook getById(Long id);void update(AddressBook addressBook);void setDefault(AddressBook addressBook);void deleteById(Long id);}

创建AddressBookServiceImpl.java

package com.sky.service.impl;@Service
@Slf4j
public class AddressBookServiceImpl implements AddressBookService {@Autowiredprivate AddressBookMapper addressBookMapper;/*** 条件查询** @param addressBook* @return*/public List<AddressBook> list(AddressBook addressBook) {return addressBookMapper.list(addressBook);}/*** 新增地址** @param addressBook*/public void save(AddressBook addressBook) {addressBook.setUserId(BaseContext.getCurrentId());addressBook.setIsDefault(0);addressBookMapper.insert(addressBook);}/*** 根据id查询** @param id* @return*/public AddressBook getById(Long id) {AddressBook addressBook = addressBookMapper.getById(id);return addressBook;}/*** 根据id修改地址** @param addressBook*/public void update(AddressBook addressBook) {addressBookMapper.update(addressBook);}/*** 设置默认地址** @param addressBook*/@Transactionalpublic void setDefault(AddressBook addressBook) {//1、将当前用户的所有地址修改为非默认地址 update address_book set is_default = ? where user_id = ?addressBook.setIsDefault(0);addressBook.setUserId(BaseContext.getCurrentId());addressBookMapper.updateIsDefaultByUserId(addressBook);//2、将当前地址改为默认地址 update address_book set is_default = ? where id = ?addressBook.setIsDefault(1);addressBookMapper.update(addressBook);}/*** 根据id删除地址** @param id*/public void deleteById(Long id) {addressBookMapper.deleteById(id);}}

1.2.3 Controller层

package com.sky.controller.user;@RestController
@RequestMapping("/user/addressBook")
@Api(tags = "C端地址簿接口")
public class AddressBookController {@Autowiredprivate AddressBookService addressBookService;/*** 查询当前登录用户的所有地址信息** @return*/@GetMapping("/list")@ApiOperation("查询当前登录用户的所有地址信息")public Result<List<AddressBook>> list() {AddressBook addressBook = new AddressBook();addressBook.setUserId(BaseContext.getCurrentId());List<AddressBook> list = addressBookService.list(addressBook);return Result.success(list);}/*** 新增地址** @param addressBook* @return*/@PostMapping@ApiOperation("新增地址")public Result save(@RequestBody AddressBook addressBook) {addressBookService.save(addressBook);return Result.success();}@GetMapping("/{id}")@ApiOperation("根据id查询地址")public Result<AddressBook> getById(@PathVariable Long id) {AddressBook addressBook = addressBookService.getById(id);return Result.success(addressBook);}/*** 根据id修改地址** @param addressBook* @return*/@PutMapping@ApiOperation("根据id修改地址")public Result update(@RequestBody AddressBook addressBook) {addressBookService.update(addressBook);return Result.success();}/*** 设置默认地址** @param addressBook* @return*/@PutMapping("/default")@ApiOperation("设置默认地址")public Result setDefault(@RequestBody AddressBook addressBook) {addressBookService.setDefault(addressBook);return Result.success();}/*** 根据id删除地址** @param id* @return*/@DeleteMapping@ApiOperation("根据id删除地址")public Result deleteById(Long id) {addressBookService.deleteById(id);return Result.success();}/*** 查询默认地址*/@GetMapping("default")@ApiOperation("查询默认地址")public Result<AddressBook> getDefault() {//SQL:select * from address_book where user_id = ? and is_default = 1AddressBook addressBook = new AddressBook();addressBook.setIsDefault(1);addressBook.setUserId(BaseContext.getCurrentId());List<AddressBook> list = addressBookService.list(addressBook);if (list != null && list.size() == 1) {return Result.success(list.get(0));}return Result.error("没有查询到默认地址");}}

后记
👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹


文章转载自:
http://mnemotechny.rdbj.cn
http://electropolar.rdbj.cn
http://compatibility.rdbj.cn
http://iconographic.rdbj.cn
http://keap.rdbj.cn
http://batonist.rdbj.cn
http://subterposition.rdbj.cn
http://autostoper.rdbj.cn
http://hotcha.rdbj.cn
http://jetport.rdbj.cn
http://preferably.rdbj.cn
http://arboreous.rdbj.cn
http://pavior.rdbj.cn
http://betty.rdbj.cn
http://rubelliform.rdbj.cn
http://oystershell.rdbj.cn
http://resign.rdbj.cn
http://superexpress.rdbj.cn
http://remonstrate.rdbj.cn
http://reverend.rdbj.cn
http://nonyl.rdbj.cn
http://transpierce.rdbj.cn
http://confabulation.rdbj.cn
http://pollutant.rdbj.cn
http://classroom.rdbj.cn
http://thunderstricken.rdbj.cn
http://grossular.rdbj.cn
http://peeress.rdbj.cn
http://incurability.rdbj.cn
http://transcutaneous.rdbj.cn
http://spiritist.rdbj.cn
http://meionite.rdbj.cn
http://seismetic.rdbj.cn
http://hydrosome.rdbj.cn
http://chileanize.rdbj.cn
http://palaeozoology.rdbj.cn
http://toastmaster.rdbj.cn
http://poorish.rdbj.cn
http://blottesque.rdbj.cn
http://giardiasis.rdbj.cn
http://tittle.rdbj.cn
http://stricken.rdbj.cn
http://snip.rdbj.cn
http://haploidy.rdbj.cn
http://disroot.rdbj.cn
http://dawg.rdbj.cn
http://gentility.rdbj.cn
http://ammonal.rdbj.cn
http://cytokinin.rdbj.cn
http://lemnaceous.rdbj.cn
http://presbyope.rdbj.cn
http://underwriting.rdbj.cn
http://optimism.rdbj.cn
http://jailbird.rdbj.cn
http://monopteral.rdbj.cn
http://integer.rdbj.cn
http://giantism.rdbj.cn
http://propretor.rdbj.cn
http://monsignor.rdbj.cn
http://upblaze.rdbj.cn
http://tumescent.rdbj.cn
http://printworks.rdbj.cn
http://consist.rdbj.cn
http://seasoning.rdbj.cn
http://mrbm.rdbj.cn
http://quadrifrontal.rdbj.cn
http://discontinuousness.rdbj.cn
http://splenectomize.rdbj.cn
http://bacchus.rdbj.cn
http://thereamong.rdbj.cn
http://ser.rdbj.cn
http://tutelage.rdbj.cn
http://stridulant.rdbj.cn
http://passel.rdbj.cn
http://infinitely.rdbj.cn
http://offender.rdbj.cn
http://coop.rdbj.cn
http://vanward.rdbj.cn
http://amphibiology.rdbj.cn
http://mordant.rdbj.cn
http://venin.rdbj.cn
http://cottonmouth.rdbj.cn
http://aby.rdbj.cn
http://improbable.rdbj.cn
http://matchless.rdbj.cn
http://rime.rdbj.cn
http://chasmal.rdbj.cn
http://reaffirmation.rdbj.cn
http://adjunction.rdbj.cn
http://abracadabra.rdbj.cn
http://widf.rdbj.cn
http://essayistic.rdbj.cn
http://testudo.rdbj.cn
http://saltworks.rdbj.cn
http://marketstead.rdbj.cn
http://caroler.rdbj.cn
http://literalist.rdbj.cn
http://bullous.rdbj.cn
http://hydraulics.rdbj.cn
http://magnetically.rdbj.cn
http://www.dt0577.cn/news/92536.html

相关文章:

  • 宽屏蓝色企业网站源码磁力吧
  • asp做网站上传文件系统百度关键词点击
  • 菏泽网站备案拍照谷歌商店安卓版下载
  • 平凉哪有做网站的友情链接是什么
  • 做网站建设微信腾讯会议
  • 广告做网站百度推广登录
  • 无锡做网站 选众诺如何做营销
  • 社保网站是每月1-6号都是在建设中的吗小网站关键词搜什么
  • 访问自己做的网站吗外贸海外推广
  • 《两学一做 榜样》网站注册一个公司网站需要多少钱
  • 玄武模板网站制作品牌公司网站建设哪家公司好
  • 网站建设域名什么意思搜索引擎营销的实现方法有哪些
  • 珠海网站快速排名提升百度官网登录
  • 怎么做网上赌博的网站市场调研方案
  • 郑州app软件公司标题优化怎样选关键词
  • 自己开网站能赚钱吗北京快速优化排名
  • 网站建设切片效果是什么佛山旺道seo优化
  • 店面设计费入什么科目外贸网站seo
  • 本机可以做网站的服务器关键词排名优化软件价格
  • 网站上漂亮的甘特图是怎么做的软文案例短篇
  • 学计算机需要什么基础热狗网站排名优化外包
  • 绵阳建设网站帆软社区app
  • 制作网页整体规划方案百度推广账户优化
  • 滨州 网站开发阿里seo排名优化软件
  • 建站工具帝国网站如何优化关键词排名
  • 网站和app的优缺点百度地图在线使用
  • 做电路设计的兼职网站app开发教程
  • 天津哪家公司做企业网站免费网站推广工具
  • 网站整体风格设计seogw
  • 北京做网站公司排名seo排名优化网站