diff --git a/pom.xml b/pom.xml index e3ed399f7b5b0c45597a45653a5db260d6b998d4..a4e2a859bf0447c61f2de25fab9d74758b2fb718 100644 --- a/pom.xml +++ b/pom.xml @@ -99,6 +99,12 @@ spring-kafka + + + org.springframework.boot + spring-boot-starter-amqp + + junit junit diff --git a/src/main/java/com/test/community/Event/EventConsumer.java b/src/main/java/com/test/community/Event/EventConsumer.java index ff2705f45bc92486c16145ddf627c7d6c78e78e6..f9eea73a87159c4710f02f32309c5c883896a8a9 100644 --- a/src/main/java/com/test/community/Event/EventConsumer.java +++ b/src/main/java/com/test/community/Event/EventConsumer.java @@ -8,9 +8,15 @@ import com.test.community.service.DiscussPostService; import com.test.community.service.impl.ElasticSearchServiceImpl; import com.test.community.service.MessageService; import com.test.community.util.CommunityConstant; +import com.test.community.util.HostHolder; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.amqp.core.ExchangeTypes; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.kafka.annotation.KafkaListener; import org.springframework.stereotype.Component; @@ -29,6 +35,8 @@ public class EventConsumer implements CommunityConstant { private DiscussPostService discussPostService; @Autowired private ElasticSearchServiceImpl elasticSearchService; + @Autowired + private HostHolder hostHolder; @KafkaListener(topics = {TOPIC_COMMENT,TOPIC_LIKE,TOPIC_FOLLOW}) public void handleMessage(ConsumerRecord record){ @@ -95,4 +103,152 @@ public class EventConsumer implements CommunityConstant { } elasticSearchService.deleteDiscussPost(event.getEntityId()); } + + //分割线----------------------------------------------------------------------------------------------------------------------------------------------------- + //分割线----------------------------------------------------------------------------------------------------------------------------------------------------- + //分割线----------------------------------------------------------------------------------------------------------------------------------------------------- + /** + * 如果采用rabbitMQ,则使用下面代码 + * 处理评论-帖子消息 + */ + @RabbitListener(bindings = @QueueBinding( + value = @Queue(name = CommunityConstant.QUEUE_MESSAGE), + exchange = @Exchange(name = CommunityConstant.EXCHANGE), + key = {CommunityConstant.MESSAGE_COMMENT_DISCUSSPOST} + )) + public void handleCommentDiscussPostMessage(Map map){ + //发送消息站内通知 + if (map.isEmpty()) { + logger.error("消息的内容为空!"); + return; + } + Message message = new Message(); + message.setFromId(SYSTEM_USER_ID); + message.setToId((Integer) map.get("entityUserId")); + message.setConversationId("comment"); + message.setCreateTime(new Date()); + + Map content = new HashMap<>(); + content.put("userId",map.get("userId")); + content.put("entityType",map.get("entityType")); + content.put("entityId", map.get("entityId")); + content.put("discussPostId", map.get("discussPostId")); + messageService.addMessage(message); + } + + /** + * 处理评论-回复消息 + */ + @RabbitListener(bindings = @QueueBinding( + value = @Queue(name = CommunityConstant.QUEUE_MESSAGE), + exchange = @Exchange(name = CommunityConstant.EXCHANGE), + key = {CommunityConstant.MESSAGE_COMMENT_REPLY} + )) + public void handleCommentReplyMessage(Map map){ + //发送消息站内通知 + if (map.isEmpty()) { + logger.error("消息的内容为空!"); + return; + } + Message message = new Message(); + message.setFromId(SYSTEM_USER_ID); + message.setToId((Integer) map.get("entityUserId")); + message.setConversationId("comment"); + message.setCreateTime(new Date()); + + Map content = new HashMap<>(); + content.put("userId",map.get("userId")); + content.put("entityType",map.get("entityType")); + content.put("entityId", map.get("entityId")); + content.put("discussPostId", map.get("discussPostId")); + messageService.addMessage(message); + } + + /** + * 处理点赞消息 + */ + @RabbitListener(bindings = @QueueBinding( + value = @Queue(name = CommunityConstant.QUEUE_MESSAGE), + exchange = @Exchange(name = CommunityConstant.EXCHANGE), + key = {CommunityConstant.MESSAGE_LIKE} + )) + public void handleLikeMessage(Map map){ + //发送消息站内通知 + if (map.isEmpty()) { + logger.error("消息的内容为空!"); + return; + } + Message message = new Message(); + message.setFromId(SYSTEM_USER_ID); + message.setToId((Integer) map.get("entityUserId")); + message.setConversationId("comment"); + message.setCreateTime(new Date()); + + Map content = new HashMap<>(); + content.put("userId",map.get("userId")); + content.put("entityType",map.get("entityType")); + content.put("entityId", map.get("entityId")); + content.put("discussPostId", map.get("discussPostId")); + messageService.addMessage(message); + } + + /** + * 处理关注消息 + */ + @RabbitListener(bindings = @QueueBinding( + value = @Queue(name = CommunityConstant.QUEUE_MESSAGE), + exchange = @Exchange(name = CommunityConstant.EXCHANGE), + key = {CommunityConstant.MESSAGE_FOLLOW} + )) + public void handleFollowMessage(Map map){ + //发送消息站内通知 + if (map.isEmpty()) { + logger.error("消息的内容为空!"); + return; + } + Message message = new Message(); + message.setFromId(SYSTEM_USER_ID); + message.setToId((Integer) map.get("entityUserId")); + message.setConversationId(CommunityConstant.MESSAGE_FOLLOW); + message.setCreateTime(new Date()); + + Map content = new HashMap<>(); + content.put("userId",map.get("userId")); + content.put("entityType",map.get("entityType")); + content.put("entityId", map.get("entityId")); + messageService.addMessage(message); + } + + /** + * 消费发帖事件 + */ + @RabbitListener(bindings = @QueueBinding( + value = @Queue(name = CommunityConstant.QUEUE_POST), + exchange = @Exchange(name = CommunityConstant.EXCHANGE), + key = {CommunityConstant.POST_PUBLISH} + )) + public void handlePublishMessage(int id){ + if(id == 0){ + logger.error("消息内容为空!"); + return; + } + DiscussPost post = discussPostService.findDiscussPostById(id); + elasticSearchService.saveDiscussPost(post); + } + + /** + * 消费删帖事件 + */ + @RabbitListener(bindings = @QueueBinding( + value = @Queue(name = CommunityConstant.QUEUE_POST), + exchange = @Exchange(name = CommunityConstant.EXCHANGE), + key = {CommunityConstant.POST_DELETE} + )) + public void handleDeleteMessage(int id){ + if(id == 0){ + logger.error("消息内容为空!"); + return; + } + elasticSearchService.deleteDiscussPost(id); + } } diff --git a/src/main/java/com/test/community/actuator/DatabaseEndpoint.java b/src/main/java/com/test/community/actuator/DatabaseEndpoint.java index cff6ff56608fd378e9ed42776b61f256ec20485d..ffca8c1226a189a8c62e6fee920cc0fad179ff71 100644 --- a/src/main/java/com/test/community/actuator/DatabaseEndpoint.java +++ b/src/main/java/com/test/community/actuator/DatabaseEndpoint.java @@ -12,6 +12,11 @@ import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException; +//Spring Boot Actuator 模块的自定义端点(Endpoint)。 +// Actuator 是 Spring Boot 提供的用于监控和管理应用程序的模块,它包含了一系列内置的端点,用于获取应用程序的健康状况、运行时信息等。 +//通过 Actuator 的端点访问, +// 例如:/actuator/database。在访问该端点时,会执行 checkConnection 方法, +// 尝试获取数据库连接,然后返回相应的状态信息。这对于在运行时监控应用程序的数据库连接状态是有用的。 @Component @Endpoint(id = "database") public class DatabaseEndpoint { diff --git a/src/main/java/com/test/community/config/ElasticConfig.java b/src/main/java/com/test/community/config/ElasticConfig.java index 35e323f811d65c5dad52bc5917c743d3f2fa7074..68f71590384b8b371c31c44e31ae572ef1db0ecf 100644 --- a/src/main/java/com/test/community/config/ElasticConfig.java +++ b/src/main/java/com/test/community/config/ElasticConfig.java @@ -24,6 +24,9 @@ public class ElasticConfig { @Value("${spring.elasticsearch.uris}") private String esUrl; + @Value("${spring.elasticsearch.rest.socket-timeout}") + private long socketTimeout; + //192.168.128.129:9200 写在配置文件中,直接用 <- spring.elasticsearch.uris @Bean //更新迭代太快了八,这个高级客户端都过时了。 @@ -31,6 +34,7 @@ public class ElasticConfig { public RestHighLevelClient elasticClient() { ClientConfiguration clientConfiguration = ClientConfiguration.builder() .connectedTo(esUrl)//elasticsearch地址 + .withSocketTimeout(socketTimeout) .build(); return RestClients.create(clientConfiguration).rest(); diff --git a/src/main/java/com/test/community/config/QuartzConfig.java b/src/main/java/com/test/community/config/QuartzConfig.java index eef40e645ce81c4622cec12ccac91f90d86d3082..f007356ea68f930a2045bf189a51594325319c6e 100644 --- a/src/main/java/com/test/community/config/QuartzConfig.java +++ b/src/main/java/com/test/community/config/QuartzConfig.java @@ -21,27 +21,27 @@ public class QuartzConfig { // 配置JobDetail //@Bean 有了bean会自动装配 - public JobDetailFactoryBean alphaJobDetail() { - JobDetailFactoryBean factoryBean = new JobDetailFactoryBean(); - factoryBean.setJobClass(AlphaJob.class); - factoryBean.setName("alphaJob"); - factoryBean.setGroup("alphaJobGroup"); - factoryBean.setDurability(true);//存储时间 - factoryBean.setRequestsRecovery(true);//可恢复 - return factoryBean; - } +// public JobDetailFactoryBean alphaJobDetail() { +// JobDetailFactoryBean factoryBean = new JobDetailFactoryBean(); +// factoryBean.setJobClass(AlphaJob.class); +// factoryBean.setName("alphaJob"); +// factoryBean.setGroup("alphaJobGroup"); +// factoryBean.setDurability(true);//存储时间 +// factoryBean.setRequestsRecovery(true);//可恢复 +// return factoryBean; +// } // 配置Trigger(SimpleTriggerFactoryBean, CronTriggerFactoryBean) //@Bean - public SimpleTriggerFactoryBean alphaTrigger(JobDetail alphaJobDetail) { - SimpleTriggerFactoryBean factoryBean = new SimpleTriggerFactoryBean(); - factoryBean.setJobDetail(alphaJobDetail); - factoryBean.setName("alphaTrigger"); - factoryBean.setGroup("alphaTriggerGroup"); - factoryBean.setRepeatInterval(3000); - factoryBean.setJobDataMap(new JobDataMap()); - return factoryBean; - } +// public SimpleTriggerFactoryBean alphaTrigger(JobDetail alphaJobDetail) { +// SimpleTriggerFactoryBean factoryBean = new SimpleTriggerFactoryBean(); +// factoryBean.setJobDetail(alphaJobDetail); +// factoryBean.setName("alphaTrigger"); +// factoryBean.setGroup("alphaTriggerGroup"); +// factoryBean.setRepeatInterval(3000); +// factoryBean.setJobDataMap(new JobDataMap()); +// return factoryBean; +// } //以下为项目功能 @Bean diff --git a/src/main/java/com/test/community/config/SecurityConfig.java b/src/main/java/com/test/community/config/SecurityConfig.java index a4ff0b1c431351b20f06f2aa991007ba1304e554..80dadd3bd0f2a7a7df524469dc39e8cdf5f80e1d 100644 --- a/src/main/java/com/test/community/config/SecurityConfig.java +++ b/src/main/java/com/test/community/config/SecurityConfig.java @@ -34,6 +34,7 @@ public class SecurityConfig implements CommunityConstant { http.authorizeRequests().antMatchers( "/user/setting", "/user/upload", + "/user/profile/**", "/discuss/add", "/comment/add/**", "/letter/**", diff --git a/src/main/java/com/test/community/controller/CommentController.java b/src/main/java/com/test/community/controller/CommentController.java index e3292f06022d143d67ff1587660c7d3f0fd1420c..9636768764c64486778f83787832e0ab2e5f56e0 100644 --- a/src/main/java/com/test/community/controller/CommentController.java +++ b/src/main/java/com/test/community/controller/CommentController.java @@ -12,6 +12,7 @@ import com.test.community.service.UserService; import com.test.community.util.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Controller; @@ -47,6 +48,9 @@ public class CommentController implements CommunityConstant { @Autowired private LikeService likeService; + @Autowired + private RabbitTemplate rabbitTemplate; + @PostMapping("/add/{discussPostId}") @ResponseBody public String addComment(@PathVariable("discussPostId") int discussPostId, Comment comment, @RequestParam(value = "file",required = false) List fileList){ @@ -88,15 +92,31 @@ public class CommentController implements CommunityConstant { .setEntityId(comment.getEntityId()) .setData("discussPostId",discussPostId); + //如果使用rabbitmq,则用于rabbitmq消息的接收对象 + Map map = new HashMap<>(); + + //这里逻辑有点问题,可以不用判断,由接口可知EntityType的值 if (comment.getEntityType() == ENTITY_TYPE_POST) { DiscussPost target = discussPostService.findDiscussPostById(comment.getEntityId()); event.setEntityUserId(target.getUserId()); + + //用于rabbitMQ + map.put("entityUserId",target.getUserId()); } else if (comment.getEntityType() == ENTITY_TYPE_COMMENT) { Comment target = commentService.findCommentById(comment.getEntityId()); event.setEntityUserId(target.getUserId()); + + //用于rabbitMQ + map.put("entityUserId",target.getUserId()); } eventProducer.handleEvent(event); + //如果选用rabbitmq,则可以使用此方法 + map.put("discussPostId",discussPostId); + map.put("entityId",comment.getEntityId()); + map.put("userId",hostHolder.getUser().getId()); + rabbitTemplate.convertAndSend(CommunityConstant.EXCHANGE,CommunityConstant.MESSAGE_COMMENT_DISCUSSPOST,map); + // 回复帖子相当于更改了帖子信息,需要触发事件 以便更新到es if (comment.getEntityType() ==ENTITY_TYPE_POST){ //触发发帖事件 @@ -106,6 +126,9 @@ public class CommentController implements CommunityConstant { .setEntityType(ENTITY_TYPE_POST) .setEntityId(discussPostId); eventProducer.handleEvent(event); + + //如果选用rabbitmq,则可以使用此方法 + rabbitTemplate.convertAndSend(CommunityConstant.EXCHANGE,CommunityConstant.POST_PUBLISH,discussPostId); //计算帖子分数 String redisKey = RedisKeyUtil.getPostScoreKey(); redisTemplate.opsForSet().add(redisKey,discussPostId); @@ -158,15 +181,31 @@ public class CommentController implements CommunityConstant { .setEntityId(comment.getEntityId()) .setData("discussPostId",discussPostId); + //如果使用rabbitmq,则用于rabbitmq消息的接收对象 + Map map = new HashMap<>(); + + //这里逻辑有点问题,可以不用判断,由接口可知EntityType的值 if (comment.getEntityType() == ENTITY_TYPE_POST) { DiscussPost target = discussPostService.findDiscussPostById(comment.getEntityId()); event.setEntityUserId(target.getUserId()); + + //用于rabbitMQ + map.put("entityUserId",target.getUserId()); } else if (comment.getEntityType() == ENTITY_TYPE_COMMENT) { Comment target = commentService.findCommentById(comment.getEntityId()); event.setEntityUserId(target.getUserId()); + + //用于rabbitMQ + map.put("entityUserId",target.getUserId()); } eventProducer.handleEvent(event); + //如果选用rabbitmq,则可以使用此方法 + map.put("discussPostId",discussPostId); + map.put("entityId",comment.getEntityId()); + map.put("userId",hostHolder.getUser().getId()); + rabbitTemplate.convertAndSend(CommunityConstant.EXCHANGE,CommunityConstant.MESSAGE_COMMENT_REPLY,map); + // 回复帖子相当于更改了帖子信息,需要触发事件 以便更新到es if (comment.getEntityType() ==ENTITY_TYPE_POST){ //触发发帖事件 @@ -176,6 +215,9 @@ public class CommentController implements CommunityConstant { .setEntityType(ENTITY_TYPE_POST) .setEntityId(discussPostId); eventProducer.handleEvent(event); + + //如果选用rabbitmq,则可以使用此方法 + rabbitTemplate.convertAndSend(CommunityConstant.EXCHANGE,CommunityConstant.POST_PUBLISH,discussPostId); //计算帖子分数 String redisKey = RedisKeyUtil.getPostScoreKey(); redisTemplate.opsForSet().add(redisKey,discussPostId); diff --git a/src/main/java/com/test/community/controller/DiscussPostController.java b/src/main/java/com/test/community/controller/DiscussPostController.java index dd4d47f7312ddeddaa9c600f6e1347809b14ff9d..bdfd965b705e83418560cabe409832b60df7e99e 100644 --- a/src/main/java/com/test/community/controller/DiscussPostController.java +++ b/src/main/java/com/test/community/controller/DiscussPostController.java @@ -10,6 +10,7 @@ import com.test.community.util.*; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Controller; @@ -46,6 +47,9 @@ public class DiscussPostController implements CommunityConstant { @Autowired private RedisTemplate redisTemplate; + @Autowired + private RabbitTemplate rabbitTemplate; + @RequestMapping(path = "/add",method = RequestMethod.POST) @ResponseBody public String addDiscussPost(String title,String content,@RequestParam(value = "file",required = false) List fileList){ @@ -96,6 +100,9 @@ public class DiscussPostController implements CommunityConstant { .setEntityType(ENTITY_TYPE_POST) .setEntityId(discussPost.getId()); eventProducer.handleEvent(event); + + //如果选用rabbitmq,则可以使用此方法 + //rabbitTemplate.convertAndSend(CommunityConstant.EXCHANGE,CommunityConstant.POST_PUBLISH,discussPost.getId()); // 报错的情况,将来统一处理. return CommunityUtil.getJSONString(0, "发布成功!"); } @@ -320,6 +327,8 @@ public class DiscussPostController implements CommunityConstant { .setEntityType(ENTITY_TYPE_POST) .setEntityId(id); eventProducer.handleEvent(event); + //如果选用rabbitmq,则可以使用此方法 + //rabbitTemplate.convertAndSend(CommunityConstant.EXCHANGE,CommunityConstant.POST_PUBLISH,id); return CommunityUtil.getJSONString(0,null,map); } @@ -350,6 +359,8 @@ public class DiscussPostController implements CommunityConstant { .setEntityId(id); eventProducer.handleEvent(event); + //如果选用rabbitmq,则可以使用此方法 + rabbitTemplate.convertAndSend(CommunityConstant.EXCHANGE,CommunityConstant.POST_PUBLISH,id); // 计算帖子分数 String redisKey = RedisKeyUtil.getPostScoreKey(); redisTemplate.opsForSet().add(redisKey, id); @@ -371,6 +382,8 @@ public class DiscussPostController implements CommunityConstant { .setEntityId(id); eventProducer.handleEvent(event); + //如果选用rabbitmq,则可以使用此方法 + rabbitTemplate.convertAndSend(CommunityConstant.EXCHANGE,CommunityConstant.POST_DELETE,id); return CommunityUtil.getJSONString(0); } } diff --git a/src/main/java/com/test/community/controller/FollowController.java b/src/main/java/com/test/community/controller/FollowController.java index 4cf7bae9ce4a927d2942928d0826e38bbf931e2f..0dbc57c6f95570448f791bfdba99f530175626d5 100644 --- a/src/main/java/com/test/community/controller/FollowController.java +++ b/src/main/java/com/test/community/controller/FollowController.java @@ -9,6 +9,7 @@ import com.test.community.service.UserService; import com.test.community.util.CommunityConstant; import com.test.community.util.CommunityUtil; import com.test.community.util.HostHolder; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -35,6 +37,9 @@ public class FollowController implements CommunityConstant { @Autowired private EventProducer eventProducer; + @Autowired + private RabbitTemplate rabbitTemplate; + @RequestMapping(path = "/follow",method = RequestMethod.POST) @ResponseBody public String follow(int entityId,int entityType){ @@ -50,6 +55,14 @@ public class FollowController implements CommunityConstant { .setEntityUserId(entityId); eventProducer.handleEvent(event); + //如果使用rabbitmq,则用于rabbitmq消息的接收对象 + Map map = new HashMap<>(); + map.put("userId",hostHolder.getUser().getId()); + map.put("entityType",entityType); + map.put("entityId",entityId); + map.put("entityUserId",entityId); + //如果选用rabbitmq,则可以使用此方法 + rabbitTemplate.convertAndSend(CommunityConstant.EXCHANGE,CommunityConstant.MESSAGE_FOLLOW,map); return CommunityUtil.getJSONString(0,"已关注"); } diff --git a/src/main/java/com/test/community/controller/LikeController.java b/src/main/java/com/test/community/controller/LikeController.java index 364b5fa4f33e311089a615f3241759b83417c799..1c4ad51badb1a9c68a3451e5274f8583520b579c 100644 --- a/src/main/java/com/test/community/controller/LikeController.java +++ b/src/main/java/com/test/community/controller/LikeController.java @@ -8,6 +8,7 @@ import com.test.community.util.CommunityConstant; import com.test.community.util.CommunityUtil; import com.test.community.util.HostHolder; import com.test.community.util.RedisKeyUtil; +import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Controller; @@ -32,6 +33,9 @@ public class LikeController implements CommunityConstant { @Autowired private RedisTemplate redisTemplate; + @Autowired + private RabbitTemplate rabbitTemplate; + @RequestMapping(path = "/like",method = RequestMethod.POST) @ResponseBody public String Like(int entityType,int entityId,int entityUserId,int discussPostId){ @@ -59,6 +63,14 @@ public class LikeController implements CommunityConstant { .setData("discussPostId", discussPostId); eventProducer.handleEvent(event); + //如果使用rabbitmq,则用于rabbitmq消息的接收对象 + Map rabbitMqMap = new HashMap<>(); + rabbitMqMap.put("userId",hostHolder.getUser().getId()); + rabbitMqMap.put("entityType",entityType); + rabbitMqMap.put("entityId",entityId); + rabbitMqMap.put("entityUserId",entityId); + //如果选用rabbitmq,则可以使用此方法 + rabbitTemplate.convertAndSend(CommunityConstant.EXCHANGE,CommunityConstant.MESSAGE_LIKE,rabbitMqMap); if(entityType == ENTITY_TYPE_POST) { // 计算帖子分数 String redisKey = RedisKeyUtil.getPostScoreKey(); diff --git a/src/main/java/com/test/community/controller/LoginController.java b/src/main/java/com/test/community/controller/LoginController.java index 85d01d52e4a4425601d08a677034918d0b28fdba..06de1cd5ae9dc6df0207b2fc5cf4efc2164d577f 100644 --- a/src/main/java/com/test/community/controller/LoginController.java +++ b/src/main/java/com/test/community/controller/LoginController.java @@ -89,7 +89,7 @@ public class LoginController implements CommunityConstant { public String register(Model model, User user){ Map map = userService.register(user); if(map==null || map.isEmpty()){ -// elasticSearchService.saveUser(user); + elasticSearchService.saveUser(user); model.addAttribute("msg","注册成功,激活邮件已经到你的邮箱,请尽快去邮箱激活"); model.addAttribute("target","/index"); return "site/operate-result"; diff --git a/src/main/java/com/test/community/entity/Comment.java b/src/main/java/com/test/community/entity/Comment.java index c4f486c7024c8b5d4778888289d9182616225f34..7781a74294bebaa49240134b24cc617bbe1e6659 100644 --- a/src/main/java/com/test/community/entity/Comment.java +++ b/src/main/java/com/test/community/entity/Comment.java @@ -9,9 +9,9 @@ import java.util.List; public class Comment { private int id; private int userId; - private int entityType; + private int entityType;// 1:回复帖子的评论;2:回复评论的评论', private int entityId;//表示该评论 所回复的另一个 评论或者是帖子 的id号。 - private int targetId; + private int targetId;//目标用户id private String content; private int status; private Date createTime; diff --git a/src/main/java/com/test/community/util/CommunityConstant.java b/src/main/java/com/test/community/util/CommunityConstant.java index a6c5bb2662d4de033cb2235d85d4682f96437d22..b14c1949e5bd7679f56787b0c173e1e5b080240c 100644 --- a/src/main/java/com/test/community/util/CommunityConstant.java +++ b/src/main/java/com/test/community/util/CommunityConstant.java @@ -18,7 +18,7 @@ public interface CommunityConstant { /** * 默认状态的登录凭证的超时时间 */ - int DEFAULT_EXPIRED_SECONDS = 3600 * 12;//12小时 + int DEFAULT_EXPIRED_SECONDS = 3600 * 12;//2小时 /** * 记住状态的登录凭证超时时间 @@ -65,6 +65,51 @@ public interface CommunityConstant { */ String TOPIC_DELETE = "delete"; + /** + * Rabbitmq:交换机 + */ + String EXCHANGE = "exchange"; + + /** + * 针对点赞、关注、评论的消息队列 + */ + String QUEUE_MESSAGE = "queueMessage"; + + /** + * 针对点赞的RoutingKey + */ + String MESSAGE_LIKE = "LIKE"; + + /** + * 针对关注的RoutingKey + */ + String MESSAGE_FOLLOW = "follow"; + + /** + * 针对评论-帖子的RoutingKey + */ + String MESSAGE_COMMENT_DISCUSSPOST = "comment.discussPost"; + + /** + * 针对评论-评论的RoutingKey + */ + String MESSAGE_COMMENT_REPLY = "comment.reply"; + + /** + * 针对删帖和发帖的队列 + */ + String QUEUE_POST = "queuePost"; + + /** + * 发帖的RoutingKey + */ + String POST_PUBLISH = "publish"; + + /** + * 删帖的RoutingKey + */ + String POST_DELETE = "delete"; + /** * 系统用户ID */ diff --git a/src/main/java/com/test/community/util/SensitiveFilter.java b/src/main/java/com/test/community/util/SensitiveFilter.java index c70571e1fe74b06757613f07171fb3aaae8e6a54..2c3bc96981e6cd73ac65bc576ca9690edff487d6 100644 --- a/src/main/java/com/test/community/util/SensitiveFilter.java +++ b/src/main/java/com/test/community/util/SensitiveFilter.java @@ -27,6 +27,7 @@ public class SensitiveFilter { @PostConstruct public void init() { try ( + //根据classloader获取输入流,然后使用缓存字符流。一行一行的读取敏感词,将其添加到前缀树, InputStream is = this.getClass().getClassLoader().getResourceAsStream("sensitive-words.txt"); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); ) { diff --git a/src/main/resources/application-produce.properties b/src/main/resources/application-produce.properties index 05824cb9c257799c27f6c46ca454eb9fb4d97adb..0f01677a6d5858375bcc79c0fab17392e97a3833 100644 --- a/src/main/resources/application-produce.properties +++ b/src/main/resources/application-produce.properties @@ -54,10 +54,20 @@ spring.kafka.consumer.enable-auto-commit=true # ???????3? spring.kafka.consumer.auto-commit-interval=3000 +#RabbitMQ +spring.rabbitmq.host= 47.99.157.147 +spring.rabbitmq.port= 9092 +spring.rabbitmq.username=; +spring.rabbitmq.password=; +spring.rabbitmq.virtual-host=/ + + # ElasticsearchProperties #selasticsearch.host=192.168.128.131 #elasticsearch.port=9200 spring.elasticsearch.uris=localhost:9200 +spring.elasticsearch.rest.socket-timeout=1000000 + # TaskExecutionProperties #spring.task.execution.pool.core-size=5 diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8067d1b500a500f75fc722251a9d97343e9ba328..ba751c28d50201523bb6dae4e20c789d80e9b2ce 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,5 +1,5 @@ # profile -spring.profiles.active=dev +spring.profiles.active=produce #logback logging.config=classpath:logback-spring-${spring.profiles.active}.xml \ No newline at end of file diff --git a/src/main/resources/static/arclist/1.gif b/src/main/resources/static/arclist/1.gif deleted file mode 100644 index 5be27cb0ecf9a21240e151962f59f94a2ce361ad..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/1.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/10.gif b/src/main/resources/static/arclist/10.gif deleted file mode 100644 index e8c4837a6cfd7dd5b464a9689dd11abeac2a598c..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/10.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/11.gif b/src/main/resources/static/arclist/11.gif deleted file mode 100644 index b512dd5da196b15a6fa31115da13cb24730c14ef..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/11.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/12.gif b/src/main/resources/static/arclist/12.gif deleted file mode 100644 index 547529cab6ec7ccc19719487e644b132b40f9d9c..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/12.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/13.gif b/src/main/resources/static/arclist/13.gif deleted file mode 100644 index 34753001ef80a38a08e8a75f23482f528313fd1b..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/13.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/14.gif b/src/main/resources/static/arclist/14.gif deleted file mode 100644 index f2e8304f3a63d29f31c6542794f6e9c958d4c05c..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/14.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/15.gif b/src/main/resources/static/arclist/15.gif deleted file mode 100644 index debab8ed082d3e38ac6a824193311c20f9584a45..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/15.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/16.gif b/src/main/resources/static/arclist/16.gif deleted file mode 100644 index 3f4cb251490d413fb13956571466958e9c4fc970..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/16.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/17.gif b/src/main/resources/static/arclist/17.gif deleted file mode 100644 index b6af2189c8c6e5edaee66142a76d2ca56b45e8bc..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/17.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/18.gif b/src/main/resources/static/arclist/18.gif deleted file mode 100644 index e045ff2af252ee7a3abbc468442ef7bd98ab16f9..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/18.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/19.gif b/src/main/resources/static/arclist/19.gif deleted file mode 100644 index efd650f5598c031ec3a205351c95d9d83bada14b..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/19.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/2.gif b/src/main/resources/static/arclist/2.gif deleted file mode 100644 index a2644a9ee85fd75515d8368633118e5df1a1bb3b..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/2.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/20.gif b/src/main/resources/static/arclist/20.gif deleted file mode 100644 index cb8cf6d2a19857f6f6a13a16ce84b907da7b8500..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/20.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/21.gif b/src/main/resources/static/arclist/21.gif deleted file mode 100644 index 2913255cb11a8d74fca488d3fad7ec27ce0d8bd0..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/21.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/22.gif b/src/main/resources/static/arclist/22.gif deleted file mode 100644 index 96516b8d9368ae6562b4da1541b41390d56e4931..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/22.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/23.gif b/src/main/resources/static/arclist/23.gif deleted file mode 100644 index 5f925c7bc15698964c943551584ed856aafada3c..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/23.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/24.gif b/src/main/resources/static/arclist/24.gif deleted file mode 100644 index 97f8b1afabd2f68e61cad14aca71204148f2b1e8..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/24.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/25.gif b/src/main/resources/static/arclist/25.gif deleted file mode 100644 index c0aa92e2a9db3d4dd3445bcf65b17bbf255da769..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/25.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/26.gif b/src/main/resources/static/arclist/26.gif deleted file mode 100644 index cc083b7acd7fd055d3c28ca45c4977ee2a127ac4..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/26.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/27.gif b/src/main/resources/static/arclist/27.gif deleted file mode 100644 index 298c3e5a6718736f419edeb42ffcdd572a468f48..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/27.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/28.gif b/src/main/resources/static/arclist/28.gif deleted file mode 100644 index e6602f91d7568992c053073b11f88e75310dd1a8..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/28.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/29.gif b/src/main/resources/static/arclist/29.gif deleted file mode 100644 index e24a1801c48d9d149c96ea5bf449697c1ceac93c..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/29.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/3.gif b/src/main/resources/static/arclist/3.gif deleted file mode 100644 index 40cfda436f3087c561bbf0dfe60d2591f8f11e71..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/3.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/30.gif b/src/main/resources/static/arclist/30.gif deleted file mode 100644 index 9b25bafff788796f264c03a16436d3c7591fa383..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/30.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/31.gif b/src/main/resources/static/arclist/31.gif deleted file mode 100644 index e96eee7755733aa3d016eeb0df64964998bfbd45..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/31.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/32.gif b/src/main/resources/static/arclist/32.gif deleted file mode 100644 index 3dbd98f6671c2258c2a9e37526f6e3bc80c964a5..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/32.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/33.gif b/src/main/resources/static/arclist/33.gif deleted file mode 100644 index e9d42131a9bdb8556647e91fa3915425ab730102..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/33.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/34.gif b/src/main/resources/static/arclist/34.gif deleted file mode 100644 index d6da2c33ab4139ac5ec7becbb7221008e0805034..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/34.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/35.gif b/src/main/resources/static/arclist/35.gif deleted file mode 100644 index c1e6ac913b33ee0c0637c4d4e70cb5f7b007a4b8..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/35.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/36.gif b/src/main/resources/static/arclist/36.gif deleted file mode 100644 index 489f0f948d665ef36d803efd512e4727ef673c38..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/36.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/37.gif b/src/main/resources/static/arclist/37.gif deleted file mode 100644 index 734f6d82eb95a917d07f6c9fa17a1a178bb168aa..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/37.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/38.gif b/src/main/resources/static/arclist/38.gif deleted file mode 100644 index 17e7e25806a3589f0b47c191367972cce42d8ad5..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/38.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/39.gif b/src/main/resources/static/arclist/39.gif deleted file mode 100644 index 99139e1d1ebbb9123de502b7b8bc0127dc55334f..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/39.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/4.gif b/src/main/resources/static/arclist/4.gif deleted file mode 100644 index 6d6f7629968d979878a2defb2d66ece81bdc2af2..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/4.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/40.gif b/src/main/resources/static/arclist/40.gif deleted file mode 100644 index e62312a2e408f78c44ae7f2ee3ef7b9a3c2fe8f6..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/40.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/41.gif b/src/main/resources/static/arclist/41.gif deleted file mode 100644 index 650d3dd84026c33b31712f94d1c189db2b3e7295..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/41.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/42.gif b/src/main/resources/static/arclist/42.gif deleted file mode 100644 index 5c8e071815a3cfd3a38f1dd477a305010dd8e239..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/42.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/43.gif b/src/main/resources/static/arclist/43.gif deleted file mode 100644 index f3cb0742d7f2c12475b1fdfca98a46ce3d1dffbc..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/43.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/44.gif b/src/main/resources/static/arclist/44.gif deleted file mode 100644 index 2893837985ff6a7ccb6934d2ae51e0c2b6c8f727..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/44.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/45.gif b/src/main/resources/static/arclist/45.gif deleted file mode 100644 index 27a30c15c7b6ae395763d9dd900c9806cc702fa4..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/45.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/46.gif b/src/main/resources/static/arclist/46.gif deleted file mode 100644 index dcfa48af01be5b1e2170e7e0f64a65cc5cd70a6a..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/46.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/47.gif b/src/main/resources/static/arclist/47.gif deleted file mode 100644 index 029cf0feab9660a39b25111936e9b85835bb2a8d..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/47.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/48.gif b/src/main/resources/static/arclist/48.gif deleted file mode 100644 index 69f183f043a276acaf62658536b0c4561492578a..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/48.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/49.gif b/src/main/resources/static/arclist/49.gif deleted file mode 100644 index d41e8aab1e210fbdf7cb54247a38b05f086c3072..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/49.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/5.gif b/src/main/resources/static/arclist/5.gif deleted file mode 100644 index 90c3d8675fe1db1359cbf991108c9ca512d8e6aa..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/5.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/50.gif b/src/main/resources/static/arclist/50.gif deleted file mode 100644 index 517ce36b0ce45c85349d5c4a18ec36c66fca4079..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/50.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/51.gif b/src/main/resources/static/arclist/51.gif deleted file mode 100644 index 57d4187095a48f5514c77169a7d2e3e40b39fbfe..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/51.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/52.gif b/src/main/resources/static/arclist/52.gif deleted file mode 100644 index d0d0856045d240cd96871afa4fca7c48d8d152d9..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/52.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/53.gif b/src/main/resources/static/arclist/53.gif deleted file mode 100644 index 9cb9aa7961f87230f198c3f85dbd14e5999af3ea..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/53.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/54.gif b/src/main/resources/static/arclist/54.gif deleted file mode 100644 index 27019f8ff85d7520cd36fa6f67c6311996228217..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/54.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/55.gif b/src/main/resources/static/arclist/55.gif deleted file mode 100644 index 24284cf39d84e7e70e1633199579330ac996e598..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/55.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/56.gif b/src/main/resources/static/arclist/56.gif deleted file mode 100644 index 92efec6ae180c7e685512017cfd06f75c36afa39..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/56.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/57.gif b/src/main/resources/static/arclist/57.gif deleted file mode 100644 index 9042b9d46350c96c1cfe5cdab490d5c455769c48..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/57.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/58.gif b/src/main/resources/static/arclist/58.gif deleted file mode 100644 index f36cf58ec2f3298a1669b1732046b7b7e9e6253b..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/58.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/59.gif b/src/main/resources/static/arclist/59.gif deleted file mode 100644 index edf96f0a63e79e6eb80e22a0774137dab2852e5d..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/59.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/6.gif b/src/main/resources/static/arclist/6.gif deleted file mode 100644 index a26b001eb16eeea57653bc56513d56484ea1bb03..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/6.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/60.gif b/src/main/resources/static/arclist/60.gif deleted file mode 100644 index 66d21136de8dc3e26949cd6447d1ac9881e1a2b5..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/60.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/61.gif b/src/main/resources/static/arclist/61.gif deleted file mode 100644 index 034933ec3e3fed2ac2df7b7370289ec2e8feeb13..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/61.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/62.gif b/src/main/resources/static/arclist/62.gif deleted file mode 100644 index 310ec65f1090ed879101d6a739bd41c14b4c2745..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/62.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/63.gif b/src/main/resources/static/arclist/63.gif deleted file mode 100644 index 61652a71687509883c73273bce1bee24d49721f7..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/63.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/64.gif b/src/main/resources/static/arclist/64.gif deleted file mode 100644 index 9a779364b3381afe3c1faf86bf94a29825a43db0..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/64.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/65.gif b/src/main/resources/static/arclist/65.gif deleted file mode 100644 index 2329101a71efc84d76fcdc0e0acab11fa4b832fd..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/65.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/66.gif b/src/main/resources/static/arclist/66.gif deleted file mode 100644 index 644748a96ca06c8518ed8618b9df99265748558b..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/66.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/67.gif b/src/main/resources/static/arclist/67.gif deleted file mode 100644 index fbf275ba500778d06fb2709e0e5556ae8afddc16..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/67.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/68.gif b/src/main/resources/static/arclist/68.gif deleted file mode 100644 index 076f0c65cf7162d9244e3ebf86ca56d6b6f05ddb..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/68.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/69.gif b/src/main/resources/static/arclist/69.gif deleted file mode 100644 index f7152f992a4678b0006d25ffe7dd7156b8c5d14b..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/69.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/7.gif b/src/main/resources/static/arclist/7.gif deleted file mode 100644 index d03ca9332de1c91ffe52170f07e061980627fa75..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/7.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/70.gif b/src/main/resources/static/arclist/70.gif deleted file mode 100644 index 4d8b15e7e625ddb98838f58ca001f3163c5fad45..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/70.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/71.gif b/src/main/resources/static/arclist/71.gif deleted file mode 100644 index d58fcf671bdb51457baa9a88c599e5d4ae9be4e9..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/71.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/72.gif b/src/main/resources/static/arclist/72.gif deleted file mode 100644 index c4e00bdfda09412d7aa977d227ceef4f4464f288..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/72.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/73.gif b/src/main/resources/static/arclist/73.gif deleted file mode 100644 index 2dc2ea8d2466826476fb71a69639027037b962b8..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/73.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/74.gif b/src/main/resources/static/arclist/74.gif deleted file mode 100644 index a462a0ada6d9837c8fd2daf7679eb1479967aaa8..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/74.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/75.gif b/src/main/resources/static/arclist/75.gif deleted file mode 100644 index 608d0ad87c31a4e2ac8a28529c7af1a08a0abbbc..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/75.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/8.gif b/src/main/resources/static/arclist/8.gif deleted file mode 100644 index 2e97e1329904e64bd19add71102671a47932b9fb..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/8.gif and /dev/null differ diff --git a/src/main/resources/static/arclist/9.gif b/src/main/resources/static/arclist/9.gif deleted file mode 100644 index 73fc097a51fd7c2b705ae8dc984cbe7de7b8fef8..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/arclist/9.gif and /dev/null differ diff --git a/src/main/resources/static/css/discuss-detail.css b/src/main/resources/static/css/discuss-detail.css index 984e84921e54cc39d3d6fe33177237b2645222c7..a4927089d4db2bd374ff46926fb285e26e4bdcf4 100644 --- a/src/main/resources/static/css/discuss-detail.css +++ b/src/main/resources/static/css/discuss-detail.css @@ -18,6 +18,7 @@ .input-size { width: 100%; height: 25px; + border-radius: 5px; } .textarea { @@ -55,7 +56,7 @@ .list-unstyled.mt-4.bg-gray.p-3.font-size-12.text-muted { overflow-y: auto; - width: 800px; + /*width: 800px;*/ max-height: 300px; } /*滚动条样式*/ diff --git a/src/main/resources/static/img/er.png b/src/main/resources/static/img/er.png new file mode 100644 index 0000000000000000000000000000000000000000..84ecc63850b3b6eb7dbeef8756ca9e7f95476dcd Binary files /dev/null and b/src/main/resources/static/img/er.png differ diff --git a/src/main/resources/static/img/img.png b/src/main/resources/static/img/img.png new file mode 100644 index 0000000000000000000000000000000000000000..43833904e93954003a006c4223239266d63b5962 Binary files /dev/null and b/src/main/resources/static/img/img.png differ diff --git a/src/main/resources/static/img/initalHeaderImg.jpg b/src/main/resources/static/img/initalHeaderImg.jpg deleted file mode 100644 index 451dcbf6ea06052e97598ef6ad7e21279e5d2a5c..0000000000000000000000000000000000000000 Binary files a/src/main/resources/static/img/initalHeaderImg.jpg and /dev/null differ diff --git a/src/main/resources/static/js/discuss.js b/src/main/resources/static/js/discuss.js index c37bc8656566ceb67e08f35c4b3f988e304abc80..4cf15bdd4280bb8feb03d338bbd49e0149019e5c 100644 --- a/src/main/resources/static/js/discuss.js +++ b/src/main/resources/static/js/discuss.js @@ -174,6 +174,7 @@ window.onload=function(){ if (!fileList[i].name.match(/.jpg|.gif|.png|.jpeg|.bmp/i)) { return window.alert("图片格式不正确") } + var index1 = layer.load(2); formData.append("file", fileList[i]) } formData.append("entityId", $("#entityId").val()) @@ -192,7 +193,10 @@ window.onload=function(){ //使用document目的:使刷新后仍在页面原来的高度上 document.location.reload() }else { - window.location.replace(CONTEXT_PATH+"/discuss/detail/"+$("#entityId").val()+"?current="+data.msg) + window.location.href=CONTEXT_PATH+"/discuss/detail/"+$("#entityId").val()+"?current="+data.msg + } + if (index1!=null){ + layer.close(index1); } Toast("发送成功") }else { @@ -223,6 +227,7 @@ function replyClick(entityType,id,entityId,postId,value,current){ if (!fileList[i].name.match(/.jpg|.gif|.png|.jpeg|.bmp/i)) { return window.alert("图片格式不正确") } + var index1 = layer.load(2); formData.append("file", fileList[i]) } formData.append("entityType",entityType); @@ -237,7 +242,6 @@ function replyClick(entityType,id,entityId,postId,value,current){ contentType: false, // 告诉jQuery不要去设置Content-Type请求头 success:function (data) { $(".repay-reload").html($(data).html()); - //遍历class进行分别处理 $(".mt_m-2").each(function () { //将遍历到的类赋给li @@ -252,6 +256,9 @@ function replyClick(entityType,id,entityId,postId,value,current){ var m = replace_em(li.text()) li.html(m); }) + if (index1!=null){ + layer.close(index1); + } var ele = document.getElementById("huifu-frame-"+value); //判断元素是否出现了滚动条 if(ele.scrollHeight > ele.clientHeight) { @@ -341,6 +348,7 @@ function replyCommentClick(entityType,entityId,targetId,postId,contentId,value,c if (!fileList[i].name.match(/.jpg|.gif|.png|.jpeg|.bmp/i)) { return window.alert("图片格式不正确") } + var index1 = layer.load(2); formData.append("file", fileList[i]) } formData.append("entityType",entityType); @@ -370,6 +378,9 @@ function replyCommentClick(entityType,entityId,targetId,postId,contentId,value,c var m = replace_em(li.text()) li.html(m); }) + if (index1!=null){ + layer.close(index1); + } var ele = document.getElementById(value); //判断元素是否出现了滚动条 if(ele.scrollHeight > ele.clientHeight) { diff --git a/src/main/resources/static/js/jquery.qqFace.js b/src/main/resources/static/js/jquery.qqFace.js index cac8e7fa4b23309eb71b44c98b826014e26ad6be..9de83d4063a98f8620e6fba5a8b375a8e5272e2c 100644 --- a/src/main/resources/static/js/jquery.qqFace.js +++ b/src/main/resources/static/js/jquery.qqFace.js @@ -13,10 +13,10 @@ var path = option.path; var tip = option.tip; - if(assign.length<=0){ - alert('缺少表情赋值对象。'); - return false; - } + // if(assign.length<=0){ + // alert('缺少表情赋值对象。'); + // return false; + // } $(this).click(function(e){ var strFace, labFace; diff --git a/src/main/resources/static/js/profile.js b/src/main/resources/static/js/profile.js index 31efb86be9516edc632d27772dfbb0620171aa72..84a630880e768af8a8df4255554570b3a9af73c0 100644 --- a/src/main/resources/static/js/profile.js +++ b/src/main/resources/static/js/profile.js @@ -12,7 +12,8 @@ function follow() { function(data) { data = $.parseJSON(data); if(data.code == 0) { - window.location.reload(); + $(btn).text("已关注").removeClass("btn-info").addClass("btn-secondary"); + //window.location.reload(); } else { alert(data.msg); } @@ -27,7 +28,7 @@ function follow() { function(data) { data = $.parseJSON(data); if(data.code == 0) { - window.location.reload(); + $(btn).text("关注TA").removeClass("btn-secondary").addClass("btn-info"); } else { alert(data.msg); } diff --git a/src/main/resources/templates/error/404.html b/src/main/resources/templates/error/404.html index 35120f5b7c283280d244cede365af2236564d32b..dd105833a865feb1391149a713b7d281f8c09f74 100644 --- a/src/main/resources/templates/error/404.html +++ b/src/main/resources/templates/error/404.html @@ -60,8 +60,8 @@
-
- +
+
diff --git a/src/main/resources/templates/error/500.html b/src/main/resources/templates/error/500.html index 47ad5a6967cd37d936d57b3e4b68a2d8d7661802..a034ef6f3da81d6c48846cc49623f103e9048476 100644 --- a/src/main/resources/templates/error/500.html +++ b/src/main/resources/templates/error/500.html @@ -7,6 +7,8 @@ 唠嗑网-500 +
@@ -60,8 +62,9 @@
-
- + +
+
diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 7052278ce71fb502d72393b0228d75f8ab1a76a4..29c1ab25d16f7854524cc00c43447770c5fd8589 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -43,8 +43,13 @@
- 😀 - +
+ + 😀 + + + +
@@ -92,7 +97,7 @@
+
@@ -151,10 +157,7 @@ 置顶 精华 -
- - -
+
寒江雪 发布于 2019-04-15 15:32:18
    @@ -168,7 +171,6 @@
+
diff --git a/src/main/resources/templates/site/discuss-detail.html b/src/main/resources/templates/site/discuss-detail.html index c15726c34b4e0de47f208a1d89749ea755574c30..8bfb3415813b90d516d287e4453360816f6a6505 100644 --- a/src/main/resources/templates/site/discuss-detail.html +++ b/src/main/resources/templates/site/discuss-detail.html @@ -7,6 +7,7 @@ + @@ -126,7 +127,7 @@
30条回帖
@@ -156,7 +157,7 @@ 发布于 2019-04-15 15:32:18
@@ -208,8 +209,8 @@ 👍🏻 点赞(1) -
  • |
  • -
  • 💬 回复
  • +
  • |
  • +
  • 💬 回复
  • @@ -219,7 +220,7 @@
    - + @@ -235,24 +236,14 @@
    -
    -
    +

    @@ -343,7 +334,7 @@

    - + @@ -352,47 +343,45 @@ diff --git a/src/test/java/com/test/community/ElasticsearchTests.java b/src/test/java/com/test/community/ElasticsearchTests.java index 29ec67279420a53bc93fd83bb09e9d22ed90effe..6d6c101f84fbae228bd6cd7e12a551f14d50b2dc 100644 --- a/src/test/java/com/test/community/ElasticsearchTests.java +++ b/src/test/java/com/test/community/ElasticsearchTests.java @@ -144,9 +144,10 @@ public class ElasticsearchTests { // 删除一条(多条)数据 @Test public void testDelete() { - discussPostRepository.delete(discussPostMapper.selectDiscussPostById(216)); - discussPostRepository.delete(discussPostMapper.selectDiscussPostById(217)); - discussPostRepository.delete(discussPostMapper.selectDiscussPostById(324)); + userRepository.delete(userMapper.selectById(237)); +// discussPostRepository.delete(discussPostMapper.selectDiscussPostById(216)); +// discussPostRepository.delete(discussPostMapper.selectDiscussPostById(217)); +// discussPostRepository.delete(discussPostMapper.selectDiscussPostById(324)); //discussPostRepository.deleteAll(); } diff --git a/src/test/java/com/test/community/MailTests.java b/src/test/java/com/test/community/MailTests.java index d8888c18a834c81aa42d910c60737bfd94676be6..a2130fe00161639c60c99079d4b117a6a2b76a47 100644 --- a/src/test/java/com/test/community/MailTests.java +++ b/src/test/java/com/test/community/MailTests.java @@ -20,19 +20,19 @@ public class MailTests { @Autowired private TemplateEngine templateEngine; -// @Test -// public void testTextMail(){ -// mailClient.sendMail("1173998166@qq.com","项目","欢迎"); -// } -// -// @Test -// public void testHtmlMail(){ -// Context context = new Context(); -// context.setVariable("username","sunday"); -// -// String content = templateEngine.process("/mail/demo",context); -// System.out.println(context); -// -// mailClient.sendMail("1173998166@qq.com","HTML", content); -// } + @Test + public void testTextMail(){ + mailClient.sendMail("1173998166@qq.com","项目","欢迎"); + } + + @Test + public void testHtmlMail(){ + Context context = new Context(); + context.setVariable("username","sunday"); + + String content = templateEngine.process("/mail/demo",context); + System.out.println(context); + + mailClient.sendMail("1173998166@qq.com","HTML", content); + } }