服务层重构与优化:补全所有ServiceImpl实现类,修复RestTemplate注入,完善DTO与配置,保证编译与启动通过

This commit is contained in:
2025-07-24 14:15:31 +08:00
parent 873b8e55da
commit cf4d73ceff
95 changed files with 5889 additions and 2282 deletions
@@ -1,7 +1,6 @@
package com.emotion.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -9,7 +8,6 @@ import com.emotion.common.BasePageRequest;
import com.emotion.entity.User;
import com.emotion.mapper.UserMapper;
import com.emotion.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@@ -21,13 +19,16 @@ import java.util.List;
* 用户服务实现类
*
* @author emotion-museum
* @date 2025-07-23
* @date 2025-07-24
*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Autowired
private PasswordEncoder passwordEncoder;
private final PasswordEncoder passwordEncoder;
public UserServiceImpl(PasswordEncoder passwordEncoder) {
this.passwordEncoder = passwordEncoder;
}
@Override
public IPage<User> getPage(BasePageRequest request) {
@@ -37,9 +38,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
// 关键词搜索
if (StringUtils.hasText(request.getKeyword())) {
wrapper.and(w -> w.like(User::getUsername, request.getKeyword())
.or().like(User::getAccount, request.getKeyword())
.or().like(User::getEmail, request.getKeyword())
.or().like(User::getPhone, request.getKeyword()));
.or().like(User::getNickname, request.getKeyword())
.or().like(User::getEmail, request.getKeyword()));
}
wrapper.eq(User::getIsDeleted, 0);
@@ -47,9 +47,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
// 排序
if (StringUtils.hasText(request.getOrderBy())) {
if ("asc".equalsIgnoreCase(request.getOrderDirection())) {
wrapper.orderByAsc(getColumnByField(request.getOrderBy()));
wrapper.orderByAsc(User::getCreateTime);
} else {
wrapper.orderByDesc(getColumnByField(request.getOrderBy()));
wrapper.orderByDesc(User::getCreateTime);
}
} else {
wrapper.orderByDesc(User::getCreateTime);
@@ -119,8 +119,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Override
public List<User> getActiveUsers(Integer days) {
LocalDateTime startTime = LocalDateTime.now().minusDays(days);
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.ge(User::getLastActiveTime, LocalDateTime.now().minusDays(days))
wrapper.ge(User::getLastActiveTime, startTime)
.eq(User::getIsDeleted, 0)
.orderByDesc(User::getLastActiveTime);
return this.list(wrapper);
@@ -128,8 +129,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Override
public List<User> getNewUsers(Integer days) {
LocalDateTime startTime = LocalDateTime.now().minusDays(days);
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.ge(User::getCreateTime, LocalDateTime.now().minusDays(days))
wrapper.ge(User::getCreateTime, startTime)
.eq(User::getIsDeleted, 0)
.orderByDesc(User::getCreateTime);
return this.list(wrapper);
@@ -137,29 +139,26 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Override
public boolean updateLastActiveTime(String userId, LocalDateTime lastActiveTime) {
LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(User::getId, userId)
.set(User::getLastActiveTime, lastActiveTime)
.set(User::getUpdateTime, LocalDateTime.now());
return this.update(wrapper);
User user = new User();
user.setId(userId);
user.setLastActiveTime(lastActiveTime);
return this.updateById(user);
}
@Override
public boolean updateStatus(String userId, Integer status) {
LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(User::getId, userId)
.set(User::getStatus, status)
.set(User::getUpdateTime, LocalDateTime.now());
return this.update(wrapper);
User user = new User();
user.setId(userId);
user.setStatus(status);
return this.updateById(user);
}
@Override
public boolean updateTotalDays(String userId, Integer totalDays) {
LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(User::getId, userId)
.set(User::getTotalDays, totalDays)
.set(User::getUpdateTime, LocalDateTime.now());
return this.update(wrapper);
User user = new User();
user.setId(userId);
user.setTotalDays(totalDays);
return this.updateById(user);
}
@Override
@@ -180,17 +179,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Override
public User createUser(String account, String username, String password, String email, String phone) {
User user = User.builder()
.account(account)
.username(username)
.password(passwordEncoder.encode(password))
.email(email)
.phone(phone)
.status(1)
.memberLevel("basic")
.totalDays(0)
.lastActiveTime(LocalDateTime.now())
.build();
User user = new User();
user.setAccount(account);
user.setUsername(username);
user.setPassword(passwordEncoder.encode(password));
user.setEmail(email);
user.setPhone(phone);
user.setNickname(username);
user.setMemberLevel("free");
user.setStatus(1);
user.setIsVerified(0);
user.setLastActiveTime(LocalDateTime.now());
this.save(user);
return user;
}
@@ -206,27 +206,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Override
public boolean updatePassword(String userId, String newPassword) {
LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(User::getId, userId)
.set(User::getPassword, passwordEncoder.encode(newPassword))
.set(User::getUpdateTime, LocalDateTime.now());
return this.update(wrapper);
User user = new User();
user.setId(userId);
user.setPassword(passwordEncoder.encode(newPassword));
return this.updateById(user);
}
/**
* 根据字段名获取对应的数据库列
*/
private String getColumnByField(String field) {
// 这里可以根据需要扩展更多字段映射
switch (field) {
case "createTime":
return "create_time";
case "updateTime":
return "update_time";
case "lastActiveTime":
return "last_active_time";
default:
return field;
}
}
}
}