package com.example.scaffold.module.user.service.impl;
import cn.hutool.crypto.SecureUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.scaffold.common.exception.BusinessException; import com.example.scaffold.common.model.JsonResult; import com.example.scaffold.common.model.PageResult; import com.example.scaffold.module.user.convert.UserConvert; import com.example.scaffold.module.user.entity.User; import com.example.scaffold.module.user.mapper.UserMapper; import com.example.scaffold.module.user.model.dto.UserLoginDTO; import com.example.scaffold.module.user.model.dto.UserRegisterDTO; import com.example.scaffold.module.user.model.query.UserQuery; import com.example.scaffold.module.user.model.vo.LoginVO; import com.example.scaffold.module.user.model.vo.UserVO; import com.example.scaffold.module.user.service.UserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.util.List; import java.util.stream.Collectors;
/
- 用户服务实现类
- @author GLM-4.6 AI辅助生成 */ @Service @Slf4j public class UserServiceImpl extends ServiceImpl
implements UserService { @Autowired private UserConvert userConvert;
@Override public JsonResult
register(UserRegisterDTO dto) { log.info("用户注册:{}", dto.getUsername()); // 检查用户名是否已存在 User existingUser = baseMapper.selectByUsername(dto.getUsername()); if (existingUser != null) { log.warn("用户名已存在:{}", dto.getUsername()); return JsonResult.error("1001", "用户名已存在"); } // 创建用户 User user = userConvert.toEntity(dto); user.setPassword(SecureUtil.md5(dto.getPassword())); // 密码加密 user.setStatus(1); // 启用状态 user.setCreateTime(LocalDateTime.now()); user.setUpdateTime(LocalDateTime.now()); boolean success = save(user); if (!success) { log.error("用户注册失败:{}", dto.getUsername()); return JsonResult.error("1002", "用户注册失败"); } log.info("用户注册成功:{}", dto.getUsername()); UserVO userVO = userConvert.toVO(user); return JsonResult.ok(userVO);}
@Override public JsonResult
login(UserLoginDTO dto) { GPT plus 代充 只需 145
log.info("用户登录:{}", dto.getUsername()); // 查询用户 User user = baseMapper.selectByUsername(dto.getUsername()); if (user == null) { log.warn("用户不存在:{}", dto.getUsername()); return JsonResult.error("1003", "用户名或密码错误"); } // 验证密码 if (!user.getPassword().equals(SecureUtil.md5(dto.getPassword()))) { log.warn("密码错误:{}", dto.getUsername()); return JsonResult.error("1003", "用户名或密码错误"); } // 检查状态 if (user.getStatus() == 0) { log.warn("用户被禁用:{}", dto.getUsername()); return JsonResult.error("1004", "用户已被禁用"); } // 生成Token(实际项目中可使用JWT) String token = generateToken(user.getId().toString()); // 构建登录响应 LoginVO loginVO = LoginVO.builder() .user(userConvert.toVO(user)) .token(token) .build(); log.info("用户登录成功:{}", dto.getUsername()); return JsonResult.ok(loginVO);}
@Override public PageResult
getUserList(UserQuery query) { log.info("查询用户列表:{}", query); // 创建分页对象 Pagepage = new Page<>(query.getPageNum(), query.getPageSize()); // 执行分页查询 List userList = baseMapper.selectUserList(page, query); List userVOList = userList.stream() .map(userConvert::toVO) .collect(Collectors.toList()); return new PageResult<>(userVOList, page.getTotal()); }
@Override public JsonResult updateStatus(Long userId, Integer status) {
GPT plus 代充 只需 145
log.info("更新用户状态:userId={}, status={}", userId, status); // 检查用户是否存在 User user = getById(userId); if (user == null) { log.warn("用户不存在:{}", userId); return JsonResult.error("1005", "用户不存在"); } // 更新状态 user.setStatus(status); user.setUpdateTime(LocalDateTime.now()); updateById(user); log.info("用户状态更新成功:userId={}, status={}", userId, status); return JsonResult.ok();}
/
- 生成Token(模拟实现)
- @param userId 用户ID
- @return Token */ private String generateToken(String userId) { // 实际项目中应该使用JWT等标准实现 return "token" + userId + "" + System.currentTimeMillis(); } }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/240378.html