第二天项目

news/2025/12/3 19:56:22/文章来源:https://www.cnblogs.com/ljhtwo/p/19303795

苍穹外卖项目 - 第2天冲刺日志

日期:2025-11-27
冲刺周期:第2天/共7天
参与人员:李靖华 温尚熙 谢斯越 郑哲磊

二、会议内容记录

郑哲磊(后端负责人)

昨天已完成的工作

  • ✅ [WI-001] 搭建Spring Boot项目基础架构
  • ✅ [WI-002] 配置MySQL数据库连接
  • ✅ [WI-003] 配置Redis缓存
  • ✅ [WI-004] 完成员工登录接口开发

今天计划完成的工作

  • [WI-017] 完成员工管理CRUD接口
  • [WI-018] 实现JWT token认证机制
  • [WI-019] 完成菜品分类管理接口
  • [WI-020] 编写接口文档(Swagger)

工作中遇到的困难

  • JWT token刷新机制设计需要与前端协商
  • Redis连接池配置需要优化

谢斯越(前端负责人)

昨天已完成的工作

  • ✅ [WI-005] 搭建管理端前端项目框架
  • ✅ [WI-006] 完成登录页面UI设计
  • ✅ [WI-007] 实现登录功能前端逻辑
  • ✅ [WI-008] 配置axios请求拦截器

今天计划完成的工作

  • [WI-021] 完成主页布局和导航菜单
  • [WI-022] 实现员工管理页面
  • [WI-023] 完成分类管理页面
  • [WI-024] 实现token自动刷新机制

工作中遇到的困难

  • Element Plus表格组件的分页功能需要深入学习
  • 路由权限控制逻辑较复杂

温尚熙(小程序开发)

昨天已完成的工作

  • ✅ [WI-009] 初始化微信小程序项目
  • ✅ [WI-010] 设计小程序首页布局
  • ✅ [WI-011] 完成菜品分类展示页面
  • ✅ [WI-012] 配置小程序网络请求

今天计划完成的工作

  • [WI-025] 实现菜品列表页面
  • [WI-026] 完成菜品详情页面
  • [WI-027] 实现购物车功能
  • [WI-028] 完成用户授权登录

工作中遇到的困难

  • 微信授权登录需要后端配合,等待接口开发
  • 购物车数据持久化方案需要确定

李靖华(测试与文档)

昨天已完成的工作

  • ✅ [WI-013] 编写项目需求文档
  • ✅ [WI-014] 设计数据库表结构
  • ✅ [WI-015] 编写接口测试用例
  • ✅ [WI-016] 搭建测试环境

今天计划完成的工作

  • [WI-029] 执行登录接口测试
  • [WI-030] 编写员工管理测试用例
  • [WI-031] 更新API文档
  • [WI-032] 进行代码质量检查

工作中遇到的困难

  • 部分接口返回格式不统一,需要规范化
  • 测试数据准备工作量较大

三、燃尽图

剩余工作量(小时)
120 |●|  \
100 |    ●|      \\80 |          \|            \60 |              \|                \40 |                  \|                    \20 |                      \|                        ●0 |__________________________1   2   3   4   5   6   7  (天数)图例:
● —— 实际进度(实线)
- - - 理想进度(虚线)

四、代码/文档签入记录

郑哲磊 - 员工管理与JWT认证模块

  • 模块名称:sky-server 员工管理模块
  • 提交内容
    • 完成员工增删改查接口
    • 实现JWT token生成和验证
    • 添加全局异常处理器

代码示例

