指导组--beta冲刺Day5

这个作业属于哪个课程软件工程A
这个作业要求在哪里团队作业—beta冲刺+事后诸葛亮
这个作业的目标记录beta冲刺Day5
团队名称指导组
团队置顶集合随笔链接指导组--beta冲刺随笔置顶
其他参考文献

一、SCRUM部分

成员描述

成员完成的任务花费的时间(min)剩余的时间(min)存在/遇到的问题从今天到明天会议的安排
072103402-卢成熙完成页面搜索(es)和文件上传(MinIO)6020es自我保护机制,MinIO接不上优化完成前后端的对接
102101117-刘建鑫导入数据库数据9010图片的展示依旧有问题具体展示图片
102101427-陈永裕完善管理员端与后端交互接口的设计12020遇到接口定义不统一的问题规范统一管理员端的接口实现
102101413-王润富完善管理员端的博客管理7020博客显示界面显示异常继续完成管理员端的博客管理界面设计
102101128-陈林旭完成管理员端前后端部分接口测试9010遇到数据传递错误的问题继续完成前后端的对接
102101133-纳世荣完善用户端博客界面的设计9012遇到功能设置不合理的问题继续完成博客界面的设计
291800137-赵鑫完善用户端前后端的接口9010遇到接口性能的问题继续完成前后端的接口设计
102101134-范智强优惠券界面设计,个人主页的设计优化9015优惠券二维码不够优美,个人主页展示出错利用组件库设计
102101137-林鹏评论区界面,搜索界面设计9012搜索框不正确,搜索界面展示出错重点先解决搜索框
031802441-张志敏完善用户端隐藏界面的设计1200遇到界面用户体验不佳的问题继续完成用户端隐藏界面的设计

代码部分

用户/商铺/博客 图片上传至MinIO,并返回图片路径

@PostMapping("blog")
    public Result uploadImage(@RequestParam("file") MultipartFile image) {
        try {
            String filePath = fileStorageService.uploadImgFile("", image.getOriginalFilename(), image.getInputStream());
            return Result.ok(filePath);
        } catch (IOException e) {
            throw new RuntimeException("文件上传失败", e);
        }
    }

相关MinIO测试

@Test
    public void testUpdateImgFile() {
        try {
            FileInputStream fileInputStream = new FileInputStream("E:\\pictures\\利率计算器.png");
            String filePath = fileStorageService.uploadImgFile("", "calculator.jpg", fileInputStream);
            System.out.println(filePath);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

搜索功能的实现(基于elasticSearch)

 @PostMapping({"keyword"})
    public Result searchByKeyword(@PathVariable("keyword") String keyword) throws IOException {

        BulkRequest bulkRequest = new BulkRequest("shop_info");

        // 构建查询条件,可以根据具体需求进行修改
        SimpleQueryStringBuilder queryStringBuilder = QueryBuilders.simpleQueryStringQuery(keyword)
                .field("name")
                .field("area")
                .field("address");

        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        searchSourceBuilder.query(queryStringBuilder);

        SearchRequest searchRequest = new SearchRequest("shop_info");
        searchRequest.source(searchSourceBuilder);

        // 执行查询
        SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);

        List<Shop> shopList = new ArrayList<>();
        for (SearchHit hit : searchResponse.getHits().getHits()) {
            Map<String, Object> sourceAsMap = hit.getSourceAsMap();

            Shop shop = new Shop();
            BeanUtil.fillBeanWithMap(sourceAsMap, shop, true);
            // 其他字段的设置,需要根据实际情况添加
            shopList.add(shop);
        }

        return Result.ok(shopList);
    }

将商铺数据导入索引库

 @Test
    public void testEs() throws IOException {
        List<Shop> shops = shopService.list();
        BulkRequest bulkRequest = new BulkRequest("shop_info");

        for(Shop shop : shops) {
            IndexRequest indexRequest = new IndexRequest().id(shop.getId().toString())
                    .source(JSONUtil.toJsonStr(shop), XContentType.JSON);

            //批量添加数据
            bulkRequest.add(indexRequest);

        }
        restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
    }

索引库的创建

{
  "mappings": {
    "properties": {
      "id": {
        "type": "long"
      },
      "name": {
        "type": "text",
        "analyzer":"ik_smart"
      },
      "typeId": {
        "type": "long"
      },
      "images": {
        "type": "text",
        "index": false
      },
      "area": {
        "type": "text",
        "analyzer":"ik_smart"
      },
      "address": {
        "type": "text"
      },
      "x": {
        "type": "double"
      },
      "y": {
        "type": "double"
      },
      "avgPrice": {
        "type": "long"
      },
      "sold": {
        "type": "integer"
      },
      "comments": {
        "type": "integer"
      },
      "score": {
        "type": "integer"
      },
      "openHours": {
        "type": "text"
      },
      "createTime": {
        "type": "date"
      },
      "updateTime": {
        "type": "date"
      },
      "distance": {
        "type": "double"
      }
    }
  }
}

会议照片

二、PM报告

项目燃尽图

项目运行情况

用户端主页内容,搜索框的设计


博客页面

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值