代码写的都队——Alpha冲刺Day1

代码写的都队 团队 2023-11-08 23:49:35
这个作业属于哪个课程2301-计算机学院-软件工程
这个作业要求在哪里团队作业——站立式会议+alpha冲刺
这个作业的目标Alpha冲刺Day1随笔
团队名称代码写的都队
团队项目闲置宝
团队随笔置顶集合代码写的都队——Alpha 冲刺随笔置顶

目录

  • 会议照片
  • 成员每日工作总结
  • 102101526易华章
  • 102101505宋玲钰
  • 102101508林嘉欣
  • 102101520陈一城
  • 052101432蔡鹏宇
  • 052101402王昊阳
  • 102101534 翁锐晨
  • 102101519何万钦
  • 102101502龙安媛
  • 102101609王小亮
  • 项目燃尽图

会议照片

img

成员每日工作总结

102101526易华章

  1. 昨天站立式会议到现在的进展

    完成项目仓库、框架的搭建,安排项目进度和分配任务

  2. 存在的问题/遇到的困难

    暂无

  3. 今天到明天会议的安排

    Push组员完成工作任务

  4. 心得体会

​ 第一次带团队编程,感觉还是有很多东西要学的,希望之后能带大家又快又好地做完这个项目。

102101505宋玲钰

  1. 昨天站立式会议到现在的进展(附代码图/页面图):

    完成搜索页:



img



  1. 存在的问题/遇到的困难

​ 首次使用uni-app有些许不熟练,花了较长时间熟悉使用组件,历史记录的布局也较难调整。

  1. 今天到明天会议的安排

​ 完善搜索页,开始做商品分布页面。

  1. 心得体会

​ 体验使用了uni-app里的搜索栏组件和ui组件,参考了uni-app模板,使用起来较便捷。

102101508林嘉欣

  1. 昨天站立式会议到现在的进展

​ 完成了注册界面的设计

img



  1. 存在的问题/遇到的困难

​ 第一次使用uni-app还不是很熟练,配置各种组件花了一定时间,样式调整了比较久。

  1. 今天到明天会议的安排

​ 完善注册界面,把Element UI组件换成Uni UI组件,开始做商品详情界面,进一步学习相关知识。

  1. 心得体会

​ 使用Element UI组件很便利,效率提高很多。

102101520陈一城

  1. 昨天站立式会议到现在的进展(附代码图/页面图)

完成了7张基本表(用户表Users、商品信息表Goods、交易表Trades、评价记录表Evaluations、消息表Messages、收藏Favorites、搜索历史Historys)的建立和插入新元组时的对数据合法性的检查

CREATE TABLE Users (
  User_ID INT NOT NULL AUTO_INCREMENT,
  User_Name VARCHAR(10) NOT NULL UNIQUE,
  User_Key VARCHAR(18) NOT NULL,
  FZU_Key CHAR(9) DEFAULT NULL UNIQUE,
  Head_Portrait VARCHAR(255),
  Delivery_Address VARCHAR(255),
  PRIMARY KEY (User_ID)
);

-- 创建BEFORE INSERT触发器
DELIMITER //
CREATE TRIGGER Users_insert_trigger
BEFORE INSERT ON Users
FOR EACH ROW
BEGIN
  DECLARE Users_In_Table INT;

  -- 检查表中是否已有元组
  SELECT COUNT(*) INTO Users_In_Table FROM Users;
  
  -- 如果表为空,将User_ID设为100000001
  IF Users_In_Table = 0 THEN
    SET NEW.User_ID = 100000001;
  END IF;
  
  -- 检查User_Name长度是否符合要求
  IF LENGTH(NEW.User_Name) < 2 OR LENGTH(NEW.User_Name) > 10 THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'User_Name长度不符合要求';
  END IF;
  
  -- 检查User_Name是否已存在
  IF EXISTS (SELECT 1 FROM Users WHERE User_Name = NEW.User_Name) THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'User_Name已存在';
  END IF;
  
  -- 检查User_Key长度是否符合要求
  IF LENGTH(NEW.User_Key) < 6 OR LENGTH(NEW.User_Key) > 18 THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'User_Key长度不符合要求';
  END IF;
  
  -- 检查FZU_Key是否为9个数字字符
  IF LENGTH(NEW.FZU_Key) <> 9 OR NEW.FZU_Key REGEXP '[^0-9]' THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'FZU_Key格式不正确';
  END IF;
  
  -- 检查FZU_Key是否已存在
  IF EXISTS (SELECT 1 FROM Users WHERE FZU_Key = NEW.FZU_Key) THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'FZU_Key已存在';
  END IF;
