家政預約小程序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變量
在這里插入圖片描述
這樣就實現了一個計算綜合得分的效果

總結

本篇我們介紹了服務管理功能的開發,編寫了一個小的算法用來計算綜合得分,然后講解了如何通過事件的鏈式調用去獲取我們的綜合得分。雖然這個算法不見得和實際貼合,但是主要是演示一下微搭前后端開發的一個過程,結合你自己的業務就可以實現自己想要的邏輯出來。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/13823.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13823.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/13823.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

中國網對話神工坊創始人任虎: 先進計算技術賦能,領跑自主CAE新時代

隨著"中國制造2025"收官在即,智能制造和工業互聯網的發展勢頭更勁。作為現代工業的基石,工業軟件已成為推動工業數字化轉型的關鍵力量。 近日,神工坊創始人&CEO任虎先生接受了中國網記者的專訪,就“國產CAE軟件的崛…

C++中的Lambda的定義與使用

文章目錄 前言Lambda的定義與使用方式總結 Lambda的使用和細節 前言 在C11引入了Lambda表達式,它是一種方便的匿名函數,可以在需要時臨時定義函數,并且可以捕獲局部變量。下面是Lambda表達式的定義與使用方式,并對其進行總結 La…

【東山派Vision K510開發板試用筆記】nncase的安裝

概述 最近試用了百問網提供的東山派Vision開發板,DongshanPI-Vision開發板是百問網針對AI應用開發設計出來的一個RSIC-V架構的AI開發板,主要用于學習使用嘉楠的K510芯片進行Linux項目開發和嵌入式AI應用開發等用途。DongshanPI-Vision開發板采用嘉楠公司…

持續總結中!2024年面試必問 20 道 Redis面試題(三)

上一篇地址:持續總結中!2024年面試必問 20 道 Redis面試題(二)-CSDN博客 五、Redis的持久化機制是什么?各自的優缺點? Redis的持久化機制主要有三種:RDB持久化、AOF持久化以及混合持久化。下面…

Android 13 QSSI和TARGET編譯時間不一致導致recovery升級失敗

環境 $ cat /etc/os-release NAME"Ubuntu" VERSION"20.04.4 LTS (Focal Fossa)" IDubuntu ID_LIKEdebian PRETTY_NAME"Ubuntu 20.04.4 LTS" VERSION_ID"20.04" HOME_URL"https://www.ubuntu.com/" SUPPORT_URL"https:/…

寡姐不高興了:這次可能會讓 OpenAI 遇到真正的麻煩|TodayAI

寡姐這次真不高興了 演員斯嘉麗約翰遜(Scarlett Johansson)近日表示,她拒絕了 OpenAI 的邀請,不愿為對話式 ChatGPT 系統配音,卻發現公司仍然使用了一個聽起來非常像她的聲音。對此,她感到“震驚”和“憤怒…

react狀態管理

狀態管理的實現 組件之外,可以在全局共享狀態/數據 closure(閉包) 可以解決 有修改這個數據的明確方法,并且,能夠讓其他的方法感知到。 本質上,就是把監聽函數放在一個地方,必要時拿出來執行一…

Java數據結構與算法(最小棧)

前言 設計一個支持 push ,pop ,top 操作,并能在常數時間內檢索到最小元素的棧。 實現 MinStack 類: MinStack() 初始化堆棧對象。void push(int val) 將元素val推入堆棧。void pop() 刪除堆棧頂部的元素。int top() 獲取堆棧頂部的元素。i…

Educational Codeforces Round 160 C. Game with Multiset (貪心之盡量選最大來填滿)

在這個問題中,最初會給你一個空的多集。您必須處理兩種類型的查詢: ADD x x x - 在多集合中添加一個等于 2 x 2x 2x 的元素; GET w w w - 詢問是否可以求當前多集的某個子集的和,并得到等于 w w w 的值。 輸入 第一行包含一…

java后端輪播圖的設計

對于表示輪播圖位置這種有限且較小范圍的數據,一般可以使用整數類型來表示。考慮到位置序號一般是非負整數且數量較少,可以選擇使用小范圍的整數類型,如下: 整數類型: 對于Java中,可以考慮使用 int 類型來表示位置序號…

Vue3 ts實現將assets中的圖片轉為file格式,實現本地圖片選擇上傳功能

Vue3 ts實現將assets中的圖片轉為file格式,實現本地圖片選擇上傳功能 1、需求描述2、關鍵代碼3、img標簽src使用變量打包后圖片無法展示 1、需求描述 用戶可以選項系統固定的幾個圖標,也可以自定義上傳圖片。系統固定圖標存在 src\assets\images\app 路徑…

sql注入——時間盲注

在sql注入的第九關中,我們既看不到返回值,也不能通過布爾盲注得到結果,這個時候還有一種方法就是通過頁面反應時間來獲取信息,就是時間盲注 第九關的代碼,可以看到無論是否正確,頁面都會返回You are in 可…

4---git命令詳解第一部分

一、提交文件方面命令: 1.1第一步:將需要提交的文件放進暫存區: 添加單個文件到暫存區stage: git add 文件名 添加多個文件到暫存區: git add 文件名1 文件名2 ... 將目錄下所有文件添加到暫存區: git…

【漏洞復現】用友U8 CRM uploadfile 文件上傳致RCE漏洞

0x01 產品簡介 用友U8 Cloud是用友推出的新一代云ERP,主要聚焦成長型、創新型企業,提供企業級云ERP整體解決方案。 0x02 漏洞概述 用友 U8 CRM客戶關系管理系統 uploadfle.php 文件存在任意文件上傳漏洞,未經身份驗證的攻擊者通過漏洞上傳…

Java基礎入門day52

day52 servlet 綜合案例 登錄功能 設置歡迎頁 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&q…

SpringBoot 國際化

如下四步 1 建資源文件 2 在yml文件中指定資源文件名稱 3 自定義類型轉換&#xff0c;轉換locale Configuration public class DefaultLocaleResolver implements LocaleResolver {Overridepublic Locale resolveLocale(HttpServletRequest request) {String locrequest.getP…

基于語音識別的智能電子病歷(三)之 M*Modal

討論“基于語音識別的智能電子病歷”&#xff0c;就繞不開 Nuance 和 M*Modal。這2個公司長時間的占據第一和第二的位置。下面介紹一下M*Modal。 這是2019年的一個新聞“專業醫療軟件提供商3M公司為自己購買了一份圣誕禮物&#xff0c;即M*Modal IP LLC的醫療技術業務&#xf…

SQL靶場搭建

概述 簡單介紹一下SQL靶場的搭建&#xff0c;以及在搭建過程中遇到的一些問題。使用該軟件搭建靶場相對簡單&#xff0c;適合新手小白。當然&#xff0c;也可以在自己的虛擬機下進行搭建&#xff0c;相對來說就較為復雜。本章主要講解使用Phpstudy進行SQL靶場搭建。 這里我推…

前后端編程語言和運行環境的理解

我已重新檢查了我的回答,并確保信息的準確性。以下是常用的編程語言,以及它們通常用于前端或后端開發,以及相應的框架和運行環境: 前端開發 JavaScript 框架:React, Angular, Vue.js, Ember.js, Backbone.js運行環境:Web 瀏覽器HTML (HyperText Markup Language) 不是編…

嵌入式學習——3——TCP-UDP 數據交互,握手,揮手

1、更新源 cd /etc/apt/ sudo cp sources.list sources.list.save 將原鏡像備份 sudo vim sources.list 將原鏡像修改成阿里源/清華源&#xff0c;如所述 阿里源 deb http://mirrors.aliyun.com/ubuntu/ bionic main …