电商系统 常用代码 MyBatis-Plus
字段为空校验
@NotNull
@Min(1)
修改某字段为null
/**
* 收款编号
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
@ApiModelProperty(value = "收款编号")
判断是否存在 / 判断名称是否重复
原版
LambdaQueryWrapper<Dict> lqw = Wrappers.<Dict>query().lambda().eq(Dict::getCode, dict.getCode()).eq(Dict::getDictKey, dict.getDictKey());
Integer cnt = baseMapper.selectCount((Func.isEmpty(dict.getId())) ? lqw : lqw.notIn(Dict::getId, dict.getId()));
if (cnt > 0) {
throw new ApiException("当前字典键值已存在!");
}
修改版
LambdaQueryChainWrapper<Brand> query = new LambdaQueryChainWrapper<>(baseMapper)
.eq(Brand::getName, entity.getName());
query = (Objects.isNull(entity.getId()) || (entity.getId() <= 0))
? query
: query.notIn(Brand::getId, entity.getId());
if (query.count() > 0) {
throw new ServiceException("名称重复!");
}
通过ids查询数据
List<Material> materials = listByIds(ids);
查询object
Optional<Brand> brand = new LambdaQueryChainWrapper<>(baseMapper)
.eq(Brand::getName, brandName)
.oneOpt();
查询list
List<ProductAttributeValue> entities = new LambdaQueryChainWrapper<>(baseMapper)
.eq(ProductAttributeValue::getProductId, 1)
.list();
获取最大排序
private int getMaxSort(){
List<Store> stores = new LambdaQueryChainWrapper<>(baseMapper)
.orderByDesc(Store::getSort)
.list();
if (stores.size() <= 0) {
return 1;
}
return stores.get(0).getSort() + 1;
}