当前位置: 首页 > news >正文

家政预约小程序05服务管理

目录

  • 1 设计数据源
  • 2 后台管理
  • 3 后端API
  • 4 调用API
  • 总结

家政预约小程序的核心是展示家政公司提供的各项服务的能力,比如房屋维护修缮,家电维修,育婴,日常保洁等。用户在选择家政服务的时候,价格,评价是影响用户选择的核心要素。因此在小程序的首要需要展示用户关心的核心内容。

1 设计数据源

为了显示服务的内容,我们先需要设计数据源用来存储数据。打开控制台,点击数据模型,点击新建
在这里插入图片描述
输入数据源的名称,服务管理,点击创建
在这里插入图片描述
数据源创建好之后,需要添加列,首先我们添加服务的名称,类型选择文本
在这里插入图片描述
在这里插入图片描述
在添加的列上点击向右插入列,添加服务描述,类型选择文本
在这里插入图片描述
在这里插入图片描述
在首页显示的时候为了吸引用户,我们添加两个价格,一个是划线价格,一个是优惠价格,类型选择数字
在这里插入图片描述
在这里插入图片描述
为了在列表上显示,我们添加一个图片字段,类型选择图片
在这里插入图片描述
然后添加一个销量,类型选择数字
在这里插入图片描述
通常小程序可以按照综合进行排序,我们设置一个综合评分,类型选择数字
在这里插入图片描述
在添加一个服务详情,类型选择富文本
在这里插入图片描述
添加一个是否在首页展示的字段,类型选择布尔值
在这里插入图片描述
最后添加一个服务分类,类型选择关联关系,选择我们的服务分类表
在这里插入图片描述

2 后台管理

数据源创建好之后,我们就可以开发后台管理功能,先创建一个服务管理页面,从模板新建
在这里插入图片描述
选择对应的数据模型,模板会自动的生成增删改查的页面
在这里插入图片描述
切换到页面布局,我们配置我们的导航菜单
在这里插入图片描述
在这里插入图片描述
点开刚才配置的菜单,将标题修改为服务管理
在这里插入图片描述

3 后端API

我们这里录入数据的时候,需要先计算一下服务的综合得分。我们综合得分的技术规则是按三个指标进行计算,分别是价格、销量和评价。每个指标分配不同的权重,最终求一个总体的得分。

而且综合得分是一个动态的指标,在每次顾客购买服务和做出评价后,重新计算当前服务的综合得分并进行更新。

像这种有规则的我们称之为业务逻辑,需要使用API进行开发,在小程序侧对应的事件中进行调用。

点击APIs,点击新建
在这里插入图片描述
选择自定义代码
在这里插入图片描述
输入方法的名称和标识
在这里插入图片描述
因为销量、价格、评价的数量级不一样,为了实现可比较,我们用minMax算法实现,以下是minMax算法的逻辑

比如价格作为一项指标公式是,评价后的价格分=(当前服务价格-最低服务价格)/(最高服务价格-最低服务价格)

然后总分=销量评价分权重+价格评价分权重+评价分*权重

首先我们需要传入当前产品的价格,设置入参,输入price

在这里插入图片描述
然后定义一个常量用来获取我们的入参

const price = params.price

接着定义一个变量用来返回计算的结果,初始化为0

  let score = 0

接着我们获取服务的所有数据,可以调用分页方法

const services = await context.callModel({name:'fwgl_u9ms0al',methodName:'wedaGetRecords',params:{pageSize:1000}})

默认不设置页码默认取10条,我们这里设置1000基本就把服务全获取到了

通过分页方法会把所有字段都获取到,我们这里只关心服务的价格,使用数组的map方法我们处理一下返回结果,让数组里只包含价格

const records = services.records.map(item=>(item.yhjg))

接着我们就要处理一下各种情况,比如我没录入数据的情况下,那我就直接设定价格分为0,如果只有一条数据因为分母会变成0所以也让价格分变成0

if(records.length===0){score=0}else{records.push(price)const max_price = Math.max(...records)const min_price = Math.min(...records)if(max_price==min_price){score=0}else{console.log('min_price',min_price,'max_price',max_price)score = ((price - min_price)/(max_price-min_price))*0.4}}