// EmployeeController.java - 员工管理控制器
@RestController
@RequestMapping("/admin/employee")
@Slf4j
public class EmployeeController {@Autowiredprivate EmployeeService employeeService;@PostMapping("/login")public Result<EmployeeLoginVO> login(@RequestBody EmployeeLoginDTO dto) {Employee employee = employeeService.login(dto);// 生成JWT tokenMap<String, Object> claims = new HashMap<>();claims.put("empId", employee.getId());String token = JwtUtil.createJWT(jwtProperties.getSecretKey(), jwtProperties.getTtl(), claims);EmployeeLoginVO vo = EmployeeLoginVO.builder().id(employee.getId()).userName(employee.getUsername()).name(employee.getName()).token(token).build();return Result.success(vo);}@PostMappingpublic Result save(@RequestBody EmployeeDTO dto) {employeeService.save(dto);return Result.success();}
}
// JwtUtil.java - JWT工具类
public class JwtUtil {public static String createJWT(String secretKey, long ttlMillis, Map<String, Object> claims) {SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;long expMillis = System.currentTimeMillis() + ttlMillis;Date exp = new Date(expMillis);JwtBuilder builder = Jwts.builder().setClaims(claims).signWith(signatureAlgorithm, secretKey.getBytes(StandardCharsets.UTF_8)).setExpiration(exp);return builder.compact();}
}

谢斯越 - 管理端员工管理页面模块

  • 模块名称:sky-admin 员工管理页面
  • 提交内容
    • 完成主页布局和侧边栏导航
    • 实现员工管理页面CRUD功能
    • 添加表单验证和错误提示

代码示例

<!-- EmployeeList.vue - 员工列表页面 -->
<template><div class="employee-container"><el-button type="primary" @click="handleAdd">新增员工</el-button><el-table :data="employeeList" style="margin-top: 20px"><el-table-column prop="name" label="姓名" /><el-table-column prop="username" label="用户名" /><el-table-column prop="phone" label="手机号" /><el-table-column label="状态"><template #default="{ row }"><el-tag :type="row.status === 1 ? 'success' : 'danger'">{{ row.status === 1 ? '启用' : '禁用' }}</el-tag></template></el-table-column><el-table-column label="操作"><template #default="{ row }"><el-button size="small" @click="handleEdit(row)">编辑</el-button><el-button size="small" type="danger" @click="handleDelete(row.id)">删除</el-button></template></el-table-column></el-table><el-paginationv-model:current-page="page"v-model:page-size="pageSize":total="total"@current-change="getEmployeeList"/></div>
</template><script setup>
import { ref, onMounted } from 'vue'
import { getEmployeeListApi, deleteEmployeeApi } from '@/api/employee'
import { ElMessage } from 'element-plus'const employeeList = ref([])
const page = ref(1)
const pageSize = ref(10)
const total = ref(0)const getEmployeeList = async () => {const { data } = await getEmployeeListApi({ page: page.value, pageSize: pageSize.value })employeeList.value = data.recordstotal.value = data.total
}const handleDelete = async (id) => {await deleteEmployeeApi(id)ElMessage.success('删除成功')getEmployeeList()
}onMounted(() => {getEmployeeList()
})
</script>

温尚熙 - 小程序菜品展示模块

  • 模块名称:sky-user 菜品展示模块
  • 提交内容
    • 完成菜品列表页面
    • 实现分类切换功能
    • 添加菜品搜索功能

代码示例

// pages/index/index.js - 菜品列表页面
Page({data: {categoryList: [],dishList: [],currentCategory: 0,searchKey: ''},onLoad() {this.getCategoryList()this.getDishList()},// 获取分类列表getCategoryList() {wx.request({url: getApp().globalData.baseUrl + '/user/category/list',method: 'GET',success: (res) => {this.setData({categoryList: res.data.data})}})},// 获取菜品列表getDishList() {wx.request({url: getApp().globalData.baseUrl + '/user/dish/list',method: 'GET',data: {categoryId: this.data.currentCategory,name: this.data.searchKey},success: (res) => {this.setData({dishList: res.data.data})}})},// 切换分类onCategoryChange(e) {this.setData({currentCategory: e.currentTarget.dataset.id})this.getDishList()},// 搜索菜品onSearch(e) {this.setData({searchKey: e.detail.value})this.getDishList()}
})
<!-- pages/index/index.wxml - 菜品列表页面结构 -->
<view class="container"><!-- 搜索框 --><view class="search-box"><input placeholder="搜索菜品" bindinput="onSearch" /></view><!-- 分类列表 --><scroll-view class="category-list" scroll-x><view wx:for="{{categoryList}}" wx:key="id" class="category-item {{currentCategory === item.id ? 'active' : ''}}"data-id="{{item.id}}"bindtap="onCategoryChange">{{item.name}}</view></scroll-view><!-- 菜品列表 --><view class="dish-list"><view wx:for="{{dishList}}" wx:key="id" class="dish-item"><image src="{{item.image}}" class="dish-image" /><view class="dish-info"><text class="dish-name">{{item.name}}</text><text class="dish-price">¥{{item.price}}</text></view></view></view>
</view>

李靖华 - 接口测试与文档模块

