SpringBoot带你实现一个点餐小程序
作者:程序员springmeng 时间:2022-04-01 23:38:08
一,功能介绍
本点单系统主要是基于SpringBoot框架和小程序开发的,主要是为当代人们的生活提供更便利、更高效的服务,也为营销者提供更好的系统进行用户、商品、订单等信息管理。
该系统所实现的主要功能模块如下:
前台:
1)注册登录
2)个人中心
①修改个人信息
②修改收货地址
③积分
3)商品浏览
4)商品搜索
5)购物车
6)下单支付后台:
1)注册登录
2)个人中心
①修改个人信息
②修改密码
3)用户管理
①客户信息管理
②管理员信息管理
4)商品管理
①商品分类管理
②商品信息管理
③库存与销量
5)订单管理
前台提供用户注册登录、个人中心、浏览商品、查找商品、添加商品入购物车、订单提交以及支付等功能。后台提供管理注册登录、修改密码、修改个人信息、用户信息管理、管理员信息管理、商品信息管理、商品分配管理、库存与销量统计、订单管理等功能。
二,开发语言介绍
采用的SpringBoot+Vue+微信小程序进行开发,数据库采用的是Mysql。
三,系统的界面介绍
四,核心代码演示
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
return R.error("用户名已存在。");
}
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
/**
* 订单
* 后端接口
* @author 小孟v:jishulearn
* @date 2022-06-26 09:41:24
*/
@RestController
@RequestMapping("/orders")
public class OrdersController {
@Autowired
private OrdersService ordersService;
@Autowired
private CaipinxinxiService caipinxinxiService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,OrdersEntity orders,
HttpServletRequest request){
if(!request.getSession().getAttribute("role").toString().equals("管理员")) {
orders.setUserid((Long)request.getSession().getAttribute("userId"));
}
EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,OrdersEntity orders, HttpServletRequest request){
EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( OrdersEntity orders){
EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();
ew.allEq(MPUtil.allEQMapPre( orders, "orders"));
return R.ok().put("data", ordersService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(OrdersEntity orders){
EntityWrapper< OrdersEntity> ew = new EntityWrapper< OrdersEntity>();
ew.allEq(MPUtil.allEQMapPre( orders, "orders"));
OrdersView ordersView = ordersService.selectView(ew);
return R.ok("查询订单成功").put("data", ordersView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
OrdersEntity orders = ordersService.selectById(id);
return R.ok().put("data", orders);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
OrdersEntity orders = ordersService.selectById(id);
return R.ok().put("data", orders);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody OrdersEntity orders, HttpServletRequest request){
orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(orders);
orders.setUserid((Long)request.getSession().getAttribute("userId"));
ordersService.insert(orders);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody OrdersEntity orders, HttpServletRequest request){
orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(orders);
CaipinxinxiEntity caipinxinxiEntity = caipinxinxiService.selectById(orders.getGoodid());
if(caipinxinxiEntity.getStore()<orders.getBuynumber()){
return R.error("库存不足");
}
caipinxinxiEntity.setStore(caipinxinxiEntity.getStore()-orders.getBuynumber());
caipinxinxiEntity.setSell(caipinxinxiEntity.getSell()+orders.getBuynumber());
caipinxinxiService.updateById(caipinxinxiEntity);
ordersService.insert(orders);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody OrdersEntity orders, HttpServletRequest request){
//ValidatorUtils.validateEntity(orders);
ordersService.updateById(orders);//全部更新
return R.ok();
}
来源:https://springmeng.blog.csdn.net/article/details/125497134
标签:SpringBoot,点餐,小程序
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
IntelliJ IDEA 下载安装超详细教程(推荐)
2023-11-19 23:50:16
![](https://img.aspxhome.com/file/2023/6/59086_0s.png)
SpringCloud之微服务容错的实现
2023-11-29 02:02:22
![](https://img.aspxhome.com/file/2023/5/60775_0s.png)
java 读取excel文件转换成json格式的实例代码
2023-09-11 13:07:28
Java栈和基础队列的实现详解
2023-07-02 05:36:59
![](https://img.aspxhome.com/file/2023/7/61597_0s.gif)
Android使用Gradle依赖配置compile、implementation与api的区别介绍
2023-09-27 18:11:40
Java面试题冲刺第二十二天-- Nginx
2023-11-16 13:43:48
![](https://img.aspxhome.com/file/2023/6/58916_0s.png)
IDEA中使用jclasslib插件可视化方式查看类字节码的过程详解
2021-10-12 08:18:31
![](https://img.aspxhome.com/file/2023/3/60923_0s.png)
MyBatis-Plus多表联查(动态查询)的项目实践
2023-11-19 21:43:17
![](https://img.aspxhome.com/file/2023/3/59663_0s.png)
详解Java利用深度优先遍历解决迷宫问题
2022-08-20 02:46:54
关于Spring MVC在Controller层中注入request的坑详解
2023-08-24 11:15:43
![](https://img.aspxhome.com/file/2023/4/58414_0s.png)
Java 深入浅出分析Synchronized原理与Callable接口
2021-11-26 10:27:17
![](https://img.aspxhome.com/file/2023/8/64898_0s.png)
java多线程有序读取同一个文件
2022-05-28 20:41:57
![](https://img.aspxhome.com/file/2023/8/62778_0s.jpg)
java二维数组指定不同长度实例方法
2021-07-13 06:02:09
java的io操作(将字符串写入到txt文件中)
2022-05-28 22:59:23
SpringBoot中整合MyBatis-Plus-Join使用联表查询的实现
2023-11-28 19:00:26
java求100之内的素数(质数)简单示例
2023-11-07 03:12:32
Spring实战之SpEl语法实例详解
2023-09-18 07:56:03
Java实现在PPT中创建SmartArt图形的示例代码
2022-01-16 06:22:52
![](https://img.aspxhome.com/file/2023/3/62343_0s.jpg)
C语言时间函数之strftime()详解
2023-06-26 02:42:32
![](https://img.aspxhome.com/file/2023/8/103098_0s.png)
SpringBoot项目从搭建到发布一条龙
2023-11-21 09:28:44
![](https://img.aspxhome.com/file/2023/7/58847_0s.png)