END//
DELIMITER ;
CREATE TABLE Goods (
  Goods_ID INT NOT NULL AUTO_INCREMENT,
  Goods_Name VARCHAR(20) NOT NULL,
  Seller_ID INT NOT NULL,
  Goods_Price DECIMAL(10, 2) NOT NULL,
  Goods_Description VARCHAR(100) NOT NULL,
  Classification ENUM('文娱用品', '学习用品', '生活用品', '交通工具', '奇奇怪怪') NOT NULL,
  Release_Time DATETIME,
  Goods_Pictures VARCHAR(255),
  PRIMARY KEY (Goods_ID),
  FOREIGN KEY (Seller_ID) REFERENCES Users(User_ID)
);

-- 创建BEFORE INSERT触发器
DELIMITER //
CREATE TRIGGER Goods_insert_trigger
BEFORE INSERT ON Goods
FOR EACH ROW
BEGIN
  DECLARE Goods_In_Table INT;

  -- 检查表中是否已有商品
  SELECT COUNT(*) INTO Goods_In_Table FROM Goods;
  
  -- 如果表为空,将Goods_ID设为1000000001
  IF Goods_In_Table = 0 THEN
    SET NEW.Goods_ID = 1000000001;
  END IF;
  
  -- 检查Goods_Name长度是否符合要求
  IF LENGTH(NEW.Goods_Name) < 2 OR LENGTH(NEW.Goods_Name) > 20 THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Goods_Name长度不符合要求';
  END IF;
  
  -- 检查Seller_ID是否在Users中存在
  IF NOT EXISTS (SELECT 1 FROM Users WHERE User_ID = NEW.Seller_ID) THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Seller_ID在Users中不存在';
  END IF;
  
  -- 检查Goods_Price是否为数字且非负数
  IF NEW.Goods_Price < 0 OR NEW.Goods_Price IS NULL THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Goods_Price必须为非负数';
  END IF;
  
  -- 检查Goods_Description长度是否符合要求
  IF LENGTH(NEW.Goods_Description) < 2 OR LENGTH(NEW.Goods_Description) > 100 THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Goods_Description长度不符合要求';
  END IF;
  
  -- 检查Classification是否符合要求
  IF NEW.Classification NOT IN ('文娱用品', '学习用品', '生活用品', '交通工具', '奇奇怪怪') THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Classification不符合要求';
  END IF;
  
  -- 设置Release_Time为当前时间
  SET NEW.Release_Time = NOW();
END//
DELIMITER ;
-- 创建交易记录表
CREATE TABLE Trades (
  Trade_ID INT NOT NULL AUTO_INCREMENT,
  Buyer_ID INT NOT NULL,
  Seller_ID INT NOT NULL,
  Trade_Time DATETIME NOT NULL,
  Paid_Amount DECIMAL(10, 2) NOT NULL,
  PRIMARY KEY (Trade_ID),
  FOREIGN KEY (Buyer_ID) REFERENCES Users (User_ID),
  FOREIGN KEY (Seller_ID) REFERENCES Users (User_ID)
);

-- 创建BEFORE INSERT触发器
DELIMITER //
CREATE TRIGGER Trades_insert_trigger
BEFORE INSERT ON Trades
FOR EACH ROW
BEGIN
  DECLARE 交易数 INT;
  
  -- 检查表中是否已有交易记录
  SELECT COUNT(*) INTO 交易数 FROM Trades;
  
  -- 如果表为空,将Trade_ID设为1000000001
  IF 交易数 = 0 THEN
    SET NEW.Trade_ID = 1000000001;
  END IF;
  
  -- 检查买家ID和卖家ID是否存在以及是否相同
  IF NOT EXISTS (SELECT 1 FROM Users WHERE User_ID = NEW.Buyer_ID) THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '买家ID在Users中不存在';
  END IF;
  
  IF NOT EXISTS (SELECT 1 FROM Users WHERE User_ID = NEW.Seller_ID) THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '卖家ID在Users中不存在';
  END IF;
  
  IF NEW.Buyer_ID = NEW.Seller_ID THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '买家ID和卖家ID不能相同';
  END IF;
  
  -- 检查Paid_Amount是否为数字且非负数
  IF NEW.Paid_Amount < 0 OR NEW.Paid_Amount IS NULL THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Paid_Amount必须为非负数';
  END IF;
  
  -- 设置交易时间为当前时间
  SET NEW.Trade_Time = NOW();
