Stories

Detail Return Return

叮點跑腿!一套跑腿下單接單系統! - Stories Detail

大家好,我是 Java陳序員

今天,給大家介紹一套開源的跑腿下單接單系統!

關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。

項目介紹

ddrun —— 一套後端基於 Midway3.0、後台採用 Nuxt2.x、小程序採用 Uniapp 實現的跑腿下單接單系統

系統實現了幫送服務、幫買服務、騎手註冊、騎手接單、用户下單、提現、訂單分配系統、優惠券、物品重量計算、距離計算等功能。

系統截圖

後台管理界面

小程序界面

快速上手

開發環境和開發工具

開發環境

  • Nodejs:16.x.x
  • Redis:5.x
  • MySQL: 8.x 或 5.7 以上版本
  • Git

開發工具

  • Visual Studio Code
  • HBuilderX
  • 微信開發者工具(微信小程序)

源碼下載

  • 克隆項目代碼

    git clone https://gitee.com/landalfyao/ddrun.git
  • 項目目錄結構

    ddrun
    ├── admin               # 後台管理員端 Nuxt
    ├── cert                # 微信商户證書文件清單                 
    ├── doc                 # 文檔説明
    ├── miniapp             # 小程序端 Uniapp
    ├── server              # 服務端 Midway
    ├── buildconfig.js      # 項目構建腳本
    ├── config.json.bak     # 配置文件
    ├── init.js             # 初始化腳本
    ├── init.sh             # 安裝腳本
    └── nginx.conf.bak      # Nginx 配置腳本

服務端

1、用 VS Code 打開 server 目錄

2、找到 src/config/config.local.ts.bak 文件,複製並粘貼到同一目錄下,並更名為 config.local.ts

3、創建數據庫 ddrunv2

CREATE DATABASE `ddrunv2` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

4、打開 src/config/config.local.ts 修改 MySQL 及 Redis 配置

···
orm: {
    /**
     * 單數據庫實例
     */
    type: 'mysql',
    host: '127.0.0.1',
    port: 3306,
    username: 'root',
    password: 'xxxxxx',
    database: 'ddrunv2',
    synchronize: true, // 如果第一次使用,不存在表,有同步的需求可以寫 true
    logging: false,
},
redis: {
    client: {
        port: 6379, // Redis port
        host: '127.0.0.1', // Redis host
        password: 'xxxxxx',
        db: 0,
    },
},
···
task: {
    redis: {
        port: '{redis_port}', // Redis port
        host: '{redis_host}', // Redis host
        password: '{redis_password}',
        db: 0,
    },
    ···
},
啓動服務的過程中會自動創建/更新數據庫表。

5、安裝依賴

npm install
# 或
yarn

6、啓動服務

npm run local
# 或
yarn local

7、輸出以下內容,説明啓動成功

\ Midway Starting 2024-11-02 20:21:42.625 INFO 10612 [egg:core] dump config after ready, 4ms
2024-11-02 20:21:42.690 INFO 10612 [midway:redis] client connect success
[ Midway ] Start Server at  http://127.0.0.1:8001
[ Midway ] Start on LAN http://192.168.31.92:8001

後台管理

1、用 VS Code 打開 admin 目錄

2、找到 nuxt.config.js.bak 文件,複製並粘貼到同一目錄下,並更名為 nuxt.config.js

3、打開 nuxt.config.js 修改 localUrl 的域名為 http://localhost:8001

const isLocal = process.env.NODE_ENV === 'local';
const isProd = process.env.NODE_ENV === 'prod';
const getProxyTarget = () => {
  const localUrl = 'http://localhost:8001';
  if (isLocal) {
    return localUrl;
  } else if (isProd) {
    return '{domain}';
  } else {
    return localUrl;
  }
};
···

4、安裝依賴

npm install

5、啓動服務

npm run local

6、瀏覽器訪問

http://localhost:8888/

小程序

1、在 HBuilderX 導入 miniapp 目錄

2、找到 util/constant.js.bak 文件,複製並粘貼到同一目錄下,並更名為 constant.js

3、打開 util/constant.js 修改 eexport const API = 'http://127.0.0.1:8001/api/'

export const API = 'http://127.0.0.1:8001/api/';
export const HELP_DELIVER = 'helpDeliver';
export const HELP_GET = 'helpGet';
export const HELP_BUY = 'helpBuy';
// 就近
export const BUY_NEARBY = 'nearby';
// 指定
export const BUY_APPOINT = 'appoint';
export const AUTOCANCELTIME = 15*60*1000;

4、打開 manifest.json 找到 appid 參數,並修改為自己小程序的 appid

...
"mp-weixin" : {
    "appid" : "wxd842973a9b79970c",
    "setting" : {
        "urlCheck" : false,
        "minified" : true
    },
    "usingComponents" : true,
    "permission" : {
        "scope.userLocation" : {
            "desc" : "需要根據位置獲取服務"
        }
    }
},
···

5、在 HBuilderX 中點擊運行==>運行到小程序模擬器==>微信開發者工具

可以説 ddrun 實現了跑腿下單接單的全流程功能,功能十分齊全,是一個值得學習的開源項目!快去試試吧~

項目地址:https://gitee.com/landalfyao/ddrun

最後

推薦的開源項目已經收錄到 GitHub 項目,歡迎 Star

https://github.com/chenyl8848/great-open-source-project

或者訪問網站,進行在線瀏覽:

https://chencoding.top:8090/#/

大家的點贊、收藏和評論都是對作者的支持,如文章對你有幫助還請點贊轉發支持下,謝謝!

user avatar soroqer Avatar ji_jason Avatar guochenglong Avatar u_16281588 Avatar u_11365552 Avatar jiangyi Avatar wilburxu Avatar 7mandy7 Avatar lvlaotou Avatar xingchendahai_68d7dff410962 Avatar taotao123 Avatar zhuifengdekukafei Avatar
Favorites 34 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.