最近有小伙伴要学习安卓,今天给大家展示一个安卓系统的开发,希望能帮到你学习!

传统的点餐方式有:
1) 手工点餐模式。在这种模式下,流程简单,店员很快知道要点什么,但随着点餐人数多,就会让店家分不清谁点的是什么,出错概率就增加。

2) 店员手持PDA等触摸屏掌上电脑进行点餐。这种模式虽然减少了传统手工点餐的纸质浪费,但也需要店员一个一个记录,在这过程中也消耗了部分时间。而且这种模式需要添加基站设备,设备支出成本也是极高。

3) 少数店家用APP或公众号来点餐。目前已经有少数商家用APP来实现点餐,但大多数还是用前两种来点餐。而且现阶段的APP点餐系统发展还不完善,还有待提高。

一,开发需求和技术栈

登录模块设计、点菜模块、付款模块、菜品浏览模块、订单模块、用户管理模块、分享动态模块等等。

技术栈:Android、Java、Mysql、SpringBoot、Mysql

二,系统的界面











三,系统的核心代码

//作者:小孟 v:jishulearn
@Controller
@RequestMapping("/api")
public class ApiController {@Autowiredprivate UsersService userService;@Autowiredprivate ProductsService booksService;@Autowiredprivate ShopsService bookshopService;@Autowiredprivate ShopcartService shopcartService;@Autowiredprivate ShoporderService orderService;@Autowiredprivate PinglunService pinglunService;@Autowiredprivate DizhiService dizhiService;@Autowiredprivate PengyouquanService pengyouquanService;@PostMapping("/userlogin")@ResponseBodypublic JsonResult login(String username, String password) {if (username == null || username.trim().isEmpty()) return JsonResult.error("请输入账号");if (password == null || password.trim().isEmpty()) return JsonResult.error("请输入密码");Users user = userService.getOne(new QueryWrapper<Users>().eq("username",username).eq("password",password));if(user != null){return JsonResult.ok("登录成功").put("username",username).put("password",password).put("id",user.getId());}else{return JsonResult.error("用户名或密码错误");}}@PostMapping("/userreg")@ResponseBodypublic JsonResult reg(String username1, String password1,String nickname1) {if (username1 == null || username1.trim().isEmpty()) return JsonResult.error("请输入账号");if (password1 == null || password1.trim().isEmpty()) return JsonResult.error("请输入密码");Users user1 = new Users();user1.setUsername(username1);user1.setNickname(nickname1);user1.setPassword(password1);if (userService.save(user1)) {return JsonResult.ok("注册成功");}return JsonResult.error("注册失败");}@PostMapping("/userupdate")@ResponseBodypublic JsonResult update(Integer id,String username2, String password2,String nickname2) {if (username2 == null || username2.trim().isEmpty()) return JsonResult.error("请输入账号");if (password2 == null || password2.trim().isEmpty()) return JsonResult.error("请输入密码");if (nickname2 == null || nickname2.trim().isEmpty()) return JsonResult.error("请输入密码");Users userone = userService.getById(id);if(userone == null){return JsonResult.ok("用户不存在!");}userone.setUsername(username2);userone.setPassword(password2);userone.setNickname(nickname2);if (userService.save(userone)) {return JsonResult.ok("修改成功");}return JsonResult.error("修改失败");}/*** book查询全部*/@ResponseBody@RequestMapping("/book/listByname")public JsonResult listByname(String name) {PageParam<Products> pageParam = new PageParam<>();pageParam.put("name", name);List<Products> records = booksService.listAll(pageParam.getNoPageParam());return JsonResult.ok().setData(records);}/*** 查询所有* @param bookshop* @return*/@ResponseBody@RequestMapping("/book/list")public JsonResult productList(String bookshop) {PageParam<Shops> pageParam = new PageParam<>();List<Products> records = booksService.listAll(pageParam.getNoPageParam());return JsonResult.ok().setData(records);}/*** bookshop查询全部*/@ResponseBody@RequestMapping("/bookshop/list")public JsonResult list2(String name) {PageParam<Shops> pageParam = new PageParam<>();pageParam.put("name", name);List<Shops> records = bookshopService.listAll(pageParam.getNoPageParam());return JsonResult.ok().setData(records);}
/*** 管理* Created by 小孟 v:jishulearn*/
@Controller
@RequestMapping("/zaocan/pengyouquan")
public class PengyouquanController extends BaseController {@Autowiredprivate PengyouquanService pengyouquanService;@RequestMapping()public String view() {return "zaocan/pengyouquan.html";}/*** 分页查询*/@ResponseBody@RequestMapping("/page")public PageResult<Pengyouquan> page(HttpServletRequest request) {PageParam<Pengyouquan> pageParam = new PageParam<>(request);return new PageResult<>(pengyouquanService.page(pageParam, pageParam.getWrapper()).getRecords(), pageParam.getTotal());//return pengyouquanService.listPage(pageParam);  // 使用关联查询}/*** 查询全部*/@ResponseBody@RequestMapping("/list")public JsonResult list(HttpServletRequest request) {PageParam<Pengyouquan> pageParam = new PageParam<>(request);return JsonResult.ok().setData(pengyouquanService.list(pageParam.getOrderWrapper()));//List<Pengyouquan> records = pengyouquanService.listAll(pageParam.getNoPageParam());  // 使用关联查询//return JsonResult.ok().setData(pageParam.sortRecords(records));}/*** 根据id查询*/@ResponseBody@RequestMapping("/get")public JsonResult get(Integer id) {return JsonResult.ok().setData(pengyouquanService.getById(id));// 使用关联查询//PageParam<Pengyouquan> pageParam = new PageParam<>();//pageParam.put("id", id);//List<Pengyouquan> records = pengyouquanService.listAll(pageParam.getNoPageParam());//return JsonResult.ok().setData(pageParam.getOne(records));}/*** 添加*/@ResponseBody@RequestMapping("/save")public JsonResult save(Pengyouquan pengyouquan) {if (pengyouquanService.save(pengyouquan)) {return JsonResult.ok("添加成功");}return JsonResult.error("添加失败");}
public class AddDiZHiActivity extends BaseActivity {@BindView(R.id.tv_title)TextView tv_title;@BindView(R.id.iv_back)ImageView iv_back;@BindView(R.id.iv_right)ImageView iv_right;@BindView(R.id.et_one)EditText et_one;@BindView(R.id.et_two)EditText et_two;@BindView(R.id.et_three)EditText et_three;@Overrideprotected int createLayout() {return R.layout.activity_adddizhi;}@Overridepublic void initViews() {iv_back.setVisibility(View.VISIBLE);tv_title.setText("添加地址");}@Overridepublic void initData() {}@OnClick({R.id.iv_back, R.id.tv_add})public void onViewClicked(View view) {switch (view.getId()) {case R.id.iv_back:finish();break;case R.id.tv_add:if (TextUtils.isEmpty(et_one.getText().toString())) {showToast("请填写地址");return;}if (TextUtils.isEmpty(et_two.getText().toString())) {showToast("请填写联系人");return;}if (TextUtils.isEmpty(et_three.getText().toString())) {showToast("请填写联系方式");return;}add();break;}}
public class DiZhiActivity extends BaseActivity {@BindView(R.id.tv_title)TextView tv_title;@BindView(R.id.iv_back)ImageView iv_back;private Intent intent;@BindView(R.id.rv_shop)RecyclerView rv_shop;@BindView(R.id.iv_right)ImageView iv_right;private DiZHiAdapter diZHiAdapter;private List<PengListInfoBane> shopBeans = new ArrayList<>();@Overrideprotected int createLayout() {return R.layout.activity_shop;}@Overridepublic void initViews() {BCManager.instance().listener("DiZhiActivity", "DiZhiActivity", new BlockCallBack() {@Overridepublic void block(Object target, String name, Object data) {getData();}});getData();iv_back.setVisibility(View.VISIBLE);tv_title.setText("地址管理");iv_right.setVisibility(View.VISIBLE);iv_right.setImageResource(R.mipmap.ic_add);}private void getData() {MyHttpUtils.build()//构建myhttputils.url(HttpConfig.HTTP_IP + "/dizhi/list")//获取ip的url.setJavaBean(DiZhiBean.class)//设置请求结果对应的java对象.onExecute(new CommCallback<DiZhiBean>() {@Overridepublic void onSucceed(DiZhiBean ipBean) {Log.e("ipBean", ipBean + "ipBean");rv_shop.setLayoutManager(new LinearLayoutManager(DiZhiActivity.this));diZHiAdapter = new DiZHiAdapter(DiZhiActivity.this, R.layout.item_dizhi, ipBean.getData());rv_shop.setAdapter(diZHiAdapter);diZHiAdapter.setOnItemClickListener(new MultiItemTypeAdapter.OnItemClickListener() {@Overridepublic void onItemClick(View view, RecyclerView.ViewHolder viewHolder, int i) {BCManager.instance().post("dizhi","dizhi",ipBean.getData().get(i));showToast("选择成功");finish();}@Overridepublic boolean onItemLongClick(View view, RecyclerView.ViewHolder viewHolder, int i) {return false;}});}

我是小孟,如果想学习更多的项目,获取更多的学习项目和教程,关注下面弹出的图片,回复:项目大全

关注我,学技术不迷路,搞起,奥里给……

手把手教你做一个安卓点餐系统相关推荐