END//
DELIMITER ;
-- 创建评价记录表
CREATE TABLE Evaluations (
  Trade_ID INT NOT NULL,
  Buyer_Evaluation VARCHAR(200),
  Seller_Evaluation VARCHAR(200),
  PRIMARY KEY (Trade_ID),
  FOREIGN KEY (Trade_ID) REFERENCES Trades (Trade_ID)
);
-- 创建消息记录表
CREATE TABLE Messages (
  Message_ID INT NOT NULL AUTO_INCREMENT,
  Sender_ID INT NOT NULL,
  Receiver_ID INT NOT NULL,
  Message_Content VARCHAR(200) NOT NULL,
  Time DATETIME NOT NULL,
  Read BOOLEAN DEFAULT FALSE,
  PRIMARY KEY (Message_ID),
  FOREIGN KEY (Sender_ID) REFERENCES Users (User_ID),
  FOREIGN KEY (Receiver_ID) REFERENCES Users (User_ID)
);

-- 创建BEFORE INSERT触发器
DELIMITER //
CREATE TRIGGER Messages_insert_trigger
BEFORE INSERT ON Messages
FOR EACH ROW
BEGIN
  DECLARE 消息数 INT;
  
  -- 检查表中是否已有消息记录
  SELECT COUNT(*) INTO 消息数 FROM Messages;
  
  -- 如果表为空,将Message_ID设为1000000001
  IF 消息数 = 0 THEN
    SET NEW.Message_ID = 1000000001;
  END IF;
  
  -- 检查Sender_ID是否存在于Users中
  IF NOT EXISTS (SELECT 1 FROM Users WHERE User_ID = NEW.Sender_ID) THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Sender_ID在Users中不存在';
  END IF;
  
  -- 检查Receiver_ID是否存在于Users中
  IF NOT EXISTS (SELECT 1 FROM Users WHERE User_ID = NEW.Receiver_ID) THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Receiver_ID在Users中不存在';
  END IF;
  
  -- 检查Message_Content是否超过200个字符
  IF LENGTH(NEW.Message_Content) > 200 THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Message_Content超过200个字符';
  END IF;
  
  -- 设置发送时间为当前时间
  SET NEW.Time = NOW();
END//
DELIMITER ;
-- 创建收藏信息表
CREATE TABLE Favorites (
  Favorite_ID INT NOT NULL AUTO_INCREMENT,
  User_ID INT NOT NULL,
  Good_ID INT NOT NULL,
  Insert_Time DATETIME NOT NULL,
  PRIMARY KEY (Favorite_ID),
  FOREIGN KEY (User_ID) REFERENCES Users (User_ID),
  FOREIGN KEY (Good_ID) REFERENCES Goods (Goods_ID)
);

-- 创建BEFORE INSERT触发器
DELIMITER //
CREATE TRIGGER Favorites_insert_trigger
BEFORE INSERT ON Favorites
FOR EACH ROW
BEGIN
  DECLARE Favorite_Amount INT;
  
  -- 检查表中是否已有收藏记录
  SELECT COUNT(*) INTO Favorite_Amount FROM Favorites;
  
  -- 如果表为空,将Favorite_ID设为1000000001
  IF Favorite_Amount = 0 THEN
    SET NEW.Favorite_ID = 1000000001;
  END IF;
  
  -- 检查User_ID是否存在于Users中
  IF NOT EXISTS (SELECT 1 FROM Users WHERE User_ID = NEW.User_ID) THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'User_ID在Users中不存在';
  END IF;
  
  -- 检查Good_ID是否存在于Goods中
  IF NOT EXISTS (SELECT 1 FROM Goods WHERE Goods_ID = NEW.Good_ID) THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Good_ID在Goods中不存在';
  END IF;
  
  -- 设置插入时间为当前时间
  SET NEW.Insert_Time = NOW();
END//
DELIMITER ;
-- 创建搜索记录表
CREATE TABLE Historys (
  Search_ID INT NOT NULL AUTO_INCREMENT,
  User_ID INT NOT NULL,
  Keyword VARCHAR(10) NOT NULL,
  PRIMARY KEY (Search_ID),
  FOREIGN KEY (User_ID) REFERENCES Users (User_ID)
);

-- 创建BEFORE INSERT触发器
DELIMITER //
CREATE TRIGGER Historys_insert_trigger
BEFORE INSERT ON Historys
FOR EACH ROW
BEGIN
  DECLARE Favorite_Amount INT;
  DECLARE User_Search_History INT;
  
  -- 检查表中是否已有收藏记录
  SELECT COUNT(*) INTO Favorite_Amount FROM Historys;
  
  -- 如果表为空,将Search_ID设为1000000001
  IF Favorite_Amount = 0 THEN
    SET NEW.Search_ID = 1000000001;
  END IF;
  
  -- 检查相同User_ID的记录数量
  SELECT COUNT(*) INTO User_Search_History FROM Historys WHERE User_ID = NEW.User_ID;
  
  -- 如果数量等于十条,删除Search_ID最小的一条记录
  IF User_Search_History = 10 THEN
    DELETE FROM Historys WHERE Search_ID = (SELECT MIN(Search_ID) FROM Historys WHERE User_ID = NEW.User_ID);
  END IF;
