mybatisplus返回map日期转字符串 timestamp转string

用切面实现

package com.yang.storage.aspect;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.time.DateFormatUtils;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

import java.sql.Timestamp;
import java.util.List;
import java.util.Locale;
import java.util.Map;


@Component
@Slf4j
@Aspect
public class MybatisPlusAspect {
    @Pointcut("execution(* com.yang.storage.mapper.*.select*Map*(..))")
    public void convertDatePointCut() {

    }

    /**
     * 转换map日期
     */
    @Around("convertDatePointCut()")
    public Object convertDate(ProceedingJoinPoint joinPoint) throws Throwable {
        Object result = joinPoint.proceed();
        if (result instanceof List){
            List<Map<String,Object>> mapList = (List<Map<String, Object>>) result;
            for (Map<String, Object> map : mapList) {
                this.convertMapDate(map);
            }
        }else if (result instanceof Map){
            Map<String,Object> map = (Map<String, Object>) result;
            this.convertMapDate(map);
        }else if (result instanceof Page){
            Page<Map<String,Object>> page = (Page<Map<String, Object>>) result;
            List<Map<String, Object>> mapList = page.getRecords();
            for (Map<String, Object> map : mapList) {
                this.convertMapDate(map);
            }
        }
        return result;
    }

    //转换timestamp为字符串
    //考虑到遍历来判断字段是否为timestamp类型可能费性能,所以根据业务需要对字段转换,哟需要可以自己遍历判断
    private void convertMapDate(Map<String,Object> map){
        Timestamp createTime = (Timestamp) map.get("createTime");
        Timestamp updateTime = (Timestamp) map.get("updateTime");
        Timestamp uploadTime = (Timestamp) map.get("uploadTime");
        if (createTime!=null){
            String createTimeStr = format(createTime);
            map.put("createTime",createTimeStr);
        }
        if (updateTime!=null){
            String updateTimeStr = format(updateTime);
            map.put("updateTime",updateTimeStr);
        }
        if (uploadTime!=null){
            String uploadTimeStr = format(uploadTime);
            map.put("uploadTime",uploadTimeStr);
        }
    }

    private String format(Timestamp timestamp){
        String timeStr = DateFormatUtils.format(timestamp, "yyyy-MM-dd HH:mm:ss", Locale.CHINESE);
        return timeStr;
    }
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值