  1. python手机版做小游戏代码大全-Python大牛手把手教你做一个小游戏,萌新福利!...

    原标题:Python大牛手把手教你做一个小游戏,萌新福利! 引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规 ...

  2. 手把手教你做一个自己的chrome扩展程序

    手把手教你做一个自己的chrome扩展程序 [目录] first.效果 1.收藏夹修改 (1).鼠标移动到收藏夹上的动作效果 (2).收藏夹框 (3)百度搜索框功能 2.右上文字修改 3.背景图片修改 ...

  3. 手把手教你做一个Java贪吃蛇小游戏

    大家好,我是孙不坚1208,这篇博客给大家分享一下:如何做一个贪吃蛇小游戏(Java版)的exe应用程序,希望能给需要帮助的朋友带来方便. 手把手教你做一个Java贪吃蛇小游戏的exe应用程序 一.J ...

  4. Blender图解教程:手把手教你做一个马里奥金币 之 图片转法线贴图法(附模型下载)

    <Blender图解教程:手把手教你做一个马里奥金币 之 比较传统的方法>介绍了一种用Blender制作法线贴图的流程,本文介绍一种更加省事的方法. 步骤 效果图 概要 步骤 1. 建模 ...

  5. 手把手教你做一个物联网视频监控项目(三)流媒体方案实现

