package com.campus.trade.service.admin; import com.campus.trade.common.BusinessException; import com.campus.trade.common.StatusCode; import com.campus.trade.entity.User; import com.campus.trade.mapper.UserMapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import jakarta.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.DigestUtils; import java.nio.charset.StandardCharsets; @Service public class UserManageService { @Autowired private UserMapper userMapper; // 用户列表 public PageInfo list(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); return new PageInfo<>(userMapper.selectAll()); } // 封禁用户 public void ban(Long userId, HttpSession session) { User user = userMapper.selectById(userId); if (user == null) throw new BusinessException(StatusCode.NOT_FOUND, "用户不存在"); if ("ADMIN".equals(user.getRole())) { throw new BusinessException(StatusCode.FORBIDDEN, "不能封禁管理员"); } user.setStatus("BANNED"); userMapper.updateStatus(user); } // 解封用户 public void unban(Long userId, HttpSession session) { User user = userMapper.selectById(userId); if (user == null) throw new BusinessException(StatusCode.NOT_FOUND, "用户不存在"); user.setStatus("NORMAL"); userMapper.updateStatus(user); } // 重置密码(重置为 123456) public void resetPassword(Long userId, HttpSession session) { User user = userMapper.selectById(userId); if (user == null) throw new BusinessException(StatusCode.NOT_FOUND, "用户不存在"); String defaultHash = DigestUtils.md5DigestAsHex( "123456".getBytes(StandardCharsets.UTF_8) ); user.setPasswordHash(defaultHash); userMapper.updatePassword(user); } }