  • 模块名称:测试用例与API文档
  • 提交内容
    • 完成登录接口测试用例
    • 编写员工管理接口测试脚本
    • 更新API文档v2.0

测试用例示例

// employee.test.js - 员工管理接口测试
const request = require('supertest');
const app = require('../app');describe('员工管理接口测试', () => {let token = '';// 测试登录接口test('POST /admin/employee/login - 登录成功', async () => {const response = await request(app).post('/admin/employee/login').send({username: 'admin',password: '123456'});expect(response.status).toBe(200);expect(response.body.code).toBe(1);expect(response.body.data).toHaveProperty('token');token = response.body.data.token;});// 测试获取员工列表test('GET /admin/employee/page - 获取员工列表', async () => {const response = await request(app).get('/admin/employee/page').set('token', token).query({ page: 1, pageSize: 10 });expect(response.status).toBe(200);expect(response.body.code).toBe(1);expect(response.body.data).toHaveProperty('records');});// 测试新增员工test('POST /admin/employee - 新增员工', async () => {const response = await request(app).post('/admin/employee').set('token', token).send({name: '测试员工',username: 'test001',phone: '13800138000',sex: '1',idNumber: '110101199001011234'});expect(response.status).toBe(200);expect(response.body.code).toBe(1);});
});

API文档示例

## 员工管理接口### 1. 员工登录
- 接口路径:POST /admin/employee/login
- 请求参数:```json{"username": "admin","password": "123456"}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/985966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

惊呆了!这个小脚本竟然同时搞定计算、进制转换和BMI计算

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

一些md5绕过总结(长期补充)

一些md5相关的track总结(长期) ffifdyop——绕过中一个奇妙的字符串 ffifdyop经过md5加密后为:276f722736c95d99e921722cf9ed621c 再转换为字符串:or’6<乱码> 即 or’66�]��!r,��b 用途: select * fro…

2025年西南五大诚信的加拿大移民企业推荐,看哪家售后服务优

在全球化浪潮下,移民加拿大成为许多家庭寻求更好发展的重要选择。然而,面对移民市场的复杂性与政策变动,选择一家诚信可靠、售后完善的加拿大移民专业公司至关重要。以下依据不同服务特色,为你推荐2025年西南地区十…

C语言随堂笔记-1

C语言随堂笔记-1。对应课程是:BV1Vm4y1r7jY 中的1-6分集。对应课程是:BV1Vm4y1r7jY 中的1-6分集。 1)IDE。这里我选择的是Windows中的Visual Studio 2026。 .h文件为头文件。 .c文件为源文件。2)在VS中创建新的C文件…

第3篇Scrum冲刺博客

第3篇Scrum冲刺博客这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/homework/13…

Pytorch基础学习和实战,基于b站小土堆视频笔记 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年中国仿石砖十大龙头厂家推荐:看哪家产品质量好?

本榜单依托行业权威标准与真实项目口碑,从生产规模、技术实力、服务体系、客户反馈四大维度筛选标杆企业,为地产、园林、幕墙等领域客户精准匹配适配供应商,助力工程品质与效率双提升。 TOP1 推荐:福建省铭盛陶瓷…

炫彩活体检测:金融科技的“生命感知”安全锁

在数字金融时代,身份认证是守护资金安全的第一道闸门。从远程开户到移动支付,每一次交易背后都是一场对“你是谁”的无声质询。然而,传统的静态密码、短信验证乃至普通的人脸识别,在日益精密的伪造攻击——如高清照…

深入解析:苹果企业签名流程

深入解析:苹果企业签名流程2025-12-03 19:36 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important;…

Scrum 冲刺博客_1

Scrum 冲刺博客_1 各个成员在 Alpha 阶段认领的任务:姓名 角色 状态张秉瀚 PM+后端 ✅沈武钊 后端 ✅陈嘉煌 前端 ✅郑东楷 测试+安全 ✅邱宇彦 数据 ✅陈俊源 全栈 ✅崔乐浩 DevOps ✅明日各个成员的任务安排姓名 明…

Scrum 冲刺博客_2

Scrum 冲刺博客_2 站立式会议照片:昨天已完成工作:团队全员参与 Alpha 阶段需求最终评审,针对功能性需求,拆解出细分任务,明确每个任务的责任人与验收标准。 梳理出支付、二维码生成、退款等核心模块的初步接口清…

实用指南:Qt-VLC: 一个集成VLC的开源跨平台媒体播放库

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Scrum3 冲刺博客

一、站立式会议照片二、昨日已完成工作任务ID 完成情况 实际工时WBS-4.1 Semantic UI集成完成,基础模板搭建 5hWBS-4.2 商品列表页面布局和样式实现 6hT-4 商品列表后端接口完成 4hT-10 分页逻辑优化完成 4hT-12 商品…

团队作业四——项目冲刺

这个作业属于哪个课程 班级链接这个作业要求在哪里 作业要求这个作业的目标 <完成所有剩余任务,确保系统整体可用>github链接:https://github.com/wodu-dreamy/online-exam-system 博客集合日期 博客链接day1 …

excel选中整列,设置单元格自动换行,为什么粘贴内容后还不换行,单独设置该单元格自动换行就可以,为什么整列设置没效果

excel选中整列,设置单元格自动换行,为什么粘贴内容后还不换行,单独设置该单元格自动换行就可以,为什么整列设置没效果excel选中整列,设置单元格自动换行,为什么粘贴内容后还不换行,单独设置该单元格自动换行就可…

Scrum1 冲刺博客

一、站立式会议照片二、团队分工说明 徐铭阳(后端):核心业务接口开发 袁梓轩(后端):数据库设计与优化 唐雷(前端):前端技术预研与基础结构规划 黄龙宇(前端):协助前端框架选型 于子豪(QA):制定测试策略…

实用指南:GitHub 全方位指南(续):实战进阶与生态拓展​

实用指南:GitHub 全方位指南(续):实战进阶与生态拓展​pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

Scrum2 冲刺博客

一、站立式会议照片二、昨日已完成工作任务ID 完成情况 实际工时T-0 环境搭建完成,所有成员可正常运行项目 4hWBS-6.1 Git仓库初始化完成,分支策略建立 2hWBS-2.3 商品表结构设计完成,migration文件生成 5hT-2 商品…

Day6 Scrum 冲刺日志

Day6 Scrum 冲刺日志 站会照片工作内容成员 昨日完成 今日计划 困难郭靖扬 用户注销接口与安全日志记录完成 开始管理员模块接口设计(用户管理与笔记管理) 管理员模块涉及高权限操作,接口安全性需严格把控王耀廷 删…

Day3 Scrum 冲刺日志

Day3 Scrum 冲刺日志 站会照片工作内容成员 昨日完成 今日计划 困难郭靖扬 Flask 项目初始化完成,用户接口路由骨架就绪 开始实现用户注册与登录接口 接口与数据库字段需完全对齐,部分验证逻辑复杂王耀廷 SQLite 数据…