Update AttributeController.java

cyj
pbvfus8to 8 months ago
parent 65fa627568
commit 3662750764

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