From 56c871faad23323e5eaef116d3030179897ab1d3 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 18 Nov 2020 13:35:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=AB=AF-=E5=AF=B9=E8=AE=AE?= =?UTF-8?q?=E9=A2=98=E5=8F=91=E8=A1=A8=E5=BB=BA=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/SaveIssueSuggestionResultDTO.java | 22 ++++ .../epmet/feign/GovIssueOpenFeignClient.java | 16 ++- .../GovIssueOpenFeignClientFallBack.java | 12 ++ .../controller/IssueSuggestionController.java | 61 +++------ .../epmet/service/IssueSuggestionService.java | 73 ++--------- .../impl/IssueSuggestionServiceImpl.java | 122 +++++++++--------- .../dto/form/PublishSuggestionFormDTO.java | 34 +++++ .../result/PublishSuggestionResultDTO.java | 26 ++++ .../com/epmet/controller/IssueController.java | 14 +- .../java/com/epmet/service/IssueService.java | 9 +- .../epmet/service/impl/IssueServiceImpl.java | 20 +++ 11 files changed, 232 insertions(+), 177 deletions(-) create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/SaveIssueSuggestionResultDTO.java create mode 100644 epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/PublishSuggestionFormDTO.java create mode 100644 epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/PublishSuggestionResultDTO.java diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/SaveIssueSuggestionResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/SaveIssueSuggestionResultDTO.java new file mode 100644 index 0000000000..a3c4ba85b3 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/SaveIssueSuggestionResultDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 保存居民端用户对议题的建议或意见 返回议题id, 建议id + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 13:14 + */ +@Data +public class SaveIssueSuggestionResultDTO implements Serializable { + private static final long serialVersionUID = 8199657776260756910L; + private String issueId; + /** + * issue_suggestion表主键 + */ + private String suggestionId; + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index 50b8eef39f..02948c8b7a 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -4,6 +4,7 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IssueSuggestionDTO; import com.epmet.dto.form.UserIssueSuggestionFormDTO; +import com.epmet.dto.result.SaveIssueSuggestionResultDTO; import com.epmet.feign.fallback.GovIssueOpenFeignClientFallBack; import com.epmet.resi.group.dto.group.form.AllIssueFormDTO; import com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO; @@ -57,9 +58,18 @@ public interface GovIssueOpenFeignClient { /** * @param formDTO * @author yinzuomei - * @description + * @description 查询用户对于某个议题的想法 返回一条记录 * @Date 2020/11/18 10:17 **/ - @PostMapping(value = "/gov/issue/issuesuggestion/queryuserissuesuggestion",consumes = MediaType.APPLICATION_JSON_VALUE) - Result queryIssueSuggestion(@RequestBody UserIssueSuggestionFormDTO formDTO); + @PostMapping(value = "/gov/issue/issuesuggestion/queryuserissuesuggestion", consumes = MediaType.APPLICATION_JSON_VALUE) + Result queryIssueSuggestion(@RequestBody UserIssueSuggestionFormDTO formDTO); + + /** + * @param issueSuggestionDTO + * @author yinzuomei + * @description 保存居民端用户对议题的建议或意见 + * @Date 2020/11/18 13:24 + **/ + @PostMapping(value = "/gov/issue/issuesuggestion/save", consumes = MediaType.APPLICATION_JSON_VALUE) + Result saveIssueSuggestion(@RequestBody IssueSuggestionDTO issueSuggestionDTO); } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java index d8aea745c5..23253dc380 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IssueSuggestionDTO; import com.epmet.dto.form.UserIssueSuggestionFormDTO; +import com.epmet.dto.result.SaveIssueSuggestionResultDTO; import com.epmet.feign.GovIssueOpenFeignClient; import com.epmet.resi.group.dto.group.form.AllIssueFormDTO; import com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO; @@ -71,4 +72,15 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result queryIssueSuggestion(UserIssueSuggestionFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "queryIssueSuggestion", formDTO); } + + /** + * @param issueSuggestionDTO + * @author yinzuomei + * @description 保存居民端用户对议题的建议或意见 + * @Date 2020/11/18 13:24 + **/ + @Override + public Result saveIssueSuggestion(IssueSuggestionDTO issueSuggestionDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "saveIssueSuggestion", issueSuggestionDTO); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSuggestionController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSuggestionController.java index 401743eb81..5a5fcb06f7 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSuggestionController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSuggestionController.java @@ -17,20 +17,17 @@ package com.epmet.controller; -import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; -import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.commons.tools.validator.group.AddGroup; -import com.epmet.commons.tools.validator.group.DefaultGroup; -import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.IssueSuggestionDTO; import com.epmet.dto.form.UserIssueSuggestionFormDTO; +import com.epmet.dto.result.SaveIssueSuggestionResultDTO; import com.epmet.service.IssueSuggestionService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** @@ -46,42 +43,6 @@ public class IssueSuggestionController { @Autowired private IssueSuggestionService issueSuggestionService; - @GetMapping("page") - public Result> page(@RequestParam Map params){ - PageData page = issueSuggestionService.page(params); - return new Result>().ok(page); - } - - @GetMapping("{id}") - public Result get(@PathVariable("id") String id){ - IssueSuggestionDTO data = issueSuggestionService.get(id); - return new Result().ok(data); - } - - @PostMapping - public Result save(@RequestBody IssueSuggestionDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - issueSuggestionService.save(dto); - return new Result(); - } - - @PutMapping - public Result update(@RequestBody IssueSuggestionDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - issueSuggestionService.update(dto); - return new Result(); - } - - @DeleteMapping - public Result delete(@RequestBody String[] ids){ - //效验数据 - AssertUtils.isArrayEmpty(ids, "id"); - issueSuggestionService.delete(ids); - return new Result(); - } - /** * @param formDTO * @author yinzuomei @@ -94,4 +55,16 @@ public class IssueSuggestionController { IssueSuggestionDTO issueSuggestionDTO=issueSuggestionService.queryUserIssueSuggestion(formDTO); return new Result().ok(issueSuggestionDTO); } + + /** + * @param dto + * @author yinzuomei + * @description 保存居民端用户对议题的建议或意见 + * @Date 2020/11/18 13:15 + **/ + @PostMapping("save") + public Result saveIssueSuggestion(@RequestBody IssueSuggestionDTO dto) { + SaveIssueSuggestionResultDTO resultDTO = issueSuggestionService.saveIssueSuggestion(dto); + return new Result().ok(resultDTO); + } } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSuggestionService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSuggestionService.java index 0c320c08d4..c2998e55d8 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSuggestionService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSuggestionService.java @@ -18,14 +18,11 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; -import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IssueSuggestionDTO; import com.epmet.dto.form.UserIssueSuggestionFormDTO; +import com.epmet.dto.result.SaveIssueSuggestionResultDTO; import com.epmet.entity.IssueSuggestionEntity; -import java.util.List; -import java.util.Map; - /** * 居民端用户对议题建议或意见表 * @@ -34,66 +31,6 @@ import java.util.Map; */ public interface IssueSuggestionService extends BaseService { - /** - * 默认分页 - * - * @param params - * @return PageData - * @author generator - * @date 2020-11-18 - */ - PageData page(Map params); - - /** - * 默认查询 - * - * @param params - * @return java.util.List - * @author generator - * @date 2020-11-18 - */ - List list(Map params); - - /** - * 单条查询 - * - * @param id - * @return IssueSuggestionDTO - * @author generator - * @date 2020-11-18 - */ - IssueSuggestionDTO get(String id); - - /** - * 默认保存 - * - * @param dto - * @return void - * @author generator - * @date 2020-11-18 - */ - void save(IssueSuggestionDTO dto); - - /** - * 默认更新 - * - * @param dto - * @return void - * @author generator - * @date 2020-11-18 - */ - void update(IssueSuggestionDTO dto); - - /** - * 批量删除 - * - * @param ids - * @return void - * @author generator - * @date 2020-11-18 - */ - void delete(String[] ids); - /** * @param formDTO * @author yinzuomei @@ -101,4 +38,12 @@ public interface IssueSuggestionService extends BaseService implements IssueSuggestionService { - - @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, IssueSuggestionDTO.class); - } - - @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, IssueSuggestionDTO.class); - } - - private QueryWrapper getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); - - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); - - return wrapper; - } - - @Override - public IssueSuggestionDTO get(String id) { - IssueSuggestionEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, IssueSuggestionDTO.class); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void save(IssueSuggestionDTO dto) { - IssueSuggestionEntity entity = ConvertUtils.sourceToTarget(dto, IssueSuggestionEntity.class); - insert(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(IssueSuggestionDTO dto) { - IssueSuggestionEntity entity = ConvertUtils.sourceToTarget(dto, IssueSuggestionEntity.class); - updateById(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delete(String[] ids) { - // 逻辑删除(@TableLogic 注解) - baseDao.deleteBatchIds(Arrays.asList(ids)); - } - + @Autowired + private IssueService issueService; + @Value("${openapi.scan.server.url}") + private String scanApiUrl; + @Value("${openapi.scan.method.textSyncScan}") + private String textSyncScanMethod; /** * @param formDTO * @author yinzuomei @@ -108,4 +67,43 @@ public class IssueSuggestionServiceImpl extends BaseServiceImpl textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); + if (!textSyncScanResult.success()) { + log.error("居民端用户对议题发表建议,内容审核服务返回失败"); + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + if (!textSyncScanResult.getData().isAllPass()) { + throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); + } + } + //赋值网格id + IssueDTO issueDTO = issueService.get(dto.getIssueId()); + if (null == issueDTO) { + throw new RenException(String.format("根据议题id%s,没有找到议题信息", dto.getIssueId())); + } + dto.setGridId(issueDTO.getGridId()); + dto.setCustomerId(issueDTO.getCustomerId()); + //插入 + IssueSuggestionEntity entity = ConvertUtils.sourceToTarget(dto, IssueSuggestionEntity.class); + insert(entity); + SaveIssueSuggestionResultDTO resultDTO = new SaveIssueSuggestionResultDTO(); + resultDTO.setIssueId(dto.getIssueId()); + resultDTO.setSuggestionId(entity.getId()); + return resultDTO; + } + } \ No newline at end of file diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/PublishSuggestionFormDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/PublishSuggestionFormDTO.java new file mode 100644 index 0000000000..5cd1304705 --- /dev/null +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/PublishSuggestionFormDTO.java @@ -0,0 +1,34 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 居民端-议题发表建议 入参DTO + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 12:35 + */ +@Data +public class PublishSuggestionFormDTO implements Serializable { + private static final long serialVersionUID = 2545427013095892610L; + + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + @NotBlank(message = "议题id不能为空", groups = {AddUserInternalGroup.class}) + private String issueId; + + @NotBlank(message = "是否匿名不能为空", groups = {AddUserInternalGroup.class}) + private Boolean publicFlag; + + @Length(max = 500, message = "内容不能超过500字", groups = {AddUserShowGroup.class}) + private String suggestion; +} diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/PublishSuggestionResultDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/PublishSuggestionResultDTO.java new file mode 100644 index 0000000000..83e1359265 --- /dev/null +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/PublishSuggestionResultDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 居民端-议题发表建议 返参DTO + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 13:08 + */ +@Data +public class PublishSuggestionResultDTO implements Serializable { + private static final long serialVersionUID = -2752255960631605369L; + private String issueId; + /** + * issue_suggestion表主键 + */ + private String suggestionId; + + public PublishSuggestionResultDTO(String issueId, String suggestionId) { + this.issueId = issueId; + this.suggestionId = suggestionId; + } +} diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java index a20d0e61bc..243236c3c5 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java @@ -1,8 +1,6 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; -import com.epmet.commons.tools.annotation.RequirePermission; -import com.epmet.commons.tools.enums.RequirePermissionEnum; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -222,5 +220,17 @@ public class IssueController { return new Result>().ok(issueService.processList(issueId)); } + /** + * @param formDTO + * @author yinzuomei + * @description 居民端-议题发表建议 + * @Date 2020/11/18 13:09 + **/ + @PostMapping("publishsuggestion") + public Result publisSuggestion(@RequestBody PublishSuggestionFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO,PublishSuggestionFormDTO.AddUserShowGroup.class,PublishSuggestionFormDTO.AddUserInternalGroup.class); + PublishSuggestionResultDTO resultDTO=issueService.publisSuggestion(formDTO); + return new Result().ok(resultDTO); + } } diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java index d71c3e4b03..32f20b43f6 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java @@ -1,11 +1,9 @@ package com.epmet.service; -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.dto.form.*; import com.epmet.dto.result.*; -import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -112,4 +110,11 @@ public interface IssueService { */ List getShiftProjectList(ShiftProjectListFromDTO formDTO); + /** + * @param formDTO + * @author yinzuomei + * @description 居民端-议题发表建议 + * @Date 2020/11/18 13:11 + **/ + PublishSuggestionResultDTO publisSuggestion(PublishSuggestionFormDTO formDTO); } diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index 015ae25e0c..09275542f6 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -300,6 +300,26 @@ public class IssueServiceImpl implements IssueService { return resultList; } + /** + * @param formDTO + * @author yinzuomei + * @description 居民端-议题发表建议 + * @Date 2020/11/18 13:11 + **/ + @Override + public PublishSuggestionResultDTO publisSuggestion(PublishSuggestionFormDTO formDTO) { + IssueSuggestionDTO issueSuggestionDTO = new IssueSuggestionDTO(); + issueSuggestionDTO.setSuggestion(formDTO.getSuggestion()); + issueSuggestionDTO.setIssueId(formDTO.getIssueId()); + issueSuggestionDTO.setPublicFlag(formDTO.getPublicFlag() == true ? NumConstant.ONE : NumConstant.ZERO); + issueSuggestionDTO.setCreatedBy(loginUserUtil.getLoginUserId()); + Result result = govIssueOpenFeignClient.saveIssueSuggestion(issueSuggestionDTO); + if (result.success() && null != result.getData()) { + return new PublishSuggestionResultDTO(result.getData().getIssueId(), result.getData().getSuggestionId()); + } + throw new RenException(result.getCode()); + } + /** * @Description 议题处理进展 * @param issueId