提交 cff0ddaa 作者: 余乾开

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

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