瑞吉外卖(9) - 公共字段自动填充功能开发

272 篇文章 4 订阅
32 篇文章 3 订阅

问题分析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u7xIJbP2-1654092509176)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601174714555.png)]

代码实现

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TSeY5sqb-1654092509177)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601175658682.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TqzqmNqn-1654092509178)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601175924504.png)]

@TableField

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IqhPr12P-1654092509179)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601180108584.png)]

fieldFill方法是枚举

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2o9w4YHa-1654092509180)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601180208378.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cKmHJjPi-1654092509180)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601180324101.png)]

编写MyMetaObjectHandler.java

package com.taotao.reggie.common;

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

/**
 * create by 刘鸿涛
 * 2022/6/1 18:05
 */
@SuppressWarnings({"all"})
@Component  //让Spring框架来管理
@Slf4j
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("公共字段自动填充[insert]");
        log.info(metaObject.toString());
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("公共字段自动填充[update]");
        log.info(metaObject.toString());
    }
}

debug测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9rhH0KtX-1654092509181)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601181123322.png)]

注释EmployeeController.java相关数据

注释,使用公共字段自动填充

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M5hPrVXu-1654092509181)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601181946109.png)]

debug测试

未被赋值的都默认为null

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Q2Se8uV-1654092509182)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601205308855.png)]

我们在insertFll()中进行自动填充

修改Employee.java

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tXIGN64F-1654092509182)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601212637055.png)]

完善EmployeeController.java新增方法save()

    /**
     * 插入操作, 自动填充
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("公共字段自动填充[insert]");
        log.info(metaObject.toString());
        metaObject.setValue("createTime", LocalDateTime.now());
        metaObject.setValue("updateTime", LocalDateTime.now());
        metaObject.setValue("createUser",new Long(1));
        metaObject.setValue("updateUser",new Long(1));
    }

测试成功

新增员工测试成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MhMW3s5V-1654092509182)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601212759737.png)]

注释EmployeeController.java中update()填充字段

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qfFC9296-1654092509183)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601213003864.png)]

完善MyMetaObjectHandler.java中update()自动填充

/**
 * 更新操作,自动填充
 * @param metaObject
 */
@Override
public void updateFill(MetaObject metaObject) {
    log.info("公共字段自动填充[update]");
    log.info(metaObject.toString());
    metaObject.setValue("updateTime", LocalDateTime.now());
    metaObject.setValue("updateUser",new Long(1));
}

测试成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NGQr3Z4c-1654092509183)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601214129240.png)]

遇到问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ste0Kw55-1654092509184)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601214238906.png)]

功能完善

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R5vZuMjl-1654092509184)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601214346760.png)]

这些类都同属一一个线程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VoZyNVzz-1654092509184)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601214435873.png)]

ThreadLocal

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U7WkJVhu-1654092509185)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601215004474.png)]

实现步骤

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OYTAOe4x-1654092509186)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601215409608.png)]

编写BaseContext工具类

基于ThreadLocal封装的工具类

package com.taotao.reggie.common;

/**
 * create by 刘鸿涛
 * 2022/6/1 21:56
 * 基于ThreadLocal封装工具类,用户保存和获取当前登录用户id
 */
@SuppressWarnings({"all"})
public class BaseContext {
    private static ThreadLocal<Long> threadLocal = new ThreadLocal<>();

    public static void setCurrentId(Long id){
        threadLocal.set(id);
    }

    public static Long getCurrentId(){
        return threadLocal.get();
    }
}

修改LoginCheckFilter.java的doFilter方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a63rpScU-1654092509186)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601220201455.png)]

修改MyMetaObjectHandler.ava

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TfzZoOWK-1654092509187)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601220401218.png)]

测试成功

admin测试

新增员工

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GXloMavy-1654092509187)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601220631395.png)]

更新数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KUd5odx6-1654092509188)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601220531908.png)]

其他用户测试

更新数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bUcY5iMm-1654092509188)(%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96.assets/image-20220601220733872.png)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼鬼骑士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值