END//
DELIMITER ;
  1. 存在的问题/遇到的困难

对接口不是很熟悉,对表的具体结构设计不是很清晰(比如:用户表的头像属性需要可以索引到图片,商品信息表的商品图片也需要索引到图片,目前没有图片表来规范的存储图片,而是在各个需要索引图片的属性中保存路径)

  1. 今天到明天会议的安排

实现常见需求的查询、实现向表中插入数据的接口。

  1. 心得体会

运用了学到的数据库知识,现在对数据库理解更加深刻。

052101432蔡鹏宇

  1. 昨天站立式会议到现在的进展(附代码图/页面图)

初步完成对用户的登录注册请求的参数校验和返回处理



img



  1. 存在的问题/遇到的困难

​ 对于spring框架以及java servelet框架的httpsession使用不熟练,需要在后面冲刺环节继续学习。

  1. 今天到明天的安排

​ 完善用户登录以及注册接口的实现

  1. 心得体会

​ 对后端接口开发的总体过程有了很大的了解,学习使用springboot的过程中发现了其的自动配置功能,可以根据项目中的依赖自动配置相应的组件,大大减少了手动配置的工作量。

052101402王昊阳

  1. 昨天站立式会议到现在的进展(附代码图/页面图)

​ 实现ueser类(完成登录和注册逻辑)



img



两个逻辑函数分别如下



img





img



  1. 存在的问题/遇到的困难

​ 对于某些逻辑的设想思考不全面,很多情况无法全部包含。

  1. 今天到明天的安排

​ 完善逻辑,减少使用bug

  1. 心得体会

    对于逻辑的设计学习到了很多,将dao层的指令封装后可以供contorller层使用。

102101534 翁锐晨

  1. 昨天站立式会议到现在的进展

​ 今天学习了postman执行接口测试的基本页面,了解了请求页面中params,authorization,body等所显示的意思,也了解了一些post,raw等请求传参的形式,以及相应界面body接口传回来的数据信息,以及了解了post请求创建标签接口和get请求获取接口统一鉴权码和token接口。与此同时也了解了post传参和get传参的本质区别:Get请求是在地址后面以?的形式传参,多个参数之间用&分开;Post请求是在body以表单的方式传参。在这之后,还学习了一些用Json提取器以及正则表达式提取器实现手动关联的接口连接。

  1. 存在的问题/遇到的困难:可能对真正实现接口的时候可能实现有些困难,不容易进行接口的连接。

  2. 今天到明天的安排

    明天继续学习有关知识

  3. 心得体会:对postman一些接口的测试有了更加深刻的理解与认识,以前完全不知道所谓的接口测试应当如何去实现,现在应该能够处理一下简单的接口测试,同时借此机会也对接口的概念有了进一步的认识与理解。

102101519何万钦

  1. 昨天站立式会议到现在的进展

    在查看文档时,没有发现什么需要进行测试的接口,于是在网上寻找了资料进行学习。大概了解了一下ssm和mvc等知识,大概了解一下接口方面的有关信息,方便以后测试接口。在接口测试方面,学习了postman的测试方法,例如post、get等测试方法。

  2. 存在的问题/遇到的困难

    目前感觉学到的东西都比较浅薄,也没有进行上手实践,不太确定后续真正进行测试操作时能否正常地、成功地进行操作。

  3. 今天到明天的安排

    在今天到明天的这段时间里,我打算继续更加深入地学习一下postman等测试工具和测试方法,同时查看其他成员的接口,在更新出有关内容时,需要进行测试时,及时尝试使用学习的方法进行测试,确保功能能够正常运行。

  4. 心得体会

    个人感觉测试也不是非常简单的工作,需要大概读懂有关接口的内容,并且设计测试用例,考虑边界问题等等,并且熟练运用测试工具进行测试分析,对于不正确的地方要能够分析问题出现在什么地方。目前个人也没有对测试工具和方法非常熟悉,希望在后续的操作中能更加熟悉、掌握测试工具,不出现比较严重的失误,成功完成测试的任务。

102101502龙安媛

  1. 在B站学习了vue2.0的课程,了解了在uniapp上如何利用组件进行开发的过程

  2. 基础不太行,边学还得边复习前端的内容,效率不太行

  3. 今天到明天会议的安排是尽快把vue部分知识过一遍,然后着手负责的开发内容

  4. 用vue比原生HTML+CSS+java写前端更方便快捷

102101609王小亮

  1. 学习Vue.js基础知识,将HTML文件转换为Vue.js

并开始着手项目首页的制作

img



项目燃尽图

img

...全文
63 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

158

社区成员

发帖
与我相关
我的任务
社区描述
FZU-CS-SE
软件工程 高校
社区管理员
  • LinQF39
  • Jcandc
  • chjinhuu
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