forked from fdzcxy212206413/jty
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.
81 lines
3.1 KiB
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, "发送成功", "");
|
|
}
|
|
}
|