【实习 】银行经理端两个核心功能的开发与修复(银行经理绑定逻辑修复和线下领取扫码功能开发)

实习日报(2026年2月6日 - 2月7日)

一、工作内容概述

本次实习主要完成了银行经理端两个核心功能的开发与修复:

日期 工作内容 状态
2月6日 银行经理绑定逻辑修复 ✅ 完成
2月7日 线下领取扫码功能开发 ✅ 完成

二、银行经理绑定逻辑修复(2月6日)

问题描述

用户扫码绑定后再次扫同一活动的二维码,仍然需要重新填写信息绑定,而不是直接进入首页。

问题分析

原有逻辑只检查"该二维码记录是否被我绑定",没有检查"我是否已经是该活动的银行经理"。

解决思路

复制代码
扫码 → 解密获取 managerId → 查询活动ID
     ↓
检查用户是否已是该活动的银行经理(新增)
     ↓ 是
直接跳转首页
     ↓ 否
继续检查二维码是否被其他人绑定 → 显示绑定表单

代码修改

BankManager.java - getBindStatus 方法

java 复制代码
// 1. 先检查:当前用户是否已经是该活动的银行经理
ZenResult existingManager = zenEngine.execute("get/bank_manager_uid", 
    ZenData.create().put("activityId", activityId).put("uid", uid));
if (!existingManager.isEmpty()) {
    result.put("status", "existing");  // 直接跳转home
    return ZenResult.success().setData(result);
}

// 2. 再检查该二维码是否已被其他人绑定
String boundUid = managerRes.get("uid");
if (StringKit.isNotEmpty(boundUid)) {
    result.put("status", "fail");  // 已被其他人绑定
    return ZenResult.success().setData(result);
}

收获

  • 理解了低代码平台接口的配置方式(需要配置输出字段)
  • 学习了 Objects.equals() 进行空安全比较
  • 掌握了通过日志调试定位数据问题的方法

三、线下领取扫码功能开发(2月7日)

需求描述

当任务的 storeType === 1(线下领取)时,银行经理展示二维码给客户扫描领取奖励。

技术方案

层级 实现
后端 BankActivity.java 新增 makeLink 方法生成链接
前端 taskList.vue 添加"扫码领取"按钮和二维码弹窗
轮询 z-block 组件的 interval 属性实现自动刷新

后端实现

BankActivity.java - makeLink 方法

java 复制代码
public ZenResult makeLink(ZenData data) {
    String id = data.getId();
    String channel = data.get("channel");
    String title = data.get("title");
    
    // 生成链接
    String url = ConfigKit.get("frontDomain") + channel + "?id=" + id;
    
    // 附加标题参数
    if (StringKit.isNotEmpty(title)) {
        title = StringKit.encrypt(title);
        url += "&_tl_=" + title;
    }
    
    return ZenResult.success().setData(url);
}

前端实现

taskList.vue - 核心代码

java 复制代码
<van-cell v-if="data.storeType && data.storeType === 1">
  <z-action size="small" label="扫码领取">
    <template #default>
      <z-block 
        url="/api/bankActivity/makeLink" 
        :params="{ id: data.restrict.pageId, channel: 'wx', title: data.title }"
        :interval="100000"
      >
        <template #default="linkUrl">
          <z-qr v-if="linkUrl" :value="linkUrl" width="200px" height="200px" />
        </template>
      </z-block>
    </template>
  </z-action>
</van-cell>

遇到的问题与解决

问题 原因 解决方案
二维码显示 null... frontDomain 未配置 app.properties 添加配置
二维码不渲染 z-block 插槽格式错误 改为 #default="linkUrl"
第一次点击报错 使用 v-if + $refs.show() 改为内嵌组件,点击自动弹出

收获

  • 学习了 z-block 组件的轮询机制(interval 属性)
  • 理解了 Vue 插槽的不同写法(解构 vs 直接接收)
  • 掌握了参考其他项目代码复用实现的方法

四、技术总结

涉及的关键组件

组件 用途
z-action 弹窗/抽屉容器
z-block 数据获取 + 轮询
z-qr 二维码渲染
z-list 列表数据展示

调试技巧

  1. 后端调试 :使用 System.out.println() 打印关键变量
  2. 前端调试:Chrome DevTools Network 面板查看接口返回
  3. 配置问题 :检查 app.properties 配置项

五、待办事项

  • 继续完善银行经理端其他功能
  • 测试线下领取功能在真机环境的表现
相关推荐
逝水如流年轻往返染尘3 小时前
Java中的数组
java
java1234_小锋3 小时前
Java高频面试题:BIO、NIO、AIO有什么区别?
java·面试·nio
用户8307196840823 小时前
Java IO三大模型(BIO/NIO/AIO)超详细总结
java
sheji34163 小时前
【开题答辩全过程】以 基于SSM的花店销售管理系统为例,包含答辩的问题和答案
java
Mr_sun.4 小时前
Day09——入退管理-入住-2
android·java·开发语言
MAGICIAN...4 小时前
【java-软件设计原则】
java·开发语言
JH30734 小时前
为什么switch不支持long
java
星光不问赶路人4 小时前
vue3使用jsx语法详解
前端·vue.js
盐真卿4 小时前
python第八部分:高级特性(二)
java·开发语言