    往期文章 手把手教你做一个物联网视频监控项目(一) 介绍 手把手教你做一个物联网视频监控项目(二)MJPG-streamer方案实现 文章目录 前言 一.软硬件准备 二.流媒体方案的实现之FFmpeg ...

  6. 手把手教你写一个安卓app

    最近有很多小伙伴在后台留言:Android Studio.我想大家是想写一个手机app,前面已经分享了在QT上如何写一个安卓蓝牙app,虽然qt可以做app,但是比起Android Studio还是差 ...

  7. 手把手教你做一个jsp servlet mysql实现的学生签到考勤请假管理系统附带视频开发教程和完整源码

    今天给大家演示的是一款由jsp+servlet+my色口数据库实现的学生请假签到考勤管理系统,采用了MVC的设计模式,结构层次非常清晰,此外系统还有完整的开发教程. 下面我们先来看看文档结构: 下面来 ...

  8. R数据分析:跟随top期刊手把手教你做一个临床预测模型

    临床预测模型也是大家比较感兴趣的,今天就带着大家看一篇临床预测模型的文章,并且用一个例子给大家过一遍做法. 这篇文章来自护理领域顶级期刊的文章,文章名在下面 Ballesta-Castillejos ...

  9. 手把手教你做一个非常酷的PoV显示器(附源码)

    关注+星标公众号,不错过精彩内容 来源 | DF创客社区 作者 | Amal Shajan 今天为大家分享一个DIY产品,如下: 前两天天我在浏览购物网站的时候,被一个购物清单吸引住了, 5个ATti ...

最新文章

  1. Spring_Spring@Transactional
  2. 揭开Socket编程的面纱
  3. python中使用函数编程的意义_总结Python编程中函数的使用要点
  4. [C++调试笔记]define.h
  5. 10个经典的C语言面试基础算法及代码
  6. dubbo调用超时回滚_面试必问之Dubbo面试题
  7. linux日志报multipath,linux device mapper multipath 驱动的路径聚合
  8. gulp教程、gulp-less安装
  9. 如何成为python高手(转)
  10. Spring源码之bean的实例化createBeanInstance方法解读
  11. matlab 输出一行字,MATLAB输出结果的格式设置
  12. pwnable.tw dubblesort
  13. android blowfish加密算法,blowfish 现在哪种加密算法安全?A
  14. Oracle兵器谱上古神器之-KFED
  15. 认识机器学习与深度学习
  16. Linux中nohup的使用
  17. uvm_barrier
  18. 使用ultraISO制作U盘制作系统盘提醒:设备忙,请退出所有在运行的应用。
  19. 支付宝手机网页即时到账接口(3)之交易接口请求
  20. 琴弦发声原理【matlab调音_3】

热门文章

  1. mysql把用户权限授予新用户_如何创建新用户和授予MySQL中的权限
  2. FreeNAS 0.72 安装 mldonkey 3.0.6
  3. 原创|5万字详谈大数据面试题,面试必备
  4. 如何获取中国电信、网通、铁通的最新ip地址段
  5. 2019年11月14日
  6. 细细品味C#——Timer及多线程编程
  7. 计算机机房接地方案,机房防雷接地系统设计方案.doc
  8. Java毕设项目保险公司风险测评管理系统(java+VUE+Mybatis+Maven+Mysql)
  9. 那个服务器的联盟最多的,魔兽世界联盟最多的服务器是哪个
  10. 【CSP-J/S】复赛注意事项