package com.xjrsoft.module.system.controller; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.yulichang.toolkit.MPJWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.xjrsoft.common.page.ConventPage; import com.xjrsoft.common.page.PageOutput; import com.xjrsoft.common.model.result.RT; import com.xjrsoft.common.utils.VoToColumnUtil; import com.xjrsoft.module.system.dto.*; import cn.dev33.satoken.annotation.SaCheckPermission; import com.xjrsoft.module.system.entity.SystemUpdateMessage; import com.xjrsoft.module.system.entity.SystemUpdateMessageNotice; import com.xjrsoft.module.system.service.ISystemUpdateMessageNoticeService; import com.xjrsoft.module.system.vo.MenuTreeVo; import com.xjrsoft.module.system.vo.SystemUpdateMessageNoticePageVo; import com.xjrsoft.module.system.vo.SystemUpdateMessageNoticeVo; import com.xjrsoft.module.teacher.entity.BaseTeacher; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @title: 系统消息通知表 * @Author brealinxx * @Date: 2024-04-17 * @Version 1.0 */ @RestController @RequestMapping("/system" + "/systemUpdateMessageNotice") @Api(value = "/system" + "/systemUpdateMessageNotice",tags = "系统消息通知表代码") @AllArgsConstructor public class SystemUpdateMessageNoticeController { private final ISystemUpdateMessageNoticeService systemUpdateMessageNoticeService; @GetMapping(value = "/page") @ApiOperation(value="系统消息通知表列表(分页)") @SaCheckPermission("systemupdatemessagenotice:detail") public RT> page(@Valid SystemUpdateMessageNoticePageDto dto){ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper .orderByDesc(SystemUpdateMessageNotice::getId) .select(SystemUpdateMessageNotice.class,x -> VoToColumnUtil.fieldsToColumns(SystemUpdateMessageNoticePageVo.class).contains(x.getProperty())); IPage page = systemUpdateMessageNoticeService.page(ConventPage.getPage(dto), queryWrapper); PageOutput pageOutput = ConventPage.getPageOutput(page, SystemUpdateMessageNoticePageVo.class); return RT.ok(pageOutput); } @GetMapping(value = "/submit") @ApiOperation(value = "发布") @SaCheckPermission("systemupdatemessage:detail") public RT submit(@Valid SystemUpdateMessage dto) { String[] teacherUserIds = systemUpdateMessageNoticeService.getTeacherUserId(); String[] studentUserIds = systemUpdateMessageNoticeService.getStudentUserId(); List noticeDtos = new ArrayList<>(); if (dto.getSendRange() == 2) { for (String userId : teacherUserIds) { SystemUpdateMessageNotice temp = new SystemUpdateMessageNotice(); temp.setUserId(userId); temp.setStatus(0); temp.setSystemUpdateMessageId(dto.getId()); noticeDtos.add(temp); } } else if (dto.getSendRange() == 1) { List allUserIds = new ArrayList<>(Arrays.asList(teacherUserIds)); allUserIds.addAll(Arrays.asList(studentUserIds)); for (String userId : allUserIds) { SystemUpdateMessageNotice temp = new SystemUpdateMessageNotice(); temp.setUserId(userId); temp.setStatus(0); temp.setSystemUpdateMessageId(dto.getId()); noticeDtos.add(temp); } } boolean isSuccess = systemUpdateMessageNoticeService.saveBatch(noticeDtos); return RT.ok(isSuccess); } @GetMapping(value = "/info") @ApiOperation(value="根据id查询系统消息通知表信息") @SaCheckPermission("systemupdatemessagenotice:detail") public RT info(@RequestParam Long id){ SystemUpdateMessageNotice systemUpdateMessageNotice = systemUpdateMessageNoticeService.getById(id); if (systemUpdateMessageNotice == null) { return RT.error("找不到此数据!"); } return RT.ok(BeanUtil.toBean(systemUpdateMessageNotice, SystemUpdateMessageNoticeVo.class)); } @PostMapping @ApiOperation(value = "新增系统消息通知表") @SaCheckPermission("systemupdatemessagenotice:add") public RT add(@Valid @RequestBody AddSystemUpdateMessageNoticeDto dto){ SystemUpdateMessageNotice systemUpdateMessageNotice = BeanUtil.toBean(dto, SystemUpdateMessageNotice.class); boolean isSuccess = systemUpdateMessageNoticeService.save(systemUpdateMessageNotice); return RT.ok(isSuccess); } @PutMapping @ApiOperation(value = "修改系统消息通知表") @SaCheckPermission("systemupdatemessagenotice:edit") public RT update(@Valid @RequestBody UpdateSystemUpdateMessageNoticeDto dto){ SystemUpdateMessageNotice systemUpdateMessageNotice = BeanUtil.toBean(dto, SystemUpdateMessageNotice.class); return RT.ok(systemUpdateMessageNoticeService.updateById(systemUpdateMessageNotice)); } @DeleteMapping @ApiOperation(value = "删除系统消息通知表") @SaCheckPermission("systemupdatemessagenotice:delete") public RT delete(@Valid @RequestBody List ids){ return RT.ok(systemUpdateMessageNoticeService.removeBatchByIds(ids)); } }