从0到100:单位订餐统计小程序开发日记2025

可行性分析

单位订餐统计小程序:员工可快速查看每日菜品及价格。支持多种菜品选择,可按需添加数量,满足不同口味需求。自动记录员工订餐信息,包括菜品、数量、金额等,方便查询历史订单。后台管理功能强大,可实时统计订单数量、金额,生成报表,便于财务结算与管理。同时支持订单修改、取消等操作,灵活适应突发情况。 通过小程序,实现订餐流程高效、透明,提升单位后勤管理效率与员工满意度。

概要设计

在这里插入图片描述

数据库设计


GoodsModel.DB_STRUCTURE = {
	_pid: 'string|true',
	GOODS_ID: 'string|true',

	GOODS_TITLE: 'string|true|comment=标题',
	GOODS_STATUS: 'int|true|default=1|comment=状态 0=未启用,1=使用中',

	GOODS_SALE_CNT: 'int|true|default=0|comment=已购买数量',

	GOODS_CATE_ID: 'string|true|default=0|comment=分类',
	GOODS_CATE_NAME: 'string|false|comment=分类名冗余',

	GOODS_ORDER: 'int|true|default=9999',
	GOODS_VOUCH: 'int|true|default=0',

	GOODS_FORMS: 'array|true|default=[]',
	GOODS_OBJ: 'object|true|default={}',

	GOODS_QR: 'string|false',
	GOODS_VIEW_CNT: 'int|true|default=0',

	GOODS_COMMENT_CNT: 'int|true|default=0',

	GOODS_ADD_TIME: 'int|true',
	GOODS_EDIT_TIME: 'int|true',
	GOODS_ADD_IP: 'string|false',
	GOODS_EDIT_IP: 'string|false',
};
OrderModel.DB_STRUCTURE = {
	_pid: 'string|true',
	ORDER_ID: 'string|true',
	ORDER_USER_ID: 'string|true',

	ORDER_TOTAL_PRICE: 'float|true|default=0|comment=总价',
	ORDER_TOTAL: 'int|true|default=0|comment=数量',
	ORDER_LIST: 'array|true|comment=订单信息',
	ORDER_DAY: 'string|true|comment=日期',

	ORDER_DESC: 'string|false|comment=摘要',

	ORDER_STATUS: 'int|true|default=1|comment=状态 0=未确认,1=成功,9=取消',

	ORDER_ADD_TIME: 'int|true',
	ORDER_EDIT_TIME: 'int|true',
	ORDER_ADD_IP: 'string|false',
	ORDER_EDIT_IP: 'string|false',
};

核心实现

class OrderService extends BaseProjectService {

	 

	async cancelMyOrder(userId, id) {
		let where = {
			_id: id,
			ORDER_USER_ID: userId,
			ORDER_STATUS: OrderModel.STATUS.COMM
		}
		let order = await OrderModel.getOne(where);
		if (!order) this.AppError('该订单不存在');


		await OrderModel.edit(where, { ORDER_STATUS: 9 });

		// 统计 
		this.statOrder(id);


	}

	async getMyOrderDetail(userId, id) {
		let where = {
			ORDER_USER_ID: userId,
			_id: id,
		}
		return await OrderModel.getOne(where);
	}


	async getMyOrdersList(userId, {
		search, // 搜索条件
		sortType, // 搜索菜单
		sortVal, // 搜索菜单
		orderBy, // 排序
		whereEx, //附加查询条件
		page,
		size,
		isTotal = true,
		oldTotal
	}) {

		orderBy = orderBy || {
			'ORDER_ADD_TIME': 'desc'
		};
		let fields = 'ORDER_ID,ORDER_DAY,ORDER_TOTAL,ORDER_TOTAL_PRICE,ORDER_DESC,ORDER_GOODS_ID,ORDER_ADD_TIME,ORDER_GOODS_TITLE,ORDER_GOODS_CNT,ORDER_SCORE,ORDER_STATUS,goods.GOODS_OBJ.cover';

		let where = {};
		where.and = {
			ORDER_USER_ID: userId,
			_pid: this.getProjectId() //复杂的查询在此处标注PID
		};

		if (util.isDefined(search) && search) {
			where.or = [
				{ ORDER_GOODS_TITLE: ['like', search] },
			];

		} else if (sortType && util.isDefined(sortVal)) {
			// 搜索菜单
			switch (sortType) {
				case 'status': {
					where.and.ORDER_STATUS = Number(sortVal);
					break;
				}
			}
		}

		return await OrderModel.getList(where, fields, orderBy, page, size, isTotal, oldTotal);
	}

}

UI设计

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

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

后台管理系统

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

git下载地址

点击下载

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值