Update ProdTagController.java

cyj
pbvfus8to 8 months ago
parent c533d9b3eb
commit 6c7a3c4244

@ -10,7 +10,6 @@
package com.yami.shop.admin.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -31,7 +30,7 @@ import java.util.List;
/**
*
*
*
* @author hzm
* @date 2019-04-18 09:08:36
*/
@ -39,33 +38,34 @@ import java.util.List;
@RequestMapping("/prod/prodTag")
public class ProdTagController {
// 通过Spring的自动注入机制注入ProdTagService对象用于调用业务层方法来处理商品分组相关的业务逻辑
@Autowired
private ProdTagService prodTagService;
/**
*
*
* @param page
* @param prodTag
* @return
*
*
* @param page
* @param prodTag
* @return ServerResponseEntity<IPage<ProdTag>>
*/
@GetMapping("/page")
public ServerResponseEntity<IPage<ProdTag>> getProdTagPage(PageParam<ProdTag> page, ProdTag prodTag) {
// 使用MyBatis Plus的LambdaQueryWrapper构建查询条件根据传入的商品分组标签对象中的非空字段进行筛选
// 例如根据状态、标题等进行筛选并按照序号seq和创建时间降序排列
IPage<ProdTag> tagPage = prodTagService.page(
page, new LambdaQueryWrapper<ProdTag>()
.eq(prodTag.getStatus() != null, ProdTag::getStatus, prodTag.getStatus())
.like(prodTag.getTitle() != null, ProdTag::getTitle, prodTag.getTitle())
.orderByDesc(ProdTag::getSeq, ProdTag::getCreateTime));
.eq(prodTag.getStatus()!= null, ProdTag::getStatus, prodTag.getStatus())
.like(prodTag.getTitle()!= null, ProdTag::getTitle, prodTag.getTitle())
.orderByDesc(ProdTag::getSeq, ProdTag::getCreateTime));
return ServerResponseEntity.success(tagPage);
}
/**
* id
*
* @param id id
* @return
* id
* @param id id
* @return ServerResponseEntity<ProdTag>id
*/
@GetMapping("/info/{id}")
public ServerResponseEntity<ProdTag> getById(@PathVariable("id") Long id) {
@ -73,67 +73,85 @@ public class ProdTagController {
}
/**
*
*
* @param prodTag
* @return
*
*
* @param prodTag
* @return ServerResponseEntity<Boolean>truefalse
*/
@SysLog("新增商品分组标签")
@PostMapping
@PreAuthorize("@pms.hasPermission('prod:prodTag:save')")
// 使用 @PreAuthorize 注解进行权限校验,只有拥有'prod:prodTag:save'权限的用户才能访问该接口
public ServerResponseEntity<Boolean> save(@RequestBody @Valid ProdTag prodTag) {
// 查看是否相同的标签
// 查看是否已存在相同名称的标签,通过标题进行模糊查询
List<ProdTag> list = prodTagService.list(new LambdaQueryWrapper<ProdTag>().like(ProdTag::getTitle, prodTag.getTitle()));
if (CollectionUtil.isNotEmpty(list)) {
// 如果查询到相同名称的标签列表不为空,则抛出异常,提示标签名称已存在,不能添加相同的标签
throw new YamiShopBindException("标签名称已存在,不能添加相同的标签");
}
// 设置默认属性将是否为默认标签设置为0表示非默认
prodTag.setIsDefault(0);
// 设置商品数量初始值为0
prodTag.setProdCount(0L);
// 设置创建时间为当前时间
prodTag.setCreateTime(new Date());
// 设置更新时间为当前时间
prodTag.setUpdateTime(new Date());
// 设置商品分组标签所属店铺的id从当前登录用户信息中获取
prodTag.setShopId(SecurityUtils.getSysUser().getShopId());
// 调用业务层方法先进行相关的商品分组标签清理操作具体逻辑由业务层的removeProdTag方法决定
prodTagService.removeProdTag();
return ServerResponseEntity.success(prodTagService.save(prodTag));
}
/**
*
*
* @param prodTag
* @return
*
*
* @param prodTag
* @return ServerResponseEntity<Boolean>truefalse
*/
@SysLog("修改商品分组标签")
@PutMapping
@PreAuthorize("@pms.hasPermission('prod:prodTag:update')")
// 使用 @PreAuthorize 注解进行权限校验,只有拥有'prod:prodTag:update'权限的用户才能访问该接口
public ServerResponseEntity<Boolean> updateById(@RequestBody @Valid ProdTag prodTag) {
// 更新商品分组标签的更新时间为当前时间
prodTag.setUpdateTime(new Date());
// 调用业务层方法先进行相关的商品分组标签清理操作具体逻辑由业务层的removeProdTag方法决定
prodTagService.removeProdTag();
return ServerResponseEntity.success(prodTagService.updateById(prodTag));
}
/**
* id
*
* @param id id
* @return
* id
* id
* @param id id
* @return ServerResponseEntity<Boolean>truefalse
*/
@SysLog("删除商品分组标签")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('prod:prodTag:delete')")
// 使用 @PreAuthorize 注解进行权限校验,只有拥有'prod:prodTag:delete'权限的用户才能访问该接口
public ServerResponseEntity<Boolean> removeById(@PathVariable Long id) {
// 根据传入的id获取对应的商品分组标签对象
ProdTag prodTag = prodTagService.getById(id);
if (prodTag.getIsDefault() != 0) {
if (prodTag.getIsDefault()!= 0) {
// 如果该商品分组标签是默认标签isDefault不为0则抛出异常提示默认标签不能删除
throw new YamiShopBindException("默认标签不能删除");
}
// 调用业务层方法先进行相关的商品分组标签清理操作具体逻辑由业务层的removeProdTag方法决定
prodTagService.removeProdTag();
return ServerResponseEntity.success(prodTagService.removeById(id));
}
/**
*
*
* @return ServerResponseEntity<List<ProdTag>>
*/
@GetMapping("/listTagList")
public ServerResponseEntity<List<ProdTag>> listTagList() {
return ServerResponseEntity.success(prodTagService.listProdTag());
}
}
}
Loading…
Cancel
Save