springboot springDataJpa vo查询,查询几天前,案例

本文介绍了一个用于展示订单列表的服务实现细节,包括从数据库查询订单信息、转换数据为VO对象及计算时间差显示。该服务使用Java编程,涉及订单状态映射、时间格式化等关键技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

service

public List<OrderShowVO> selectShowList() {
        List<Object> list = orderDao.findShowList();
        List<OrderShowVO> result = Lists.newArrayList();
        Map<Object, String> map = Maps.newHashMap();
        map.put(1, "交易交付中");
        map.put(2, "交易已完成");
        for (int i = 0; i < list.size(); i++) {
            OrderShowVO vo = new OrderShowVO();
            Object[] obj = (Object[]) list.get(i);
            vo.setId(obj[0].toString());
            vo.setPrice("¥"+obj[1]);
            vo.setGoodtitle(obj[2].toString());
            vo.setContent(obj[3] == null ? "" : obj[3].toString());
            vo.setVisits(obj[4]+"人浏览");
            vo.setNickname(obj[5].toString());
            vo.setState(map.get(obj[6]));
            vo.setTime(timeCheckFun(((Date) obj[7]).getTime(), new Date().getTime()));
            result.add(vo);
        }
        return result;
    }
 private static String timeCheckFun(long startTime, long endTime) {
        long t = endTime - startTime;
        //获取天数时间差
        int days = (int) (t / (1000 * 60 * 60 * 24));
        //获取小时时间差
        int HH = (int) (t / (1000 * 60 * 60));
        //获取分钟时间差
        int mm = (int) (t / (1000 * 60));
        //获取秒时间差
        int ss = (int) (t / (1000));
        String beApart;
        if (days <= 1) {
            if (ss <= 60) {
                beApart = "刚刚";
            } else if (ss > 60 && ss <= 60 * 60) {
                beApart = mm + "分钟前";
            } else if (ss > 60 * 60 && ss <= 60 * 60 * 24) {
                beApart = HH + "小时前";
            } else {
                beApart = days + "天前";
            }
        } else if (days < 30 && days > 1) {
            beApart = days + "天前";
        } else if (days >= 30 && days < 365) {
            int days1 = days / 30;
            beApart = days1 + "月前";
        } else if (days >= 365) {
            int days2 = days / 365;
            beApart = days2 + "年前";
        } else {
            beApart = "历史很久远";
        }
        return beApart;
    }

DAO

    @Query(value = "SELECT g.id,o.price,o.goodtitle,g.content,(CASE WHEN g.visits IS NOT NULL THEN g.visits ELSE 0 END ) as visits,u.nickname,o.state,o.starttime,o.finishtime FROM trans_order o LEFT JOIN trans_goods g ON o.gooid = g.goodsimid LEFT JOIN trans_user u ON o.buyerid = u.idcode WHERE (o.state=1 OR o.state=2) ORDER BY o.starttime DESC",nativeQuery = true)
    List<Object> findShowList();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值