Update NoticeController.java

cyj
pbvfus8to 8 months ago
parent 3d7ac2bd0d
commit 5e9728171e

@ -27,7 +27,7 @@ import java.util.Date;
/** /**
* *
* *
* @author hzm * @author hzm
* @date * @date
*/ */
@ -36,17 +36,20 @@ import java.util.Date;
@RequestMapping("/shop/notice") @RequestMapping("/shop/notice")
public class NoticeController { public class NoticeController {
// 通过构造函数注入NoticeService用于调用业务层方法来处理公告相关的业务逻辑
private final NoticeService noticeService; private final NoticeService noticeService;
/** /**
* *
* *
* @param page * @param page
* @param notice * @param notice
* @return * @return ServerResponseEntity<IPage<Notice>>
*/ */
@GetMapping("/page") @GetMapping("/page")
public ServerResponseEntity<IPage<Notice>> getNoticePage(PageParam<Notice> page, Notice notice) { public ServerResponseEntity<IPage<Notice>> getNoticePage(PageParam<Notice> page, Notice notice) {
// 使用MyBatis Plus的LambdaQueryWrapper构建查询条件根据传入的公告对象中的非空字段进行筛选
// 例如根据状态、是否置顶、标题等进行筛选,并按照更新时间降序排列
IPage<Notice> noticePage = noticeService.page(page, new LambdaQueryWrapper<Notice>() IPage<Notice> noticePage = noticeService.page(page, new LambdaQueryWrapper<Notice>()
.eq(notice.getStatus()!= null, Notice::getStatus, notice.getStatus()) .eq(notice.getStatus()!= null, Notice::getStatus, notice.getStatus())
.eq(notice.getIsTop()!= null, Notice::getIsTop, notice.getIsTop()) .eq(notice.getIsTop()!= null, Notice::getIsTop, notice.getIsTop())
@ -54,12 +57,10 @@ public class NoticeController {
return ServerResponseEntity.success(noticePage); return ServerResponseEntity.success(noticePage);
} }
/** /**
* id * id
* * @param id id
* @param id id * @return ServerResponseEntity<Notice>id
* @return
*/ */
@GetMapping("/info/{id}") @GetMapping("/info/{id}")
public ServerResponseEntity<Notice> getById(@PathVariable("id") Long id) { public ServerResponseEntity<Notice> getById(@PathVariable("id") Long id) {
@ -67,57 +68,65 @@ public class NoticeController {
} }
/** /**
* *
* *
* @param notice * @param notice
* @return * @return ServerResponseEntity<Boolean>truefalse
*/ */
@SysLog("新增公告管理") @SysLog("新增公告管理")
@PostMapping @PostMapping
@PreAuthorize("@pms.hasPermission('shop:notice:save')") @PreAuthorize("@pms.hasPermission('shop:notice:save')")
// 使用 @PreAuthorize 注解进行权限校验,只有拥有'shop:notice:save'权限的用户才能访问该接口
public ServerResponseEntity<Boolean> save(@RequestBody @Valid Notice notice) { public ServerResponseEntity<Boolean> save(@RequestBody @Valid Notice notice) {
// 设置公告所属店铺的id从当前登录用户信息中获取
notice.setShopId(SecurityUtils.getSysUser().getShopId()); notice.setShopId(SecurityUtils.getSysUser().getShopId());
if (notice.getStatus() == 1) { if (notice.getStatus() == 1) {
// 如果公告状态为已发布1表示已发布则设置发布时间为当前时间
notice.setPublishTime(new Date()); notice.setPublishTime(new Date());
} }
notice.setUpdateTime(new Date()); notice.setUpdateTime(new Date());
// 调用业务层方法先移除相关的公告列表具体逻辑由业务层的removeNoticeList方法决定
noticeService.removeNoticeList(); noticeService.removeNoticeList();
return ServerResponseEntity.success(noticeService.save(notice)); return ServerResponseEntity.success(noticeService.save(notice));
} }
/** /**
* *
* *
* @param notice * @param notice
* @return * @return ServerResponseEntity<Boolean>truefalse
*/ */
@SysLog("修改公告管理") @SysLog("修改公告管理")
@PutMapping @PutMapping
@PreAuthorize("@pms.hasPermission('shop:notice:update')") @PreAuthorize("@pms.hasPermission('shop:notice:update')")
// 使用 @PreAuthorize 注解进行权限校验,只有拥有'shop:notice:update'权限的用户才能访问该接口
public ServerResponseEntity<Boolean> updateById(@RequestBody @Valid Notice notice) { public ServerResponseEntity<Boolean> updateById(@RequestBody @Valid Notice notice) {
Notice oldNotice = noticeService.getById(notice.getId()); Notice oldNotice = noticeService.getById(notice.getId());
if (oldNotice.getStatus() == 0 && notice.getStatus() == 1) { if (oldNotice.getStatus() == 0 && notice.getStatus() == 1) {
// 如果原公告状态为未发布0表示未发布修改后变为已发布1表示已发布则设置发布时间为当前时间
notice.setPublishTime(new Date()); notice.setPublishTime(new Date());
} }
notice.setUpdateTime(new Date()); notice.setUpdateTime(new Date());
// 调用业务层方法先移除相关的公告列表具体逻辑由业务层的removeNoticeList方法决定
noticeService.removeNoticeList(); noticeService.removeNoticeList();
// 移除要修改的这条公告具体逻辑由业务层的removeNoticeById方法决定可能是缓存清除等相关操作
noticeService.removeNoticeById(notice.getId()); noticeService.removeNoticeById(notice.getId());
return ServerResponseEntity.success(noticeService.updateById(notice)); return ServerResponseEntity.success(noticeService.updateById(notice));
} }
/** /**
* id * id
* * id
* @param id id * @param id id
* @return * @return ServerResponseEntity<Boolean>truefalse
*/ */
@SysLog("删除公告管理") @SysLog("删除公告管理")
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('shop:notice:delete')") @PreAuthorize("@pms.hasPermission('shop:notice:delete')")
// 使用 @PreAuthorize 注解进行权限校验,只有拥有'shop:notice:delete'权限的用户才能访问该接口
public ServerResponseEntity<Boolean> removeById(@PathVariable Long id) { public ServerResponseEntity<Boolean> removeById(@PathVariable Long id) {
noticeService.removeNoticeList(); noticeService.removeNoticeList();
noticeService.removeNoticeById(id); noticeService.removeNoticeById(id);
return ServerResponseEntity.success(noticeService.removeById(id)); return ServerResponseEntity.success(noticeService.removeById(id));
} }
} }
Loading…
Cancel
Save