猿创征文|瑞吉外卖——移动端_地址管理

个人名片:

博主酒徒ᝰ.
专栏瑞吉外卖
个人简介沉醉在酒中,借着一股酒劲,去拼搏一个未来。
本篇励志人会想很多事,而且多半是痛苦的,时光如水,我们无法阻止岁月的脚步,很多人,逐渐淡出了我们的视线,懂得了什么叫过客,很多事,已经不再属于我们的精彩,知道了这就叫过往。

本项目基于B站黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis plus开发核心技术的真java实战项目。

视频链接【黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis
plus开发核心技术的真java实战项目】 https://www.bilibili.com/video/BV13a411q753?
点击观看

1.查询全部地址地址

image.png

分析:addressBook地址,GET方式,list地址

package com.itheima.reggie.controller;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.itheima.reggie.common.R;
import com.itheima.reggie.entity.AddressBook;
import com.itheima.reggie.service.IAddressBookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * <p>
 * 地址管理 前端控制器
 * </p>
 *
 * @author 酒徒
 * @since 2022-09-04
 */
@RestController
@RequestMapping("/addressBook")
public class AddressBookController {

    @Autowired
    private IAddressBookService addressBookService;

    /**
     * 查询全部地址
     * @param session
     * @return
     */
    @GetMapping("/list")
    public R<List<AddressBook>> list(HttpSession session){
        //根据用户id查询地址
        LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(AddressBook::getUserId, session.getAttribute("user"));
        List<AddressBook> list = addressBookService.list(queryWrapper);
        return R.success(list);
    }
}


2.添加收货地址

image.png

分析:addressBook地址,POST方式

/**
 * 添加地址
 * @param addressBook
 * @param session
 * @return
 */
@PostMapping
public R<String> addressBook(@RequestBody AddressBook addressBook, HttpSession session){
    log.info("addressBook:{}", addressBook);//addressBook:AddressBook(id=null, userId=null, consignee=长津湖, sex=1, phone=13565895624, provinceCode=null, provinceName=null, cityCode=null, cityName=null, districtCode=null, districtName=null, detail=11, label=公司, isDefault=null, createTime=null, updateTime=null, createUser=null, updateUser=null, isDeleted=null)
    addressBook.setUserId((Long)session.getAttribute("user"));
    //添加创建时间和修改时间
    addressBook.setCreateTime(LocalDateTime.now());
    addressBook.setUpdateTime(LocalDateTime.now());
    //添加创建人和修改人
    addressBook.setCreateUser((Long)session.getAttribute("user"));
    addressBook.setUpdateUser((Long)session.getAttribute("user"));
    addressBookService.save(addressBook);
    
    return R.success("添加地址成功");
}

3.修改地址

1.页面回显

image.png

分析:addressBook地址,GET方式,id地址

/**
 * 修改地址——回显数据
 * @param id
 * @return
 */
@GetMapping("/{id}")
public R<AddressBook> huixian(@PathVariable Long id){
    //根据id查询地址信息
    LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.eq(AddressBook::getId, id);
    AddressBook addressBook = addressBookService.getOne(queryWrapper);
    return R.success(addressBook);
}

2.保存地址

image.png

分析:addressBook地址,PUT方式

/**
 * 修改地址——保存
 * @param addressBook
 * @param session
 * @return
 */
@PutMapping
public R<String> addressBookupdate(@RequestBody AddressBook addressBook, HttpSession session){
    //设置修改时间
    addressBook.setUpdateTime(LocalDateTime.now());
    //设置修改人
    addressBook.setUpdateUser((Long)session.getAttribute("user"));
    addressBookService.updateById(addressBook);
    return R.success("修改成功");
}

4.删除地址

image.png

分析:addressBook地址,DELETE方式,ids属性

/**
 * 删除地址
 * @param ids
 * @param session
 * @return
 */
@DeleteMapping()
public R<String> addressBook(@PathParam("ids") Long ids, HttpSession session){
    //通过ids删除地址
    LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.eq(AddressBook::getId, ids)
            .eq(AddressBook::getUserId, (Long)session.getAttribute("user"));
    addressBookService.remove(queryWrapper);
    return R.success("删除成功");
}

5.默认地址

image.png

1.设置默认地址

从上图分析:addressBook地址,PUT方式,default地址

/**
 * 设置默认地址
 * @param addressBook
 * @param session
 * @return
 */
