优化
This commit is contained in:
@@ -5,21 +5,27 @@ 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.emotion.common.BasePageRequest;
|
||||
import com.emotion.common.PageResult;
|
||||
import com.emotion.dto.request.guest.GuestUserCreateRequest;
|
||||
import com.emotion.dto.request.guest.GuestUserUpdateRequest;
|
||||
import com.emotion.dto.response.guest.GuestUserResponse;
|
||||
import com.emotion.entity.GuestUser;
|
||||
import com.emotion.mapper.GuestUserMapper;
|
||||
import com.emotion.service.GuestUserService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 访客用户服务实现类
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-07-24
|
||||
* @date 2025-09-08
|
||||
*/
|
||||
@Service
|
||||
public class GuestUserServiceImpl extends ServiceImpl<GuestUserMapper, GuestUser> implements GuestUserService {
|
||||
@@ -37,6 +43,30 @@ public class GuestUserServiceImpl extends ServiceImpl<GuestUserMapper, GuestUser
|
||||
return this.page(page, wrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<GuestUserResponse> getPageWithResponse(BasePageRequest request) {
|
||||
IPage<GuestUser> page = getPage(request);
|
||||
List<GuestUserResponse> responses = page.getRecords().stream()
|
||||
.map(this::convertToResponse)
|
||||
.collect(Collectors.toList());
|
||||
PageResult<GuestUserResponse> pageResult = new PageResult<>();
|
||||
pageResult.setRecords(responses);
|
||||
pageResult.setCurrent(page.getCurrent());
|
||||
pageResult.setSize(page.getSize());
|
||||
pageResult.setTotal(page.getTotal());
|
||||
pageResult.setPages(page.getPages());
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GuestUserResponse getGuestUserResponseById(String id) {
|
||||
GuestUser guestUser = this.getById(id);
|
||||
if (guestUser == null || guestUser.getIsDeleted() == 1) {
|
||||
return null;
|
||||
}
|
||||
return convertToResponse(guestUser);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GuestUser getByDeviceId(String deviceId) {
|
||||
LambdaQueryWrapper<GuestUser> wrapper = new LambdaQueryWrapper<>();
|
||||
@@ -219,4 +249,68 @@ public class GuestUserServiceImpl extends ServiceImpl<GuestUserMapper, GuestUser
|
||||
this.save(guestUser);
|
||||
return guestUser;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GuestUserResponse createGuestUserWithResponse(GuestUserCreateRequest request) {
|
||||
GuestUser guestUser = createGuestUser(
|
||||
request.getDeviceId(),
|
||||
request.getIpAddress(),
|
||||
request.getUserAgent(),
|
||||
request.getLocation());
|
||||
return convertToResponse(guestUser);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GuestUserResponse updateGuestUserWithResponse(GuestUserUpdateRequest request) {
|
||||
GuestUser guestUser = this.getById(request.getId());
|
||||
if (guestUser == null || guestUser.getIsDeleted() == 1) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 只更新非空字段
|
||||
if (StringUtils.hasText(request.getNickname())) {
|
||||
guestUser.setNickname(request.getNickname());
|
||||
}
|
||||
if (StringUtils.hasText(request.getAvatar())) {
|
||||
guestUser.setAvatar(request.getAvatar());
|
||||
}
|
||||
if (StringUtils.hasText(request.getLocation())) {
|
||||
guestUser.setLocation(request.getLocation());
|
||||
}
|
||||
|
||||
this.updateById(guestUser);
|
||||
return convertToResponse(guestUser);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteGuestUser(String id) {
|
||||
GuestUser guestUser = this.getById(id);
|
||||
if (guestUser == null || guestUser.getIsDeleted() == 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// 逻辑删除
|
||||
guestUser.setIsDeleted(1);
|
||||
return this.updateById(guestUser);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将实体转换为响应对象
|
||||
*/
|
||||
private GuestUserResponse convertToResponse(GuestUser guestUser) {
|
||||
if (guestUser == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
GuestUserResponse response = new GuestUserResponse();
|
||||
BeanUtils.copyProperties(guestUser, response);
|
||||
response.setId(guestUser.getId());
|
||||
if (guestUser.getCreateTime() != null) {
|
||||
response.setCreateTime(guestUser.getCreateTime().toString());
|
||||
}
|
||||
if (guestUser.getUpdateTime() != null) {
|
||||
response.setUpdateTime(guestUser.getUpdateTime().toString());
|
||||
}
|
||||
return response;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user