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<IPage<NotifySubscriberDTO>> querySubscription(Query query, BladeUser bladeUser) {
|
IPage<NotifySubscriberEntity> pages = this.subscriberService.page(Condition.getPage(query),
|
Wrappers.<NotifySubscriberEntity>query().lambda()
|
.eq(NotifySubscriberEntity::getSubscriber, bladeUser.getUserId()));
|
/*
|
IPage<NotifySubscriberEntity> 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<String> changeSubscribeState(@PathVariable("id") String id, @PathVariable("state") Integer state) {
|
LambdaUpdateWrapper<NotifySubscriberEntity> updateWrapper = Wrappers.<NotifySubscriberEntity>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<String> deleteSubscription(@PathVariable("id") String id, BladeUser bladeUser) {
|
return R.status(this.subscriberService
|
.remove(Wrappers.<NotifySubscriberEntity>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<String> 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<IPage<Notification>> queryMyNotifications(Notification notification, Query query) {
|
IPage<NotificationEntity> 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<Notification> readNotification(@PathVariable("id") String id) {
|
return R.data(NotificationConvert.INSTANCE.convertToDto(this.notificationService.findAndMarkRead(id)));
|
}
|
|
@ApiOperationSupport(order = 7)
|
@PostResource({"/{state}"})
|
@ApiOperation("修改通知状态 1已读")
|
public R<String> changeNotificationState(@RequestBody List<String> idList, @PathVariable("state") Integer state, BladeUser bladeUser) {
|
LambdaUpdateWrapper<NotificationEntity> updateWrapper = Wrappers.<NotificationEntity>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)));*/
|
}
|
}
|