Files
happy-life-star/backend-single/create-remaining-services.sh
T

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实现类创建完成!"