@PutMapping("/default")
public R<String> defaultSet(@RequestBody AddressBook addressBook, HttpSession session){
    //查询需要修改的addressBook
    //log.info("addressBook:{}", addressBook);//session:AddressBook(id=1565637284313284610, userId=null, consignee=null, sex=null, phone=null, provinceCode=null, provinceName=null, cityCode=null, cityName=null, districtCode=null, districtName=null, detail=null, label=null, isDefault=0, createTime=null, updateTime=null, createUser=null, updateUser=null, isDeleted=null)
    //根据用户id查询所有addressBook信息,将其中的isDefault全部改为0;
    LambdaQueryWrapper<AddressBook> wrapper = new LambdaQueryWrapper<>();
    wrapper.eq(AddressBook::getUserId, session.getAttribute("user"));
    List<AddressBook> addressBooks = addressBookService.list();
    for (AddressBook address : addressBooks) {
        address.setIsDefault(0);
        addressBookService.updateById(address);
    }
    //根据id查询addressBook信息
    LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.eq(AddressBook::getId, addressBook.getId());
    AddressBook address = addressBookService.getOne(queryWrapper);
    log.info("address:{}", address);//address:AddressBook(id=1565637284313284610, userId=1, consignee=爱丽丝, sex=0, phone=18535004237, provinceCode=null, provinceName=null, cityCode=null, cityName=null, districtCode=null, districtName=null, detail=55, label=公司, isDefault=0, createTime=2022-09-02T17:46:31, updateTime=2022-09-08T19:15:07, createUser=1, updateUser=1, isDeleted=0)
    address.setIsDefault(1);
    addressBookService.updateById(address);

    return R.success("修改默认值成功");
}

2.查询默认地址

从上图分析:addressBook地址,GET方式,default地址
注意数据库addressBook中isDefault的类型,自动生产代码是Boolean类型,需要改为int类型

/**
 * 查询默认地址
 * @param session
 * @return
 */
@GetMapping("/default")
public R<AddressBook> defaultAddress(HttpSession session){
    //查询addressBook中isDefault值  默认 0 否 1是
    LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.eq(AddressBook::getUserId, session.getAttribute("user"))
            .eq(AddressBook::getIsDefault, 1);
    AddressBook addressBook = addressBookService.getOne(queryWrapper);
    log.info("addressBook:{}",addressBook);
    if (addressBook == null){
        return R.error("没有默认地址");
    }else {
        return R.success(addressBook);
    }
}
### 回答1: 要使用QQ邮箱来进行黑马瑞吉外卖移动端验证码登录,您需要按照以下步骤进行操作。 首先,在黑马瑞吉外卖移动应用程序中选择使用验证码登录选项。 然后,系统会要求您输入您的手机号码。请输入与您的QQ邮箱绑定的手机号码。 接下来,系统将会向您的QQ邮箱发送一封包含验证码的电子邮件。请在移动应用程序中等待几秒钟,确保您的QQ邮箱可以收到邮件。 打开您的QQ邮箱,并查找名为“黑马瑞吉外卖验证码”的邮件。请注意,有时候邮件可能会被归类到垃圾邮件或其他文件夹中,请确保您检查所有文件夹。 在邮件中,您将找到一个验证码。将该验证码复制,并返回到黑马瑞吉外卖移动应用程序。 在应用程序中,粘贴您刚才复制的验证码,并点击“确认”按钮。 系统将根据您输入的验证码验证您的身份。如果验证码输入正确,您将成功登录黑马瑞吉外卖移动应用程序。 请注意,验证码一般在发送后几分钟内失效。如果您在一定时间内没有收到邮件或验证码已失效,请尝试重新请求或重新发送验证码。 这样,您就可以使用您的QQ邮箱来进行黑马瑞吉外卖移动端验证码登录了。如果您遇到任何问题,请及时联系黑马瑞吉外卖的客户支持。 ### 回答2: 黑马瑞吉外卖是一家提供外卖服务的公司,为了提高用户的账户安全性,他们在移动端推出了验证码登录功能。用户可以选择使用qq邮箱进行验证码登录。 用户在移动端打开黑马瑞吉外卖的应用后,选择登录界面,并选择验证码登录选项。接下来,用户需要点击“使用qq邮箱登录”的按钮。 在点击按钮后,应用会要求用户输入他们的qq邮箱地址。用户需要输入正确的邮箱地址,并点击确认。系统会验证该邮箱是否存在以及是否正确。 验证通过后,系统会向用户的qq邮箱发送一封邮件,邮件中包含一个验证码。用户需要打开邮箱,找到这封邮件,复制验证码并返回外卖应用。 用户需要粘贴该验证码,并点击确认。系统会对验证码进行验证,如果验证码正确,用户将成功登录外卖应用,并可开始使用各种功能。 通过验证码登录的方式,账户的安全性得到了提高。因为只有用户本人能够收到并使用qq邮箱中的验证码,在他人无法猜测的情况下,他人无法登录用户的账户。 同时,使用qq邮箱登录还具有方便性。许多用户已经有自己的qq邮箱,不需要再注册新的账户,可以直接使用已有的qq邮箱进行登录,省去了注册的时间和麻烦。 总之,黑马瑞吉外卖移动端验证码登录使用qq邮箱的功能保证了用户账户的安全性,同时也提供了便利的登录方式。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值