计算机毕业设计选题推荐-餐厅线上点餐微信小程序/安卓APP-项目实战

作者主页 :IT毕设梦工厂✨

个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。

☑文末获取源码☑
精彩专栏推荐 ⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

文章目录

一、前言

随着移动互联网的普及和人们生活水平的提高,线上点餐已经成为了日常生活中不可或缺的一部分。然而,目前市场上的线上点餐平台存在着一些问题,如用户体验不佳等,这些问题严重影响了用户的使用体验和商家的经营效益。因此,开发一款便捷、安全的餐厅线上点餐微信小程序/安卓APP具有重要的现实意义。

目前,一些餐厅线上点餐平台已经采用了小程序或APP的形式,但是这些平台存在一些问题。首先,部分平台的用户体验不佳,页面设计不美观、操作流程繁琐等问题影响了用户的使用体验;其次,部分平台的功能不够完善,无法满足用户个性化需求。这些问题都严重影响了线上点餐平台的效果和质量。

本课题的研究目的是设计并实现一款基于微信小程序/安卓APP的餐厅线上点餐平台,以提高平台的效率和质量。具体来说,该工具可以实现以下功能:

  1. 提供便捷的商品信息展示和管理功能,方便用户进行信息查询和选择;
  2. 实现订单管理和个性化需求满足,让用户得到更好的服务体验;
  3. 提供售后服务和投诉处理功能,确保用户的权益得到保障。
    通过以上功能的实现,可以有效解决现有解决方案存在的问题,提高线上点餐平台的效果和质量。

本课题的研究具有重要的现实意义和应用价值。首先,它可以提高餐厅的经营效益,增加销售额和客户满意度;其次,它可以提升用户的使用体验,方便用户进行线上点餐和支付;最后,它可以推动数字化经济的发展,促进数字经济与传统产业的融合。

二、开发环境

  • 开发语言:Java
  • 数据库:MySQL
  • 系统架构:移动端
  • 后端:SpringBoot
  • 前端:微信小程序+uniapp+Vue

三、系统界面展示

  • 餐厅线上点餐微信小程序/安卓APP界面展示:






四、部分代码设计

  • 餐厅线上点餐微信小程序/安卓APP项目实战-代码参考:
java(贴上部分代码) 复制代码
/**
 * 地址簿管理
 */
@Slf4j
@RestController
@RequestMapping("/addressBook")
public class AddressBookController {

    @Autowired
    private AddressBookService addressBookService;

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

    /**
     * 设置默认地址
     */
    @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);
        //SQL:update address_book set is_default = 0 where user_id = ?
        addressBookService.update(wrapper);

        addressBook.setIsDefault(1);
        //SQL:update address_book set is_default = 1 where id = ?
        addressBookService.updateById(addressBook);
        return R.success(addressBook);
    }

    /**
     * 根据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("没有找到该对象");
        }
    }

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

        //SQL:select * from address_book where user_id = ? and is_default = 1
        AddressBook addressBook = addressBookService.getOne(queryWrapper);

        if (null == addressBook) {
            return R.error("没有找到该对象");
        } else {
            return R.success(addressBook);
        }
    }

    /**
     * 查询指定用户的全部地址
     */
    @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));
    }
}
java(贴上部分代码) 复制代码
/*
    分类管理
 */
@Slf4j
@RestController
@RequestMapping("/category")
public class CategoryController {
    @Autowired
    private CategoryService categoryService;


    @PostMapping
    //新增分类
    public R<String> save(@RequestBody Category category){
        log.info("category{}",category);
        categoryService.save(category);
        return R.success("新增分类成功");
    }

    //分页查询
    @GetMapping("/page")
    public R<Page> page(int page,int pageSize){
        log.info(page+"  "+pageSize);
        //创建分页查询对象
        Page<Category> pageInfo = new Page<>(page,pageSize);
        //条件构造器
        LambdaQueryWrapper<Category> lambdaQueryWrapper =new LambdaQueryWrapper<>();
        //添加排序条件
        lambdaQueryWrapper.orderByAsc(Category::getSort);

        //进行分页查询
        categoryService.page(pageInfo,lambdaQueryWrapper);
        //返回分页数据
        return R.success(pageInfo);
    }


    //根据id删除
    @DeleteMapping
    public R<String> delete(Long ids){
//        categoryService.removeById(ids);

        categoryService.remove(ids);

        return R.success("分类信息删除成功");
    }

    //根据id修改
    @PutMapping
    public R<String> update(@RequestBody Category category){
        log.info(String.valueOf(category));
        categoryService.updateById(category);
        return R.success("修改分类信息成功");
    }

    //根据条件查询分类数据
    @GetMapping("/list")
    public R<List<Category>> list(Category category){
        LambdaQueryWrapper<Category> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        //添加条件
        lambdaQueryWrapper.eq(category.getType()!=null,Category::getType,category.getType());
        //添加排序条件
        lambdaQueryWrapper.orderByAsc(Category::getSort).orderByDesc(Category::getUpdateTime);

        List<Category> list = categoryService.list(lambdaQueryWrapper);

        return R.success(list);
    }
}
java(贴上部分代码) 复制代码
@RestController
@RequestMapping("/shoppingCart")
@Slf4j
public class ShoppingCartController {

