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

2024-05-24 00:36

本文主要是介绍家政预约小程序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服务管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/996868

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优