628 lines
23 KiB
Bash
Executable File
628 lines
23 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 创建剩余的Service实现类
|
|
|
|
echo "开始创建剩余的Service实现类..."
|
|
|
|
# 1. MessageServiceImpl
|
|
cat > src/main/java/com/emotion/service/impl/MessageServiceImpl.java << 'EOF'
|
|
package com.emotion.service.impl;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
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.entity.Message;
|
|
import com.emotion.mapper.MessageMapper;
|
|
import com.emotion.service.MessageService;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class MessageServiceImpl extends ServiceImpl<MessageMapper, Message> implements MessageService {
|
|
|
|
@Override
|
|
public IPage<Message> getPage(BasePageRequest request) {
|
|
Page<Message> page = new Page<>(request.getCurrent(), request.getSize());
|
|
LambdaQueryWrapper<Message> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
if (StringUtils.hasText(request.getKeyword())) {
|
|
wrapper.like(Message::getContent, request.getKeyword());
|
|
}
|
|
|
|
wrapper.eq(Message::getIsDeleted, 0).orderByDesc(Message::getCreateTime);
|
|
return this.page(page, wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<Message> getByConversationId(String conversationId) {
|
|
LambdaQueryWrapper<Message> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(Message::getConversationId, conversationId)
|
|
.eq(Message::getIsDeleted, 0)
|
|
.orderByAsc(Message::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<Message> getBySender(String sender) {
|
|
LambdaQueryWrapper<Message> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(Message::getSender, sender)
|
|
.eq(Message::getIsDeleted, 0)
|
|
.orderByDesc(Message::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<Message> getByType(String type) {
|
|
LambdaQueryWrapper<Message> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(Message::getType, type)
|
|
.eq(Message::getIsDeleted, 0)
|
|
.orderByDesc(Message::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<Message> getByTimeRange(LocalDateTime startTime, LocalDateTime endTime) {
|
|
LambdaQueryWrapper<Message> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.between(Message::getCreateTime, startTime, endTime)
|
|
.eq(Message::getIsDeleted, 0)
|
|
.orderByDesc(Message::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public Long countByConversationId(String conversationId) {
|
|
LambdaQueryWrapper<Message> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(Message::getConversationId, conversationId)
|
|
.eq(Message::getIsDeleted, 0);
|
|
return this.count(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public Long countBySender(String sender) {
|
|
LambdaQueryWrapper<Message> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(Message::getSender, sender)
|
|
.eq(Message::getIsDeleted, 0);
|
|
return this.count(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public boolean updateReadStatus(String id, Integer isRead) {
|
|
Message message = new Message();
|
|
message.setId(id);
|
|
message.setIsRead(isRead);
|
|
return this.updateById(message);
|
|
}
|
|
|
|
@Override
|
|
public Message createMessage(String conversationId, String content, String sender, String type) {
|
|
Message message = new Message();
|
|
message.setConversationId(conversationId);
|
|
message.setContent(content);
|
|
message.setSender(sender);
|
|
message.setType(type);
|
|
message.setIsRead(0);
|
|
|
|
this.save(message);
|
|
return message;
|
|
}
|
|
}
|
|
EOF
|
|
|
|
# 2. CommentServiceImpl
|
|
cat > src/main/java/com/emotion/service/impl/CommentServiceImpl.java << 'EOF'
|
|
package com.emotion.service.impl;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
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.entity.Comment;
|
|
import com.emotion.mapper.CommentMapper;
|
|
import com.emotion.service.CommentService;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class CommentServiceImpl extends ServiceImpl<CommentMapper, Comment> implements CommentService {
|
|
|
|
@Override
|
|
public IPage<Comment> getPage(BasePageRequest request) {
|
|
Page<Comment> page = new Page<>(request.getCurrent(), request.getSize());
|
|
LambdaQueryWrapper<Comment> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
if (StringUtils.hasText(request.getKeyword())) {
|
|
wrapper.like(Comment::getContent, request.getKeyword());
|
|
}
|
|
|
|
wrapper.eq(Comment::getIsDeleted, 0).orderByDesc(Comment::getCreateTime);
|
|
return this.page(page, wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<Comment> getByPostId(String postId) {
|
|
LambdaQueryWrapper<Comment> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(Comment::getPostId, postId)
|
|
.eq(Comment::getIsDeleted, 0)
|
|
.orderByAsc(Comment::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<Comment> getByUserId(String userId) {
|
|
LambdaQueryWrapper<Comment> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(Comment::getCreateBy, userId)
|
|
.eq(Comment::getIsDeleted, 0)
|
|
.orderByDesc(Comment::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public Long countByPostId(String postId) {
|
|
LambdaQueryWrapper<Comment> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(Comment::getPostId, postId)
|
|
.eq(Comment::getIsDeleted, 0);
|
|
return this.count(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public Comment createComment(String postId, String content, String userId) {
|
|
Comment comment = new Comment();
|
|
comment.setPostId(postId);
|
|
comment.setContent(content);
|
|
comment.setCreateBy(userId);
|
|
|
|
this.save(comment);
|
|
return comment;
|
|
}
|
|
}
|
|
EOF
|
|
|
|
# 3. CommunityPostServiceImpl
|
|
cat > src/main/java/com/emotion/service/impl/CommunityPostServiceImpl.java << 'EOF'
|
|
package com.emotion.service.impl;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
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.entity.CommunityPost;
|
|
import com.emotion.mapper.CommunityPostMapper;
|
|
import com.emotion.service.CommunityPostService;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class CommunityPostServiceImpl extends ServiceImpl<CommunityPostMapper, CommunityPost> implements CommunityPostService {
|
|
|
|
@Override
|
|
public IPage<CommunityPost> getPage(BasePageRequest request) {
|
|
Page<CommunityPost> page = new Page<>(request.getCurrent(), request.getSize());
|
|
LambdaQueryWrapper<CommunityPost> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
if (StringUtils.hasText(request.getKeyword())) {
|
|
wrapper.and(w -> w.like(CommunityPost::getTitle, request.getKeyword())
|
|
.or().like(CommunityPost::getContent, request.getKeyword()));
|
|
}
|
|
|
|
wrapper.eq(CommunityPost::getIsDeleted, 0).orderByDesc(CommunityPost::getCreateTime);
|
|
return this.page(page, wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<CommunityPost> getByUserId(String userId) {
|
|
LambdaQueryWrapper<CommunityPost> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(CommunityPost::getCreateBy, userId)
|
|
.eq(CommunityPost::getIsDeleted, 0)
|
|
.orderByDesc(CommunityPost::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<CommunityPost> getByCategory(String category) {
|
|
LambdaQueryWrapper<CommunityPost> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(CommunityPost::getCategory, category)
|
|
.eq(CommunityPost::getIsDeleted, 0)
|
|
.orderByDesc(CommunityPost::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public Long countByUserId(String userId) {
|
|
LambdaQueryWrapper<CommunityPost> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(CommunityPost::getCreateBy, userId)
|
|
.eq(CommunityPost::getIsDeleted, 0);
|
|
return this.count(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public CommunityPost createPost(String title, String content, String category, String userId) {
|
|
CommunityPost post = new CommunityPost();
|
|
post.setTitle(title);
|
|
post.setContent(content);
|
|
post.setCategory(category);
|
|
post.setCreateBy(userId);
|
|
post.setLikeCount(0);
|
|
post.setCommentCount(0);
|
|
|
|
this.save(post);
|
|
return post;
|
|
}
|
|
}
|
|
EOF
|
|
|
|
# 4. GuestUserServiceImpl
|
|
cat > src/main/java/com/emotion/service/impl/GuestUserServiceImpl.java << 'EOF'
|
|
package com.emotion.service.impl;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
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.entity.GuestUser;
|
|
import com.emotion.mapper.GuestUserMapper;
|
|
import com.emotion.service.GuestUserService;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class GuestUserServiceImpl extends ServiceImpl<GuestUserMapper, GuestUser> implements GuestUserService {
|
|
|
|
@Override
|
|
public IPage<GuestUser> getPage(BasePageRequest request) {
|
|
Page<GuestUser> page = new Page<>(request.getCurrent(), request.getSize());
|
|
LambdaQueryWrapper<GuestUser> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
if (StringUtils.hasText(request.getKeyword())) {
|
|
wrapper.like(GuestUser::getNickname, request.getKeyword());
|
|
}
|
|
|
|
wrapper.eq(GuestUser::getIsDeleted, 0).orderByDesc(GuestUser::getCreateTime);
|
|
return this.page(page, wrapper);
|
|
}
|
|
|
|
@Override
|
|
public GuestUser getByClientIp(String clientIp) {
|
|
LambdaQueryWrapper<GuestUser> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(GuestUser::getClientIp, clientIp)
|
|
.eq(GuestUser::getIsDeleted, 0);
|
|
return this.getOne(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<GuestUser> getByTimeRange(LocalDateTime startTime, LocalDateTime endTime) {
|
|
LambdaQueryWrapper<GuestUser> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.between(GuestUser::getCreateTime, startTime, endTime)
|
|
.eq(GuestUser::getIsDeleted, 0)
|
|
.orderByDesc(GuestUser::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public Long countByTimeRange(LocalDateTime startTime, LocalDateTime endTime) {
|
|
LambdaQueryWrapper<GuestUser> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.between(GuestUser::getCreateTime, startTime, endTime)
|
|
.eq(GuestUser::getIsDeleted, 0);
|
|
return this.count(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public GuestUser createGuestUser(String clientIp, String userAgent) {
|
|
GuestUser guestUser = new GuestUser();
|
|
guestUser.setClientIp(clientIp);
|
|
guestUser.setUserAgent(userAgent);
|
|
guestUser.setNickname("访客用户");
|
|
guestUser.setLastActiveTime(LocalDateTime.now());
|
|
|
|
this.save(guestUser);
|
|
return guestUser;
|
|
}
|
|
}
|
|
EOF
|
|
|
|
# 5. UserStatsServiceImpl
|
|
cat > src/main/java/com/emotion/service/impl/UserStatsServiceImpl.java << 'EOF'
|
|
package com.emotion.service.impl;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
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.entity.UserStats;
|
|
import com.emotion.mapper.UserStatsMapper;
|
|
import com.emotion.service.UserStatsService;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class UserStatsServiceImpl extends ServiceImpl<UserStatsMapper, UserStats> implements UserStatsService {
|
|
|
|
@Override
|
|
public IPage<UserStats> getPage(BasePageRequest request) {
|
|
Page<UserStats> page = new Page<>(request.getCurrent(), request.getSize());
|
|
LambdaQueryWrapper<UserStats> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
if (StringUtils.hasText(request.getKeyword())) {
|
|
wrapper.like(UserStats::getUserId, request.getKeyword());
|
|
}
|
|
|
|
wrapper.eq(UserStats::getIsDeleted, 0).orderByDesc(UserStats::getCreateTime);
|
|
return this.page(page, wrapper);
|
|
}
|
|
|
|
@Override
|
|
public UserStats getByUserId(String userId) {
|
|
LambdaQueryWrapper<UserStats> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(UserStats::getUserId, userId)
|
|
.eq(UserStats::getIsDeleted, 0);
|
|
return this.getOne(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<UserStats> getByTimeRange(LocalDateTime startTime, LocalDateTime endTime) {
|
|
LambdaQueryWrapper<UserStats> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.between(UserStats::getCreateTime, startTime, endTime)
|
|
.eq(UserStats::getIsDeleted, 0)
|
|
.orderByDesc(UserStats::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public UserStats createUserStats(String userId) {
|
|
UserStats userStats = new UserStats();
|
|
userStats.setUserId(userId);
|
|
userStats.setTotalConversations(0);
|
|
userStats.setTotalMessages(0);
|
|
userStats.setTotalEmotionRecords(0);
|
|
userStats.setTotalAchievements(0);
|
|
|
|
this.save(userStats);
|
|
return userStats;
|
|
}
|
|
}
|
|
EOF
|
|
|
|
# 6. EmotionRecordServiceImpl
|
|
cat > src/main/java/com/emotion/service/impl/EmotionRecordServiceImpl.java << 'EOF'
|
|
package com.emotion.service.impl;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
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.entity.EmotionRecord;
|
|
import com.emotion.mapper.EmotionRecordMapper;
|
|
import com.emotion.service.EmotionRecordService;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class EmotionRecordServiceImpl extends ServiceImpl<EmotionRecordMapper, EmotionRecord> implements EmotionRecordService {
|
|
|
|
@Override
|
|
public IPage<EmotionRecord> getPage(BasePageRequest request) {
|
|
Page<EmotionRecord> page = new Page<>(request.getCurrent(), request.getSize());
|
|
LambdaQueryWrapper<EmotionRecord> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
if (StringUtils.hasText(request.getKeyword())) {
|
|
wrapper.like(EmotionRecord::getDescription, request.getKeyword());
|
|
}
|
|
|
|
wrapper.eq(EmotionRecord::getIsDeleted, 0).orderByDesc(EmotionRecord::getCreateTime);
|
|
return this.page(page, wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<EmotionRecord> getByUserId(String userId) {
|
|
LambdaQueryWrapper<EmotionRecord> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(EmotionRecord::getCreateBy, userId)
|
|
.eq(EmotionRecord::getIsDeleted, 0)
|
|
.orderByDesc(EmotionRecord::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<EmotionRecord> getByEmotionType(String emotionType) {
|
|
LambdaQueryWrapper<EmotionRecord> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(EmotionRecord::getEmotionType, emotionType)
|
|
.eq(EmotionRecord::getIsDeleted, 0)
|
|
.orderByDesc(EmotionRecord::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public Long countByUserId(String userId) {
|
|
LambdaQueryWrapper<EmotionRecord> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(EmotionRecord::getCreateBy, userId)
|
|
.eq(EmotionRecord::getIsDeleted, 0);
|
|
return this.count(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public EmotionRecord createEmotionRecord(String userId, String emotionType, String description) {
|
|
EmotionRecord record = new EmotionRecord();
|
|
record.setCreateBy(userId);
|
|
record.setEmotionType(emotionType);
|
|
record.setDescription(description);
|
|
record.setRecordTime(LocalDateTime.now());
|
|
|
|
this.save(record);
|
|
return record;
|
|
}
|
|
}
|
|
EOF
|
|
|
|
# 7. ConversationServiceImpl
|
|
cat > src/main/java/com/emotion/service/impl/ConversationServiceImpl.java << 'EOF'
|
|
package com.emotion.service.impl;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
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.entity.Conversation;
|
|
import com.emotion.mapper.ConversationMapper;
|
|
import com.emotion.service.ConversationService;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class ConversationServiceImpl extends ServiceImpl<ConversationMapper, Conversation> implements ConversationService {
|
|
|
|
@Override
|
|
public IPage<Conversation> getPage(BasePageRequest request) {
|
|
Page<Conversation> page = new Page<>(request.getCurrent(), request.getSize());
|
|
LambdaQueryWrapper<Conversation> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
if (StringUtils.hasText(request.getKeyword())) {
|
|
wrapper.like(Conversation::getTitle, request.getKeyword());
|
|
}
|
|
|
|
wrapper.eq(Conversation::getIsDeleted, 0).orderByDesc(Conversation::getCreateTime);
|
|
return this.page(page, wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<Conversation> getByUserId(String userId) {
|
|
LambdaQueryWrapper<Conversation> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(Conversation::getCreateBy, userId)
|
|
.eq(Conversation::getIsDeleted, 0)
|
|
.orderByDesc(Conversation::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<Conversation> getByStatus(String status) {
|
|
LambdaQueryWrapper<Conversation> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(Conversation::getStatus, status)
|
|
.eq(Conversation::getIsDeleted, 0)
|
|
.orderByDesc(Conversation::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public Long countByUserId(String userId) {
|
|
LambdaQueryWrapper<Conversation> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(Conversation::getCreateBy, userId)
|
|
.eq(Conversation::getIsDeleted, 0);
|
|
return this.count(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public Conversation createConversation(String userId, String title, String type) {
|
|
Conversation conversation = new Conversation();
|
|
conversation.setCreateBy(userId);
|
|
conversation.setTitle(title);
|
|
conversation.setType(type);
|
|
conversation.setStatus("active");
|
|
conversation.setMessageCount(0);
|
|
|
|
this.save(conversation);
|
|
return conversation;
|
|
}
|
|
}
|
|
EOF
|
|
|
|
# 8. TopicInteractionServiceImpl
|
|
cat > src/main/java/com/emotion/service/impl/TopicInteractionServiceImpl.java << 'EOF'
|
|
package com.emotion.service.impl;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
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.entity.TopicInteraction;
|
|
import com.emotion.mapper.TopicInteractionMapper;
|
|
import com.emotion.service.TopicInteractionService;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class TopicInteractionServiceImpl extends ServiceImpl<TopicInteractionMapper, TopicInteraction> implements TopicInteractionService {
|
|
|
|
@Override
|
|
public IPage<TopicInteraction> getPage(BasePageRequest request) {
|
|
Page<TopicInteraction> page = new Page<>(request.getCurrent(), request.getSize());
|
|
LambdaQueryWrapper<TopicInteraction> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
if (StringUtils.hasText(request.getKeyword())) {
|
|
wrapper.like(TopicInteraction::getUserId, request.getKeyword());
|
|
}
|
|
|
|
wrapper.eq(TopicInteraction::getIsDeleted, 0).orderByDesc(TopicInteraction::getCreateTime);
|
|
return this.page(page, wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<TopicInteraction> getByUserId(String userId) {
|
|
LambdaQueryWrapper<TopicInteraction> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(TopicInteraction::getUserId, userId)
|
|
.eq(TopicInteraction::getIsDeleted, 0)
|
|
.orderByDesc(TopicInteraction::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public List<TopicInteraction> getByTopicId(String topicId) {
|
|
LambdaQueryWrapper<TopicInteraction> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(TopicInteraction::getTopicId, topicId)
|
|
.eq(TopicInteraction::getIsDeleted, 0)
|
|
.orderByDesc(TopicInteraction::getCreateTime);
|
|
return this.list(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public Long countByUserId(String userId) {
|
|
LambdaQueryWrapper<TopicInteraction> wrapper = new LambdaQueryWrapper<>();
|
|
wrapper.eq(TopicInteraction::getUserId, userId)
|
|
.eq(TopicInteraction::getIsDeleted, 0);
|
|
return this.count(wrapper);
|
|
}
|
|
|
|
@Override
|
|
public TopicInteraction createInteraction(String userId, String topicId, String interactionType) {
|
|
TopicInteraction interaction = new TopicInteraction();
|
|
interaction.setUserId(userId);
|
|
interaction.setTopicId(topicId);
|
|
interaction.setInteractionType(interactionType);
|
|
interaction.setInteractionTime(LocalDateTime.now());
|
|
|
|
this.save(interaction);
|
|
return interaction;
|
|
}
|
|
}
|
|
EOF
|
|
|
|
echo "所有Service实现类创建完成!" |