Update CategoryController.java

cyj
pbvfus8to 2 months ago
parent b2c499d142
commit 1789270f80

@ -25,10 +25,10 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
/** /**
* *
*
*
* @author lgh * @author lgh
* *
*/ */
@ -36,110 +36,154 @@ import java.util.Objects;
@RequestMapping("/prod/category") @RequestMapping("/prod/category")
public class CategoryController { public class CategoryController {
@Autowired // 注入CategoryService用于与商品分类相关的业务逻辑处理例如查询、保存、更新、删除分类等操作。
private CategoryService categoryService; @Autowired
private CategoryService categoryService;
/**
* /**
* @return * CategoryService
*/ * ID
@GetMapping("/table") * @PreAuthorize"prod:category:page"访
@PreAuthorize("@pms.hasPermission('prod:category:page')") *
public ServerResponseEntity<List<Category>> table(){ * @return ServerResponseEntity
List<Category> categoryMenuList = categoryService.tableCategory(SecurityUtils.getSysUser().getShopId()); */
return ServerResponseEntity.success(categoryMenuList); @GetMapping("/table")
} @PreAuthorize("@pms.hasPermission('prod:category:page')")
public ServerResponseEntity<List<Category>> table() {
/** // 调用CategoryService的tableCategory方法传入当前登录用户所属的店铺ID获取用于菜单页面展示的分类列表信息。
* List<Category> categoryMenuList = categoryService.tableCategory(SecurityUtils.getSysUser().getShopId());
*/ // 将获取到的分类列表信息封装在成功的响应实体中返回给前端。
@GetMapping("/info/{categoryId}") return ServerResponseEntity.success(categoryMenuList);
public ServerResponseEntity<Category> info(@PathVariable("categoryId") Long categoryId){ }
Category category = categoryService.getById(categoryId);
return ServerResponseEntity.success(category); /**
} * IDIDCategoryServicegetById
*
*
* @param categoryId
/** * @return ServerResponseEntity
* */
*/ @GetMapping("/info/{categoryId}")
@SysLog("保存分类") public ServerResponseEntity<Category> info(@PathVariable("categoryId") Long categoryId) {
@PostMapping Category category = categoryService.getById(categoryId);
@PreAuthorize("@pms.hasPermission('prod:category:save')") return ServerResponseEntity.success(category);
public ServerResponseEntity<Void> save(@RequestBody Category category){ }
category.setShopId(SecurityUtils.getSysUser().getShopId());
category.setRecTime(new Date()); /**
Category categoryName = categoryService.getOne(new LambdaQueryWrapper<Category>().eq(Category::getCategoryName,category.getCategoryName()) * Category
.eq(Category::getShopId,category.getShopId())); * IDID
if(Objects.nonNull(categoryName)){ * CategoryServicesaveCategory
throw new YamiShopBindException("类目名称已存在!"); * @PreAuthorize"prod:category:save"访
} * 使@SysLog便
categoryService.saveCategory(category); *
return ServerResponseEntity.success(); * @param category ID
} * @return ServerResponseEntityVoid
*/
/** @SysLog("保存分类")
* @PostMapping
*/ @PreAuthorize("@pms.hasPermission('prod:category:save')")
@SysLog("更新分类") public ServerResponseEntity<Void> save(@RequestBody Category category) {
@PutMapping category.setShopId(SecurityUtils.getSysUser().getShopId());
@PreAuthorize("@pms.hasPermission('prod:category:update')") category.setRecTime(new Date());
public ServerResponseEntity<String> update(@RequestBody Category category){ // 通过LambdaQueryWrapper构建查询条件查询在当前店铺下分类名称与要保存的分类名称相同的分类记录用于判断名称是否已存在。
category.setShopId(SecurityUtils.getSysUser().getShopId()); Category categoryName = categoryService.getOne(new LambdaQueryWrapper<Category>()
if (Objects.equals(category.getParentId(),category.getCategoryId())) { .eq(Category::getCategoryName, category.getCategoryName())
return ServerResponseEntity.showFailMsg("分类的上级不能是自己本身"); .eq(Category::getShopId, category.getShopId()));
} if (Objects.nonNull(categoryName)) {
Category categoryName = categoryService.getOne(new LambdaQueryWrapper<Category>().eq(Category::getCategoryName,category.getCategoryName()) throw new YamiShopBindException("类目名称已存在!");
.eq(Category::getShopId,category.getShopId()).ne(Category::getCategoryId,category.getCategoryId())); }
if(categoryName != null){ categoryService.saveCategory(category);
throw new YamiShopBindException("类目名称已存在!"); return ServerResponseEntity.success();
} }
Category categoryDb = categoryService.getById(category.getCategoryId());
// 如果从下线改成正常,则需要判断上级的状态 /**
if (Objects.equals(categoryDb.getStatus(),0) && Objects.equals(category.getStatus(),1) && !Objects.equals(category.getParentId(),0L)){ * Category
Category parentCategory = categoryService.getOne(new LambdaQueryWrapper<Category>().eq(Category::getCategoryId, category.getParentId())); * IDID
if(Objects.isNull(parentCategory) || Objects.equals(parentCategory.getStatus(),0)){ * 线
// 修改失败,上级分类不存在或者不为正常状态 * CategoryServiceupdateCategory
throw new YamiShopBindException("修改失败,上级分类不存在或者不为正常状态"); * @PreAuthorize"prod:category:update"访
} * 使@SysLog便
} *
categoryService.updateCategory(category); * @param category ID
return ServerResponseEntity.success(); * @return ServerResponseEntity
} */
@SysLog("更新分类")
/** @PutMapping
* @PreAuthorize("@pms.hasPermission('prod:category:update')")
*/ public ServerResponseEntity<String> update(@RequestBody Category category) {
@SysLog("删除分类") category.setShopId(SecurityUtils.getSysUser().getShopId());
@DeleteMapping("/{categoryId}") if (Objects.equals(category.getParentId(), category.getCategoryId())) {
@PreAuthorize("@pms.hasPermission('prod:category:delete')") return ServerResponseEntity.showFailMsg("分类的上级不能是自己本身");
public ServerResponseEntity<String> delete(@PathVariable("categoryId") Long categoryId){ }
if (categoryService.count(new LambdaQueryWrapper<Category>().eq(Category::getParentId,categoryId)) >0) { // 通过LambdaQueryWrapper构建查询条件查询在当前店铺下分类名称与要更新的分类名称相同且ID不同排除自身的分类记录用于判断名称是否已存在。
return ServerResponseEntity.showFailMsg("请删除子分类,再删除该分类"); Category categoryName = categoryService.getOne(new LambdaQueryWrapper<Category>()
} .eq(Category::getCategoryName, category.getCategoryName())
categoryService.deleteCategory(categoryId); .eq(Category::getShopId, category.getShopId())
return ServerResponseEntity.success(); .ne(Category::getCategoryId, category.getCategoryId()));
} if (categoryName!= null) {
throw new YamiShopBindException("类目名称已存在!");
/** }
* Category categoryDb = categoryService.getById(category.getCategoryId());
*/ // 如果从下线状态为0改成正常状态为1则需要判断上级的状态确保上级分类存在且为正常状态。
@GetMapping("/listCategory") if (Objects.equals(categoryDb.getStatus(), 0) && Objects.equals(category.getStatus(), 1) &&!Objects.equals(category.getParentId(), 0L)) {
public ServerResponseEntity<List<Category>> listCategory(){ Category parentCategory = categoryService.getOne(new LambdaQueryWrapper<Category>()
.eq(Category::getCategoryId, category.getParentId()));
return ServerResponseEntity.success(categoryService.list(new LambdaQueryWrapper<Category>() if (Objects.isNull(parentCategory) || Objects.equals(parentCategory.getStatus(), 0)) {
.le(Category::getGrade, 2) // 修改失败,上级分类不存在或者不为正常状态
.eq(Category::getShopId, SecurityUtils.getSysUser().getShopId()) throw new YamiShopBindException("修改失败,上级分类不存在或者不为正常状态");
.orderByAsc(Category::getSeq))); }
} }
categoryService.updateCategory(category);
/** return ServerResponseEntity.success();
* }
*/
@GetMapping("/listProdCategory") /**
public ServerResponseEntity<List<Category>> listProdCategory(){ * ID
List<Category> categories = categoryService.treeSelect(SecurityUtils.getSysUser().getShopId(),2); * CategoryServicedeleteCategory
return ServerResponseEntity.success(categories); * @PreAuthorize"prod:category:delete"访
} * 使@SysLog便
*
* @param categoryId
* @return ServerResponseEntity
*/
@SysLog("删除分类")
@DeleteMapping("/{categoryId}")
@PreAuthorize("@pms.hasPermission('prod:category:delete')")
public ServerResponseEntity<String> delete(@PathVariable("categoryId") Long categoryId) {
// 通过LambdaQueryWrapper构建查询条件统计以当前分类ID为上级分类的子分类数量若数量大于0则说明还有子分类不允许删除。
if (categoryService.count(new LambdaQueryWrapper<Category>().eq(Category::getParentId, categoryId)) > 0) {
return ServerResponseEntity.showFailMsg("请删除子分类,再删除该分类");
}
categoryService.deleteCategory(categoryId);
return ServerResponseEntity.success();
}
/**
* LambdaQueryWrapper
* 2ID
*
*
* @return ServerResponseEntity
*/
@GetMapping("/listCategory")
public ServerResponseEntity<List<Category>> listCategory() {
return ServerResponseEntity.success(categoryService.list(new LambdaQueryWrapper<Category>()
.le(Category::getGrade, 2)
.eq(Category::getShopId, SecurityUtils.getSysUser().getShopId())
.orderByAsc(Category::getSeq)));
}
/**
* CategoryServicetreeSelect
* IDservice
*
*
* @return ServerResponseEntity
*/
@GetMapping("/listProdCategory")
public ServerResponseEntity<List<Category>> listProdCategory() {
List<Category> categories = categoryService.treeSelect(SecurityUtils.getSysUser().getShopId(), 2);
return ServerResponseEntity.success(categories);
}
} }
Loading…
Cancel
Save