手把手教你做一个安卓点餐系统

手把手教你做一个安卓点餐系统撸一个安卓系统……

大家好,又见面了,我是你们的朋友全栈君。

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

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

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

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

一,开发需求和技术栈

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

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

二,系统的界面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三,系统的核心代码

//作者:小孟 v:jishulearn
@Controller
@RequestMapping("/api")
public class ApiController { 
   
    @Autowired
    private UsersService userService;
    @Autowired
    private ProductsService booksService;
    @Autowired
    private ShopsService bookshopService;
    @Autowired
    private ShopcartService shopcartService;
    @Autowired
    private ShoporderService orderService;
    @Autowired
    private PinglunService pinglunService;
    @Autowired
    private DizhiService dizhiService;
    @Autowired
    private PengyouquanService pengyouquanService;


    @PostMapping("/userlogin")
    @ResponseBody
    public 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")
    @ResponseBody
    public 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")
    @ResponseBody
    public 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 { 
   
    @Autowired
    private 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;

    @Override
    protected int createLayout() { 
   
        return R.layout.activity_adddizhi;
    }

    @Override
    public void initViews() { 
   
        iv_back.setVisibility(View.VISIBLE);
        tv_title.setText("添加地址");

    }

    @Override
    public 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<>();

    @Override
    protected int createLayout() { 
   
        return R.layout.activity_shop;
    }

    @Override
    public void initViews() { 
   
        BCManager.instance().listener("DiZhiActivity", "DiZhiActivity", new BlockCallBack() { 
   
            @Override
            public 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>() { 
   
                    @Override
                    public 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() { 
   
                            @Override
                            public void onItemClick(View view, RecyclerView.ViewHolder viewHolder, int i) { 
   
                                BCManager.instance().post("dizhi","dizhi",ipBean.getData().get(i));
                                showToast("选择成功");
                                finish();
                            }

                            @Override
                            public boolean onItemLongClick(View view, RecyclerView.ViewHolder viewHolder, int i) { 
   
                                return false;
                            }
                        });
                    }

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150952.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • voliate Synchronized Lock

    voliate Synchronized Lock参考文章:https://blog.csdn.net/huyiju/article/details/97126274一、voliate相关1:java内存模型1.1:计算机的内存模型在计算机的内存模型中cpu和内存之间的速度存在数量级所以引入了高速缓存,告诉缓存会导致到底以哪个处理器的缓存为主,同步到主内存,这个时候有有了缓存一致性协议,来保证缓存一致性。指令重排:例如一下五行代码,前四行的在计算机cpu的执行顺序不一定是12345,也可以是13245或者34125,但是第五步的顺序不会变,这种

    2022年5月29日
    29
  • C++ GetUserName()

    C++ GetUserName()

    2022年3月12日
    39
  • 毕业一年

    又到毕业季,一年就这么过来了,这一年独自在北京,过的单调但也充实,就做了两件事,减肥和学习。减肥在校期间不怎么运动,偶尔跑步但抵不过吃的多,永远是饭桌上吃到最后的人,肉不停的长,最胖时90kg。去年年底的时候,有一天照镜子,捏着肚子上的肉实在看不下去,下决心减肥。左图87kg到右图71kg,体脂从25降到18左右。 减肥的过程是痛苦的,但是成就感爆棚,让人更加自信,也更加相信付出会有回报。学习看

    2022年3月11日
    32
  • verifycode.php,verifycode.php

    verifycode.php,verifycode.php##生成验证码文件session_start();header(“Content-type:image/png”);##生成验证码图片$str=”1,2,3,4,5,6,7,8,9″;##要显示的字符,可自己进行增删$list=explode(“,”,$str);$cmax=count($list)-1;$verifyCode=”;for($i=0;$i<…

    2022年7月15日
    12
  • k3 梅林固件设置_OpenWrt中,旁路由的设置与使用

    k3 梅林固件设置_OpenWrt中,旁路由的设置与使用旁路由,这神奇的名称,听着是不是有点不知所云?本文的目的,是让您知晓旁路由的概念,并掌握最基础的旁路由设置方法。一、什么是旁路由?旁路由又叫独臂路由,这一概念由杨过大侠首创(手动狗头)。旁路由一般是由CPU性能比较强的路由器来担当。旁路由的主要责任是帮助网络中的其他设备获取国外网站的数据。二、旁路由的接线方式及工作原理最基础最常规的旁路由接线方式是这样的基础的旁路由接线方式是不是有点挑战常识?主路…

    2022年5月8日
    982
  • 贾尚文_roc指标详解及实战用法

    贾尚文_roc指标详解及实战用法文章目录混淆矩阵ROCAOUPRCF1-Score多分类的F1-Score选择指标ROC曲线和AUC常被用来评价一个二值分类器的优劣。混淆矩阵其中,TP(真正,TruePositive)表示真正结果为正例,预测结果也是正例;FP(假正,FalsePositive)表示真实结果为负例,预测结果却是正例;TN(真负,TrueNegative)表示真实结果为正例,预测结果却是负例…

    2022年8月31日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号