提交 cff0ddaa 作者: 余乾开

hotfix(删除品牌):补充删除品牌条件校验(无绑定型号)

上级 66ba65a9
......@@ -22,134 +22,146 @@ import java.util.stream.Collectors;
/**
* @Author LW
*
* @date 2023/3/14 13:27 概要:
*/
@Service
public class BrandManageServiceImpl implements BrandManageService {
@Autowired
private BrandManageDao brandManageDao;
@Resource
private ProductDao productDao;
@Autowired private BrandManageDao brandManageDao;
@Resource private ProductDao productDao;
/**
* 添加品牌信息
*
* @param brandName 品牌名称
* @return {@link ResultBody}
*/
@Override
public ResultBody addBrandInfo(String brandName) {
// 根据品牌名称判断是否存在
int count = brandManageDao.countBrandInfoByName(null, brandName);
if (count > 0) {
return ResultBody.error(ResultEnum.GOODS_CATEGORY_NAME_EXIST_ERROR);
}
BrandInfoDO brandInfoDO = new BrandInfoDO(brandName);
brandManageDao.insertBrandInfo(brandInfoDO);
return ResultBody.success();
/**
* 添加品牌信息
*
* @param brandName 品牌名称
* @return {@link ResultBody}
*/
@Override
public ResultBody addBrandInfo(String brandName) {
// 根据品牌名称判断是否存在
int count = brandManageDao.countBrandInfoByName(null, brandName);
if (count > 0) {
return ResultBody.error(ResultEnum.GOODS_CATEGORY_NAME_EXIST_ERROR);
}
BrandInfoDO brandInfoDO = new BrandInfoDO(brandName);
brandManageDao.insertBrandInfo(brandInfoDO);
return ResultBody.success();
}
/**
* 品牌列表信息
*
* @return {@link ResultBody}
*/
@Override
public PageResult listBrandInfo(Integer pageNo, Integer pageSize) {
int count = brandManageDao.countBrandInfo();
if (count == 0) {
return PageResult.buildPage(pageNo, pageSize, count);
}
int itemIndex = (pageNo - 1) * pageSize;
List<BrandInfoDO> brandInfo = brandManageDao.listBrandInfo(itemIndex, pageSize);
List<Integer> ids = brandInfo.stream().map(BrandInfoDO::getId).collect(Collectors.toList());
List<DeviceModeDO> deviceModeDOList = brandManageDao.listDeviceModeByBrandId(ids);
Map<Integer, List<DeviceModeDO>> map = deviceModeDOList.stream().collect(Collectors.groupingBy(DeviceModeDO::getBrandInfoId));
List<BrandInfoDTO> brandInfoList =
brandInfo.stream().map(BrandInfoDO::buildBrandInfoDTO).collect(Collectors.toList());
brandInfoList = brandInfoList.stream().peek(d -> {
List<DeviceModeDO> deviceModeList = map.get(d.getId());
if (CollectionUtils.isNotEmpty(deviceModeList)) {
d.setModeInfoList(deviceModeList.stream().map(DeviceModeDO::buildModeInfoVO).collect(Collectors.toList()));
}
}).collect(Collectors.toList());
return PageResult.buildPage(pageNo, pageSize, count, brandInfoList);
/**
* 品牌列表信息
*
* @return {@link ResultBody}
*/
@Override
public PageResult listBrandInfo(Integer pageNo, Integer pageSize) {
int count = brandManageDao.countBrandInfo();
if (count == 0) {
return PageResult.buildPage(pageNo, pageSize, count);
}
int itemIndex = (pageNo - 1) * pageSize;
List<BrandInfoDO> brandInfo = brandManageDao.listBrandInfo(itemIndex, pageSize);
List<Integer> ids = brandInfo.stream().map(BrandInfoDO::getId).collect(Collectors.toList());
List<DeviceModeDO> deviceModeDOList = brandManageDao.listDeviceModeByBrandId(ids);
Map<Integer, List<DeviceModeDO>> map =
deviceModeDOList.stream().collect(Collectors.groupingBy(DeviceModeDO::getBrandInfoId));
List<BrandInfoDTO> brandInfoList =
brandInfo.stream().map(BrandInfoDO::buildBrandInfoDTO).collect(Collectors.toList());
brandInfoList =
brandInfoList.stream()
.peek(
d -> {
List<DeviceModeDO> deviceModeList = map.get(d.getId());
if (CollectionUtils.isNotEmpty(deviceModeList)) {
d.setModeInfoList(
deviceModeList.stream()
.map(DeviceModeDO::buildModeInfoVO)
.collect(Collectors.toList()));
}
})
.collect(Collectors.toList());
return PageResult.buildPage(pageNo, pageSize, count, brandInfoList);
}
/**
* 删除品牌信息
*
* @param id id
* @return {@link ResultBody}
*/
@Override
public ResultBody deleteBrandInfo(Integer id) {
// 判断该品牌是否绑定产品信息
int count = productDao.countLeaseGoodsByBrandId(id);
if (count > 0) {
return ResultBody.error(ResultEnum.BRAND_DELETE_FAIL);
}
brandManageDao.removeBrandInfoById(id);
return ResultBody.success();
/**
* 删除品牌信息
*
* @param id id
* @return {@link ResultBody}
*/
@Override
public ResultBody deleteBrandInfo(Integer id) {
// 判断该品牌是否绑定产品信息
int count = productDao.countLeaseGoodsByBrandId(id);
// 是否绑定型号
ModeInfoQO qo = new ModeInfoQO();
qo.setBrandInfoId(id);
int deviceModeCount = brandManageDao.countModeInfo(qo);
if (count > 0 || deviceModeCount > 0) {
return ResultBody.error(ResultEnum.BRAND_DELETE_FAIL);
}
brandManageDao.removeBrandInfoById(id);
return ResultBody.success();
}
@Override
public ResultBody editBrandInfo(Integer id, String brandName) {
// 根据品牌名称判断是否存在
int count = brandManageDao.countBrandInfoByName(id, brandName);
if (count > 0) {
return ResultBody.error(ResultEnum.GOODS_CATEGORY_NAME_EXIST_ERROR);
}
BrandInfoDO brandInfoDO = new BrandInfoDO(brandName);
brandInfoDO.setId(id);
brandManageDao.updateBrandInfo(brandInfoDO);
return ResultBody.success();
@Override
public ResultBody editBrandInfo(Integer id, String brandName) {
// 根据品牌名称判断是否存在
int count = brandManageDao.countBrandInfoByName(id, brandName);
if (count > 0) {
return ResultBody.error(ResultEnum.GOODS_CATEGORY_NAME_EXIST_ERROR);
}
BrandInfoDO brandInfoDO = new BrandInfoDO(brandName);
brandInfoDO.setId(id);
brandManageDao.updateBrandInfo(brandInfoDO);
return ResultBody.success();
}
@Override
public ResultBody addMode(ModeInfoVO param) {
int count = brandManageDao.countModeInfoByName(param);
if (count > 0) {
return ResultBody.error(ResultEnum.GOODS_CATEGORY_NAME_EXIST_ERROR);
}
DeviceModeDO modeInfoDO = new DeviceModeDO(param);
brandManageDao.insertModeInfo(modeInfoDO);
return ResultBody.success();
@Override
public ResultBody addMode(ModeInfoVO param) {
int count = brandManageDao.countModeInfoByName(param);
if (count > 0) {
return ResultBody.error(ResultEnum.GOODS_CATEGORY_NAME_EXIST_ERROR);
}
DeviceModeDO modeInfoDO = new DeviceModeDO(param);
brandManageDao.insertModeInfo(modeInfoDO);
return ResultBody.success();
}
@Override
public PageResult modeList(ModeInfoQO param) {
int count = brandManageDao.countModeInfo(param);
if (count == 0) {
return PageResult.buildPage(param.getPageNo(), param.getPageSize(), count);
}
Integer pageNo = param.getPageNo();
param.buildCurrentPage();
List<DeviceModeDO> deviceModeDOList = brandManageDao.listDeviceMode(param);
List<ModeInfoVO> list = deviceModeDOList.stream().map(DeviceModeDO::buildModeInfoVO).collect(Collectors.toList());
return PageResult.buildPage(pageNo, param.getPageSize(), count, list);
@Override
public PageResult modeList(ModeInfoQO param) {
int count = brandManageDao.countModeInfo(param);
if (count == 0) {
return PageResult.buildPage(param.getPageNo(), param.getPageSize(), count);
}
Integer pageNo = param.getPageNo();
param.buildCurrentPage();
List<DeviceModeDO> deviceModeDOList = brandManageDao.listDeviceMode(param);
List<ModeInfoVO> list =
deviceModeDOList.stream().map(DeviceModeDO::buildModeInfoVO).collect(Collectors.toList());
return PageResult.buildPage(pageNo, param.getPageSize(), count, list);
}
@Override
public ResultBody editMode(ModeInfoVO param) {
int count = brandManageDao.countModeInfoByName(param);
if (count > 0) {
return ResultBody.error(ResultEnum.GOODS_CATEGORY_NAME_EXIST_ERROR);
}
DeviceModeDO modeInfoDO = new DeviceModeDO(param);
brandManageDao.updateModeInfo(modeInfoDO);
return ResultBody.success();
@Override
public ResultBody editMode(ModeInfoVO param) {
int count = brandManageDao.countModeInfoByName(param);
if (count > 0) {
return ResultBody.error(ResultEnum.GOODS_CATEGORY_NAME_EXIST_ERROR);
}
DeviceModeDO modeInfoDO = new DeviceModeDO(param);
brandManageDao.updateModeInfo(modeInfoDO);
return ResultBody.success();
}
@Override
public ResultBody deleteMode(Integer id) {
// 判断该品牌是否绑定产品信息
int count = brandManageDao.countLeaseGoodsByDeviceModeId(id);
if (count > 0) {
return ResultBody.error(ResultEnum.DEVICE_MODE_DELETE_FAIL);
}
brandManageDao.removeModeInfoById(id);
return ResultBody.success();
@Override
public ResultBody deleteMode(Integer id) {
// 判断该品牌是否绑定产品信息
int count = brandManageDao.countLeaseGoodsByDeviceModeId(id);
if (count > 0) {
return ResultBody.error(ResultEnum.DEVICE_MODE_DELETE_FAIL);
}
brandManageDao.removeModeInfoById(id);
return ResultBody.success();
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论