根据日期分组查询数组列表

根据日期分组查询数组列表

service

Map<String,List<UmsBrowse>> getMemberBrowse();

Impl

 @Override
    public Map<String, List<UmsBrowse>> getMemberBrowse() {
        //获取登录用户信息
        MemberInfo memberInfo = MemberHolder.getMember();
        //创建一个Map集合存放不同时间的浏览记录
        Map<String,List<UmsBrowse>> memberResult = new LinkedHashMap<>();
        //获取当前用户浏览记录
        List<UmsBrowse> umsBrowses = baseMapper.getUmsBrowses(memberInfo.getUserId());
        //循环遍历用户浏览记录,根据不同的日期放到一起
        for (UmsBrowse umsBrows : umsBrowses) {
            String createTime = umsBrows.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
            if(memberResult.containsKey(createTime)) {
                //如果存在这个Key则取出里面的List集合
                List<UmsBrowse> umsBrowseList = memberResult.get(umsBrows.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
                //把当前商品浏览记录放入到当前集合中
                umsBrowseList.add(umsBrows);
            } else {
                //如果不存在这个key则直接创建一个集合
                List<UmsBrowse> umsBrowseList = new ArrayList<>();
                //把当前浏览商品信息放入集合中
                umsBrowseList.add(umsBrows);
                //将当前商品的创建时间作为key,商品浏览信息为value,放入到集合中
                memberResult.put(createTime, umsBrowseList);
            }
        }
        return memberResult;
    }

mapper.java

 /**
     * app - 获取当前用户的浏览足迹
     * @param membersId
     * @return
     */
    List<UmsBrowse> getUmsBrowses(@Param("memberId") Long membersId);

xml

 <select id="getUmsBrowses" resultType="com.lino.entity.UmsBrowse">
        select
        DATE_FORMAT(ubs.create_time,'%Y-%m-%d') as create_time,
        ubs.id,
        ubs.product_id as productId,
        ppt.product_name as productName,
        ppt.cover as productCover,
        ppt.lowest_price as productLowestPrice,
        ppt.subtitle as productSubtitle,
        ppt.label as productLabel,
        ppt.brand as productBrand,
        ppt.sale as productSale
        from ums_browse ubs
        LEFT JOIN pms_product ppt on ubs.product_id = ppt.id
        where ppt.deleted = 0
        and ppt.`status` = 0
        and ubs.member_id = #{memberId}
        and DATE_SUB(CURDATE(),INTERVAL 7 DAY) &lt;= date(ubs.create_time)
        GROUP BY ubs.product_id,date(ubs.create_time) ORDER BY ubs.create_time desc
    </select>```



```java

controller

@ApiOperation(value = "获取当前会员足迹列表", notes = "获取用户足迹列表")

    @GetMapping("/app/ums/browse/getMemberBrowse")
    public Result<Map<String,List<UmsBrowse>>> getMemberBrowse() {
        return ResultUtil.success(service.getMemberBrowse());
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值