    @Autowired
    private ShoppingCartService shoppingCartService;


    //菜品添加
    @PostMapping("/add")
    public R<ShoppingCart> add(@RequestBody ShoppingCart shoppingCart){
        log.info("{}",shoppingCart);

        //设置用户id,指定当前是哪个用户的购物车
        Long userId = BaseContext.getCurrentId();
        shoppingCart.setUserId(userId);
        LambdaQueryWrapper<ShoppingCart> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(ShoppingCart::getUserId,shoppingCart.getUserId());

        //查询当前菜品/套餐是否在购物车中
        if(shoppingCart.getDishId()!=null){
            //添加的是菜品
            lambdaQueryWrapper.eq(ShoppingCart::getDishId,shoppingCart.getDishId());

        }else {
            //套餐
            lambdaQueryWrapper.eq(ShoppingCart::getSetmealId,shoppingCart.getSetmealId());
        }
        ShoppingCart cartServiceOne = shoppingCartService.getOne(lambdaQueryWrapper);
        if(cartServiceOne!=null){
            //已经存在,原来数量基础上加一
            Integer number = cartServiceOne.getNumber();
            cartServiceOne.setNumber(++number);
            shoppingCartService.updateById(cartServiceOne);
        }else {
            //不存在则加入购物车,熟练默认为1
            shoppingCart.setNumber(1);
            shoppingCart.setCreateTime(LocalDateTime.now());
            shoppingCartService.save(shoppingCart);
            cartServiceOne=shoppingCart;
        }
        return R.success(cartServiceOne);
    }


    //菜品删除
    @PostMapping("/sub")
    public R<ShoppingCart> sub(@RequestBody ShoppingCart shoppingCart){
        Long dishId = shoppingCart.getDishId();
        Long setmealId = shoppingCart.getSetmealId();
        Long currentId = BaseContext.getCurrentId();
        LambdaQueryWrapper<ShoppingCart> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(ShoppingCart::getUserId,currentId);

        ShoppingCart shoppingCart1 = new ShoppingCart();

        if(dishId!=null){
            queryWrapper.eq(ShoppingCart::getDishId,dishId);
            ShoppingCart cart = shoppingCartService.getOne(queryWrapper);
            Integer number = cart.getNumber();
            if(number>1){
                cart.setNumber(number-1);
                shoppingCartService.updateById(cart);
                shoppingCart1 = cart;
            }else {
                shoppingCartService.removeById(cart);
            }
        }else {
            queryWrapper.eq(ShoppingCart::getSetmealId,setmealId);
            ShoppingCart cart = shoppingCartService.getOne(queryWrapper);
            Integer number = cart.getNumber();
            if(number>1){
                cart.setNumber(number-1);
                shoppingCartService.updateById(cart);
                shoppingCart1 = cart;
            }else {
                shoppingCartService.removeById(cart);
            }
        }
        return R.success(shoppingCart1);
    }


    //菜品清空
    @DeleteMapping("/clean")
    public R<String> clean(){
        Long currentId = BaseContext.getCurrentId();
        LambdaQueryWrapper<ShoppingCart> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(ShoppingCart::getUserId,currentId);
        shoppingCartService.remove(queryWrapper);
        return R.success("清空成功 ");
    }


    //查看购物车
    @GetMapping("/list")
    public R<List<ShoppingCart>> list(){

        LambdaQueryWrapper<ShoppingCart> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(ShoppingCart::getUserId,BaseContext.getCurrentId());
        lambdaQueryWrapper.orderByAsc(ShoppingCart::getCreateTime);
        List<ShoppingCart> list = shoppingCartService.list(lambdaQueryWrapper);
        return R.success(list);
    }

}

五、论文参考

  • 计算机毕业设计选题推荐-餐厅线上点餐微信小程序/安卓APP-论文参考:

六、系统视频

餐厅线上点餐微信小程序/安卓APP-项目视频:

计算机毕业设计选题推荐-餐厅线上点餐微信小程序/安卓APP

结语

计算机毕业设计选题推荐-餐厅线上点餐微信小程序/安卓APP-项目实战

大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我

精彩专栏推荐 ⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

相关推荐
断剑重铸之日5 分钟前
Android自定义相机开发(类似OCR扫描相机)
android
随心最为安8 分钟前
Android Library Maven 发布完整流程指南
android
岁月玲珑13 分钟前
【使用Android Studio调试手机app时候手机老掉线问题】
android·ide·android studio
桦说编程2 小时前
深入解析CompletableFuture源码实现
java·性能优化·源码
还鮟4 小时前
CTF Web的数组巧用
android
小蜜蜂嗡嗡6 小时前
Android Studio flutter项目运行、打包时间太长
android·flutter·android studio
aqi006 小时前
FFmpeg开发笔记(七十一)使用国产的QPlayer2实现双播放器观看视频
android·ffmpeg·音视频·流媒体
zhangphil7 小时前
Android理解onTrimMemory中ComponentCallbacks2的内存警戒水位线值
android
走,带你去玩8 小时前
uniapp 微信小程序水印
微信小程序·小程序·uni-app
你过来啊你8 小时前
Android View的绘制原理详解
android