实体类有字段名重复

实体类有字段名重复
公共字段处理
mybatisplus中@TableField用法
fill属性:自动填充
取值:
DEFAULT:默认值 不自动填充
INSERT:新增的时候填充 CreateTime CreateUser
UPDATE: 修改的时候填充
INSERT_UPDATE:新增和修改的时候填充 UpdateTime UpdateUser

package com.itheima.reggie.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@Data
public class Category implements Serializable {

private Long id;//主键
private Integer type;//类型 1 菜品分类 2 套餐分类
private String name;//分类名称
private Integer sort; //顺序
@TableField (fill = FieldFill.INSERT)
private Date createTime;//创建时间
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;//更新时间
@TableField(fill = FieldFill.INSERT)
private Long createUser;//创建用户
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long updateUser;//更新用户

}

mapper里重建一个config
package com.itheima.reggie.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

//自定义数据对象处理器
@Component
@Slf4j
public class MyMetaObjectHandler implements MetaObjectHandler {
//插入操作,自动填充
@Override
public void insertFill(MetaObject metaObject) {
metaObject.setValue(“createTime”, new Date());
metaObject.setValue(“updateTime”, new Date());
metaObject.setValue(“createUser”, 1L);
metaObject.setValue(“updateUser”, 1L);
}

//更新操作,自动填充
@Override
public void updateFill(MetaObject metaObject) {
    metaObject.setValue("updateTime", new Date());
    metaObject.setValue("updateUser", 1L);
}

}

用户信息共享:创建工具类

utils

package com.itheima.reggie.common;

import com.itheima.reggie.domain.Employee;

public class ThreadLocalUtils {
//定义一个线程容器
private static ThreadLocal threadLocal=new ThreadLocal<>();
//存
public static void set(Employee employee){
threadLocal.set(employee);
}
//取
public static Employee get(){
return threadLocal.get();
}

//删
public static void remove(){
    threadLocal.remove();
    
}

}

package com.itheima.reggie.interceptor;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.itheima.reggie.common.Constant;
import com.itheima.reggie.common.ResultInfo;
import com.itheima.reggie.common.ThreadLocalUtils;
import com.itheima.reggie.domain.Employee;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@Component
public class LoginCheckInterceptor implements HandlerInterceptor {
//登录拦截

//在controller方法执行前拦截
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

    //获取登录用户
    HttpSession session = request.getSession();
    Employee employee = (Employee) session.getAttribute(Constant.SESSION_EMPLOYEE);
    //没有
    if (employee == null) {
        //手动封装提示信息
        ResultInfo resultInfo = ResultInfo.error("NOTLOGIN");
        //手动转json
        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(resultInfo);
        //通过response
        response.setContentType("applicat/json;charset=utf-8");
        response.getWriter().write(json);
        return false;
    }
    //有
    //1.将当前对象放入线程容器中
    ThreadLocalUtils.set(employee);

//2.放行
return true;
}

//方法执行后拦截
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

}

//整个结束之后拦截
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

}

}

package com.itheima.reggie.mapper.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.itheima.reggie.common.ThreadLocalUtils;
import com.itheima.reggie.domain.Employee;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

//自定义数据对象处理器
@Component
@Slf4j
public class MyMetaObjectHandler implements MetaObjectHandler {
//插入操作,自动填充
@Override
public void insertFill(MetaObject metaObject) {
Employee employee = ThreadLocalUtils.get();
metaObject.setValue(“createTime”, new Date());
metaObject.setValue(“updateTime”, new Date());
metaObject.setValue(“createUser”, employee.getId());
metaObject.setValue(“updateUser”,employee.getId());
}

//更新操作,自动填充
@Override
public void updateFill(MetaObject metaObject) {
    Employee employee = ThreadLocalUtils.get();
    metaObject.setValue("updateTime", new Date());
    metaObject.setValue("updateUser", employee.getId());
}

}

package com.itheima.reggie.interceptor;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.itheima.reggie.common.Constant;
import com.itheima.reggie.common.ResultInfo;
import com.itheima.reggie.common.ThreadLocalUtils;
import com.itheima.reggie.domain.Employee;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@Component
public class LoginCheckInterceptor implements HandlerInterceptor {
//登录拦截

//在controller方法执行前拦截
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

    //获取登录用户
    HttpSession session = request.getSession();
    Employee employee = (Employee) session.getAttribute(Constant.SESSION_EMPLOYEE);
    //没有
    if (employee == null) {
        //手动封装提示信息
        ResultInfo resultInfo = ResultInfo.error("NOTLOGIN");
        //手动转json
        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(resultInfo);
        //通过response
        response.setContentType("applicat/json;charset=utf-8");
        response.getWriter().write(json);
        return false;
    }
    //有
    //1.将当前对象放入线程容器中
    ThreadLocalUtils.set(employee);

//2.放行
return true;
}

//方法执行后拦截
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

}

//整个结束之后拦截 删除
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    *ThreadLocalUtils.remove();
}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值