diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java index edd61ea..d64ff91 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java @@ -2,11 +2,18 @@ import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.CommonRequest; +import com.casic.missiles.modular.system.dto.DictDTO; import com.casic.missiles.modular.system.dto.IdDTO; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -39,13 +46,16 @@ @Autowired private ISummaryService summaryService; + @Autowired + private AbstractDictService dictService; + /** * 获取舆情综述列表 */ @RequestMapping(value = "/list") @ResponseBody - public Object list(@RequestBody HashMap map) { + public Object list(@RequestBody HashMap map) { return ResponseData.success(summaryService.getSummaryList(map)); } @@ -54,9 +64,9 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(@RequestBody HashMap map) { + public Object listPage(@RequestBody HashMap map) { Page page = PageFactory.defaultPage(); - return ResponseData.success(super.packForBT(summaryService.listPage(page,map))); + return ResponseData.success(super.packForBT(summaryService.listPage(page, map))); } /** @@ -65,6 +75,18 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(@RequestBody Summary summary) { + if (ObjectUtil.isNotEmpty(summary.getCommonRequestList())) { + summary.setPlateResult(JSON.toJSONString(summary.getCommonRequestList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResultList())) { + summary.setDiscoveryResult(JSON.toJSONString(summary.getDiscoveryResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResultList())) { + summary.setForeignResult(JSON.toJSONString(summary.getForeignResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResultList())) { + summary.setSpreadResult(JSON.toJSONString(summary.getSpreadResultList(), true)); + } return summaryService.add(summary); } @@ -94,7 +116,7 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(@RequestBody Summary summary, BindingResult bindingResult) { + public Object update(@RequestBody Summary summary, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); @@ -110,6 +132,40 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ResponseData.success(summaryService.detail(idDTO.getId())); + Summary summary = summaryService.getById(idDTO.getId()); + if (ObjectUtil.isNotEmpty(summary.getPlateResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getPlateResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setCommonRequestList(list); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getSpreadResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setSpreadResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getForeignResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setForeignResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getDiscoveryResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setDiscoveryResultList(list); + } + return ResponseData.success(summary); + } + + + /** + * 获取字典值 + */ + @RequestMapping(value = "/dictCode") + @ResponseBody + public Object dictCode(@RequestBody DictDTO dictDTO) { + Assert.isFalse(Objects.isNull(dictDTO.getCode()), () -> { + throw new BusinessException(BusinessExceptionEnum.CODE_NULL); + }); + return ResponseData.success(dictService.findInDictByCode(dictDTO.getCode())); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java index edd61ea..d64ff91 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java @@ -2,11 +2,18 @@ import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.CommonRequest; +import com.casic.missiles.modular.system.dto.DictDTO; import com.casic.missiles.modular.system.dto.IdDTO; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -39,13 +46,16 @@ @Autowired private ISummaryService summaryService; + @Autowired + private AbstractDictService dictService; + /** * 获取舆情综述列表 */ @RequestMapping(value = "/list") @ResponseBody - public Object list(@RequestBody HashMap map) { + public Object list(@RequestBody HashMap map) { return ResponseData.success(summaryService.getSummaryList(map)); } @@ -54,9 +64,9 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(@RequestBody HashMap map) { + public Object listPage(@RequestBody HashMap map) { Page page = PageFactory.defaultPage(); - return ResponseData.success(super.packForBT(summaryService.listPage(page,map))); + return ResponseData.success(super.packForBT(summaryService.listPage(page, map))); } /** @@ -65,6 +75,18 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(@RequestBody Summary summary) { + if (ObjectUtil.isNotEmpty(summary.getCommonRequestList())) { + summary.setPlateResult(JSON.toJSONString(summary.getCommonRequestList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResultList())) { + summary.setDiscoveryResult(JSON.toJSONString(summary.getDiscoveryResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResultList())) { + summary.setForeignResult(JSON.toJSONString(summary.getForeignResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResultList())) { + summary.setSpreadResult(JSON.toJSONString(summary.getSpreadResultList(), true)); + } return summaryService.add(summary); } @@ -94,7 +116,7 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(@RequestBody Summary summary, BindingResult bindingResult) { + public Object update(@RequestBody Summary summary, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); @@ -110,6 +132,40 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ResponseData.success(summaryService.detail(idDTO.getId())); + Summary summary = summaryService.getById(idDTO.getId()); + if (ObjectUtil.isNotEmpty(summary.getPlateResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getPlateResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setCommonRequestList(list); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getSpreadResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setSpreadResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getForeignResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setForeignResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getDiscoveryResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setDiscoveryResultList(list); + } + return ResponseData.success(summary); + } + + + /** + * 获取字典值 + */ + @RequestMapping(value = "/dictCode") + @ResponseBody + public Object dictCode(@RequestBody DictDTO dictDTO) { + Assert.isFalse(Objects.isNull(dictDTO.getCode()), () -> { + throw new BusinessException(BusinessExceptionEnum.CODE_NULL); + }); + return ResponseData.success(dictService.findInDictByCode(dictDTO.getCode())); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java new file mode 100644 index 0000000..6f1cba1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 谣言基本信息 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessRumorMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java index edd61ea..d64ff91 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java @@ -2,11 +2,18 @@ import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.CommonRequest; +import com.casic.missiles.modular.system.dto.DictDTO; import com.casic.missiles.modular.system.dto.IdDTO; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -39,13 +46,16 @@ @Autowired private ISummaryService summaryService; + @Autowired + private AbstractDictService dictService; + /** * 获取舆情综述列表 */ @RequestMapping(value = "/list") @ResponseBody - public Object list(@RequestBody HashMap map) { + public Object list(@RequestBody HashMap map) { return ResponseData.success(summaryService.getSummaryList(map)); } @@ -54,9 +64,9 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(@RequestBody HashMap map) { + public Object listPage(@RequestBody HashMap map) { Page page = PageFactory.defaultPage(); - return ResponseData.success(super.packForBT(summaryService.listPage(page,map))); + return ResponseData.success(super.packForBT(summaryService.listPage(page, map))); } /** @@ -65,6 +75,18 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(@RequestBody Summary summary) { + if (ObjectUtil.isNotEmpty(summary.getCommonRequestList())) { + summary.setPlateResult(JSON.toJSONString(summary.getCommonRequestList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResultList())) { + summary.setDiscoveryResult(JSON.toJSONString(summary.getDiscoveryResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResultList())) { + summary.setForeignResult(JSON.toJSONString(summary.getForeignResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResultList())) { + summary.setSpreadResult(JSON.toJSONString(summary.getSpreadResultList(), true)); + } return summaryService.add(summary); } @@ -94,7 +116,7 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(@RequestBody Summary summary, BindingResult bindingResult) { + public Object update(@RequestBody Summary summary, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); @@ -110,6 +132,40 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ResponseData.success(summaryService.detail(idDTO.getId())); + Summary summary = summaryService.getById(idDTO.getId()); + if (ObjectUtil.isNotEmpty(summary.getPlateResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getPlateResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setCommonRequestList(list); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getSpreadResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setSpreadResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getForeignResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setForeignResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getDiscoveryResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setDiscoveryResultList(list); + } + return ResponseData.success(summary); + } + + + /** + * 获取字典值 + */ + @RequestMapping(value = "/dictCode") + @ResponseBody + public Object dictCode(@RequestBody DictDTO dictDTO) { + Assert.isFalse(Objects.isNull(dictDTO.getCode()), () -> { + throw new BusinessException(BusinessExceptionEnum.CODE_NULL); + }); + return ResponseData.success(dictService.findInDictByCode(dictDTO.getCode())); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java new file mode 100644 index 0000000..6f1cba1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 谣言基本信息 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessRumorMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java new file mode 100644 index 0000000..15d1cbc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 投票记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessVoteRecordMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java index edd61ea..d64ff91 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java @@ -2,11 +2,18 @@ import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.CommonRequest; +import com.casic.missiles.modular.system.dto.DictDTO; import com.casic.missiles.modular.system.dto.IdDTO; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -39,13 +46,16 @@ @Autowired private ISummaryService summaryService; + @Autowired + private AbstractDictService dictService; + /** * 获取舆情综述列表 */ @RequestMapping(value = "/list") @ResponseBody - public Object list(@RequestBody HashMap map) { + public Object list(@RequestBody HashMap map) { return ResponseData.success(summaryService.getSummaryList(map)); } @@ -54,9 +64,9 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(@RequestBody HashMap map) { + public Object listPage(@RequestBody HashMap map) { Page page = PageFactory.defaultPage(); - return ResponseData.success(super.packForBT(summaryService.listPage(page,map))); + return ResponseData.success(super.packForBT(summaryService.listPage(page, map))); } /** @@ -65,6 +75,18 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(@RequestBody Summary summary) { + if (ObjectUtil.isNotEmpty(summary.getCommonRequestList())) { + summary.setPlateResult(JSON.toJSONString(summary.getCommonRequestList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResultList())) { + summary.setDiscoveryResult(JSON.toJSONString(summary.getDiscoveryResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResultList())) { + summary.setForeignResult(JSON.toJSONString(summary.getForeignResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResultList())) { + summary.setSpreadResult(JSON.toJSONString(summary.getSpreadResultList(), true)); + } return summaryService.add(summary); } @@ -94,7 +116,7 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(@RequestBody Summary summary, BindingResult bindingResult) { + public Object update(@RequestBody Summary summary, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); @@ -110,6 +132,40 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ResponseData.success(summaryService.detail(idDTO.getId())); + Summary summary = summaryService.getById(idDTO.getId()); + if (ObjectUtil.isNotEmpty(summary.getPlateResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getPlateResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setCommonRequestList(list); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getSpreadResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setSpreadResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getForeignResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setForeignResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getDiscoveryResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setDiscoveryResultList(list); + } + return ResponseData.success(summary); + } + + + /** + * 获取字典值 + */ + @RequestMapping(value = "/dictCode") + @ResponseBody + public Object dictCode(@RequestBody DictDTO dictDTO) { + Assert.isFalse(Objects.isNull(dictDTO.getCode()), () -> { + throw new BusinessException(BusinessExceptionEnum.CODE_NULL); + }); + return ResponseData.success(dictService.findInDictByCode(dictDTO.getCode())); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java new file mode 100644 index 0000000..6f1cba1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 谣言基本信息 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessRumorMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java new file mode 100644 index 0000000..15d1cbc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 投票记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessVoteRecordMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml new file mode 100644 index 0000000..995b949 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR AS rumor, APPROVE_RATE AS approveRate, AGAINST_RATE AS againstRate, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java index edd61ea..d64ff91 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java @@ -2,11 +2,18 @@ import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.CommonRequest; +import com.casic.missiles.modular.system.dto.DictDTO; import com.casic.missiles.modular.system.dto.IdDTO; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -39,13 +46,16 @@ @Autowired private ISummaryService summaryService; + @Autowired + private AbstractDictService dictService; + /** * 获取舆情综述列表 */ @RequestMapping(value = "/list") @ResponseBody - public Object list(@RequestBody HashMap map) { + public Object list(@RequestBody HashMap map) { return ResponseData.success(summaryService.getSummaryList(map)); } @@ -54,9 +64,9 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(@RequestBody HashMap map) { + public Object listPage(@RequestBody HashMap map) { Page page = PageFactory.defaultPage(); - return ResponseData.success(super.packForBT(summaryService.listPage(page,map))); + return ResponseData.success(super.packForBT(summaryService.listPage(page, map))); } /** @@ -65,6 +75,18 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(@RequestBody Summary summary) { + if (ObjectUtil.isNotEmpty(summary.getCommonRequestList())) { + summary.setPlateResult(JSON.toJSONString(summary.getCommonRequestList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResultList())) { + summary.setDiscoveryResult(JSON.toJSONString(summary.getDiscoveryResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResultList())) { + summary.setForeignResult(JSON.toJSONString(summary.getForeignResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResultList())) { + summary.setSpreadResult(JSON.toJSONString(summary.getSpreadResultList(), true)); + } return summaryService.add(summary); } @@ -94,7 +116,7 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(@RequestBody Summary summary, BindingResult bindingResult) { + public Object update(@RequestBody Summary summary, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); @@ -110,6 +132,40 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ResponseData.success(summaryService.detail(idDTO.getId())); + Summary summary = summaryService.getById(idDTO.getId()); + if (ObjectUtil.isNotEmpty(summary.getPlateResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getPlateResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setCommonRequestList(list); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getSpreadResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setSpreadResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getForeignResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setForeignResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getDiscoveryResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setDiscoveryResultList(list); + } + return ResponseData.success(summary); + } + + + /** + * 获取字典值 + */ + @RequestMapping(value = "/dictCode") + @ResponseBody + public Object dictCode(@RequestBody DictDTO dictDTO) { + Assert.isFalse(Objects.isNull(dictDTO.getCode()), () -> { + throw new BusinessException(BusinessExceptionEnum.CODE_NULL); + }); + return ResponseData.success(dictService.findInDictByCode(dictDTO.getCode())); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java new file mode 100644 index 0000000..6f1cba1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 谣言基本信息 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessRumorMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java new file mode 100644 index 0000000..15d1cbc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 投票记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessVoteRecordMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml new file mode 100644 index 0000000..995b949 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR AS rumor, APPROVE_RATE AS approveRate, AGAINST_RATE AS againstRate, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml new file mode 100644 index 0000000..992793d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR_ID AS rumorId, VOTE_PERSON AS votePerson, STATUS AS status, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java index edd61ea..d64ff91 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java @@ -2,11 +2,18 @@ import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.CommonRequest; +import com.casic.missiles.modular.system.dto.DictDTO; import com.casic.missiles.modular.system.dto.IdDTO; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -39,13 +46,16 @@ @Autowired private ISummaryService summaryService; + @Autowired + private AbstractDictService dictService; + /** * 获取舆情综述列表 */ @RequestMapping(value = "/list") @ResponseBody - public Object list(@RequestBody HashMap map) { + public Object list(@RequestBody HashMap map) { return ResponseData.success(summaryService.getSummaryList(map)); } @@ -54,9 +64,9 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(@RequestBody HashMap map) { + public Object listPage(@RequestBody HashMap map) { Page page = PageFactory.defaultPage(); - return ResponseData.success(super.packForBT(summaryService.listPage(page,map))); + return ResponseData.success(super.packForBT(summaryService.listPage(page, map))); } /** @@ -65,6 +75,18 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(@RequestBody Summary summary) { + if (ObjectUtil.isNotEmpty(summary.getCommonRequestList())) { + summary.setPlateResult(JSON.toJSONString(summary.getCommonRequestList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResultList())) { + summary.setDiscoveryResult(JSON.toJSONString(summary.getDiscoveryResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResultList())) { + summary.setForeignResult(JSON.toJSONString(summary.getForeignResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResultList())) { + summary.setSpreadResult(JSON.toJSONString(summary.getSpreadResultList(), true)); + } return summaryService.add(summary); } @@ -94,7 +116,7 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(@RequestBody Summary summary, BindingResult bindingResult) { + public Object update(@RequestBody Summary summary, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); @@ -110,6 +132,40 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ResponseData.success(summaryService.detail(idDTO.getId())); + Summary summary = summaryService.getById(idDTO.getId()); + if (ObjectUtil.isNotEmpty(summary.getPlateResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getPlateResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setCommonRequestList(list); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getSpreadResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setSpreadResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getForeignResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setForeignResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getDiscoveryResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setDiscoveryResultList(list); + } + return ResponseData.success(summary); + } + + + /** + * 获取字典值 + */ + @RequestMapping(value = "/dictCode") + @ResponseBody + public Object dictCode(@RequestBody DictDTO dictDTO) { + Assert.isFalse(Objects.isNull(dictDTO.getCode()), () -> { + throw new BusinessException(BusinessExceptionEnum.CODE_NULL); + }); + return ResponseData.success(dictService.findInDictByCode(dictDTO.getCode())); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java new file mode 100644 index 0000000..6f1cba1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 谣言基本信息 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessRumorMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java new file mode 100644 index 0000000..15d1cbc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 投票记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessVoteRecordMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml new file mode 100644 index 0000000..995b949 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR AS rumor, APPROVE_RATE AS approveRate, AGAINST_RATE AS againstRate, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml new file mode 100644 index 0000000..992793d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR_ID AS rumorId, VOTE_PERSON AS votePerson, STATUS AS status, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml index d9d62fd..c2c7690 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml @@ -19,11 +19,13 @@ + - ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, DESCRIPTION AS description + ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, + DESCRIPTION AS description,PLATE_RESULT AS plateResult diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java index 674506e..e500fc8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java @@ -18,4 +18,6 @@ private String time; private String timeType;//按天:day,按小时:hour + + private String name; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java index edd61ea..d64ff91 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java @@ -2,11 +2,18 @@ import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.CommonRequest; +import com.casic.missiles.modular.system.dto.DictDTO; import com.casic.missiles.modular.system.dto.IdDTO; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -39,13 +46,16 @@ @Autowired private ISummaryService summaryService; + @Autowired + private AbstractDictService dictService; + /** * 获取舆情综述列表 */ @RequestMapping(value = "/list") @ResponseBody - public Object list(@RequestBody HashMap map) { + public Object list(@RequestBody HashMap map) { return ResponseData.success(summaryService.getSummaryList(map)); } @@ -54,9 +64,9 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(@RequestBody HashMap map) { + public Object listPage(@RequestBody HashMap map) { Page page = PageFactory.defaultPage(); - return ResponseData.success(super.packForBT(summaryService.listPage(page,map))); + return ResponseData.success(super.packForBT(summaryService.listPage(page, map))); } /** @@ -65,6 +75,18 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(@RequestBody Summary summary) { + if (ObjectUtil.isNotEmpty(summary.getCommonRequestList())) { + summary.setPlateResult(JSON.toJSONString(summary.getCommonRequestList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResultList())) { + summary.setDiscoveryResult(JSON.toJSONString(summary.getDiscoveryResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResultList())) { + summary.setForeignResult(JSON.toJSONString(summary.getForeignResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResultList())) { + summary.setSpreadResult(JSON.toJSONString(summary.getSpreadResultList(), true)); + } return summaryService.add(summary); } @@ -94,7 +116,7 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(@RequestBody Summary summary, BindingResult bindingResult) { + public Object update(@RequestBody Summary summary, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); @@ -110,6 +132,40 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ResponseData.success(summaryService.detail(idDTO.getId())); + Summary summary = summaryService.getById(idDTO.getId()); + if (ObjectUtil.isNotEmpty(summary.getPlateResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getPlateResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setCommonRequestList(list); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getSpreadResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setSpreadResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getForeignResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setForeignResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getDiscoveryResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setDiscoveryResultList(list); + } + return ResponseData.success(summary); + } + + + /** + * 获取字典值 + */ + @RequestMapping(value = "/dictCode") + @ResponseBody + public Object dictCode(@RequestBody DictDTO dictDTO) { + Assert.isFalse(Objects.isNull(dictDTO.getCode()), () -> { + throw new BusinessException(BusinessExceptionEnum.CODE_NULL); + }); + return ResponseData.success(dictService.findInDictByCode(dictDTO.getCode())); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java new file mode 100644 index 0000000..6f1cba1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 谣言基本信息 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessRumorMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java new file mode 100644 index 0000000..15d1cbc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 投票记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessVoteRecordMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml new file mode 100644 index 0000000..995b949 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR AS rumor, APPROVE_RATE AS approveRate, AGAINST_RATE AS againstRate, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml new file mode 100644 index 0000000..992793d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR_ID AS rumorId, VOTE_PERSON AS votePerson, STATUS AS status, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml index d9d62fd..c2c7690 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml @@ -19,11 +19,13 @@ + - ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, DESCRIPTION AS description + ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, + DESCRIPTION AS description,PLATE_RESULT AS plateResult diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java index 674506e..e500fc8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java @@ -18,4 +18,6 @@ private String time; private String timeType;//按天:day,按小时:hour + + private String name; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java new file mode 100644 index 0000000..c3c31e7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class DictDTO { + @NotNull(message = "code值不能为空") + private String code; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java new file mode 100644 index 0000000..7fcb102 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class VOTEDTO { + @NotNull(message = "谣言ID不能为空") + private Long rumorId; + @NotNull(message = "投票人不能为空") + private String votePerson; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java index edd61ea..d64ff91 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java @@ -2,11 +2,18 @@ import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.CommonRequest; +import com.casic.missiles.modular.system.dto.DictDTO; import com.casic.missiles.modular.system.dto.IdDTO; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -39,13 +46,16 @@ @Autowired private ISummaryService summaryService; + @Autowired + private AbstractDictService dictService; + /** * 获取舆情综述列表 */ @RequestMapping(value = "/list") @ResponseBody - public Object list(@RequestBody HashMap map) { + public Object list(@RequestBody HashMap map) { return ResponseData.success(summaryService.getSummaryList(map)); } @@ -54,9 +64,9 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(@RequestBody HashMap map) { + public Object listPage(@RequestBody HashMap map) { Page page = PageFactory.defaultPage(); - return ResponseData.success(super.packForBT(summaryService.listPage(page,map))); + return ResponseData.success(super.packForBT(summaryService.listPage(page, map))); } /** @@ -65,6 +75,18 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(@RequestBody Summary summary) { + if (ObjectUtil.isNotEmpty(summary.getCommonRequestList())) { + summary.setPlateResult(JSON.toJSONString(summary.getCommonRequestList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResultList())) { + summary.setDiscoveryResult(JSON.toJSONString(summary.getDiscoveryResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResultList())) { + summary.setForeignResult(JSON.toJSONString(summary.getForeignResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResultList())) { + summary.setSpreadResult(JSON.toJSONString(summary.getSpreadResultList(), true)); + } return summaryService.add(summary); } @@ -94,7 +116,7 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(@RequestBody Summary summary, BindingResult bindingResult) { + public Object update(@RequestBody Summary summary, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); @@ -110,6 +132,40 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ResponseData.success(summaryService.detail(idDTO.getId())); + Summary summary = summaryService.getById(idDTO.getId()); + if (ObjectUtil.isNotEmpty(summary.getPlateResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getPlateResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setCommonRequestList(list); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getSpreadResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setSpreadResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getForeignResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setForeignResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getDiscoveryResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setDiscoveryResultList(list); + } + return ResponseData.success(summary); + } + + + /** + * 获取字典值 + */ + @RequestMapping(value = "/dictCode") + @ResponseBody + public Object dictCode(@RequestBody DictDTO dictDTO) { + Assert.isFalse(Objects.isNull(dictDTO.getCode()), () -> { + throw new BusinessException(BusinessExceptionEnum.CODE_NULL); + }); + return ResponseData.success(dictService.findInDictByCode(dictDTO.getCode())); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java new file mode 100644 index 0000000..6f1cba1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 谣言基本信息 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessRumorMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java new file mode 100644 index 0000000..15d1cbc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 投票记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessVoteRecordMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml new file mode 100644 index 0000000..995b949 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR AS rumor, APPROVE_RATE AS approveRate, AGAINST_RATE AS againstRate, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml new file mode 100644 index 0000000..992793d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR_ID AS rumorId, VOTE_PERSON AS votePerson, STATUS AS status, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml index d9d62fd..c2c7690 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml @@ -19,11 +19,13 @@ + - ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, DESCRIPTION AS description + ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, + DESCRIPTION AS description,PLATE_RESULT AS plateResult diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java index 674506e..e500fc8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java @@ -18,4 +18,6 @@ private String time; private String timeType;//按天:day,按小时:hour + + private String name; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java new file mode 100644 index 0000000..c3c31e7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class DictDTO { + @NotNull(message = "code值不能为空") + private String code; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java new file mode 100644 index 0000000..7fcb102 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class VOTEDTO { + @NotNull(message = "谣言ID不能为空") + private Long rumorId; + @NotNull(message = "投票人不能为空") + private String votePerson; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 8b6167c..1b1d831 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -8,12 +8,17 @@ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + CODE_NULL(501, "字典code不能为空"), + SAVE_FAILED(400, "保存失败"), TEST_URL_NULL(2090, "测试地址为空!"), + PARAM_IS_NULL(2080, "参数有误!"), + FILE_NULL(2091, "导入文件为空!"), FILE_READ_ROW_FAILED(2092, "读入excel异常!"), diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java index c81994f..5bcaa79 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -18,4 +18,9 @@ String FIRST_TAG = "tags"; //下发 String PROCESS_SEND = "4"; + + //投票支持 + String VOTE_APPROVE = "1"; + //投票反对 + String VOTE_AGAINST = "0"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java index edd61ea..d64ff91 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java @@ -2,11 +2,18 @@ import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.CommonRequest; +import com.casic.missiles.modular.system.dto.DictDTO; import com.casic.missiles.modular.system.dto.IdDTO; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -39,13 +46,16 @@ @Autowired private ISummaryService summaryService; + @Autowired + private AbstractDictService dictService; + /** * 获取舆情综述列表 */ @RequestMapping(value = "/list") @ResponseBody - public Object list(@RequestBody HashMap map) { + public Object list(@RequestBody HashMap map) { return ResponseData.success(summaryService.getSummaryList(map)); } @@ -54,9 +64,9 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(@RequestBody HashMap map) { + public Object listPage(@RequestBody HashMap map) { Page page = PageFactory.defaultPage(); - return ResponseData.success(super.packForBT(summaryService.listPage(page,map))); + return ResponseData.success(super.packForBT(summaryService.listPage(page, map))); } /** @@ -65,6 +75,18 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(@RequestBody Summary summary) { + if (ObjectUtil.isNotEmpty(summary.getCommonRequestList())) { + summary.setPlateResult(JSON.toJSONString(summary.getCommonRequestList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResultList())) { + summary.setDiscoveryResult(JSON.toJSONString(summary.getDiscoveryResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResultList())) { + summary.setForeignResult(JSON.toJSONString(summary.getForeignResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResultList())) { + summary.setSpreadResult(JSON.toJSONString(summary.getSpreadResultList(), true)); + } return summaryService.add(summary); } @@ -94,7 +116,7 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(@RequestBody Summary summary, BindingResult bindingResult) { + public Object update(@RequestBody Summary summary, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); @@ -110,6 +132,40 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ResponseData.success(summaryService.detail(idDTO.getId())); + Summary summary = summaryService.getById(idDTO.getId()); + if (ObjectUtil.isNotEmpty(summary.getPlateResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getPlateResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setCommonRequestList(list); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getSpreadResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setSpreadResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getForeignResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setForeignResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getDiscoveryResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setDiscoveryResultList(list); + } + return ResponseData.success(summary); + } + + + /** + * 获取字典值 + */ + @RequestMapping(value = "/dictCode") + @ResponseBody + public Object dictCode(@RequestBody DictDTO dictDTO) { + Assert.isFalse(Objects.isNull(dictDTO.getCode()), () -> { + throw new BusinessException(BusinessExceptionEnum.CODE_NULL); + }); + return ResponseData.success(dictService.findInDictByCode(dictDTO.getCode())); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java new file mode 100644 index 0000000..6f1cba1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 谣言基本信息 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessRumorMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java new file mode 100644 index 0000000..15d1cbc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 投票记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessVoteRecordMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml new file mode 100644 index 0000000..995b949 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR AS rumor, APPROVE_RATE AS approveRate, AGAINST_RATE AS againstRate, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml new file mode 100644 index 0000000..992793d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR_ID AS rumorId, VOTE_PERSON AS votePerson, STATUS AS status, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml index d9d62fd..c2c7690 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml @@ -19,11 +19,13 @@ + - ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, DESCRIPTION AS description + ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, + DESCRIPTION AS description,PLATE_RESULT AS plateResult diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java index 674506e..e500fc8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java @@ -18,4 +18,6 @@ private String time; private String timeType;//按天:day,按小时:hour + + private String name; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java new file mode 100644 index 0000000..c3c31e7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class DictDTO { + @NotNull(message = "code值不能为空") + private String code; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java new file mode 100644 index 0000000..7fcb102 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class VOTEDTO { + @NotNull(message = "谣言ID不能为空") + private Long rumorId; + @NotNull(message = "投票人不能为空") + private String votePerson; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 8b6167c..1b1d831 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -8,12 +8,17 @@ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + CODE_NULL(501, "字典code不能为空"), + SAVE_FAILED(400, "保存失败"), TEST_URL_NULL(2090, "测试地址为空!"), + PARAM_IS_NULL(2080, "参数有误!"), + FILE_NULL(2091, "导入文件为空!"), FILE_READ_ROW_FAILED(2092, "读入excel异常!"), diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java index c81994f..5bcaa79 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -18,4 +18,9 @@ String FIRST_TAG = "tags"; //下发 String PROCESS_SEND = "4"; + + //投票支持 + String VOTE_APPROVE = "1"; + //投票反对 + String VOTE_AGAINST = "0"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessRumor.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessRumor.java new file mode 100644 index 0000000..ea1ff3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessRumor.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +import java.util.Date; + +/** + *

+ * 谣言基本信息 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +@Data +@TableName("business_rumor") +public class BusinessRumor extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 谣言信息 + */ + @TableField("RUMOR") + private String rumor; + /** + * 支持率 + */ + + @TableField(value = "APPROVE_RATE", updateStrategy= FieldStrategy.IGNORED) + private String approveRate; + /** + * 反对率 + */ + @TableField(value = "AGAINST_RATE", updateStrategy= FieldStrategy.IGNORED) + private String againstRate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + public String toString() { + return "BusinessRumor{" + + "id=" + id + + ", rumor=" + rumor + + ", approveRate=" + approveRate + + ", againstRate=" + againstRate + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessVoteRecord.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessVoteRecord.java new file mode 100644 index 0000000..8cbc156 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessVoteRecord.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +import java.util.Date; + +/** + *

+ * 投票记录 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +@Data +@TableName("business_vote_record") +public class BusinessVoteRecord extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 谣言id + */ + @TableField("RUMOR_ID") + private Long rumorId; + /** + * 投票人 + */ + @TableField("VOTE_PERSON") + private String votePerson; + /** + * 1:支持,0:反对 + */ + @TableField("STATUS") + private Integer status; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + + @Override + public String toString() { + return "BusinessVoteRecord{" + + "id=" + id + + ", rumorId=" + rumorId + + ", votePerson=" + votePerson + + ", status=" + status + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java index edd61ea..d64ff91 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java @@ -2,11 +2,18 @@ import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.CommonRequest; +import com.casic.missiles.modular.system.dto.DictDTO; import com.casic.missiles.modular.system.dto.IdDTO; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -39,13 +46,16 @@ @Autowired private ISummaryService summaryService; + @Autowired + private AbstractDictService dictService; + /** * 获取舆情综述列表 */ @RequestMapping(value = "/list") @ResponseBody - public Object list(@RequestBody HashMap map) { + public Object list(@RequestBody HashMap map) { return ResponseData.success(summaryService.getSummaryList(map)); } @@ -54,9 +64,9 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(@RequestBody HashMap map) { + public Object listPage(@RequestBody HashMap map) { Page page = PageFactory.defaultPage(); - return ResponseData.success(super.packForBT(summaryService.listPage(page,map))); + return ResponseData.success(super.packForBT(summaryService.listPage(page, map))); } /** @@ -65,6 +75,18 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(@RequestBody Summary summary) { + if (ObjectUtil.isNotEmpty(summary.getCommonRequestList())) { + summary.setPlateResult(JSON.toJSONString(summary.getCommonRequestList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResultList())) { + summary.setDiscoveryResult(JSON.toJSONString(summary.getDiscoveryResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResultList())) { + summary.setForeignResult(JSON.toJSONString(summary.getForeignResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResultList())) { + summary.setSpreadResult(JSON.toJSONString(summary.getSpreadResultList(), true)); + } return summaryService.add(summary); } @@ -94,7 +116,7 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(@RequestBody Summary summary, BindingResult bindingResult) { + public Object update(@RequestBody Summary summary, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); @@ -110,6 +132,40 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ResponseData.success(summaryService.detail(idDTO.getId())); + Summary summary = summaryService.getById(idDTO.getId()); + if (ObjectUtil.isNotEmpty(summary.getPlateResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getPlateResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setCommonRequestList(list); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getSpreadResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setSpreadResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getForeignResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setForeignResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getDiscoveryResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setDiscoveryResultList(list); + } + return ResponseData.success(summary); + } + + + /** + * 获取字典值 + */ + @RequestMapping(value = "/dictCode") + @ResponseBody + public Object dictCode(@RequestBody DictDTO dictDTO) { + Assert.isFalse(Objects.isNull(dictDTO.getCode()), () -> { + throw new BusinessException(BusinessExceptionEnum.CODE_NULL); + }); + return ResponseData.success(dictService.findInDictByCode(dictDTO.getCode())); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java new file mode 100644 index 0000000..6f1cba1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 谣言基本信息 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessRumorMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java new file mode 100644 index 0000000..15d1cbc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 投票记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessVoteRecordMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml new file mode 100644 index 0000000..995b949 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR AS rumor, APPROVE_RATE AS approveRate, AGAINST_RATE AS againstRate, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml new file mode 100644 index 0000000..992793d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR_ID AS rumorId, VOTE_PERSON AS votePerson, STATUS AS status, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml index d9d62fd..c2c7690 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml @@ -19,11 +19,13 @@ + - ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, DESCRIPTION AS description + ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, + DESCRIPTION AS description,PLATE_RESULT AS plateResult diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java index 674506e..e500fc8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java @@ -18,4 +18,6 @@ private String time; private String timeType;//按天:day,按小时:hour + + private String name; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java new file mode 100644 index 0000000..c3c31e7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class DictDTO { + @NotNull(message = "code值不能为空") + private String code; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java new file mode 100644 index 0000000..7fcb102 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class VOTEDTO { + @NotNull(message = "谣言ID不能为空") + private Long rumorId; + @NotNull(message = "投票人不能为空") + private String votePerson; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 8b6167c..1b1d831 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -8,12 +8,17 @@ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + CODE_NULL(501, "字典code不能为空"), + SAVE_FAILED(400, "保存失败"), TEST_URL_NULL(2090, "测试地址为空!"), + PARAM_IS_NULL(2080, "参数有误!"), + FILE_NULL(2091, "导入文件为空!"), FILE_READ_ROW_FAILED(2092, "读入excel异常!"), diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java index c81994f..5bcaa79 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -18,4 +18,9 @@ String FIRST_TAG = "tags"; //下发 String PROCESS_SEND = "4"; + + //投票支持 + String VOTE_APPROVE = "1"; + //投票反对 + String VOTE_AGAINST = "0"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessRumor.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessRumor.java new file mode 100644 index 0000000..ea1ff3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessRumor.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +import java.util.Date; + +/** + *

+ * 谣言基本信息 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +@Data +@TableName("business_rumor") +public class BusinessRumor extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 谣言信息 + */ + @TableField("RUMOR") + private String rumor; + /** + * 支持率 + */ + + @TableField(value = "APPROVE_RATE", updateStrategy= FieldStrategy.IGNORED) + private String approveRate; + /** + * 反对率 + */ + @TableField(value = "AGAINST_RATE", updateStrategy= FieldStrategy.IGNORED) + private String againstRate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + public String toString() { + return "BusinessRumor{" + + "id=" + id + + ", rumor=" + rumor + + ", approveRate=" + approveRate + + ", againstRate=" + againstRate + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessVoteRecord.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessVoteRecord.java new file mode 100644 index 0000000..8cbc156 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessVoteRecord.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +import java.util.Date; + +/** + *

+ * 投票记录 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +@Data +@TableName("business_vote_record") +public class BusinessVoteRecord extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 谣言id + */ + @TableField("RUMOR_ID") + private Long rumorId; + /** + * 投票人 + */ + @TableField("VOTE_PERSON") + private String votePerson; + /** + * 1:支持,0:反对 + */ + @TableField("STATUS") + private Integer status; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + + @Override + public String toString() { + return "BusinessVoteRecord{" + + "id=" + id + + ", rumorId=" + rumorId + + ", votePerson=" + votePerson + + ", status=" + status + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Summary.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Summary.java index ff0cd96..378f967 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Summary.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Summary.java @@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.casic.missiles.modular.system.dto.CommonRequest; import lombok.Data; import java.util.Date; +import java.util.List; /** *

@@ -99,6 +101,43 @@ @TableField("SPECIAL_NAME") private String specialName; + /** + * 发布平台分析统计结果 + */ + @TableField("PLATE_RESULT") + private String plateResult; + + /** + * 发现量时间趋势 + */ + @TableField("DISCOVERY_RESULT") + private String discoveryResult; + + /** + * 外媒时间趋势 + */ + @TableField("FOREIGN_RESULT") + private String foreignResult; + + /** + * 传播量时间趋势 + */ + @TableField("SPREAD_RESULT") + private String spreadResult; + + + @TableField(exist = false) + private List commonRequestList; + + @TableField(exist = false) + private List discoveryResultList; + + @TableField(exist = false) + private List foreignResultList; + + @TableField(exist = false) + private List spreadResultList; + @Override public String toString() { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessRumorService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessRumorService.java new file mode 100644 index 0000000..6abba50 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessRumorService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 谣言基本信息 服务类 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface IBusinessRumorService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java index edd61ea..d64ff91 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java @@ -2,11 +2,18 @@ import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.CommonRequest; +import com.casic.missiles.modular.system.dto.DictDTO; import com.casic.missiles.modular.system.dto.IdDTO; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -39,13 +46,16 @@ @Autowired private ISummaryService summaryService; + @Autowired + private AbstractDictService dictService; + /** * 获取舆情综述列表 */ @RequestMapping(value = "/list") @ResponseBody - public Object list(@RequestBody HashMap map) { + public Object list(@RequestBody HashMap map) { return ResponseData.success(summaryService.getSummaryList(map)); } @@ -54,9 +64,9 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(@RequestBody HashMap map) { + public Object listPage(@RequestBody HashMap map) { Page page = PageFactory.defaultPage(); - return ResponseData.success(super.packForBT(summaryService.listPage(page,map))); + return ResponseData.success(super.packForBT(summaryService.listPage(page, map))); } /** @@ -65,6 +75,18 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(@RequestBody Summary summary) { + if (ObjectUtil.isNotEmpty(summary.getCommonRequestList())) { + summary.setPlateResult(JSON.toJSONString(summary.getCommonRequestList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResultList())) { + summary.setDiscoveryResult(JSON.toJSONString(summary.getDiscoveryResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResultList())) { + summary.setForeignResult(JSON.toJSONString(summary.getForeignResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResultList())) { + summary.setSpreadResult(JSON.toJSONString(summary.getSpreadResultList(), true)); + } return summaryService.add(summary); } @@ -94,7 +116,7 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(@RequestBody Summary summary, BindingResult bindingResult) { + public Object update(@RequestBody Summary summary, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); @@ -110,6 +132,40 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ResponseData.success(summaryService.detail(idDTO.getId())); + Summary summary = summaryService.getById(idDTO.getId()); + if (ObjectUtil.isNotEmpty(summary.getPlateResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getPlateResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setCommonRequestList(list); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getSpreadResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setSpreadResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getForeignResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setForeignResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getDiscoveryResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setDiscoveryResultList(list); + } + return ResponseData.success(summary); + } + + + /** + * 获取字典值 + */ + @RequestMapping(value = "/dictCode") + @ResponseBody + public Object dictCode(@RequestBody DictDTO dictDTO) { + Assert.isFalse(Objects.isNull(dictDTO.getCode()), () -> { + throw new BusinessException(BusinessExceptionEnum.CODE_NULL); + }); + return ResponseData.success(dictService.findInDictByCode(dictDTO.getCode())); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java new file mode 100644 index 0000000..6f1cba1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 谣言基本信息 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessRumorMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java new file mode 100644 index 0000000..15d1cbc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 投票记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessVoteRecordMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml new file mode 100644 index 0000000..995b949 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR AS rumor, APPROVE_RATE AS approveRate, AGAINST_RATE AS againstRate, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml new file mode 100644 index 0000000..992793d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR_ID AS rumorId, VOTE_PERSON AS votePerson, STATUS AS status, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml index d9d62fd..c2c7690 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml @@ -19,11 +19,13 @@ + - ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, DESCRIPTION AS description + ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, + DESCRIPTION AS description,PLATE_RESULT AS plateResult diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java index 674506e..e500fc8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java @@ -18,4 +18,6 @@ private String time; private String timeType;//按天:day,按小时:hour + + private String name; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java new file mode 100644 index 0000000..c3c31e7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class DictDTO { + @NotNull(message = "code值不能为空") + private String code; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java new file mode 100644 index 0000000..7fcb102 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class VOTEDTO { + @NotNull(message = "谣言ID不能为空") + private Long rumorId; + @NotNull(message = "投票人不能为空") + private String votePerson; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 8b6167c..1b1d831 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -8,12 +8,17 @@ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + CODE_NULL(501, "字典code不能为空"), + SAVE_FAILED(400, "保存失败"), TEST_URL_NULL(2090, "测试地址为空!"), + PARAM_IS_NULL(2080, "参数有误!"), + FILE_NULL(2091, "导入文件为空!"), FILE_READ_ROW_FAILED(2092, "读入excel异常!"), diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java index c81994f..5bcaa79 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -18,4 +18,9 @@ String FIRST_TAG = "tags"; //下发 String PROCESS_SEND = "4"; + + //投票支持 + String VOTE_APPROVE = "1"; + //投票反对 + String VOTE_AGAINST = "0"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessRumor.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessRumor.java new file mode 100644 index 0000000..ea1ff3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessRumor.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +import java.util.Date; + +/** + *

+ * 谣言基本信息 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +@Data +@TableName("business_rumor") +public class BusinessRumor extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 谣言信息 + */ + @TableField("RUMOR") + private String rumor; + /** + * 支持率 + */ + + @TableField(value = "APPROVE_RATE", updateStrategy= FieldStrategy.IGNORED) + private String approveRate; + /** + * 反对率 + */ + @TableField(value = "AGAINST_RATE", updateStrategy= FieldStrategy.IGNORED) + private String againstRate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + public String toString() { + return "BusinessRumor{" + + "id=" + id + + ", rumor=" + rumor + + ", approveRate=" + approveRate + + ", againstRate=" + againstRate + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessVoteRecord.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessVoteRecord.java new file mode 100644 index 0000000..8cbc156 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessVoteRecord.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +import java.util.Date; + +/** + *

+ * 投票记录 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +@Data +@TableName("business_vote_record") +public class BusinessVoteRecord extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 谣言id + */ + @TableField("RUMOR_ID") + private Long rumorId; + /** + * 投票人 + */ + @TableField("VOTE_PERSON") + private String votePerson; + /** + * 1:支持,0:反对 + */ + @TableField("STATUS") + private Integer status; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + + @Override + public String toString() { + return "BusinessVoteRecord{" + + "id=" + id + + ", rumorId=" + rumorId + + ", votePerson=" + votePerson + + ", status=" + status + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Summary.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Summary.java index ff0cd96..378f967 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Summary.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Summary.java @@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.casic.missiles.modular.system.dto.CommonRequest; import lombok.Data; import java.util.Date; +import java.util.List; /** *

@@ -99,6 +101,43 @@ @TableField("SPECIAL_NAME") private String specialName; + /** + * 发布平台分析统计结果 + */ + @TableField("PLATE_RESULT") + private String plateResult; + + /** + * 发现量时间趋势 + */ + @TableField("DISCOVERY_RESULT") + private String discoveryResult; + + /** + * 外媒时间趋势 + */ + @TableField("FOREIGN_RESULT") + private String foreignResult; + + /** + * 传播量时间趋势 + */ + @TableField("SPREAD_RESULT") + private String spreadResult; + + + @TableField(exist = false) + private List commonRequestList; + + @TableField(exist = false) + private List discoveryResultList; + + @TableField(exist = false) + private List foreignResultList; + + @TableField(exist = false) + private List spreadResultList; + @Override public String toString() { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessRumorService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessRumorService.java new file mode 100644 index 0000000..6abba50 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessRumorService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 谣言基本信息 服务类 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface IBusinessRumorService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessVoteRecordService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessVoteRecordService.java new file mode 100644 index 0000000..9571719 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessVoteRecordService.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.Map; + +/** + *

+ * 投票记录 服务类 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface IBusinessVoteRecordService extends IService { + + Map getVoteRecordById(Long voteId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessRumorServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessRumorServiceImpl.java new file mode 100644 index 0000000..3997a4c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessRumorServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.dao.BusinessRumorMapper; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 谣言基本信息 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +@Service +public class BusinessRumorServiceImpl extends ServiceImpl implements IBusinessRumorService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java index edd61ea..d64ff91 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java @@ -2,11 +2,18 @@ import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.CommonRequest; +import com.casic.missiles.modular.system.dto.DictDTO; import com.casic.missiles.modular.system.dto.IdDTO; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -39,13 +46,16 @@ @Autowired private ISummaryService summaryService; + @Autowired + private AbstractDictService dictService; + /** * 获取舆情综述列表 */ @RequestMapping(value = "/list") @ResponseBody - public Object list(@RequestBody HashMap map) { + public Object list(@RequestBody HashMap map) { return ResponseData.success(summaryService.getSummaryList(map)); } @@ -54,9 +64,9 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(@RequestBody HashMap map) { + public Object listPage(@RequestBody HashMap map) { Page page = PageFactory.defaultPage(); - return ResponseData.success(super.packForBT(summaryService.listPage(page,map))); + return ResponseData.success(super.packForBT(summaryService.listPage(page, map))); } /** @@ -65,6 +75,18 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(@RequestBody Summary summary) { + if (ObjectUtil.isNotEmpty(summary.getCommonRequestList())) { + summary.setPlateResult(JSON.toJSONString(summary.getCommonRequestList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResultList())) { + summary.setDiscoveryResult(JSON.toJSONString(summary.getDiscoveryResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResultList())) { + summary.setForeignResult(JSON.toJSONString(summary.getForeignResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResultList())) { + summary.setSpreadResult(JSON.toJSONString(summary.getSpreadResultList(), true)); + } return summaryService.add(summary); } @@ -94,7 +116,7 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(@RequestBody Summary summary, BindingResult bindingResult) { + public Object update(@RequestBody Summary summary, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); @@ -110,6 +132,40 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ResponseData.success(summaryService.detail(idDTO.getId())); + Summary summary = summaryService.getById(idDTO.getId()); + if (ObjectUtil.isNotEmpty(summary.getPlateResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getPlateResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setCommonRequestList(list); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getSpreadResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setSpreadResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getForeignResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setForeignResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getDiscoveryResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setDiscoveryResultList(list); + } + return ResponseData.success(summary); + } + + + /** + * 获取字典值 + */ + @RequestMapping(value = "/dictCode") + @ResponseBody + public Object dictCode(@RequestBody DictDTO dictDTO) { + Assert.isFalse(Objects.isNull(dictDTO.getCode()), () -> { + throw new BusinessException(BusinessExceptionEnum.CODE_NULL); + }); + return ResponseData.success(dictService.findInDictByCode(dictDTO.getCode())); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java new file mode 100644 index 0000000..6f1cba1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 谣言基本信息 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessRumorMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java new file mode 100644 index 0000000..15d1cbc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 投票记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessVoteRecordMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml new file mode 100644 index 0000000..995b949 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR AS rumor, APPROVE_RATE AS approveRate, AGAINST_RATE AS againstRate, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml new file mode 100644 index 0000000..992793d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR_ID AS rumorId, VOTE_PERSON AS votePerson, STATUS AS status, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml index d9d62fd..c2c7690 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml @@ -19,11 +19,13 @@ + - ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, DESCRIPTION AS description + ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, + DESCRIPTION AS description,PLATE_RESULT AS plateResult diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java index 674506e..e500fc8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CommonRequest.java @@ -18,4 +18,6 @@ private String time; private String timeType;//按天:day,按小时:hour + + private String name; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java new file mode 100644 index 0000000..c3c31e7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/DictDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class DictDTO { + @NotNull(message = "code值不能为空") + private String code; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java new file mode 100644 index 0000000..7fcb102 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VOTEDTO.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + + +@Data +public class VOTEDTO { + @NotNull(message = "谣言ID不能为空") + private Long rumorId; + @NotNull(message = "投票人不能为空") + private String votePerson; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 8b6167c..1b1d831 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -8,12 +8,17 @@ public enum BusinessExceptionEnum implements AbstractBaseExceptionEnum { ID_NULL(2400, "主键不能为空"), + HANDLE_FAILED(500, "操作失败"), + CODE_NULL(501, "字典code不能为空"), + SAVE_FAILED(400, "保存失败"), TEST_URL_NULL(2090, "测试地址为空!"), + PARAM_IS_NULL(2080, "参数有误!"), + FILE_NULL(2091, "导入文件为空!"), FILE_READ_ROW_FAILED(2092, "读入excel异常!"), diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java index c81994f..5bcaa79 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -18,4 +18,9 @@ String FIRST_TAG = "tags"; //下发 String PROCESS_SEND = "4"; + + //投票支持 + String VOTE_APPROVE = "1"; + //投票反对 + String VOTE_AGAINST = "0"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessRumor.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessRumor.java new file mode 100644 index 0000000..ea1ff3b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessRumor.java @@ -0,0 +1,63 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +import java.util.Date; + +/** + *

+ * 谣言基本信息 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +@Data +@TableName("business_rumor") +public class BusinessRumor extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 谣言信息 + */ + @TableField("RUMOR") + private String rumor; + /** + * 支持率 + */ + + @TableField(value = "APPROVE_RATE", updateStrategy= FieldStrategy.IGNORED) + private String approveRate; + /** + * 反对率 + */ + @TableField(value = "AGAINST_RATE", updateStrategy= FieldStrategy.IGNORED) + private String againstRate; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + @Override + public String toString() { + return "BusinessRumor{" + + "id=" + id + + ", rumor=" + rumor + + ", approveRate=" + approveRate + + ", againstRate=" + againstRate + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessVoteRecord.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessVoteRecord.java new file mode 100644 index 0000000..8cbc156 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessVoteRecord.java @@ -0,0 +1,62 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +import java.util.Date; + +/** + *

+ * 投票记录 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +@Data +@TableName("business_vote_record") +public class BusinessVoteRecord extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("ID") + private Long id; + /** + * 谣言id + */ + @TableField("RUMOR_ID") + private Long rumorId; + /** + * 投票人 + */ + @TableField("VOTE_PERSON") + private String votePerson; + /** + * 1:支持,0:反对 + */ + @TableField("STATUS") + private Integer status; + /** + * 时间 + */ + @TableField("CREATE_TIME") + private Date createTime; + + + @Override + public String toString() { + return "BusinessVoteRecord{" + + "id=" + id + + ", rumorId=" + rumorId + + ", votePerson=" + votePerson + + ", status=" + status + + ", createTime=" + createTime + + "}"; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Summary.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Summary.java index ff0cd96..378f967 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Summary.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Summary.java @@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.casic.missiles.modular.system.dto.CommonRequest; import lombok.Data; import java.util.Date; +import java.util.List; /** *

@@ -99,6 +101,43 @@ @TableField("SPECIAL_NAME") private String specialName; + /** + * 发布平台分析统计结果 + */ + @TableField("PLATE_RESULT") + private String plateResult; + + /** + * 发现量时间趋势 + */ + @TableField("DISCOVERY_RESULT") + private String discoveryResult; + + /** + * 外媒时间趋势 + */ + @TableField("FOREIGN_RESULT") + private String foreignResult; + + /** + * 传播量时间趋势 + */ + @TableField("SPREAD_RESULT") + private String spreadResult; + + + @TableField(exist = false) + private List commonRequestList; + + @TableField(exist = false) + private List discoveryResultList; + + @TableField(exist = false) + private List foreignResultList; + + @TableField(exist = false) + private List spreadResultList; + @Override public String toString() { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessRumorService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessRumorService.java new file mode 100644 index 0000000..6abba50 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessRumorService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 谣言基本信息 服务类 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface IBusinessRumorService extends IService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessVoteRecordService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessVoteRecordService.java new file mode 100644 index 0000000..9571719 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessVoteRecordService.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.Map; + +/** + *

+ * 投票记录 服务类 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface IBusinessVoteRecordService extends IService { + + Map getVoteRecordById(Long voteId); + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessRumorServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessRumorServiceImpl.java new file mode 100644 index 0000000..3997a4c --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessRumorServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.dao.BusinessRumorMapper; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 谣言基本信息 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +@Service +public class BusinessRumorServiceImpl extends ServiceImpl implements IBusinessRumorService { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessVoteRecordServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessVoteRecordServiceImpl.java new file mode 100644 index 0000000..6b7f8fe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessVoteRecordServiceImpl.java @@ -0,0 +1,52 @@ +package com.casic.missiles.modular.system.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.dao.BusinessVoteRecordMapper; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + *

+ * 投票记录 服务实现类 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +@Service +public class BusinessVoteRecordServiceImpl extends ServiceImpl implements IBusinessVoteRecordService { + + + @Override + public Map getVoteRecordById(Long voteId) { + Map resultMap = new HashMap<>(); + resultMap.put(DictEnum.VOTE_AGAINST, "0"); + resultMap.put(DictEnum.VOTE_APPROVE, "0"); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", voteId); + List list = this.list(queryWrapper); + List approveList = list.stream().filter(object -> DictEnum.VOTE_APPROVE.equals(object.getStatus()+"")).collect(Collectors.toList()); + if (ObjectUtil.isNotEmpty(list)) { + if (ObjectUtil.isNotEmpty(approveList)) { + Double approveRate = approveList.size()/Double.valueOf(list.size()); + Double againstRate = 1-approveRate; + resultMap.put(DictEnum.VOTE_AGAINST, String.format("%.2f", againstRate*100)+"%"); + resultMap.put(DictEnum.VOTE_APPROVE, String.format("%.2f", approveRate*100)+"%"); + }else { + resultMap.put(DictEnum.VOTE_AGAINST, "100%"); + } + } + return resultMap; + } + + +} diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index d955c33..1c0fa48 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -29,4 +29,9 @@ logging: level.root: info level.com.casic: debug - level.org.springframework.web: info \ No newline at end of file + level.org.springframework.web: info +mybatis-plus: + configuration: + # 配置结果集属性为空时 是否映射返回结果 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用 +# log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index bb7d2e4..5fad901 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -1,20 +1,16 @@ package com.casic.missiles.modular.system.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; /** * 上报记录信息控制器 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java new file mode 100644 index 0000000..4bfd1c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessRumorController.java @@ -0,0 +1,137 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.IdsDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.casic.missiles.modular.system.service.IBusinessRumorService; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.Map; +import java.util.Objects; + +/** + * 谣言基本信息控制器 + * + * @author dev + * @Date 2023-06-12 14:48:48 + */ +@Controller +@RequestMapping("/businessRumor") +public class BusinessRumorController extends ExportController { + + + @Autowired + private IBusinessRumorService businessRumorService; + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取谣言基本信息列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.like(ObjectUtil.isNotEmpty(businessRumor.getRumor()), "RUMOR", businessRumor.getRumor()); + return ResponseData.success(businessRumorService.list(queryWrapper)); + } + + /** + * 获取谣言基本信息分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessRumorService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增谣言基本信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessRumor businessRumor) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR", businessRumor.getRumor()); + return ObjectUtil.isNotEmpty(businessRumorService.list(queryWrapper)) ? + ResponseData.error("谣言主题已存在") : ResponseData.success(businessRumorService.save(businessRumor)); + + } + + /** + * 删除谣言基本信息 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeById(idDTO.getId())); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/batchDelete") + @ResponseBody + public Object delete(@RequestBody @Valid IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.removeByIds(idsDTO.getIds())); + } + + /** + * 修改谣言基本信息 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(@RequestBody BusinessRumor businessRumor) { + Assert.isFalse(Objects.isNull(businessRumor.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ResponseData.success(businessRumorService.saveOrUpdate(businessRumor)); + } + + /** + * 谣言基本信息详情 + */ + @RequestMapping(value = "/detail") + @ResponseBody + public Object detail(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + BusinessRumor businessRumor = businessRumorService.getById(idDTO.getId()); + //当支持和反对都为空得时候,取实际的投票结果 + if (ObjectUtil.isAllEmpty(businessRumor.getApproveRate(), businessRumor.getAgainstRate())) { + Map stringMap = businessVoteRecordService.getVoteRecordById(idDTO.getId()); + businessRumor.setApproveRate(stringMap.get(DictEnum.VOTE_APPROVE)); + businessRumor.setAgainstRate(stringMap.get(DictEnum.VOTE_AGAINST)); + } + return ResponseData.success(businessRumor); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java new file mode 100644 index 0000000..8c92628 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessVoteRecordController.java @@ -0,0 +1,101 @@ +package com.casic.missiles.modular.system.controller; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.IdDTO; +import com.casic.missiles.modular.system.dto.VOTEDTO; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.casic.missiles.modular.system.service.IBusinessVoteRecordService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; + +/** + * 投票记录控制器 + * + * @author dev + * @Date 2023-06-12 14:48:23 + */ +@Controller +@RequestMapping("/businessVoteRecord") +public class BusinessVoteRecordController extends ExportController { + + + @Autowired + private IBusinessVoteRecordService businessVoteRecordService; + + + /** + * 获取投票记录列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String condition) { + return businessVoteRecordService.list(null); + } + + /** + * 获取投票记录分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String condition) { + Page page = PageFactory.defaultPage(); + QueryWrapper query = new QueryWrapper<>(); + page = businessVoteRecordService.page(page, query); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 新增投票记录 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(@RequestBody BusinessVoteRecord businessVoteRecord) { + businessVoteRecordService.save(businessVoteRecord); + return ResponseData.success(); + } + +// /** +// * 删除投票记录 +// */ +// @RequestMapping(value = "/delete") +// @ResponseBody +// public Object delete(@RequestParam String businessVoteRecordId) { +// businessVoteRecordService.deleteById(businessVoteRecordId); +// return ResponseData.success(); +// } + + + /** + * 是否有投票记录 + */ + @RequestMapping(value = "/isVote") + @ResponseBody + public Object isVote(@RequestBody @Valid VOTEDTO votedto) { + Assert.isFalse(Objects.isNull(votedto.getRumorId()) || + Objects.isNull(votedto.getVotePerson()), () -> { + throw new BusinessException(BusinessExceptionEnum.PARAM_IS_NULL); + }); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("RUMOR_ID", votedto.getRumorId()); + queryWrapper.eq("VOTE_PERSON", votedto.getVotePerson()); + List recordList = businessVoteRecordService.list(queryWrapper); + + return ResponseData.success(ObjectUtil.isNotEmpty(recordList) ? true : false); + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java index edd61ea..d64ff91 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/SummaryController.java @@ -2,11 +2,18 @@ import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.CommonRequest; +import com.casic.missiles.modular.system.dto.DictDTO; import com.casic.missiles.modular.system.dto.IdDTO; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -39,13 +46,16 @@ @Autowired private ISummaryService summaryService; + @Autowired + private AbstractDictService dictService; + /** * 获取舆情综述列表 */ @RequestMapping(value = "/list") @ResponseBody - public Object list(@RequestBody HashMap map) { + public Object list(@RequestBody HashMap map) { return ResponseData.success(summaryService.getSummaryList(map)); } @@ -54,9 +64,9 @@ */ @RequestMapping(value = "/listPage") @ResponseBody - public Object listPage(@RequestBody HashMap map) { + public Object listPage(@RequestBody HashMap map) { Page page = PageFactory.defaultPage(); - return ResponseData.success(super.packForBT(summaryService.listPage(page,map))); + return ResponseData.success(super.packForBT(summaryService.listPage(page, map))); } /** @@ -65,6 +75,18 @@ @RequestMapping(value = "/add") @ResponseBody public Object add(@RequestBody Summary summary) { + if (ObjectUtil.isNotEmpty(summary.getCommonRequestList())) { + summary.setPlateResult(JSON.toJSONString(summary.getCommonRequestList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResultList())) { + summary.setDiscoveryResult(JSON.toJSONString(summary.getDiscoveryResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResultList())) { + summary.setForeignResult(JSON.toJSONString(summary.getForeignResultList(), true)); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResultList())) { + summary.setSpreadResult(JSON.toJSONString(summary.getSpreadResultList(), true)); + } return summaryService.add(summary); } @@ -94,7 +116,7 @@ */ @RequestMapping(value = "/update") @ResponseBody - public Object update(@RequestBody Summary summary, BindingResult bindingResult) { + public Object update(@RequestBody Summary summary, BindingResult bindingResult) { Assert.isFalse(bindingResult.hasErrors(), () -> { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); }); @@ -110,6 +132,40 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ResponseData.success(summaryService.detail(idDTO.getId())); + Summary summary = summaryService.getById(idDTO.getId()); + if (ObjectUtil.isNotEmpty(summary.getPlateResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getPlateResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setCommonRequestList(list); + } + if (ObjectUtil.isNotEmpty(summary.getSpreadResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getSpreadResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setSpreadResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getForeignResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getForeignResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setForeignResultList(list); + } + if (ObjectUtil.isNotEmpty(summary.getDiscoveryResult())) { + JSONArray jsonArray = (JSONArray) JSONArray.parse(summary.getDiscoveryResult()); + List list = JSONObject.parseArray(jsonArray.toJSONString(), CommonRequest.class); + summary.setDiscoveryResultList(list); + } + return ResponseData.success(summary); + } + + + /** + * 获取字典值 + */ + @RequestMapping(value = "/dictCode") + @ResponseBody + public Object dictCode(@RequestBody DictDTO dictDTO) { + Assert.isFalse(Objects.isNull(dictDTO.getCode()), () -> { + throw new BusinessException(BusinessExceptionEnum.CODE_NULL); + }); + return ResponseData.success(dictService.findInDictByCode(dictDTO.getCode())); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java new file mode 100644 index 0000000..6f1cba1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessRumorMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessRumor; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 谣言基本信息 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessRumorMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java new file mode 100644 index 0000000..15d1cbc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/BusinessVoteRecordMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.BusinessVoteRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 投票记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2023-06-12 + */ +public interface BusinessVoteRecordMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml new file mode 100644 index 0000000..995b949 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessRumorMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR AS rumor, APPROVE_RATE AS approveRate, AGAINST_RATE AS againstRate, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml new file mode 100644 index 0000000..992793d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/BusinessVoteRecordMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + ID AS id, RUMOR_ID AS rumorId, VOTE_PERSON AS votePerson, STATUS AS status, CREATE_TIME AS createTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml index d9d62fd..c2c7690 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/SummaryMapper.xml @@ -19,11 +19,13 @@ + - ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, DESCRIPTION AS description + ID AS id,SPECIAL_NAME AS specialName,BRIEF AS brief, DISCOVERY_TOTAL AS discoveryTotal, DISCOVERY_PUBLIC AS discoveryPublic, DISCOVERY_SECRET AS discoverySecret, DISCOVERY_ABORD AS discoveryAbord, FOREIGN_TOTAL AS foreignTotal, FOREIGN_PROCESSED AS foreignProcessed, FOREIGN_ADD AS foreignAdd, PROCESS_TOTAL AS processTotal, PROCESS_BROWSE AS processBrowse, PROCESS_GREAT AS processGreat, CREATE_TIME AS createTime, + DESCRIPTION AS description,PLATE_RESULT AS plateResult