From 8f39456735a7c06d9646539ccee023bb010d5a17 Mon Sep 17 00:00:00 2001 From: wangchao Date: Wed, 8 Apr 2020 14:42:31 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=84=E4=BB=B6=E5=A2=9E=E5=8A=A0sort?= =?UTF-8?q?=EF=BC=8C=E5=8F=91=E5=B8=83=E8=AF=9D=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/tools/redis/RedisConfig.java | 1 - .../resi/group/constant/TopicConstant.java | 9 +++- .../entity/ResiTopicAttachmentEntity.java | 5 ++ .../service/impl/ResiTopicServiceImpl.java | 54 +++++++++++++++++-- .../epmet/modules/utils/ModuleConstant.java | 10 ++++ .../mapper/topic/ResiTopicAttachmentDao.xml | 12 ++++- .../resources/mapper/topic/ResiTopicDao.xml | 4 +- 7 files changed, 83 insertions(+), 12 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisConfig.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisConfig.java index 3baf36b696..0f148be1b6 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisConfig.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisConfig.java @@ -36,7 +36,6 @@ public class RedisConfig { redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueSerializer(new JsonRedisSerializer<>(Object.class)); redisTemplate.setConnectionFactory(factory); - return redisTemplate; } } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/TopicConstant.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/TopicConstant.java index 72797d60e6..3c09f65e7b 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/TopicConstant.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/TopicConstant.java @@ -59,7 +59,12 @@ public interface TopicConstant { String CREATED_DATE = "CREATED_TIME"; /** - * 构造queryWrapper 逻辑删除标识列名 + * 构造queryWrapper 小组Id * */ - String DEL_FLAG = "DEL_FLAG"; + String RESI_GROUP_ID = "RESI_GROUP_ID"; + + /** + * 构造queryWrapper 附件排序 + * */ + String SORT = "SORT"; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicAttachmentEntity.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicAttachmentEntity.java index 0585e594d6..16138229bf 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicAttachmentEntity.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicAttachmentEntity.java @@ -63,4 +63,9 @@ public class ResiTopicAttachmentEntity extends BaseEpmetEntity { */ private String attachmentUrl; + /** + * 排序字段,解决多张图片的createdTime相同时的排序问题 + * */ + private Integer sort; + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index 3c54ebb021..1f885ee12d 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.constant.FieldConstant; @@ -30,7 +31,9 @@ import com.epmet.dto.UserResiInfoDTO; import com.epmet.dto.form.UserResiInfoFormDTO; import com.epmet.modules.feign.EpmetUserFeignClient; import com.epmet.modules.group.dao.ResiGroupDao; +import com.epmet.modules.group.dao.ResiGroupStatisticalDao; import com.epmet.modules.group.entity.ResiGroupEntity; +import com.epmet.modules.group.entity.ResiGroupStatisticalEntity; import com.epmet.modules.member.dao.ResiGroupMemberDao; import com.epmet.modules.member.service.ResiGroupMemberService; import com.epmet.modules.topic.dao.ResiTopicAttachmentDao; @@ -54,14 +57,14 @@ import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO; import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 话题信息表 @@ -93,6 +96,15 @@ public class ResiTopicServiceImpl extends BaseServiceImpl redisTemplate; + @Override public PageData page(Map params) { IPage page = baseDao.selectPage( @@ -169,6 +181,8 @@ public class ResiTopicServiceImpl extends BaseServiceImpl TopicConstant.MAX_NUMBER_OF_CONTENT){ //内容超过最大限制 @@ -184,10 +198,13 @@ public class ResiTopicServiceImpl extends BaseServiceImpl 0){ ResiTopicAttachmentEntity attachment = new ResiTopicAttachmentEntity(); + Integer sort = 0; for(String url : resiTopicPublishFormDTO.getAttachmentList()){ attachment.setAttachmentUrl(url); attachment.setTopicId(topic.getId()); attachment.setCreatedBy(tokenDto.getUserId()); + attachment.setAttachmentFormat(url.substring(url.lastIndexOf("\\.") + 1).toLowerCase()); + attachment.setSort(sort++); resiTopicAttachmentDao.insertOne(attachment); } } @@ -199,6 +216,32 @@ public class ResiTopicServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>(); + wrapper.eq(TopicConstant.RESI_GROUP_ID,resiTopicPublishFormDTO.getGroupId()); + List statistical = resiGroupStatisticalDao.selectList(wrapper); + if(null != statistical && statistical.size() >= NumConstant.ONE){ + if(statistical.size() != NumConstant.ONE){ + return new Result().error(ModuleConstant.GROUP_STASTICAL_NOT_SINGLE); + }else{ + ResiGroupStatisticalEntity statistical2Update = new ResiGroupStatisticalEntity(); + statistical2Update.setId(statistical.get(NumConstant.ZERO).getId()); + statistical2Update.setTotalTopics(null == statistical.get(NumConstant.ZERO).getTotalTopics() ? NumConstant.ONE : statistical.get(NumConstant.ZERO).getTotalTopics() + NumConstant.ONE); + statistical2Update.setUpdatedBy(tokenDto.getUserId()); + statistical2Update.setUpdatedTime(currentTime); + resiGroupStatisticalDao.updateById(statistical2Update); + } + }else{ + return new Result().error(ModuleConstant.NO_SUCH_GROUP_STASTICAL_INFO); + } + + + //5.群组信息,更新latestTopicPublishDate字段 + ResiGroupEntity group2Update = new ResiGroupEntity(); + group2Update.setId(resiTopicPublishFormDTO.getGroupId()); + group2Update.setLatestTopicPublishDate(currentTime); + resiGroupDao.updateById(group2Update); return new Result(); } @@ -212,6 +255,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl> getLatestTopics(TokenDto tokenDto, String groupId) { + if (null == tokenDto) { return new Result().error(ModuleConstant.USER_NOT_NULL); } @@ -409,7 +453,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>(); wrapper.eq(TopicConstant.TOPIC_ID,topicId); //wrapper.eq(TopicConstant.DEL_FLAG,NumConstant.ZERO_STR); - wrapper.orderByDesc(TopicConstant.CREATED_DATE); + wrapper.orderByAsc(TopicConstant.SORT); List attachments = resiTopicAttachmentDao.selectList(wrapper); List attachmentUrls = new ArrayList<>(); for(ResiTopicAttachmentEntity attachment : attachments){ diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java index e5adb0fbbf..95d28cff53 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java @@ -137,4 +137,14 @@ public interface ModuleConstant extends Constant { * 话题Id集合不能为空 * */ String TOPIC_ID_LIST_NOT_NULL = "话题Id集合不能为空"; + + /** + * 一个组找到多个统计信息 + * */ + String GROUP_STASTICAL_NOT_SINGLE = "一个组找到多个统计信息"; + + /** + * 未找到对应的小组统计信息 + * */ + String NO_SUCH_GROUP_STASTICAL_INFO = "未找到对应的小组统计信息"; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicAttachmentDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicAttachmentDao.xml index 4dc9b8cfda..56744b02de 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicAttachmentDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicAttachmentDao.xml @@ -27,6 +27,9 @@ attachment_url, + + sort, + created_by, @@ -53,6 +56,9 @@ #{attachmentUrl}, + + #{sort}, + #{createdBy}, @@ -67,7 +73,7 @@ - insert into user + insert into resi_topic_attachment ( id, topic_id, @@ -77,6 +83,7 @@ attachment_url, del_flag, revision, + sort, created_by, created_time, updated_by, @@ -92,8 +99,9 @@ #{item.attachmentUrl}, #{item.delFlag}, #{item.revision}, + #{item.sort}, #{item.createdBy}, - #{item.createdTime}, + now(), #{item.updatedBy}, #{item.updatedTime} ) diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml index 41d2df40f5..6d13caa557 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml @@ -112,7 +112,7 @@ SELECT attachment.TOPIC_ID AS attachmentTopicId, attachment.ATTACHMENT_URL as firstPhoto, - MIN(attachment.CREATED_TIME) AS ATTACHMENT_CREATED_TIME + MIN(attachment.SORD) FROM RESI_TOPIC_ATTACHMENT attachment WHERE @@ -151,7 +151,7 @@ SELECT attachment.TOPIC_ID AS attachmentTopicId, attachment.ATTACHMENT_URL as firstPhoto, - MIN(attachment.CREATED_TIME) AS ATTACHMENT_CREATED_TIME + MIN(attachment.SORT) FROM RESI_TOPIC_ATTACHMENT attachment WHERE