电商系统 常用代码 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;
}			
posted @ 2020-12-30 09:08  古兴越  阅读(367)  评论(0编辑  收藏  举报