package com.qianwen.smartman.modules.notify.controller; import java.util.List; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.mp.support.Condition; import com.qianwen.core.mp.support.Query; import com.qianwen.core.scanner.modular.annotation.DeleteResource; import com.qianwen.core.scanner.modular.annotation.GetResource; import com.qianwen.core.scanner.modular.annotation.PostResource; import com.qianwen.core.scanner.modular.annotation.PutResource; import com.qianwen.core.scanner.modular.stereotype.ApiResource; import com.qianwen.core.secure.BladeUser; import com.qianwen.core.tool.api.R; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.modules.notify.convert.NotificationConvert; import com.qianwen.smartman.modules.notify.convert.NotifySubscriberConvert; import com.qianwen.smartman.modules.notify.dto.Notification; import com.qianwen.smartman.modules.notify.dto.NotifySubscriberDTO; import com.qianwen.smartman.modules.notify.entity.NotificationEntity; import com.qianwen.smartman.modules.notify.entity.NotifySubscriberEntity; import com.qianwen.smartman.modules.notify.service.INotificationService; import com.qianwen.smartman.modules.notify.service.INotifySubscriberService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @ApiResource({"blade-notify/notifications"}) @Api(value = "系统通知管理", tags = {"系统通知管理"}) @RestController /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/notify/controller/NotificationController.class */ public class NotificationController extends BladeController { private final INotificationService notificationService; private final INotifySubscriberService subscriberService; public NotificationController(final INotificationService notificationService, final INotifySubscriberService subscriberService) { this.notificationService = notificationService; this.subscriberService = subscriberService; } @ApiOperationSupport(order = 1) @GetResource({"/subscriptions/query"}) @ApiOperation(value = "查询当前用户订阅信息", notes = "查询当前用户订阅信息") public R> querySubscription(Query query, BladeUser bladeUser) { IPage pages = this.subscriberService.page(Condition.getPage(query), Wrappers.query().lambda() .eq(NotifySubscriberEntity::getSubscriber, bladeUser.getUserId())); /* IPage pages = this.subscriberService.page(Condition.getPage(query), (Wrapper) Wrappers.query().lambda().eq((v0) -> { return v0.getSubscriber(); }, bladeUser.getUserId()));*/ return R.data(NotifySubscriberConvert.INSTANCE.convertToPage(pages)); } @ApiOperationSupport(order = 2) @PutResource({"/subscription/{id}/{state}"}) @ApiOperation(value = "修改通知订阅状态", notes = "修改通知订阅状态") public R changeSubscribeState(@PathVariable("id") String id, @PathVariable("state") Integer state) { LambdaUpdateWrapper updateWrapper = Wrappers.update().lambda() .set(NotifySubscriberEntity::getStatus, state).eq(NotifySubscriberEntity::getId, id); return R.status(this.subscriberService.update(updateWrapper)); /* return R.status(this.subscriberService.update((LambdaUpdateWrapper) ((LambdaUpdateWrapper) Wrappers.update().lambda().set((v0) -> { return v0.getStatus(); }, state)).eq((v0) -> { return v0.getId(); }, id)));*/ } @ApiOperationSupport(order = 3) @DeleteResource({"/subscription/{id}"}) @ApiOperation(value = "删除订阅", notes = "删除订阅") public R deleteSubscription(@PathVariable("id") String id, BladeUser bladeUser) { return R.status(this.subscriberService .remove(Wrappers.lambdaQuery() .eq(NotifySubscriberEntity::getId, id) .eq(NotifySubscriberEntity::getSubscriber, bladeUser.getUserId()))); /* return R.status(this.subscriberService.remove((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getId(); }, id)).eq((v0) -> { return v0.getSubscriber(); }, bladeUser.getUserId())));*/ } @ApiOperationSupport(order = 4) @PostResource({"/subscribe"}) @ApiOperation(value = "订阅通知", notes = "订阅通知") public R doSubscribe(@RequestBody NotifySubscriberDTO subscribe) { return R.status(this.subscriberService.save(NotifySubscriberConvert.INSTANCE.convertToEntity(subscribe))); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @GetResource({"/query"}) @ApiOperation(value = "查询通知记录", notes = "查询通知记录") public R> queryMyNotifications(Notification notification, Query query) { IPage pages = this.notificationService.page(Condition.getPage(query), Condition.getQueryWrapper(NotificationConvert.INSTANCE.convertToEntity(notification))); return R.data(NotificationConvert.INSTANCE.convertToPage(pages)); } @ApiOperationSupport(order = 6) @GetResource({"/{id}/read"}) @ApiOperation(value = "获取通知记录", notes = "获取通知记录") public R readNotification(@PathVariable("id") String id) { return R.data(NotificationConvert.INSTANCE.convertToDto(this.notificationService.findAndMarkRead(id))); } @ApiOperationSupport(order = 7) @PostResource({"/{state}"}) @ApiOperation("修改通知状态 1已读") public R changeNotificationState(@RequestBody List idList, @PathVariable("state") Integer state, BladeUser bladeUser) { LambdaUpdateWrapper updateWrapper = Wrappers.update().lambda() .set(NotificationEntity::getStatus, state).eq(NotificationEntity::getSubscriber, bladeUser.getUserId()).in(NotificationEntity::getId, idList); return R.status(this.notificationService.update(updateWrapper)); /* return R.status(this.notificationService.update((LambdaUpdateWrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) Wrappers.update().lambda().set((v0) -> { return v0.getStatus(); }, state)).eq((v0) -> { return v0.getSubscriber(); }, bladeUser.getUserId())).in((v0) -> { return v0.getId(); }, idList)));*/ } }