湖南网站建设平台,淘宝联盟优惠券网站建设,有哪些免费做网站,专业郑州企业网站建设大家好#xff0c;我是java1234_小锋老师#xff0c;看到一个不错的微信小程序外卖跑腿点餐(订餐)系统(uni-appSpringBoot后端Vue管理端技术实现) #xff0c;分享下哈。 项目视频演示
【免费】微信小程序外卖跑腿点餐(订餐)系统(uni-appSpringBoot后端Vue管理端技术实现)…大家好我是java1234_小锋老师看到一个不错的微信小程序外卖跑腿点餐(订餐)系统(uni-appSpringBoot后端Vue管理端技术实现) 分享下哈。 项目视频演示
【免费】微信小程序外卖跑腿点餐(订餐)系统(uni-appSpringBoot后端Vue管理端技术实现) Java毕业设计非常好的源码_哔哩哔哩_bilibili【免费】微信小程序外卖跑腿点餐(订餐)系统(uni-appSpringBoot后端Vue管理端技术实现) Java毕业设计非常好的源码项目来自互联网免费开源分享严禁商业。更多毕业设源码http://www.java1234.com/a/bysj/javaweb/, 视频播放量 547、弹幕量 0、点赞数 22、投硬币枚数 7、收藏人数 38、转发人数 4, 视频作者 java1234官方, 作者简介 公众号java1234 微信java9266相关视频【免费】微信小程序扫码点餐(订餐)系统(uni-appSpringBoot后端Vue管理端技术实现) Java毕业设计非常好的源码PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~【免费】SpringbootVue个人博客系统 毕业设计 Java毕业设计uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )SpringBoot微信小程序电商实战项目课程 Vue3.2 Element Plus后台管理 ( 火爆连载更新中... )2023版uniapp从入门到上天视频教程(Java后端无废话版)火爆更新中...【免费】javaweb网络订餐系统毕业设计打造前后端分离 权限系统 基于SpringBoot2SpringSecurityVue3.2Element Plus 视频教程 火爆连载更新中..【免费】SpringbootVue停车场管理系统 Java毕业设计【免费】javaweb房屋租赁管理信息系统毕业设计https://www.bilibili.com/video/BV1r64y1w7NU/
项目介绍
自从计算机发展开始计算机软硬件相关技术的发展速度越来越快在信息化高速发展的今天计算机应用技术似乎已经应用到了各个领域。
在餐饮行业除了外卖以外就是到店里就餐在店里就餐如果需要等待点餐的话用户的体验度就会急剧下降很多餐饮店也开始开发线上订餐的系统这样的系统给用户带来了新的体验尤其是在时间和空间上让使用者不管身在何处只要连上网就能够选购菜品进行订餐。
外卖系统小程序的开发项目以Springboot框架为基础基于B/S模式采用Java编程语言使用MySQL数据库首选对外卖系统小程序的各个功能以及用户的需求做出了解释然后根据用户线上订餐的需求再介绍了系统的总体设计以及其详细设计给用户提供了外卖系统小程序的总体结构的搭建方法。从而满足用户线上订餐的需求。 系统展示 部分代码
package com.yu.app.moudles.service;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yu.app.moudles.mapper.GoodsCategoryMapper;
import com.yu.app.moudles.mapper.GoodsMapper;
import com.yu.app.moudles.mapper.GoodsPropertyMapper;
import com.yu.common.common.constant.Const;
import com.yu.common.common.enums.GoodsPropertyCategory;
import com.yu.common.entity.app.Goods;
import com.yu.common.entity.app.GoodsCategory;
import com.yu.common.entity.app.GoodsProperty;
import com.yu.common.entity.app.vo.GoodsMenuVO;
import com.yu.common.entity.app.vo.GoodsVO;
import com.yu.common.entity.app.vo.SameCategoryPropertyVO;
import com.yu.common.service.RedisService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;import javax.annotation.Resource;
import java.util.*;Slf4j
Service
public class GoodsServiceImpl {Resourceprivate GoodsCategoryMapper goodsCategoryMapper;Resourceprivate GoodsMapper goodsMapper;Resourceprivate GoodsPropertyMapper goodsPropertyMapper;Resourceprivate RedisService redisService;// TODO 本地商品菜单缓存private ListGoodsMenuVO goodsMenuVOSLocalCache new ArrayList();public ListGoodsMenuVO getGoodsMenuDetailList() {Object o redisService.get(Const.CONST_goods_menu_vo_cache);if (o ! null !CollectionUtils.isEmpty(goodsMenuVOSLocalCache))return goodsMenuVOSLocalCache;ListGoodsCategory goodsCategoryList goodsCategoryMapper.selectList(null);// 使用2个map去关联关系HashMapString, ListGoods sameCategoryGoodsMap new HashMap(goodsCategoryList.size());HashMapString, GoodsMenuVO goodsMenuVOMap new HashMap(goodsCategoryList.size());for (GoodsCategory goodsCategory : goodsCategoryList) {sameCategoryGoodsMap.put(goodsCategory.getName(), new ArrayList());GoodsMenuVO goodsMenuVO new GoodsMenuVO();goodsMenuVO.setGoodsCategoryName(goodsCategory.getName());goodsMenuVO.setGoodsCategoryName(goodsCategory.getName());goodsMenuVO.setDisplayOrder(goodsCategory.getDisplayOrder());goodsMenuVO.setGoodsCategoryShow(goodsCategory.getShowStatus());goodsMenuVOMap.put(goodsCategory.getName(), goodsMenuVO);}ListGoods allGoods goodsMapper.selectList(null);// 将所有商品分类for (Goods good : allGoods)if (sameCategoryGoodsMap.containsKey(good.getGoodsCategoryName()))sameCategoryGoodsMap.get(good.getGoodsCategoryName()).add(good);Random random new Random(10000);// 关联同类商品排好序后放到到对应的类别里for (Map.EntryString, GoodsMenuVO goodsMenuVOEntry : goodsMenuVOMap.entrySet()) {ListGoods sameCategoryGoodsList sameCategoryGoodsMap.get(goodsMenuVOEntry.getKey());sameCategoryGoodsList.sort((o1, o2) - o1.getDisplayOrder() - o2.getDisplayOrder());ListGoodsVO goodsVos new ArrayList();// 填充商品的属性for (Goods goods : sameCategoryGoodsList) {ListGoodsProperty goodsPropertyList goodsPropertyMapper.selectList(new QueryWrapperGoodsProperty().eq(goods_id, goods.getId()));HashMapString, ListGoodsProperty propertyMap new HashMap();for (GoodsProperty goodsProperty : goodsPropertyList) {if (propertyMap.containsKey(goodsProperty.getCategory())) {propertyMap.get(goodsProperty.getCategory()).add(goodsProperty);} else {propertyMap.put(goodsProperty.getCategory(), new ArrayListGoodsProperty() {{add(goodsProperty);}});}if (goodsProperty.getIsDefault() GoodsPropertyCategory.ENUM_size.value.equals(goodsProperty.getCategory()))goods.setDefaultPrice(goodsProperty.getRebasePrice()); // 重新设置商品的默认价格}ListSameCategoryPropertyVO goodsPropertyVos new ArrayList();for (Map.EntryString, ListGoodsProperty entry : propertyMap.entrySet()) {// 属性类别-属性列表 转换成对象SameCategoryPropertyVO goodsPropertyVo new SameCategoryPropertyVO();goodsPropertyVo.setCategory(entry.getKey());goodsPropertyVo.setRequired(!GoodsPropertyCategory.ENUM_jia_liao.value.equalsIgnoreCase(entry.getKey())); // 除了加料其他全部必选goodsPropertyVo.setPropertyList(entry.getValue());goodsPropertyVos.add(goodsPropertyVo);}GoodsVO goodsVo new GoodsVO();BeanUtils.copyProperties(goods, goodsVo);goodsVo.setGoodsPropertyVos(goodsPropertyVos);goodsVo.setRealPrice(goods.getDefaultPrice());goodsVo.setImage(goodsVo.getImage() ?random random.nextInt()); // 动态刷新小程序里的图片goodsVos.add(goodsVo);}goodsMenuVOEntry.getValue().setGoodsList(goodsVos);}ListGoodsMenuVO goodsMenuVOList new ArrayList(goodsMenuVOMap.values());// 最后对菜单进行排序goodsMenuVOList.sort((o1, o2) - o1.getDisplayOrder() - o2.getDisplayOrder());redisService.set(Const.CONST_goods_menu_vo_cache, true, Const.CONST_one_hour); // 失效时间this.goodsMenuVOSLocalCache goodsMenuVOList;return goodsMenuVOList;}
}templatedivdiv styletext-align: left; margin: 5px 10px/div!--增加或更新的表单弹窗--el-dialog :titleformTitle :visible.syncformDialogVisibleel-form refform :modelformData :rulesrules sizelarge label-width100pxel-form-item label姓名 propnameel-input v-modelformData.name placeholder姓名/el-input/el-form-itemel-form-item label手机号 propphoneel-input v-modelformData.phone placeholder手机号/el-input/el-form-itemel-form-itemel-button clickresetForm重置/el-buttonel-button typeprimary clickhandelConfirm确定/el-button/el-form-item/el-form/el-dialog!--列表--div stylemargin: 0px 10px;text-align: left;el-table:datauserAdminsstripe:default-sort{prop: name, order: ascending}el-table-column propname label姓名/el-table-columnel-table-column propphone label手机号/el-table-columnel-table-column propwxAvatar label微信头像template slot-scopescopeimg :srcscope.row.wxAvatar alt stylewidth: 50px; height: 50px; border-radius: 50%;/template/el-table-column!-- 账号状态--el-table-column label账号状态template slot-scopescopeel-switchv-modelscope.row.statusactive-colorgreeninactive-colorredchange(value) commitStatusChange(value, scope.row)/el-switch/template/el-table-columnel-table-column label操作 width120template slot-scopescopeel-button typetext sizemini clicktoEdit(scope.row)编辑/el-button
!-- el-button typetext sizemini clicktoDelete(scope.row.wxOpenid)删除/el-button--/template/el-table-column/el-table!--分页组件--el-row stylefloat: rightel-paginationcurrent-changechangePageNosize-changechangePageSize:current-page.syncsearchParams.pageNo:page-sizes[5, 10, 20, 30, 50, 100]:page-size.syncsearchParams.pageSizelayouttotal, sizes, prev, pager, next, jumper:totaltotal/el-pagination/el-row/div/div
/templatescriptimport {addUserAdmin, deleteUserAdmins, getUserAdmins, updateUserAdmin} from /api/modules/app/userAdminApi.js;export default {name: userAdminComponent,data() {return {// 查询参数searchParams: {searchParam1: null,pageNo: 1,pageSize: 10,},total: 0,userAdmins: [],formDialogVisible: false,formTitle: 添加,formData: {wxOpenid: null, name: null, phone: null, sex: null, wxAvatar: null, status: null},rules: {name: [{required: true, message: 姓名不能为空, trigger: blur}], phone: [{required: true, message: 手机号不能为空, trigger: blur}]}}},mounted() {this.getUserAdmins()},methods: {// 获取数据getUserAdmins() {let that this;getUserAdmins(that.searchParams.pageNo, that.searchParams.pageSize).then(result {that.userAdmins result.data.records;that.total result.data.total;})},// 切换页数changePageNo(pageNo) {this.searchParams.pageNo pageNo;this.getUserAdmins()},// 改变页面大小changePageSize(pageSize) {this.searchParams.pageSize pageSize;this.getUserAdmins()},// 清除查询参数clearSearchParams() {this.searchParams.searchParam1 null;},// 重置表单resetForm() {// 手动重置 不然数据被绑定在toEdit时深克隆出来的对象this.formData {wxOpenid: null, name: null, phone: null, sex: null, wxAvatar: null, status: null}},// 增加toAdd() {this.resetForm()this.formDialogVisible truethis.formTitle 添加},// 删除toDelete(id) {let that this;this.$confirm(提示, 是否删除, {}).then(() {deleteUserAdmins([id]).then(() {this.$notify.success(删除成功);that.getUserAdmins();})}).catch(() {})},// 编辑toEdit(selectedUserAdmin) {// 深拷贝一个对象 不然在表格显示的数据会受到印象this.formData JSON.parse(JSON.stringify(selectedUserAdmin));this.formDialogVisible truethis.formTitle 更新},// 提交表单handelConfirm() {this.$refs[form].validate(valid {console.log(this.formTitle)if (!valid)returnthis.formDialogVisible false;if (this.formTitle.startsWith(添加)) {addUserAdmin(this.formData).then(result {this.$notify.success(添加成功);this.getUserAdmins()})} else if (this.formTitle.startsWith(更新)) {updateUserAdmin(this.formData).then(result {this.$notify.success(更新成功);this.getUserAdmins()})}})},// 改变状态commitStatusChange(value, userAdmin) {this.$confirm(value false ? 冻结 : 激活).then(() {let obj {wxOpenid: userAdmin.wxOpenid,status: userAdmin.status}updateUserAdmin(obj).then(() {this.$notify.success(value false ? 已冻结 : 已激活)}).catch(() {userAdmin.status !userAdmin.status;})}).catch(() {userAdmin.status !userAdmin.status;})},}}
/script源码下载
CSDN 1积分下载https://download.csdn.net/download/caofeng891102/88785846
或者免费领取加小锋老师wxjava9266 热门推荐
免费分享一套微信小程序扫码点餐(订餐)系统(uni-appSpringBoot后端Vue管理端技术实现) 帅呆了~~-CSDN博客
免费分享一套SpringbootVue前后端分离的在线教育平台系统挺漂亮的-CSDN博客
免费分享一套SpringbootVue前后端分离的停车场管理系统挺漂亮的-CSDN博客
免费分享一套SpringbootVue前后端分离的个人博客系统挺漂亮的_免费的开源的springbootvue项目-CSDN博客
免费分享一套 SpringBoot Vue ElementUI 的人力资源管理系统挺漂亮的_elementspringboot员工工资管理-CSDN博客