熬夜会秃头——alpha冲刺Day5

这个作业属于哪个课程2301-计算机学院-软件工程社区-CSDN社区云
这个作业要求在哪里团队作业——站立式会议+alpha冲刺-CSDN社区
这个作业的目标记录alpha冲刺Day5
团队名称熬夜会秃头
团队置顶集合随笔链接Alpha 冲刺随笔置顶(熬夜会秃头团队)-CSDN博客

目录

一、团队成员站立式会议总结

二、今日成果展示

三、站立式会议照片

四、当日项目燃尽图


一、团队成员站立式会议总结

组员昨天站立式会议到现在的进展:存在的问题/遇到的困难:今天到明天会议的安排:心得体会:
陈少桐

完成了查看备份文件的子窗体、优化了读写全写的判断逻辑以及新建文件的页面重新设计跟编写

无法用uniapp的原生导航栏产生子窗体,配置了自定义的tabbar发现跳转的时候偶尔会出现闪烁并且渲染的速度不及原生导航栏。解决:重新设计ui并编写页面跟跳转事件

跟后端沟通完成登录界面

原生的组件还是会比自定义的来的好用,有时候可能需要转换思路制作。死盯着一点点不放反而会拖慢进度让自己感觉折磨

梁菲汎

实现了前端到后端的表单通信

实现前端到后端表单通信过程中出现了较难解决的bug

完善前后端交互功能

bug总是贯穿编程始终!不过好歹搓出来了。明天继续!

陈知菲

实现了删除桶、为桶配置权限的功能

Springcloud集成Oauth2.0无法注销access_token登出

解决:尚未解决

接口文档编写,注册、查看用户信息等基本功能实现

了解了在mapper.xml文件中传入List的情况下,对List中元素进行处理的语法

李恒欣

对后端的代码进行查看修缮

Springcloud的代码难度较大,需要不断地同学沟通以及搜索资料完善后端代码功能对各种注解有了更深刻的理解,使用起来更加得心应手,虽然参与的部分相对较少,但写完相应代码,看到可以运行后也是很开心的
邱思源对已完成的后端代码进行单元测试对新实现的后端代码进行单元测试今天的单元测试进行地更加高效了,实现得也更好,整体上和之前相比有了很大进步
宋芳鑫学习前端页面跳转相关知识第一次接触前端跳转,学习起来较慢完善前端交互功能初步掌握前端页面跳转相关知识,仍需进一步进行实践巩固
张一凡对已经开发的前端代码进行单元测试对部分的前端功能实现不够清楚,和前端开发同学交流时间成本较大对新实现的前端代码进行单元测试对代码有正确的理解对于高效地进行单元测试有很大的帮助
林承桢进行已完成模块的功能测试,将完成的测试结果写入测试文档审查和整合前后端单元测试工作量大继续进行功能测试,完善测试文档今天单元测试的工作量较大,但完成整合后看到测试文档已经一点点饱满全面起来,还是很有成就感的
黄才栋学习巩固前端vue的跨域相关知识vue的知识体量多,对部分的前端后端交接方法不够清楚完善前端功能对vue的跨域相关知识有了更好的理解和掌握,可以更好的完成后续前后端交互工作
谢怀广核对已完成代码规范并制作项目燃尽图对已完成任务与后续待完成任务量估量出现了一定偏差,已进行及时调整并绘制相应燃尽图核对新增代码规范并制作项目燃尽图要对整体项目的功能实现和项目进展有更深的理解,才能更好地绘制出符合当前进度的项目燃尽图

二、今日成果展示

为桶添加权限接口:

@PostMapping("/put_acl")
public ResponseResult putAcl(@RequestHeader Integer aclType,
                             @RequestHeader Integer bucketId,
                             @RequestParam(required = false) Integer acl,
                             @RequestParam(required = false) List<String> grantRead,
                             @RequestParam(required = false) List<String> grantWrite) {
    return bucketService.putAcl(aclType, bucketId, acl, grantRead, grantWrite);
}

Service(两种权限模式,一为公共读、公共写、私有;二为创建者专门指定拥有读写权限的用户):

public ResponseResult putAcl(Integer aclType, Integer bucketId, Integer acl, List<String> grantRead, List<String> grantWrite) {
    if (aclType == 1) {
        bucketMapper.putAcl(bucketId, acl);
    } else {
        try {
            bucketMapper.putAcl(bucketId, 4);
            bucketMapper.deleteAdvancedAcl(bucketId,
                    UserContextHolder.getContext().getProperty("id").toString());
            bucketMapper.putGrantRead(bucketId, grantRead);
            bucketMapper.putGrantWrite(bucketId, grantWrite);
        } catch (Exception e) {
            return new ResponseResult(500, "有用户不存在,修改权限失败");
        }
    }
    return new ResponseResult(200, "修改权限");
}

mapper.xml

<insert id="putGrantRead" parameterType="java.util.List">
    INSERT INTO user_bucket (user_id, bucket_id, permission)
    VALUES(
    <foreach collection="grantRead" item="item" separator=",">
        (SELECT id
        FROM user
        WHERE user_email = #{item}),
    </foreach>
    #{bucketId},0)
</insert>

<insert id="putGrantWrite" parameterType="java.util.List">
    INSERT INTO user_bucket (user_id, bucket_id, permission)
    VALUES(
    <foreach collection="grantWrite" item="item" separator=",">
        (SELECT id
        FROM user
        WHERE user_email = #{item}),
    </foreach>
    #{bucketId},1)
</insert>

删除桶接口

@PostMapping("/delete_bucket")
public ResponseResult deleteBucket(@RequestParam String bucketId,
                                   @RequestParam(defaultValue = "0") Integer isInternal) {
    return bucketService.deleteBucket(bucketId, isInternal);
}

Service(删除本地、其他节点的桶以及桶中的所有对象)

public ResponseResult deleteBucket(String bucketId, int isInternal) {
    //是否创建者
    if (bucketMapper.isCreator(bucketId,
            UserContextHolder.getContext().getProperty("id").toString()) == 0) {
        return new ResponseResult(500, "没有权限");
    } else if (isInternal == 0) {
        bucketMapper.deleteAdvancedAcl(Integer.parseInt(bucketId), null);
        servicesUtil.getInstance("node01-service").forEach(instance -> {
            try {
                String uri = "http://" + instance.getHost() + ":" + instance.getPort();
                testFeign.deleteBucket(new URI(uri), bucketId, 1);
            } catch (URISyntaxException e) {
                throw new RuntimeException(e);
            }
        });
        //删去bucket下的所有文件
        FileUtil.deleteDirectory(baseUrl + bucketId);
        bucketMapper.deleteBucket(bucketId);
        return new ResponseResult(200, "删除桶");
    }
    return null;
}

mapper

<delete id="deleteBucket">
    DELETE
    FROM bucket
    WHERE id = #{bucketId}
</delete>

递归删除文件夹下所有文件

public static void deleteDirectory(String uri) {
    try {
        Path path = Paths.get(uri);
        if (Files.isDirectory(path)) {
            Files.walkFileTree(path, new SimpleFileVisitor<Path>() {
                        // 先去遍历删除文件
                        @Override
                        public FileVisitResult visitFile(Path file,
                                                         BasicFileAttributes attrs) throws IOException {
                            Files.delete(file);
                            return FileVisitResult.CONTINUE;
                        }
                    }
            );
            Files.delete(path);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

三、站立式会议照片

四、当日项目燃尽图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值