前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >瑞吉外卖(七)地址簿业务开发

瑞吉外卖(七)地址簿业务开发

作者头像
小沐沐吖
发布2022-09-22 15:25:41
4000
发布2022-09-22 15:25:41
举报
文章被收录于专栏:小沐沐吖小沐沐吖

01、添加用户地址簿

1、需求分析

  • 请求地址:http://localhost:8080/addressBook
  • 请求类型:POST
  • 请求参数
添加用户地址簿
添加用户地址簿

2、代码实现

01.AddressBook实体类

代码语言:javascript
复制
package cn.mu00.reggie.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 地址簿
 */
@Data
public class AddressBook implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;


    //用户id
    private Long userId;


    //收货人
    private String consignee;


    //手机号
    private String phone;


    //性别 0 女 1 男
    private String sex;


    //省级区划编号
    private String provinceCode;


    //省级名称
    private String provinceName;


    //市级区划编号
    private String cityCode;


    //市级名称
    private String cityName;


    //区级区划编号
    private String districtCode;


    //区级名称
    private String districtName;


    //详细地址
    private String detail;


    //标签
    private String label;

    //是否默认 0 否 1是
    private Integer isDefault;

    //创建时间
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;


    //更新时间
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;


    //创建人
    @TableField(fill = FieldFill.INSERT)
    private Long createUser;


    //修改人
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;


    //是否删除
    private Integer isDeleted;
}

02.AddressBookMapper

代码语言:javascript
复制
package cn.mu00.reggie.mapper;

import cn.mu00.reggie.entity.AddressBook;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface AddressBookMapper extends BaseMapper<AddressBook> {
}

03.AddressBookService

代码语言:javascript
复制
package cn.mu00.reggie.service;

import cn.mu00.reggie.entity.AddressBook;
import com.baomidou.mybatisplus.extension.service.IService;

public interface AddressBookService extends IService<AddressBook> {
}

04.AddressBookServiceImpl

代码语言:javascript
复制
package cn.mu00.reggie.service.impl;

import cn.mu00.reggie.entity.AddressBook;
import cn.mu00.reggie.mapper.AddressBookMapper;
import cn.mu00.reggie.service.AddressBookService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

@Service
public class AddressBookServiceImpl extends ServiceImpl<AddressBookMapper, AddressBook> implements AddressBookService {
}

05.AddressBookController

代码语言:javascript
复制
package cn.mu00.reggie.controller;

import cn.mu00.reggie.service.AddressBookService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 地址簿管理
 */
@RestController
@RequestMapping("/addressBook")
@Slf4j
public class AddressBookController {
    @Autowired
    private AddressBookService addressBookService;
}

06.添加用户地址 位置:AddressBookController

代码语言:javascript
复制
/**
 * 新增
 */
@PostMapping
public R<AddressBook> save(@RequestBody AddressBook addressBook) {
    addressBook.setUserId(BaseContext.getCurrentId());
    log.info("addressBook:{}", addressBook);
    addressBookService.save(addressBook);
    return R.success(addressBook);
}

02、查询用户地址簿

1、需求分析

  • 请求地址:http://localhost:8080/addressBook/list
  • 请求类型:GET

2、代码实现

代码语言:javascript
复制
/**
 * 查询指定用户的全部地址
 */
@GetMapping("/list")
public R<List<AddressBook>> list(AddressBook addressBook) {
    addressBook.setUserId(BaseContext.getCurrentId());
    log.info("addressBook:{}", addressBook);

    //条件构造器
    LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.eq(null != addressBook.getUserId(), AddressBook::getUserId, addressBook.getUserId());
    queryWrapper.orderByDesc(AddressBook::getUpdateTime);

    //SQL:select * from address_book where user_id = ? order by update_time desc
    return R.success(addressBookService.list(queryWrapper));
}

03、更新用户地址簿

1、需求分析

查询指定地址的信息

  • 请求地址:http://localhost:8080/addressBook/地址id
  • 请求类型:GET

更新用户地址簿

  • 请求地址:http://localhost:8080/addressBook
  • 请求类型:PUT

2、代码实现

查询指定地址的信息

代码语言:javascript
复制
/**
 * 根据id查询地址
 */
@GetMapping("/{id}")
public R get(@PathVariable Long id) {
    AddressBook addressBook = addressBookService.getById(id);
    if (addressBook != null) {
        return R.success(addressBook);
    } else {
        return R.error("没有找到该对象");
    }
}

更新用户地址簿

代码语言:javascript
复制
/**
 * 更新地址簿
 * @param addressBook
 * @return
 */
@PutMapping
public R<String> update(@RequestBody AddressBook addressBook){
    addressBookService.updateById(addressBook);
    return R.success("更新地址簿成功");
}

04、删除用户地址簿

1、需求分析

  • 请求地址:http://localhost:8080/addressBook?ids=地址id
  • 请求类型:DELETE
  • 请求参数:ids

2、代码实现

代码语言:javascript
复制
/**
 * 删除指定地址
 * @param ids
 * @return
 */
@DeleteMapping()
public R<String> delete(@RequestParam Long ids){
    addressBookService.removeById(ids);
    return R.success("删除地址成功");
}

05、设置默认地址

1、需求分析

  • 请求地址:http://localhost:8080/addressBook/default
  • 请求类型:PUT
  • 请求参数:{id}

2、代码实现

代码语言:javascript
复制
/**
 * 设置默认地址
 */
@PutMapping("default")
public R<AddressBook> setDefault(@RequestBody AddressBook addressBook) {
    log.info("addressBook:{}", addressBook);
    LambdaUpdateWrapper<AddressBook> wrapper = new LambdaUpdateWrapper<>();
    wrapper.eq(AddressBook::getUserId, BaseContext.getCurrentId());
    wrapper.set(AddressBook::getIsDefault, 0);
    addressBookService.update(wrapper);

    addressBook.setIsDefault(1);
    addressBookService.updateById(addressBook);
    return R.success(addressBook);
}

06、查询默认地址

1、需求分析

  • 请求地址:http://localhost:8080/addressBook/default
  • 请求类型:GET

2、代码实现

代码语言:javascript
复制
/**
 * 查询默认地址
 */
@GetMapping("default")
public R<AddressBook> getDefault() {
    LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.eq(AddressBook::getUserId, BaseContext.getCurrentId());
    queryWrapper.eq(AddressBook::getIsDefault, 1);

    AddressBook addressBook = addressBookService.getOne(queryWrapper);

    if (null == addressBook) {
        return R.error("没有找到该对象");
    } else {
        return R.success(addressBook);
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022 年 08 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01、添加用户地址簿
    • 1、需求分析
      • 2、代码实现
      • 02、查询用户地址簿
        • 1、需求分析
          • 2、代码实现
          • 03、更新用户地址簿
            • 1、需求分析
              • 2、代码实现
              • 04、删除用户地址簿
                • 1、需求分析
                  • 2、代码实现
                  • 05、设置默认地址
                    • 1、需求分析
                      • 2、代码实现
                      • 06、查询默认地址
                        • 1、需求分析
                          • 2、代码实现
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档