diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/ActSummaryContentDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/ActSummaryContentDTO.java index eca0cc8fc2..1696ac3555 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/ActSummaryContentDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/ActSummaryContentDTO.java @@ -17,9 +17,10 @@ package com.epmet.resi.group.dto.act; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; /** @@ -43,6 +44,11 @@ public class ActSummaryContentDTO implements Serializable { */ private String customerId; + /** + * act_summary.id + */ + private String actSummaryId; + /** * group_act_info.id */ diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/form/ActSummaryDetailFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/form/ActSummaryDetailFormDTO.java new file mode 100644 index 0000000000..2bab9daf98 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/form/ActSummaryDetailFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.resi.group.dto.act.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 014、查看活动总结详情 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/21 14:14 + */ +@Data +public class ActSummaryDetailFormDTO implements Serializable { + private static final long serialVersionUID = 3937952227893070145L; + + public interface AddUserInternalGroup { + } + @NotBlank(message = "groupActId不能为空", groups = AddUserInternalGroup.class) + private String groupActId; + + /** + * 当前用户id + */ + @NotBlank(message = "tokenDto获取userId为空", groups = ActReadViewFormDTO.AddUserInternalGroup.class) + private String userId; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/form/ActSummaryFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/form/ActSummaryFormDTO.java new file mode 100644 index 0000000000..a48606b4df --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/form/ActSummaryFormDTO.java @@ -0,0 +1,42 @@ +package com.epmet.resi.group.dto.act.form; + +import com.epmet.resi.group.dto.topic.form.FileDTO; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * 013、提交活动总结 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/21 12:58 + */ +@Data +public class ActSummaryFormDTO implements Serializable { + private static final long serialVersionUID = 6068480003626532767L; + + public interface AddUserInternalGroup { + } + @NotBlank(message = "groupActId不能为空", groups = AddUserInternalGroup.class) + private String groupActId; + + /** + * 补充内容,限制1000字, + */ + private List textList; + + /** + * 补充图片列表 + */ + private List imgList; + + + /** + * 当前用户id + */ + @NotBlank(message = "tokenDto获取userId为空", groups = AddUserInternalGroup.class) + private String userId; + +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/form/PublishGroupActFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/form/PublishGroupActFormDTO.java index bef66ba14b..276bcebd0f 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/form/PublishGroupActFormDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/form/PublishGroupActFormDTO.java @@ -1,6 +1,7 @@ package com.epmet.resi.group.dto.act.form; import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import com.epmet.resi.group.dto.topic.form.FileDTO; import lombok.Data; import org.hibernate.validator.constraints.Length; @@ -98,7 +99,7 @@ public class PublishGroupActFormDTO implements Serializable { /** * 图片列表,最多3张 */ - private List imgList; + private List imgList; private String gridId; } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/result/ActSummaryDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/result/ActSummaryDetailResultDTO.java new file mode 100644 index 0000000000..6d1887208e --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/result/ActSummaryDetailResultDTO.java @@ -0,0 +1,33 @@ +package com.epmet.resi.group.dto.act.result; + +import lombok.Data; + +import java.util.List; + +/** + * 014、查看活动总结详情 + * + * @author yinzuomei@elink-cn.com + * @date 2021/4/21 14:17 + */ +@Data +public class ActSummaryDetailResultDTO extends ActSummaryTemplateResultDTO{ + private static final long serialVersionUID = -6918035750154831223L; + + + /** + * 活动总结id + */ + private String actSummaryId; + + /** + * 补充内容列表 + */ + private List extraTextList; + + /** + * 补充图片列表 + */ + private List extraImgList; + +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/result/ActSummaryTemplateResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/result/ActSummaryTemplateResultDTO.java index dbfa28b178..5f3a176fa0 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/result/ActSummaryTemplateResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/act/result/ActSummaryTemplateResultDTO.java @@ -1,5 +1,6 @@ package com.epmet.resi.group.dto.act.result; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; @@ -14,16 +15,65 @@ import java.util.List; */ @Data public class ActSummaryTemplateResultDTO implements Serializable { + + /** + * 小组活动id + */ private String groupActId; + + /** + * 活动标题 + */ private String title; + + /** + * 标签名称: 支部建设-三会一课 + */ private String allCategoryName; + + /** + * 活动时间:yyyy-MM-dd HH:mm + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") private Date startTime; + + /** + * 活动地点 + */ private String address; + + /** + * 应参加人数 + */ private Integer shouldAttend; + + /** + * 已签到人数 + */ private Integer signedInNum; + + /** + * 签到人员名单,、分隔开 + */ private String signedInUsers; + + /** + * 活动内容 + */ private List textList; + + /** + * 活动图片 + */ private List imgList; + + /** + * 是否填写总结:1:已填写;0:未填写 + */ private Integer summaryFlag; + + /** + * 签到用户id + */ private List signedInUserIds; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/controller/ActSummaryController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/controller/ActSummaryController.java index 01bcde1ed5..dd12563508 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/controller/ActSummaryController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/controller/ActSummaryController.java @@ -17,10 +17,16 @@ package com.epmet.modules.act.controller; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.modules.act.service.ActSummaryService; +import com.epmet.resi.group.dto.act.GroupActIdDTO; +import com.epmet.resi.group.dto.act.form.ActSummaryDetailFormDTO; +import com.epmet.resi.group.dto.act.form.ActSummaryFormDTO; import com.epmet.resi.group.dto.act.form.InitTemplateFormDTO; +import com.epmet.resi.group.dto.act.result.ActSummaryDetailResultDTO; import com.epmet.resi.group.dto.act.result.ActSummaryTemplateResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -54,4 +60,33 @@ public class ActSummaryController { ValidatorUtils.validateEntity(formDTO, InitTemplateFormDTO.AddUserInternalGroup.class); return new Result().ok(actSummaryService.initTemplate(formDTO)); } + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @description 013、提交活动总结 + * @Date 2021/4/21 13:06 + **/ + @PostMapping("submit") + public Result submitActSummary(@LoginUser TokenDto tokenDto, @RequestBody ActSummaryFormDTO formDTO) { + formDTO.setUserId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(formDTO, ActSummaryFormDTO.AddUserInternalGroup.class); + return new Result().ok(actSummaryService.submitActSummary(formDTO)); + } + + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @description 014、查看活动总结详情 + * @Date 2021/4/21 14:20 + **/ + @PostMapping("detail") + public Result queryActSummaryDetail(@LoginUser TokenDto tokenDto,@RequestBody ActSummaryDetailFormDTO formDTO) { + formDTO.setUserId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(formDTO, ActSummaryFormDTO.AddUserInternalGroup.class); + return new Result().ok(actSummaryService.queryActSummaryDetail(formDTO)); + } } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/dao/ActSummaryContentDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/dao/ActSummaryContentDao.java index 146c31c225..78e8b2cb68 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/dao/ActSummaryContentDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/dao/ActSummaryContentDao.java @@ -20,6 +20,9 @@ package com.epmet.modules.act.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.act.entity.ActSummaryContentEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 活动总结内容 @@ -29,5 +32,16 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ActSummaryContentDao extends BaseDao { - + + /** + * 查询总结补充内容 + * + * @param groupActId + * @param actSummaryId + * @param contentType + * @return + */ + List selectContentList(@Param("actSummaryId")String actSummaryId, + @Param("groupActId")String groupActId, + @Param("contentType")String contentType); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/dao/ActSummaryDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/dao/ActSummaryDao.java index 315c124d3f..51478340a0 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/dao/ActSummaryDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/dao/ActSummaryDao.java @@ -20,6 +20,7 @@ package com.epmet.modules.act.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.act.entity.ActSummaryEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 活动总结 @@ -29,5 +30,7 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ActSummaryDao extends BaseDao { - + + + ActSummaryEntity selectUserSummary(@Param("groupActId")String groupActId, @Param("userId")String userId); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/entity/ActSummaryContentEntity.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/entity/ActSummaryContentEntity.java index 74855472f6..98c19e2d02 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/entity/ActSummaryContentEntity.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/entity/ActSummaryContentEntity.java @@ -40,6 +40,11 @@ public class ActSummaryContentEntity extends BaseEpmetEntity { */ private String customerId; + /** + * act_summary.id + */ + private String actSummaryId; + /** * group_act_info.id */ diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/ActSummaryService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/ActSummaryService.java index e2665a6a8a..815ebad816 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/ActSummaryService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/ActSummaryService.java @@ -19,7 +19,11 @@ package com.epmet.modules.act.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.modules.act.entity.ActSummaryEntity; +import com.epmet.resi.group.dto.act.GroupActIdDTO; +import com.epmet.resi.group.dto.act.form.ActSummaryDetailFormDTO; +import com.epmet.resi.group.dto.act.form.ActSummaryFormDTO; import com.epmet.resi.group.dto.act.form.InitTemplateFormDTO; +import com.epmet.resi.group.dto.act.result.ActSummaryDetailResultDTO; import com.epmet.resi.group.dto.act.result.ActSummaryTemplateResultDTO; /** @@ -37,4 +41,22 @@ public interface ActSummaryService extends BaseService { * @return com.epmet.resi.group.dto.act.result.ActSummaryTemplateResultDTO */ ActSummaryTemplateResultDTO initTemplate(InitTemplateFormDTO formDTO); + + + /** + * 013、提交活动总结 + * + * @param formDTO + * @return com.epmet.resi.group.dto.act.GroupActIdDTO + */ + GroupActIdDTO submitActSummary(ActSummaryFormDTO formDTO); + + + /** + * 014、查看活动总结详情 + * + * @param formDTO + * @return com.epmet.resi.group.dto.act.result.ActSummaryDetailResultDTO + */ + ActSummaryDetailResultDTO queryActSummaryDetail(ActSummaryDetailFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/ActSummaryServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/ActSummaryServiceImpl.java index ab3ee238d0..e5537fe340 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/ActSummaryServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/ActSummaryServiceImpl.java @@ -17,30 +17,48 @@ package com.epmet.modules.act.service.impl; +import com.alibaba.fastjson.JSON; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.scan.param.ImgScanParamDTO; +import com.epmet.commons.tools.scan.param.ImgTaskDTO; +import com.epmet.commons.tools.scan.param.TextScanParamDTO; +import com.epmet.commons.tools.scan.param.TextTaskDTO; +import com.epmet.commons.tools.scan.result.SyncScanResult; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.feign.EpmetUserOpenFeignClient; -import com.epmet.modules.act.dao.ActSignInRecordDao; -import com.epmet.modules.act.dao.ActSummaryDao; -import com.epmet.modules.act.dao.GroupActContentDao; -import com.epmet.modules.act.dao.GroupActInfoDao; +import com.epmet.modules.act.dao.*; +import com.epmet.modules.act.entity.ActSummaryContentEntity; import com.epmet.modules.act.entity.ActSummaryEntity; import com.epmet.modules.act.entity.GroupActInfoEntity; import com.epmet.modules.act.service.ActSummaryService; import com.epmet.modules.constant.GroupActConstant; +import com.epmet.modules.member.service.ResiGroupMemberService; +import com.epmet.resi.group.dto.act.GroupActIdDTO; +import com.epmet.resi.group.dto.act.form.ActSummaryDetailFormDTO; +import com.epmet.resi.group.dto.act.form.ActSummaryFormDTO; import com.epmet.resi.group.dto.act.form.InitTemplateFormDTO; +import com.epmet.resi.group.dto.act.result.ActSummaryDetailResultDTO; import com.epmet.resi.group.dto.act.result.ActSummaryTemplateResultDTO; +import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; +import com.epmet.resi.group.dto.topic.form.FileDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; +import java.util.UUID; /** * 活动总结 @@ -51,6 +69,13 @@ import java.util.List; @Slf4j @Service public class ActSummaryServiceImpl extends BaseServiceImpl implements ActSummaryService { + @Value("${openapi.scan.server.url}") + private String scanApiUrl; + @Value("${openapi.scan.method.textSyncScan}") + private String textSyncScanMethod; + @Value("${openapi.scan.method.imgSyncScan}") + private String imgSyncScanMethod; + @Autowired private GroupActInfoDao groupActInfoDao; @Autowired @@ -59,6 +84,11 @@ public class ActSummaryServiceImpl extends BaseServiceImpl signedInUserIds=actSignInRecordDao.selectUserIds(formDTO.getGroupActId()); + resultDTO.setImgList(groupActContentDao.selectContentList(formDTO.getGroupActId(), GroupActConstant.IMG)); + + //签到人员姓名集合 + List signedInUserIds = actSignInRecordDao.selectUserIds(formDTO.getGroupActId()); resultDTO.setSignedInUserIds(signedInUserIds); - if(CollectionUtils.isNotEmpty(signedInUserIds)){ - Result> result = epmetUserOpenFeignClient.queryUserBaseInfo(signedInUserIds); - if (!result.success()) { + List signedInUsers = querySignedInUsers(signedInUserIds); + resultDTO.setSignedInUsers(StringUtils.strip(signedInUsers.toString(), "[]").replace(", ", StrConstant.COMMA_ZH)); + + resultDTO.setGroupActId(formDTO.getGroupActId()); + return resultDTO; + } + + + /** + * 013、提交活动总结 + * + * @param formDTO + * @return com.epmet.resi.group.dto.act.GroupActIdDTO + */ + @Transactional(rollbackFor = Exception.class) + @Override + public GroupActIdDTO submitActSummary(ActSummaryFormDTO formDTO) { + GroupActIdDTO result = new GroupActIdDTO(); + result.setGroupActId(formDTO.getGroupActId()); + //已经提交,无需重复提交 + GroupActInfoEntity groupActInfoEntity = groupActInfoDao.selectById(formDTO.getGroupActId()); + if (null == groupActInfoEntity) { + throw new RenException(String.format("根据groupActId:%s,查询活动信息为null", formDTO.getGroupActId())); + } + if (groupActInfoEntity.getSummaryFlag() == NumConstant.ONE) { + log.warn("已填写活动总结,无需重复提交"); + return result; + } + checkActSummaryFormDTO(formDTO, groupActInfoEntity.getGroupId()); + + + //插入总结主表 + ActSummaryEntity insertEntity = new ActSummaryEntity(); + insertEntity.setCustomerId(groupActInfoEntity.getCustomerId()); + insertEntity.setGroupActId(formDTO.getGroupActId()); + insertEntity.setShouldAttend(groupActInfoEntity.getShouldAttend()); + insertEntity.setUserId(formDTO.getUserId()); + + //签到人员姓名集合 + List signedInUserIds = actSignInRecordDao.selectUserIds(formDTO.getGroupActId()); + List signedInUsers = querySignedInUsers(signedInUserIds); + insertEntity.setSignedInUsers(StringUtils.strip(signedInUsers.toString(), "[]").replace(", ", StrConstant.COMMA_ZH)); + insertEntity.setSignedInNum(signedInUsers.size()); + baseDao.insert(insertEntity); + //插入补充内容表 + int textNum = NumConstant.ONE; + for (String content : formDTO.getTextList()) { + ActSummaryContentEntity insert = new ActSummaryContentEntity(); + insert.setCustomerId(groupActInfoEntity.getCustomerId()); + insert.setContent(content); + insert.setContentType(GroupActConstant.TEXT); + insert.setGroupActId(groupActInfoEntity.getId()); + insert.setSort(textNum); + insert.setActSummaryId(insertEntity.getId()); + actSummaryContentDao.insert(insert); + textNum++; + } + int imgNum = NumConstant.ONE; + for (FileDTO fileDTO : formDTO.getImgList()) { + ActSummaryContentEntity insert = new ActSummaryContentEntity(); + insert.setCustomerId(groupActInfoEntity.getCustomerId()); + insert.setContent(fileDTO.getUrl()); + insert.setContentType(GroupActConstant.IMG); + insert.setGroupActId(groupActInfoEntity.getId()); + insert.setSort(imgNum); + insert.setActSummaryId(insertEntity.getId()); + actSummaryContentDao.insert(insert); + imgNum++; + } + //更新总结标识 + groupActInfoEntity.setSummaryFlag(NumConstant.ONE); + groupActInfoDao.updateById(groupActInfoEntity); + return result; + } + + + private List querySignedInUsers(List signedInUserIds) { + List nameList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(signedInUserIds)) { + Result> userResult = epmetUserOpenFeignClient.queryUserBaseInfo(signedInUserIds); + if (!userResult.success()) { throw new RenException("调用user服务,获取用户基础数据失败"); } - result.getData().forEach(userBaseInfo->{ - resultDTO.setSignedInUsers(userBaseInfo.getSurname().concat(userBaseInfo.getName())); + for (String signedInUserId : signedInUserIds) { + for (UserBaseInfoResultDTO userBaseInfo : userResult.getData()) { + if (signedInUserId.equals(userBaseInfo.getUserId())) { + nameList.add(userBaseInfo.getSurname().concat(userBaseInfo.getName())); + break; + } + } + } + } + return nameList; + } + + private void checkActSummaryFormDTO(ActSummaryFormDTO formDTO, String groupId) { + //只有组长才可以填写活动总结 + ResiGroupMemberDTO groupMemberDTO = resiGroupMemberService.getLeaderMember(groupId); + if (!formDTO.getUserId().equals(groupMemberDTO.getCustomerUserId())) { + throw new RenException(EpmetErrorCode.GROUP_LEADER_CAN_EDIT_GROUP_INFO.getCode(), EpmetErrorCode.GROUP_LEADER_CAN_EDIT_GROUP_INFO.getMsg()); + } + + if (!org.springframework.util.CollectionUtils.isEmpty(formDTO.getTextList())) { + //活动文本内容,目前只有一段,限制1000字 + if (formDTO.getTextList().get(NumConstant.ZERO).length() > 1000) { + throw new RenException(EpmetErrorCode.GROUP_ACT_CONTENT_MAX.getCode(), EpmetErrorCode.GROUP_ACT_CONTENT_MAX.getMsg()); + } + } + if (!org.springframework.util.CollectionUtils.isEmpty(formDTO.getImgList())) { + //最多选择3张图片 + if (formDTO.getImgList().size() > NumConstant.THREE) { + throw new RenException(EpmetErrorCode.GROUP_ACT_IMG_MAX.getCode(), EpmetErrorCode.GROUP_ACT_IMG_MAX.getMsg()); + } + } + + //内容审核 + //补充内容 + if (!org.springframework.util.CollectionUtils.isEmpty(formDTO.getTextList())) { + TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); + formDTO.getTextList().forEach(content -> { + TextTaskDTO taskDTO = new TextTaskDTO(); + taskDTO.setContent(content); + taskDTO.setDataId(UUID.randomUUID().toString().replace("-", "")); + textScanParamDTO.getTasks().add(taskDTO); + }); + Result textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); + if (!textSyncScanResult.success()) { + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + if (!textSyncScanResult.getData().isAllPass()) { + log.warn(String.format("补充内容审核失败【%s】", JSON.toJSONString(formDTO.getTextList()))); + throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode(), EpmetErrorCode.TEXT_SCAN_FAILED.getMsg()); + } + } + } + //补充图片 + if (!org.springframework.util.CollectionUtils.isEmpty(formDTO.getImgList())) { + ImgScanParamDTO imgScanParamDTO = new ImgScanParamDTO(); + formDTO.getImgList().forEach(fileDTO -> { + ImgTaskDTO task = new ImgTaskDTO(); + task.setDataId(UUID.randomUUID().toString().replace("-", "")); + task.setUrl(fileDTO.getUrl()); + imgScanParamDTO.getTasks().add(task); }); - }else{ - resultDTO.setSignedInUserIds(new ArrayList<>()); - resultDTO.setSignedInUsers(StrConstant.EPMETY_STR); + Result imgScanResult = ScanContentUtils.imgSyncScan(scanApiUrl.concat(imgSyncScanMethod), imgScanParamDTO); + if (!imgScanResult.success()) { + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + if (!imgScanResult.getData().isAllPass()) { + log.warn("补充图片审核失败"); + throw new RenException(EpmetErrorCode.IMG_SCAN_FAILED.getCode(), EpmetErrorCode.IMG_SCAN_FAILED.getMsg()); + } + } } + } + + + /** + * 014、查看活动总结详情 + * + * @param formDTO + * @return com.epmet.resi.group.dto.act.result.ActSummaryDetailResultDTO + */ + @Override + public ActSummaryDetailResultDTO queryActSummaryDetail(ActSummaryDetailFormDTO formDTO) { + + GroupActInfoEntity groupActInfoEntity = groupActInfoDao.selectById(formDTO.getGroupActId()); + if (null == groupActInfoEntity) { + throw new RenException(String.format("根据groupActId:%s,查询活动信息为null", formDTO.getGroupActId())); + } + ActSummaryEntity actSummaryEntity = baseDao.selectUserSummary(formDTO.getGroupActId(),formDTO.getUserId()); + if (null == actSummaryEntity || groupActInfoEntity.getSummaryFlag() == NumConstant.ZERO) { + throw new RenException(String.format("根据groupActId:%s,查询活动总结信息为null", formDTO.getGroupActId())); + } + ActSummaryDetailResultDTO resultDTO = ConvertUtils.sourceToTarget(groupActInfoEntity, ActSummaryDetailResultDTO.class); + resultDTO.setTextList(groupActContentDao.selectContentList(formDTO.getGroupActId(), GroupActConstant.TEXT)); + resultDTO.setImgList(groupActContentDao.selectContentList(formDTO.getGroupActId(), GroupActConstant.IMG)); + resultDTO.setActSummaryId(actSummaryEntity.getId()); + resultDTO.setSignedInUsers(actSummaryEntity.getSignedInUsers()); + //按签到顺序 + resultDTO.setSignedInUserIds(actSignInRecordDao.selectUserIds(formDTO.getGroupActId())); + + resultDTO.setGroupActId(formDTO.getGroupActId()); + resultDTO.setExtraImgList(actSummaryContentDao.selectContentList(actSummaryEntity.getId(), formDTO.getGroupActId(), GroupActConstant.IMG)); + resultDTO.setExtraTextList(actSummaryContentDao.selectContentList(actSummaryEntity.getId(), formDTO.getGroupActId(), GroupActConstant.TEXT)); return resultDTO; } } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/GroupActInfoServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/GroupActInfoServiceImpl.java index 6b8c29a263..d8feb925e4 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/GroupActInfoServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/act/service/impl/GroupActInfoServiceImpl.java @@ -66,6 +66,7 @@ import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.invitation.InvitationRecordDTO; import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.dto.notice.result.NoticeReadListResultDTO; +import com.epmet.resi.group.dto.topic.form.FileDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -308,7 +309,7 @@ public class GroupActInfoServiceImpl extends BaseServiceImpl textList, List imgList) { + private void scanActContent(String title, List textList, List imgList) { //活动标题 if (StringUtils.isNotBlank(title)) { TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); @@ -348,10 +349,10 @@ public class GroupActInfoServiceImpl extends BaseServiceImpl { + imgList.forEach(fileDTO -> { ImgTaskDTO task = new ImgTaskDTO(); task.setDataId(UUID.randomUUID().toString().replace("-", "")); - task.setUrl(url); + task.setUrl(fileDTO.getUrl()); imgScanParamDTO.getTasks().add(task); }); Result imgScanResult = ScanContentUtils.imgSyncScan(scanApiUrl.concat(imgSyncScanMethod), imgScanParamDTO); @@ -375,13 +376,13 @@ public class GroupActInfoServiceImpl extends BaseServiceImpl constructImg(String groupActId, String customerId, List imgList) { + private List constructImg(String groupActId, String customerId, List imgList) { List list = new ArrayList<>(); int imgSort = NumConstant.ONE; - for (String img : imgList) { + for (FileDTO img : imgList) { GroupActContentEntity entity = new GroupActContentEntity(); entity.setGroupActId(groupActId); - entity.setContent(img); + entity.setContent(img.getUrl()); entity.setContentType(GroupActConstant.IMG); entity.setCustomerId(customerId); entity.setSort(imgSort); diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/act/ActSummaryContentDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/act/ActSummaryContentDao.xml index 1ec609cbdb..50ca8f4ece 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/act/ActSummaryContentDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/act/ActSummaryContentDao.xml @@ -3,6 +3,17 @@ - - + \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/act/ActSummaryDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/act/ActSummaryDao.xml index 936bc6df1b..3782a2104c 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/act/ActSummaryDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/act/ActSummaryDao.xml @@ -3,6 +3,14 @@ - + \ No newline at end of file