健身房私教管理系统(四)教练账号审核

目录

  • [1 扩展表结构](#1 扩展表结构)
  • [2 搭建后台管理功能](#2 搭建后台管理功能)
    • [2.1 创建页面](#2.1 创建页面)
    • [2.2 搭建布局](#2.2 搭建布局)
    • [2.3 搭建审核方法](#2.3 搭建审核方法)
  • 最终效果
  • 总结

上一篇我们讲解了教练在小程序的账号注册,教练注册之后并不是直接可以使用系统,需要等待管理员进行审核。本篇讲解一下审核功能的搭建。

1 扩展表结构

目前我们的教练表只有基础的字段,需要添加审核字段,我们添加一个审核的状态字段,枚举值包括待审核、审核通过和审核不通过。

2 搭建后台管理功能

2.1 创建页面

点击创建页面的图标,添加教练审核页面

切换到布局设计,添加对应的菜单

2.2 搭建布局

回到页面设计,添加布局组件

修改布局的标题,改为教练审核

添加数据表格,数据模型选择教练扩展表

在操作列上添加两个按钮,将按钮的名称改为通过和不通过

2.3 搭建审核方法

在用户点击按钮的时候,我们要更新教练扩展表的状态为对应的审核状态,同时根据审核状态来设置用户主表的状态是启用还是禁用

在代码区点击新建,创建一个javascript方法

粘贴如下代码到编辑器里

bash 复制代码
/**
 * 教练审核方法
 * 更新教练扩展表的审核状态,同时设置用户表的状态为1
 */

export default async function({ event, data }) {
  try {
    // 从data.target获取传入参数
    const target = data.target || {};
    const userId = target.userId;           // 关联用户ID
    const trainerId = target.trainerId;     // 教练ID(教练扩展表的数据标识)
    const auditStatus = target.auditStatus; // 审核状态

    // 参数校验
    if (!userId) {
      $w.utils.showToast({
        title: '用户ID不能为空',
        icon: 'error'
      });
      return;
    }

    if (!trainerId) {
      $w.utils.showToast({
        title: '教练ID不能为空',
        icon: 'error'
      });
      return;
    }

    if (!auditStatus) {
      $w.utils.showToast({
        title: '审核状态不能为空',
        icon: 'error'
      });
      return;
    }

    // 显示加载中
    await $w.utils.showLoading({ title: '审核中...' });

    // 1. 更新教练扩展表的审核状态
    const trainerResult = await $w.cloud.callDataSource({
      dataSourceName: 'fit_trainer_profiles',
      methodName: 'wedaUpdateV2',
      params: {
        data: {
          aduit_status: auditStatus  // 更新审核状态
        },
        filter: {
          where: { _id: { $eq: trainerId } }
        }
      }
    });

    // 2. 根据审核状态确定用户状态
    // 审核状态为2时,用户状态为1;审核状态为3时,用户状态为2
    const userStatus = auditStatus === '2' ? '1' : (auditStatus === '3' ? '2' : '');

    // 更新用户表的状态
    const userResult = await $w.cloud.callDataSource({
      dataSourceName: 'fit_users',
      methodName: 'wedaUpdateV2',
      params: {
        data: {
          status: userStatus  // 根据审核状态设置用户状态
        },
        filter: {
          where: { _id: { $eq: userId } }
        }
      }
    });

    // 隐藏加载
    $w.utils.hideLoading();

    // 判断更新结果
    if (trainerResult.count > 0 && userResult.count > 0) {
      $w.utils.showToast({
        title: '审核成功',
        icon: 'success'
      });

      return {
        success: true,
        message: '审核成功',
        data: {
          trainerUpdateCount: trainerResult.count,
          userUpdateCount: userResult.count
        }
      };
    } else {
      $w.utils.showToast({
        title: '审核失败,未找到对应记录',
        icon: 'error'
      });

      return {
        success: false,
        message: '审核失败,未找到对应记录',
        data: {
          trainerUpdateCount: trainerResult.count,
          userUpdateCount: userResult.count
        }
      };
    }

  } catch (error) {
    console.error('审核失败:', error);
    $w.utils.hideLoading();

    $w.utils.showToast({
      title: '审核失败,请重试',
      icon: 'error'
    });

    return {
      success: false,
      message: error.message || '审核失败',
      data: null
    };
  }
}

然后给按钮配置点击事件,通过的时候调用方法,传入入参

入参要传入方法需要的对象结构,传入三个参数用户标识、教练标识和审核状态

bash 复制代码
({userId:$w.table1.cell__custom__option.record.user_id._id,trainerId:$w.table1.cell__custom__option.record._id,auditStatus:'2'})

调用完方法之后,要配置刷新表格,这样可以看到数据的更新情况。

审核不通过按钮配置相同,只是auditStatus的状态传入3

最终效果

管理员登录后台后,可以看到需要审核的教练信息,点击审核按钮既可以完成审核动作

总结

本篇我们介绍了教练账号后台开通的流程,从扩展数据表,到后台搭建页面布局,编写审核逻辑的方法。对于这种主表是用户表,业务表写入子表的场景,我们通常都会更新主子表来完成业务动作。

相关推荐
SL-staff1 天前
技术实践:HR如何用JVS-Logic可视化编排实现考勤数据同步(含节点配置与异常处理)
开发语言·python·低代码·钉钉·可视化编排·jvs-logic·hr技术
蜘蛛小助理1 天前
生鲜冷链批次效期与多仓调拨损耗管控|低代码搭建生鲜供应链台账
人工智能·低代码·ai·erp·多维表格·蜘蛛表格·生鲜
梦梦代码精1 天前
基于UniApp+Vue3+ThinkPHP 8,这套知识付费系统的架构设计有点东西
java·低代码·docker·uni-app·开源·php
ebok.4 天前
国产大模型落地业务系统的优选载体:京微智枢信创 AI 业务支撑平台
大数据·人工智能·低代码·ai
杰夫(简道云个人搭建)5 天前
SAAS系统应该先解决业务问题,再优化体验
数据库·人工智能·低代码·excel·个人开发
Devlab6 天前
LVGL设计大师——网页版anyui来了!!
嵌入式硬件·物联网·低代码·ui·iot
jonyleek6 天前
JVS-Logic 实践指南:基于私有化与柔性配置的企业级逻辑引擎落地方法
人工智能·低代码·私有化部署·企业集成·逻辑引擎·流程编排·jvs
皮皮虾❀7 天前
典铭云赛低代码+AI智能体快速落地方法论:从“售前写方案、交付做开发各管一段”到“场景发现即交付、需求到上线一周”的完整技术方案
人工智能·低代码
jonyleek7 天前
JVS-Rules 实践指南:三步实现风控与营销规则的自主配置(附可操作闭环)
低代码·系统集成·决策系统·风控系统·合规审计·jvs-rules·jvs规则引擎
HUIBUR科技7 天前
先治数据,再做报表:企业数字化时代的数据治理前置逻辑与轻量化落地路径
低代码