SpringBoot帶你實(shí)現(xiàn)一個(gè)點(diǎn)餐小程序
一,功能介紹
本點(diǎn)單系統(tǒng)主要是基于SpringBoot框架和小程序開發(fā)的,主要是為當(dāng)代人們的生活提供更便利、更高效的服務(wù),也為營(yíng)銷者提供更好的系統(tǒng)進(jìn)行用戶、商品、訂單等信息管理。
該系統(tǒng)所實(shí)現(xiàn)的主要功能模塊如下:
前臺(tái):
1)注冊(cè)登錄
2)個(gè)人中心
① 修改個(gè)人信息
② 修改收貨地址
③ 積分
3)商品瀏覽
4)商品搜索
5)購物車
6)下單支付后臺(tái):
1)注冊(cè)登錄
2)個(gè)人中心
① 修改個(gè)人信息
② 修改密碼
3)用戶管理
① 客戶信息管理
② 管理員信息管理
4)商品管理
① 商品分類管理
② 商品信息管理
③ 庫存與銷量
5)訂單管理
前臺(tái)提供用戶注冊(cè)登錄、個(gè)人中心、瀏覽商品、查找商品、添加商品入購物車、訂單提交以及支付等功能。后臺(tái)提供管理注冊(cè)登錄、修改密碼、修改個(gè)人信息、用戶信息管理、管理員信息管理、商品信息管理、商品分配管理、庫存與銷量統(tǒng)計(jì)、訂單管理等功能。
二,開發(fā)語言介紹
采用的SpringBoot+Vue+微信小程序進(jìn)行開發(fā),數(shù)據(jù)庫采用的是Mysql。
三,系統(tǒng)的界面介紹
四,核心代碼演示
/** * 登錄相關(guān) */ @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("賬號(hào)或密碼不正確"); } String token = tokenService.generateToken(user.getId(),username, "users", user.getRole()); return R.ok().put("token", token); } /** * 注冊(cè) */ @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("賬號(hào)不存在"); } 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 * @email * @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(); }
到此這篇關(guān)于SpringBoot帶你實(shí)現(xiàn)一個(gè)點(diǎn)餐小程序的文章就介紹到這了,更多相關(guān)SpringBoot點(diǎn)餐小程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)將html字符串插入到PPT幻燈片
Java后端代碼操作PPT幻燈片時(shí),可直接在幻燈片中繪制形狀,并在形狀中添加文本字符串內(nèi)容。本篇文章主要介紹通過java實(shí)現(xiàn)將html字符串添加到PPT幻燈片的的方法,可添加文字、圖片、視頻、音頻等。以下是具體方法和步驟。2021-11-11基于spring+hibernate+JQuery開發(fā)之電子相冊(cè)(附源碼下載)
本篇文章介紹了,基于spring+hibernate+JQuery開發(fā)之電子相冊(cè)(附源碼下載)。需要的朋友參考下2013-05-05java遍歷http請(qǐng)求request的所有參數(shù)實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猨ava遍歷http請(qǐng)求request的所有參數(shù)實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09詳解基于MVC的數(shù)據(jù)查詢模塊進(jìn)行模糊查詢
這篇文章主要介紹了Java基于MVC的數(shù)據(jù)查詢模塊進(jìn)行模糊查詢,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01SpringMVC中@RequestMapping注解的實(shí)現(xiàn)
RequestMapping是一個(gè)用來處理請(qǐng)求地址映射的注解,本文主要介紹了SpringMVC中@RequestMapping注解的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01java并發(fā)等待條件的實(shí)現(xiàn)原理詳解
這篇文章主要介紹了java并發(fā)等待條件的實(shí)現(xiàn)原理詳解,還是比較不錯(cuò)的,這里分享給大家,供需要的朋友參考。2017-11-11mybatis xml注釋sql的注意事項(xiàng)及說明
這篇文章主要介紹了mybatis xml注釋sql的注意事項(xiàng)及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07