Update AttributeController.java

cyj
pbvfus8to 8 months ago
parent 65fa627568
commit 3662750764

@ -26,73 +26,103 @@ import jakarta.validation.Valid;
import java.util.Objects; import java.util.Objects;
/** /**
* *
*
*
* @author lgh * @author lgh
*/ */
@RestController @RestController
@RequestMapping("/admin/attribute") @RequestMapping("/admin/attribute")
public class AttributeController { public class AttributeController {
// 注入ProdPropService用于与商品属性相关的业务逻辑处理例如查询、保存、更新、删除商品属性及其相关值等操作。
@Autowired @Autowired
private ProdPropService prodPropService; private ProdPropService prodPropService;
/** /**
* * ProdPropPageParam
*/ *
* @PreAuthorize"admin:attribute:page"访
*/
@GetMapping("/page") @GetMapping("/page")
@PreAuthorize("@pms.hasPermission('admin:attribute:page')") @PreAuthorize("@pms.hasPermission('admin:attribute:page')")
public ServerResponseEntity<IPage<ProdProp>> page(ProdProp prodProp,PageParam<ProdProp> page){ public ServerResponseEntity<IPage<ProdProp>> page(ProdProp prodProp, PageParam<ProdProp> page) {
prodProp.setRule(ProdPropRule.ATTRIBUTE.value()); // 设置商品属性的规则为属性类型这里假设ProdPropRule.ATTRIBUTE表示属性类型用于后续业务逻辑中区分不同类型的商品属性规则。
prodProp.setShopId(SecurityUtils.getSysUser().getShopId()); prodProp.setRule(ProdPropRule.ATTRIBUTE.value());
IPage<ProdProp> prodPropPage = prodPropService.pagePropAndValue(prodProp,page); // 设置商品属性所属的店铺ID通过SecurityUtils工具类获取当前登录用户所属的店铺ID确保查询的是当前店铺下的商品属性信息。
return ServerResponseEntity.success(prodPropPage); prodProp.setShopId(SecurityUtils.getSysUser().getShopId());
} // 调用ProdPropService的pagePropAndValue方法传入设置好的商品属性对象和分页参数获取分页后的商品属性信息结果集。
IPage<ProdProp> prodPropPage = prodPropService.pagePropAndValue(prodProp, page);
// 将查询到的分页商品属性信息封装在成功的响应实体中返回给前端。
return ServerResponseEntity.success(prodPropPage);
}
/** /**
* * IDID
*/ * @PreAuthorize"admin:attribute:info"访
@GetMapping("/info/{id}") */
@PreAuthorize("@pms.hasPermission('admin:attribute:info')") @GetMapping("/info/{id}")
public ServerResponseEntity<ProdProp> info(@PathVariable("id") Long id){ @PreAuthorize("@pms.hasPermission('admin:attribute:info')")
ProdProp prodProp = prodPropService.getById(id); public ServerResponseEntity<ProdProp> info(@PathVariable("id") Long id) {
return ServerResponseEntity.success(prodProp); // 调用ProdPropService的getById方法根据传入的商品属性ID从数据库中获取对应的商品属性对象。
} ProdProp prodProp = prodPropService.getById(id);
// 将获取到的商品属性对象封装在成功的响应实体中返回给前端。
return ServerResponseEntity.success(prodProp);
}
/** /**
* * @ValidProdProp
*/ * ID
@PostMapping * @PreAuthorize"admin:attribute:save"访
@PreAuthorize("@pms.hasPermission('admin:attribute:save')") */
public ServerResponseEntity<Void> save(@Valid ProdProp prodProp){ @PostMapping
prodProp.setRule(ProdPropRule.ATTRIBUTE.value()); @PreAuthorize("@pms.hasPermission('admin:attribute:save')")
prodProp.setShopId(SecurityUtils.getSysUser().getShopId()); public ServerResponseEntity<Void> save(@Valid ProdProp prodProp) {
prodPropService.saveProdPropAndValues(prodProp); // 设置商品属性的规则为属性类型这里假设ProdPropRule.ATTRIBUTE表示属性类型用于后续业务逻辑中区分不同类型的商品属性规则。
return ServerResponseEntity.success(); prodProp.setRule(ProdPropRule.ATTRIBUTE.value());
} // 设置商品属性所属的店铺ID通过SecurityUtils工具类获取当前登录用户所属的店铺ID确保保存的是当前店铺下的商品属性信息。
prodProp.setShopId(SecurityUtils.getSysUser().getShopId());
// 调用ProdPropService的saveProdPropAndValues方法将设置好的商品属性对象及其相关值保存到数据库中。
prodPropService.saveProdPropAndValues(prodProp);
// 返回表示操作成功的响应实体由于这里只是执行保存操作无需返回具体数据所以返回的是Void类型的成功响应。
return ServerResponseEntity.success();
}
/** /**
* * @ValidProdProp
*/ * IDID
@PutMapping * ID
@PreAuthorize("@pms.hasPermission('admin:attribute:update')") * @PreAuthorize"admin:attribute:update"访
public ServerResponseEntity<Void> update(@Valid ProdProp prodProp){ */
ProdProp dbProdProp = prodPropService.getById(prodProp.getPropId()); @PutMapping
if (!Objects.equals(dbProdProp.getShopId(), SecurityUtils.getSysUser().getShopId())) { @PreAuthorize("@pms.hasPermission('admin:attribute:update')")
throw new YamiShopBindException("没有权限获取该商品规格信息"); public ServerResponseEntity<Void> update(@Valid ProdProp prodProp) {
} // 根据传入的商品属性对象中的ID调用ProdPropService的getById方法从数据库中获取对应的商品属性对象用于后续权限判断等操作。
prodProp.setRule(ProdPropRule.ATTRIBUTE.value()); ProdProp dbProdProp = prodPropService.getById(prodProp.getPropId());
prodProp.setShopId(SecurityUtils.getSysUser().getShopId()); // 判断数据库中查询到的商品属性所属的店铺ID与当前登录用户所属的店铺ID是否一致若不一致则说明当前用户没有权限修改该商品属性信息抛出相应异常。
prodPropService.updateProdPropAndValues(prodProp); if (!Objects.equals(dbProdProp.getShopId(), SecurityUtils.getSysUser().getShopId())) {
return ServerResponseEntity.success(); throw new YamiShopBindException("没有权限获取该商品规格信息");
} }
// 设置商品属性的规则为属性类型这里假设ProdPropRule.ATTRIBUTE表示属性类型用于后续业务逻辑中区分不同类型的商品属性规则。
prodProp.setRule(ProdPropRule.ATTRIBUTE.value());
// 设置商品属性所属的店铺ID通过SecurityUtils工具类获取当前登录用户所属的店铺ID确保更新的是当前店铺下的商品属性信息。
prodProp.setShopId(SecurityUtils.getSysUser().getShopId());
// 调用ProdPropService的updateProdPropAndValues方法将设置好的商品属性对象及其相关值更新到数据库中。
prodPropService.updateProdPropAndValues(prodProp);
// 返回表示操作成功的响应实体由于这里只是执行更新操作无需返回具体数据所以返回的是Void类型的成功响应。
return ServerResponseEntity.success();
}
/** /**
* * ID
*/ * @PreAuthorize"admin:attribute:delete"访
@DeleteMapping("/{id}") */
@PreAuthorize("@pms.hasPermission('admin:attribute:delete')") @DeleteMapping("/{id}")
public ServerResponseEntity<Void> delete(@PathVariable Long id){ @PreAuthorize("@pms.hasPermission('admin:attribute:delete')")
prodPropService.deleteProdPropAndValues(id,ProdPropRule.ATTRIBUTE.value(),SecurityUtils.getSysUser().getShopId()); public ServerResponseEntity<Void> delete(@PathVariable Long id) {
return ServerResponseEntity.success(); // 调用ProdPropService的deleteProdPropAndValues方法传入商品属性ID、属性规则这里指定为属性类型以及当前登录用户所属的店铺ID执行删除操作。
} prodPropService.deleteProdPropAndValues(id, ProdPropRule.ATTRIBUTE.value(), SecurityUtils.getSysUser().getShopId());
} // 返回表示操作成功的响应实体由于这里只是执行删除操作无需返回具体数据所以返回的是Void类型的成功响应。
return ServerResponseEntity.success();
}
}
Loading…
Cancel
Save