1、配置yml文件
mybatis-plus:
global-config:
db-config:
logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
2、 实体类字段上加上@TableLogic
注解
插入时填充字段看这
![](https://i-blog.csdnimg.cn/blog_migrate/afbb76bfb9322731b0e62cf82bbe8ce3.png)
/**
* 地址簿
*/
@Data
public class AddressBook implements Serializable {
private static final long serialVersionUID=1l;
private Long id;
//用户id
private Long userId;
//收货人
private String consignee;
//性别 0 女 1 男
private Integer sex;
//手机号
private String phone;
//省级区划编号
private String provinceCode;
//省级名称
private String provinceName;
//市级区划编号
private String cityCode;
//市级名称
private String cityName;
//区级区划编号
private String districtCode;
//区级名称
private String districtName;
//详细地址
private String detail;
//标签
private String label;
//默认 0 否 1 是
private Integer isDefault;
//将时间转换为自己要的时间格式向前端发送(具体还是json数据不变)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(fill = FieldFill.INSERT) //插入时填充字段
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(fill = FieldFill.INSERT_UPDATE) //插入和更新时填充字段
private Date updateTime;
@TableField(fill = FieldFill.INSERT) //插入时填充字段
private Long createUser;
@TableField(fill = FieldFill.INSERT_UPDATE) //插入和更新时填充字段
private Long updateUser;
//逻辑删除(0 未删除、1 删除)
@TableLogic(value = "0", delval = "1")
@TableField(fill = FieldFill.INSERT) //插入时填充字段
private Integer isDeleted;
}
3、写逻辑删除代码(写在controller类中)
/**
* 删除地址
* @param ids
* @return
*/
@DeleteMapping
public R<String> delete(Long ids){
LambdaQueryWrapper<AddressBook> eq = Wrappers.lambdaQuery(AddressBook.class)
.eq(AddressBook::getUserId, BaseContext.getCurrentId())
.eq(AddressBook::getId,ids);
addressBookService.remove(eq);
return R.success("删除成功");
}