You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jty/src/main/java/jty/expressdistributionsystem/controller/AdminController.java

81 lines
3.1 KiB

package jty.expressdistributionsystem.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.annotation.Resource;
import jty.expressdistributionsystem.DTO.SendMessageDTO;
import jty.expressdistributionsystem.entity.Message;
import jty.expressdistributionsystem.entity.Result;
import jty.expressdistributionsystem.entity.User;
import jty.expressdistributionsystem.service.MessageService;
import jty.expressdistributionsystem.service.UserService;
import jty.expressdistributionsystem.utils.SendMessageUtil;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/admin")
@Slf4j
public class AdminController {
@Resource
private UserService userService;
@Resource
private MessageService messageService;
// 管理员查看用户或者快递员信息
@GetMapping("/infoList")
public Result<Page<User>> getUserList(@RequestParam int page, @RequestParam int pageSize, @RequestParam int mark) {
if (page <= 0 || pageSize <= 0) {
return new Result<>(400, "页码和每页大小必须大于0", null);
}
// 分页
Page<User> pageInfo = new Page<>(page, pageSize);
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
// 添加查询条件
queryWrapper.eq(User::getMark, mark);
// 排序
queryWrapper.orderByDesc(User::getLoginTime)
.orderByDesc(User::getCreateTime);
userService.page(pageInfo, queryWrapper);
return new Result<>(200, "", pageInfo);
}
// 拉黑删除快递员或者用户
@DeleteMapping("/delete/{id}")
public Result<String> delete(@PathVariable Long id, @RequestParam @NotNull String operation) {
User user = userService.getById(id);
if(user == null) {
return new Result<>(401, "账号不存在", "");
}
switch (operation) {
// 禁用
case "0" -> user.setDisabled(1);
// 解除禁用
case "1" -> user.setDisabled(0);
// 直接删除
case "2" -> {
userService.removeById(user.getId());
return new Result<>(200, "删除成功", "");
}
}
userService.updateById(user);
return new Result<>(200, "操作成功", "");
}
// 管理员发送消息
@PostMapping("/sendMessage")
public Result<String> sendMessage(@RequestBody @NotNull SendMessageDTO sendMessageDTO) {
LambdaQueryWrapper<User> userLambdaQueryWrapper = new LambdaQueryWrapper<>();
userLambdaQueryWrapper.eq(User::getId, sendMessageDTO.getId());
User user = userService.getOne(userLambdaQueryWrapper);
if(user == null) {
return new Result<>(404, "用户不存在", "");
}
Message message = SendMessageUtil.sendMessage(sendMessageDTO);
messageService.save(message);
return new Result<>(200, "发送成功", "");
}
}