计算好价格之后,最后将结果返回,注意API要求返回结果是JSON格式,这里我们将结果包装成一个对象,属性放置我们的返回结果

return {score:Number(score.toFixed(2))};

代码写好之后,点击方法测试,输入入参,看一下我们的计算结果
在这里插入图片描述
点击运行测试就可以看到执行的结果,点击出参自动映射,我们的API就开发好了
在这里插入图片描述

4 调用API

在我们的编辑界面,我们添加一个按钮调用一下API,在综合评分字段旁边添加一个普通容器,将该字段放入普通容器中,并添加一个按钮

在这里插入图片描述
在代码区定义两个变量,一个是数字类型,一个是对象类型
在这里插入图片描述
在这里插入图片描述
选中综合得分,设置输入值,绑定我们的score
在这里插入图片描述

然后设置按钮,我们设置一个链式调用,先判断我们的优惠价格有没有输入,如果没有我就提示一个错误信息
在这里插入图片描述
如果输入了,我就调用我的API,并且传入我们的参数,并将结果赋值给我们的result对象
在这里插入图片描述
赋值成功后将API的调用结果赋值给我们的score变量
在这里插入图片描述
这样就实现了一个计算综合得分的效果

总结

本篇我们介绍了服务管理功能的开发,编写了一个小的算法用来计算综合得分,然后讲解了如何通过事件的链式调用去获取我们的综合得分。虽然这个算法不见得和实际贴合,但是主要是演示一下微搭前后端开发的一个过程,结合你自己的业务就可以实现自己想要的逻辑出来。

相关文章:

家政预约小程序05服务管理

目录 1 设计数据源2 后台管理3 后端API4 调用API总结 家政预约小程序的核心是展示家政公司提供的各项服务的能力,比如房屋维护修缮,家电维修,育婴,日常保洁等。用户在选择家政服务的时候,价格,评价是影响用…...

Django自定义命令

Django自定义命令 我们知道,Django内部内置了很多命令,例如 python manage.py runserver python manage.py makemigrations python manage.py migrate我们可以在python控制台中查看所有命令 我们也可以自定义命令,让python manage.py执行…...

详解VLSM技术

在现代网络设计中,如何高效地分配和管理IP地址是一个关键问题。传统的子网划分方法虽然简单,但在实际应用中常常导致IP地址的浪费。为了应对这一问题,VLSM(Variable Length Subnet Mask,可变长子网掩码)技术…...

面向浏览器端免费开源的三维可视化编辑器,包含BIM轻量化,CAD解析预览等特色功能。

ES 3DEditor 🌍Github地址 https://github.com/mlt131220/ES-3DEditor 🌍在线体验 https://editor.mhbdng.cn/#/ 基于vue3与ThreeJs,具体查看Doc 主要功能: 模型导入展示,支持OBJ、FBX、GLTF、GLB、RVT、IFC、SEA、3…...

Nacos 进阶篇---Nacos服务端怎么维护不健康的微服务实例 ?(七)

一、引言 在 Nacos 后台管理服务列表中,我们可以看到微服务列表,其中有一栏叫“健康实例数” (如下图),表示对应的客户端实例信息是否可用状态。 那Nacos服务端是怎么感知客户端的状态是否可用呢 ? 本章…...

【oracle004】oracle内置函数手册总结(已更新)

1.熟悉、梳理、总结下oracle相关知识体系。 2.日常研发过程中使用较少,随着时间的推移,很快就忘得一干二净,所以梳理总结下,以备日常使用参考 3.欢迎批评指正,跪谢一键三连! 总结源文件资源下载地址&#x…...

建模:Maya

一、常用按键 1、alt 左键 —— 环绕查看 2、alt 中键 —— 拖动模型所在面板 3、空格 —— 进入三视图模式;空格 左键按住拖动 —— 切换到对应视图 二、骨骼归零 1、T Pose 旋转模式,点击模型,摆好T姿势即可 2、复制模型设置200距离…...

持续总结中!2024年面试必问 20 道 Redis面试题(四)

