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

实习日报(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 配置项

五、待办事项

  • 继续完善银行经理端其他功能
  • 测试线下领取功能在真机环境的表现
相关推荐
AI人工智能+电脑小能手8 分钟前
大白话说Java设计模式-38-迭代器模式(业务实战篇)
java·设计模式·迭代器模式·stream·遍历封装·集合通用·分页遍历
QQ_216962909612 分钟前
【源码编号:project86570】SpringBoot电影院在线选座售票系统:电影排片、在线选座、订单购票、后台管理完整实战
java·spring boot·后端
谢亮_vipxieliang32 分钟前
手机号验证技术方案:号段规则与正则表达式
java·服务器·spring boot·正则表达式·hibernate
wang090744 分钟前
自己动手写一个tomcat之7监听器和过滤器
java·tomcat
梅孔立44 分钟前
Pi-Agent 终极极简配置文档(Java+Vue+Python爬虫 4-5千文件项目)
java·vue.js·python
Query*1 小时前
Agent 开发之项目 AI Native 化:通过大模型与 RAG 赋予产品智能能力
java·人工智能·ai
孫治AllenSun1 小时前
【LangChain4J-03】Springboot 项目搭建框架
java·spring boot·后端
君顾11 小时前
AI新零售线上商城系统实战:架构设计与开发全流程指南
java·开发语言·零售
qq_485015211 小时前
MyBatis-Plus 3.x FieldStrategy 作用
java·数据库·mybatis
lhldsg1 小时前
课程排课系统实战指南:从数据库设计到算法调优全流程解析
java·数据库·算法·小程序