乐趣区

关于小程序:基于微信小程序的大学校园实验预约平台的设计方案

业务背景

实验室预约治理小程序,包含实验室动静,实验室规章制度,预约审批,用户治理,根底实验室预约,业余实验室预约等性能。目前局部高校实验室存在设施治理艰难的问题,要应用设施可能须要在微信群内重复询问,注销也麻烦。实验室预约助手目标就在用低成本的云开发实现对实验室的设施应用治理,从而达到有序试验,标准治理,晋升效率,无效溯源的作用

性能需要

数据库设计

技术攻关

小程序隔离策略

同一个微信小程序用户 storage 下限为 10MB。storage 以用户维度隔离,

同一台设施上,A 用户无奈读取到 B 用户的数据;不同小程序之间也无奈相互读写数据。

插件隔离策略

同一小程序应用不同插件:不同插件之间,插件与小程序之间 storage 不互通。
不同小程序应用同一插件:同一插件 storage 不互通。

清理策略

本地缓存的清理机会跟代码包一样,只有在小程序代码包被清理的时候本地缓存才会被清理。

小程序缓存办法的类封装

微信缓存二次封装,有设置时效性的封装

/**
 * 写小程序缓存
 * k 键 key
 * v 值 value
 * t 秒(无效工夫)*/
function set(k, v, t = 86400 * 30) {if (!k) return null;

    wx.setStorageSync(k, v);
    let seconds = parseInt(t);
    if (seconds > 0) {let newtime = Date.parse(new Date());
        newtime = newtime / 1000 + seconds;
        wx.setStorageSync(k + TIME_SUFFIX, newtime + "");
    } else {wx.removeStorageSync(k + TIME_SUFFIX);
    }
}


/**
 * 获取小程序缓存
 * k 键 key
 * def 默认值
 */
function get(k, def = null) {if (!k) return null;

    let deadtime = parseInt(wx.getStorageSync(k + TIME_SUFFIX));
 
    if (deadtime) {if (parseInt(deadtime) < Date.parse(new Date()) / 1000) {wx.removeStorageSync(k); 
            wx.removeStorageSync(k + TIME_SUFFIX); 
            return def;
        }
    }

    let res = wx.getStorageSync(k);
    if (res) {return res;} else {return def;}
}

前端界面设计




后端界面设计




git 开源代码

退出移动版