feat: init fitness-coach (backend + miniprogram)
- backend: NestJS service with exercise/plan data - miniprogram: WeChat mini program client - exclude node_modules, dist, runtime data-store, local env
This commit is contained in:
62
miniprogram/services/exercise.js
Normal file
62
miniprogram/services/exercise.js
Normal file
@@ -0,0 +1,62 @@
|
||||
// 业务服务层:直接映射后端 REST 接口字段,不做多余转换。
|
||||
const { request } = require('../utils/request');
|
||||
|
||||
// 将参数对象序列化为 query string(跳过空值)
|
||||
function buildQuery(params) {
|
||||
const qs = Object.keys(params || {})
|
||||
.filter(k => params[k] !== '' && params[k] !== undefined && params[k] !== null)
|
||||
.map(k => encodeURIComponent(k) + '=' + encodeURIComponent(params[k]))
|
||||
.join('&');
|
||||
return qs ? '?' + qs : '';
|
||||
}
|
||||
|
||||
// 1) 动作列表(支持多维筛选与排序)
|
||||
function listExercises(params = {}) {
|
||||
return request({ url: '/api/exercises' + buildQuery(params) });
|
||||
}
|
||||
|
||||
// 2) 动作详情
|
||||
function getExercise(id) {
|
||||
return request({ url: '/api/exercises/' + encodeURIComponent(id) });
|
||||
}
|
||||
|
||||
// 3) 分类维度枚举
|
||||
function getCategories(type) {
|
||||
return request({ url: '/api/categories/' + encodeURIComponent(type) });
|
||||
}
|
||||
|
||||
// 4) 智能推荐
|
||||
function recommend(params = {}) {
|
||||
return request({ url: '/api/recommend' + buildQuery(params) });
|
||||
}
|
||||
|
||||
// 5) 训练组合列表
|
||||
function listCollections() {
|
||||
return request({ url: '/api/collections' });
|
||||
}
|
||||
|
||||
// 5) 训练组合下的动作
|
||||
function getCollectionExercises(slug, params = {}) {
|
||||
return request({ url: '/api/collections/' + encodeURIComponent(slug) + '/exercises' + buildQuery(params) });
|
||||
}
|
||||
|
||||
// 6) 搜索
|
||||
function search(q) {
|
||||
return request({ url: '/api/search?q=' + encodeURIComponent(q) });
|
||||
}
|
||||
|
||||
// 7) 统计概览
|
||||
function getStats() {
|
||||
return request({ url: '/api/stats' });
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
listExercises,
|
||||
getExercise,
|
||||
getCategories,
|
||||
recommend,
|
||||
listCollections,
|
||||
getCollectionExercises,
|
||||
search,
|
||||
getStats
|
||||
};
|
||||
Reference in New Issue
Block a user