上一篇地址:持续总结中!2024年面试必问 20 道 Redis面试题(三)-CSDN博客 七、Redis过期键的删除策略? Redis 过期键的删除策略主要涉及以下几种方式: 1. 定时删除(Timed Expiration&#xff…...

Java中关于List的一些常用操作

先定义一个List&#xff0c;代码如下 //定义一个实例类 public class Model{private String id;private String code;private String name;//setter getter 方法省略}//定义一个List,赋值过程省略 List<Model> list new ArrayList<>();1.将List中每一个对象的id…...

Docker仓库解析

目录 1、Docker仓库类型2、Docker仓库的作用3、工作原理4、管理与使用最佳实践 Docker仓库是Docker生态系统中的重要组成部分&#xff0c;它是用于存储和分发Docker镜像的集中化服务。无论是公共还是私有&#xff0c;仓库都是开发者之间共享和复用容器镜像的基础。 1、Docker仓…...

开发人员容易被骗的原因有很多,涉及技术、安全意识、社会工程学以及工作环境等方面。以下是一些常见原因:

技术方面&#xff1a; 漏洞和补丁管理不当&#xff1a;未及时更新软件和依赖库可能存在已知漏洞&#xff0c;容易被攻击者利用。缺乏安全编码实践&#xff1a;没有遵循安全编码规范&#xff0c;容易引入SQL注入、跨站脚本&#xff08;XSS&#xff09;等安全漏洞。错误配置&…...

使用Python实现深度学习模型:自动编码器(Autoencoder)

自动编码器&#xff08;Autoencoder&#xff09;是一种无监督学习的神经网络模型&#xff0c;用于数据的降维和特征学习。它由编码器和解码器两个部分组成&#xff0c;通过将输入数据编码为低维表示&#xff0c;再从低维表示解码为原始数据来学习数据的特征表示。本教程将详细介…...

数据结构--树与二叉树--编程实现以孩子兄弟链表为存储结构递归求树的深度

数据结构–树与二叉树–编程实现以孩子兄弟链表为存储结构递归求树的深度 题目: 编程实现以孩子兄弟链表为存储结构&#xff0c;递归求树的深度。 ps&#xff1a;题目来源2025王道数据结构 思路&#xff1a; 从根结点开始 结点 N 的高度 max{N 孩子树的高度 1, N兄弟树的…...

Property xxx does not exist on type ‘Window typeof globalThis‘ 解决方法

问题现象 出现以上typescript警告&#xff0c;是因为代码使用了window的非标准属性&#xff0c;即原生 window 对象上不存在该属性。 解决办法 在项目 根目录 或者 src目录 下新建 xxx.d.ts 文件&#xff0c;然后进行对该 属性 进行声明即可。 注意&#xff1a;假如xxx.d.ts文…...

BOM..

区别&#xff1a;...

rust的版本问题,安装问题,下载问题

rust的版本、安装、下载问题 rust版本问题&#xff0c; 在使用rust的时候&#xff0c;应用rust的包&#xff0c;有时候包的使用和rust版本有关系。 error: failed to run custom build command for pear_codegen v0.1.2 Caused by: process didnt exit successfully: D:\rus…...

SDUT 链表9-------7-9 sdut-C语言实验-约瑟夫问题

7-9 sdut-C语言实验-约瑟夫问题 分数 20 全屏浏览 切换布局 作者 马新娟 单位 山东理工大学 n个人想玩残酷的死亡游戏&#xff0c;游戏规则如下&#xff1a; n个人进行编号&#xff0c;分别从1到n&#xff0c;排成一个圈&#xff0c;顺时针从1开始数到m&#xff0c;数到m的…...

Anthropic绘制出了大型语言模型的思维图:大型语言模型到底是如何工作

今天&#xff0c;我们报告了在理解人工智能模型的内部运作方面取得的重大进展。我们已经确定了如何在 Claude Sonnet&#xff08;我们部署的大型语言模型之一&#xff09;中表示数百万个概念。这是对现代生产级大型语言模型的首次详细了解。这种可解释性的发现将来可以帮助我们…...

网络工程师练习题

网络工程师 随着company1网站访问量的不断增加,公司为company1设立了多台服务器。下面是不同用户ping网站www.company1.com后返回的IP地址及响应状况,如图8.58所示。从图8.58可以看出,域名www.company1.com对应了多个IP地址,说明在图8.59所示的NDS属性中启用了循环功能。在…...

思科模拟器--03.RIP协议路由--24.5.17

1.首先&#xff0c;先创建两个个人电脑:PC0和PC1和三个路由器:R1&#xff0c;R2和R3. (诀窍:建议用文本框标注一下重要简短的内容; 目的:降低失误概率,提高成功率!) 第0步:(个人电脑的IP,子网掩码和默认网关配置) 接着&#xff0c;可以先将个人电脑的IP和网关先配置一下…...

从‘遍地都是’到‘最新版本’:聊聊H5st参数演变与前端风控对抗的那些事儿

H5st参数演进史&#xff1a;一场前端风控与自动化脚本的永恒博弈 当你在电商平台浏览商品时&#xff0c;页面背后正上演着一场看不见的攻防战。H5st参数作为这场战役中的关键武器&#xff0c;已经从最初的简单防御演变为如今复杂的加密体系。这串看似随机的字符&#xff0c;实际…...

Java工程师转行大模型:高薪+广阔前景,你的优势远超想象!

本文分析了大模型领域的发展前景和Java工程师转行的优势。大模型在多个领域应用广泛&#xff0c;需求旺盛&#xff0c;技术迭代快&#xff0c;薪资待遇高。Java工程师具备扎实的编程基础、工程化能力、分布式系统经验等优势&#xff0c;转行大模型领域具备良好条件。文章建议补…...

如何在Docker部署时以非root用户运行_容器内权限降级

容器默认以root运行会引发权限错乱、K8s启动失败等问题&#xff0c;根本原因是镜像未显式设置非root用户&#xff1b;正确做法是在Dockerfile中用adduser创建指定UID用户、chown修改目录属主&#xff0c;并将USER置于root操作之后。为什么容器里默认用 root 是个真问题docker 容…...

多证件一 “机” 通行

出入境、机场安检对证件核验要求高、种类多、速度要快。这款一体机支持ICAO 标准电子护照、港澳通行证、台胞证等&#xff0c;芯片读取快速稳定。人脸比对精准&#xff0c;核验时间短&#xff0c;大客流下也能保持流畅。多光源防伪&#xff0c;有效识别伪造变造证件&#xff0c…...

一键搞定飞书文档转Markdown:feishu2md让你的工作流更高效

一键搞定飞书文档转Markdown&#xff1a;feishu2md让你的工作流更高效 【免费下载链接】feishu2md 一键命令下载飞书文档为 Markdown&#xff08;寻找维护者&#xff09; 项目地址: https://gitcode.com/gh_mirrors/fe/feishu2md 还在为飞书文档格式转换而烦恼吗&#x…...

Python asyncio 超时控制方法

Python asyncio超时控制方法详解 在现代异步编程中&#xff0c;超时控制是保证程序健壮性的关键。Python的asyncio库提供了多种灵活的超时管理机制&#xff0c;能够有效避免因任务阻塞导致的资源浪费或系统崩溃。无论是网络请求、数据库操作还是复杂任务调度&#xff0c;合理使…...

全球非洲科技展聚焦非洲数字化发展

“2026全球非洲科技展”3月28日在阿尔及利亚首都阿尔及尔开幕&#xff0c;本次展会聚焦推动非洲数字基础设施建设和促进非洲技术主权。 联合国副秘书长、秘书长数字和新兴技术特使阿曼迪普辛格吉尔在开幕致辞中表示&#xff0c;非洲各国应携手合作&#xff0c;制定自己的人工智…...

2026届必备的五大AI辅助写作平台实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 基于深度语言模型跟模式识别算法&#xff0c;其是学术原创性审查的重要工具&#xff0c;专门…...

C语言实现 简易计算器教程

制作简易的算术计算器编写程序实现一个简单的计算器&#xff08;可实现加减乘除即可&#xff09;。要求从键盘输入2个数和一个运算符&#xff0c;输出对应的计算结果。#include <stdio.h>int main(){double num1, num2, result;char symbol;printf("简易计算器\n&qu…...

15MW海上风机开源仿真模型:从理论到工程实践的技术革新

15MW海上风机开源仿真模型&#xff1a;从理论到工程实践的技术革新 【免费下载链接】IEA-15-240-RWT 15MW reference wind turbine repository developed in conjunction with IEA Wind 项目地址: https://gitcode.com/gh_mirrors/ie/IEA-15-240-RWT 你是否曾面临这样的…...