From 1fb2cfb2bcb152bee03f8a332700241693cfd9b6 Mon Sep 17 00:00:00 2001 From: wl <173@qq.com> Date: 星期二, 16 八月 2022 13:37:00 +0800 Subject: [PATCH] bug处理 --- src/main/resources/mapper/ReportDao.xml | 48 ++++- src/main/java/com/example/jz/dao/ReportDao.java | 5 src/main/java/com/example/jz/controller/ReportController.java | 1 src/main/java/com/example/jz/modle/dto/AddReportLoadDto.java | 52 ++++++ src/main/java/com/example/jz/service/impl/GroupServiceImpl.java | 80 ++++++++- src/main/java/com/example/jz/service/impl/CauseServiceImpl.java | 58 +++++- src/test/java/com/example/jz/JzApplicationTests.java | 5 src/main/java/com/example/jz/modle/entity/Message.java | 4 src/main/java/com/example/jz/service/ReportService.java | 2 src/main/java/com/example/jz/modle/vo/GroupMessageVo.java | 2 src/main/java/com/example/jz/modle/vo/MessageVo.java | 2 src/main/java/com/example/jz/service/GroupService.java | 3 src/main/resources/mapper/GroupDao.xml | 16 + src/main/java/com/example/jz/service/impl/ReportServiceImpl.java | 63 ++++--- src/main/java/com/example/jz/modle/dto/AddReportDto.java | 1 src/main/java/com/example/jz/modle/vo/QuestionVo.java | 4 src/main/java/com/example/jz/modle/entity/Report.java | 3 src/main/java/com/example/jz/controller/CauseController.java | 24 +- src/main/java/com/example/jz/modle/vo/GroupUserVo.java | 8 src/main/java/com/example/jz/modle/vo/ReportListVo.java | 2 src/main/java/com/example/jz/service/impl/WorkbenchServiceImpl.java | 6 src/main/java/com/example/jz/modle/vo/CauseReportVo.java | 10 src/main/resources/mapper/MessageDao.xml | 7 src/main/java/com/example/jz/controller/GroupController.java | 57 ++++++- src/main/java/com/example/jz/service/CauseService.java | 2 25 files changed, 364 insertions(+), 101 deletions(-) diff --git a/src/main/java/com/example/jz/controller/CauseController.java b/src/main/java/com/example/jz/controller/CauseController.java index 39e636c..2a4ce10 100644 --- a/src/main/java/com/example/jz/controller/CauseController.java +++ b/src/main/java/com/example/jz/controller/CauseController.java @@ -111,26 +111,26 @@ return R.ok(); } + @ApiOperation(httpMethod = "POST", value = "妗堜欢鍙�-妗堜欢褰曞叆-鎶ユ浜哄憳-鎶ユ浜哄厓瀵煎叆") + @PostMapping("/reporterUpload") + @ApiResponse(message = "鎵ц鎴愬姛", code = 200) + @SneakyThrows + public R uploadReporter(@RequestParam(value = "multipartFile") MultipartFile multipartFile,Integer causeId) { + causeService.loadFileReport(multipartFile,causeId); + return R.ok(); + } + @ApiOperation(httpMethod = "GET", value = "鏍规嵁缇ょ粍id鏌ヨ妗堜欢鍒嗛〉") @GetMapping("/getAllReportList") @ApiResponse(message = "鎵ц鎴愬姛", code = 200) - public R<IPage<ReportListVo>> get(Page<ReportListVo> page, ReportParamDto reportParamDto, Integer groupId) { - return R.ok(reportService.getPageByGroupId(page, reportParamDto, groupId)); + public R<IPage<ReportListVo>> get(Page<ReportListVo> page, ReportParamDto reportParamDto, Integer causeId) { + return R.ok(reportService.getPageByGroupId(page, reportParamDto, causeId)); } @ApiOperation(httpMethod = "POST", value = "娣诲姞浜哄憳") @PostMapping("/addReporter") @ApiResponse(message = "鎵ц鎴愬姛", code = 200) - public R<Boolean> get(AddReportDto addReportDto) { - if (addReportDto.getReporterName() == null || addReportDto.getReporterName().equals("")) { - return R.failed("鎶ユ浜哄憳涓嶈兘涓虹┖"); - } - if (addReportDto.getMobile() == null || addReportDto.getMobile().equals("")) { - return R.failed("鎶ユ浜哄憳鐢佃瘽涓嶈兘涓虹┖"); - } - if (addReportDto.getIdcard() == null || addReportDto.getIdcard().equals("")) { - return R.failed("鎶ユ浜哄憳韬唤璇佷笉鑳戒负绌�"); - } + public R<Boolean> get(@RequestBody AddReportDto addReportDto) { return R.ok(causeService.addReportPeople(addReportDto)); } diff --git a/src/main/java/com/example/jz/controller/GroupController.java b/src/main/java/com/example/jz/controller/GroupController.java index 41a8655..88968fe 100644 --- a/src/main/java/com/example/jz/controller/GroupController.java +++ b/src/main/java/com/example/jz/controller/GroupController.java @@ -1,15 +1,17 @@ package com.example.jz.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.api.ApiController; -import com.baomidou.mybatisplus.extension.api.R; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.example.jz.modle.R; import com.example.jz.modle.entity.Announcement; import com.example.jz.modle.entity.Group; +import com.example.jz.modle.entity.GroupUser; +import com.example.jz.modle.entity.Message; import com.example.jz.modle.vo.GroupMessageVo; import com.example.jz.modle.vo.GroupUserVo; import com.example.jz.service.GroupService; +import com.example.jz.service.GroupUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -17,8 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import java.io.Serializable; import java.util.List; /** @@ -38,8 +38,12 @@ public void setGroupService(GroupService groupService) { this.groupService = groupService; } + + @Autowired + GroupUserService groupUserService; + /** - * 鏍规嵁缇ょ粍id鑾峰彇褰撳墠缇ょ粍鎵�鏈夌殑娑堟伅 + * 鏍规嵁缇ょ粍id鑾峰彇褰撳墠缇ょ粍鎵�鏈夌殑娑堟伅 淇敼 * * @param id 缇ょ粍id * @return 褰撳墠缇ょ粍鎵�鏈夌殑娑堟伅 @@ -49,6 +53,37 @@ @ApiImplicitParam(name = "id", value = "缇ょ粍id", required = true, dataType = "Integer") public R<List<GroupMessageVo>> getAllMessage(@RequestParam("id") Integer id) { return R.ok(groupService.getAllMessage(id)); + } + + + @GetMapping("getGroupMessage") + @ApiOperation(value = "鑾峰彇褰撳墠缇ょ粍娑堟伅閫氳繃鎴愬憳鎴栬�呭唴瀹�") + @ApiImplicitParams({ + @ApiImplicitParam(name = "report", value = "缇ょ粍id", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "context", value = "缇ょ粍id", required = true, dataType = "String") + }) + public R<List<GroupMessageVo>> get(@RequestParam(value = "report" ,required = false) String reporter, @RequestParam(value = "context",required = false) String context,Integer groupId) { + return R.ok(groupService.getByCondition(reporter, context,groupId)); + } + + @PutMapping("banSpeech") + @ApiOperation(value = "绂佽█") + @ApiImplicitParam(name = "id", value = "缇ょ粍id", required = true, dataType = "Integer") + public R setBanSpeech(@RequestParam("id") Integer id) { + return R.ok(groupUserService.update(new UpdateWrapper<GroupUser>().set("ban_speech",1).eq("user_id",id))); + } + + @PutMapping("allowSpeech") + @ApiOperation(value = "鍏佽鍙戣█") + @ApiImplicitParam(name = "id", value = "缇ょ粍id", required = true, dataType = "Integer") + public R setAllowSpeech(@RequestParam("id") Integer id) { + return R.ok(groupUserService.update(new UpdateWrapper<GroupUser>().set("ban_speech",0).eq("user_id",id))); + } + + @PutMapping("banSpeechAll") + @ApiOperation(value = "鍏ㄩ儴绂佽█") + public R setBanSpeechAll(@RequestParam("id") Integer id) { + return R.ok(groupUserService.update(new UpdateWrapper<GroupUser>().set("ban_speech",1).eq("group_id",id))); } /** @@ -82,7 +117,7 @@ } /** - * 鑾峰彇缇ょ粍鎵�鏈変汉鍛樺垪琛� + * 鑾峰彇缇ょ粍鎵�鏈変汉鍛樺垪琛� 淇敼 * * @param id 缇ょ粍id * @return 缇ょ粍鎵�鏈変汉鍛樺垪琛� @@ -93,4 +128,10 @@ public R<List<GroupUserVo>> getAllUser(@RequestParam("id") Integer id) { return R.ok(groupService.getAllUser(id)); } -} + + @GetMapping("getAllGroupName") + @ApiOperation(value = "鑾峰彇缇ょ粍鍚嶇О") + public R<List<Group>> getAllGroupName() { + return R.ok(groupService.list()); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/jz/controller/ReportController.java b/src/main/java/com/example/jz/controller/ReportController.java index 0e37f47..0b17490 100644 --- a/src/main/java/com/example/jz/controller/ReportController.java +++ b/src/main/java/com/example/jz/controller/ReportController.java @@ -88,6 +88,7 @@ @PutMapping("/updateReport") @ApiResponse(message = "鎵ц鎴愬姛", code = 200) public R updateReport(@RequestBody Report report) { + report.setPic(null); reportService.updateById(report); return R.ok(); } diff --git a/src/main/java/com/example/jz/dao/ReportDao.java b/src/main/java/com/example/jz/dao/ReportDao.java index eee3b7d..a349876 100644 --- a/src/main/java/com/example/jz/dao/ReportDao.java +++ b/src/main/java/com/example/jz/dao/ReportDao.java @@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.Param; import java.io.Serializable; +import java.util.List; /** * 鎶ユ琛�(Report)琛ㄦ暟鎹簱璁块棶灞� @@ -23,6 +24,8 @@ ReportListVo getReportListVoById(Serializable id); - Page<ReportListVo> getPageByGroupId(Page<ReportListVo> page, ReportParamDto reportParamDto, Integer groupId); + List<ReportListVo> getPageByGroupId( ReportParamDto reportParamDto, Integer causeId,Long size,Long current); + + Integer getPageByGroupIdCount(ReportParamDto reportParamDto, Integer causeId); } diff --git a/src/main/java/com/example/jz/modle/dto/AddReportDto.java b/src/main/java/com/example/jz/modle/dto/AddReportDto.java index 9c68dc1..b8f4063 100644 --- a/src/main/java/com/example/jz/modle/dto/AddReportDto.java +++ b/src/main/java/com/example/jz/modle/dto/AddReportDto.java @@ -1,5 +1,6 @@ package com.example.jz.modle.dto; +import com.alibaba.excel.annotation.ExcelProperty; import com.example.jz.modle.entity.Report; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; diff --git a/src/main/java/com/example/jz/modle/dto/AddReportLoadDto.java b/src/main/java/com/example/jz/modle/dto/AddReportLoadDto.java new file mode 100644 index 0000000..f7e0dc6 --- /dev/null +++ b/src/main/java/com/example/jz/modle/dto/AddReportLoadDto.java @@ -0,0 +1,52 @@ +package com.example.jz.modle.dto; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.example.jz.modle.entity.Report; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @author 瀹夌懢鐒� + * @data 2022/7/18 - 2:12 PM + * @description + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class AddReportLoadDto { + @ApiModelProperty(value = "鎶ユ浜�",dataType = "String") + @ExcelProperty(value = "鎶ユ浜�",index = 0) + private String reporterName; + + @ApiModelProperty(value = "鎶ユ浜烘墜鏈哄彿",dataType = "String") + @ExcelProperty(value = "鎵嬫満鍙�",index = 1) + //鎶ユ浜烘墜鏈哄彿 + private String mobile; + + @ApiModelProperty(value = "鎶ユ浜鸿韩浠借瘉鍙�",dataType = "String") + @ExcelProperty(value = "韬唤璇佸彿",index = 2) + //鎶ユ浜鸿韩浠借瘉鍙� + private String idcard; + + @ExcelProperty(value = "琚獥鏃堕棿",index = 3) + private Date cheatTime; + + @ExcelProperty(value = "娑夋閲戦",index = 4) + private Double amountInvolved; + + @ExcelProperty(value = "妗堜欢鎻忚堪",index = 5) + private String reportDescription; + + @ExcelProperty(value = "琛ュ厖淇℃伅",index = 6) + private String information; + + @ApiModelProperty(value = "缇ょ粍id",dataType = "Integer") + private Integer groupId; + + //妗堜欢Id + private Integer causeId; +} diff --git a/src/main/java/com/example/jz/modle/entity/Message.java b/src/main/java/com/example/jz/modle/entity/Message.java index 777316b..f467535 100644 --- a/src/main/java/com/example/jz/modle/entity/Message.java +++ b/src/main/java/com/example/jz/modle/entity/Message.java @@ -46,6 +46,10 @@ private Date ctime; + private Integer copId; + + private String reportName; + /** * 鑾峰彇涓婚敭鍊� * diff --git a/src/main/java/com/example/jz/modle/entity/Report.java b/src/main/java/com/example/jz/modle/entity/Report.java index d6168f2..4b4920d 100644 --- a/src/main/java/com/example/jz/modle/entity/Report.java +++ b/src/main/java/com/example/jz/modle/entity/Report.java @@ -2,6 +2,7 @@ import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import io.swagger.annotations.ApiModelProperty; @@ -60,6 +61,8 @@ private Integer causeId; //妗堜欢鎻忚堪 private String reportDescription; + //鏄惁杩涚兢 + private Integer isInGroup; /** * 鑾峰彇涓婚敭鍊� diff --git a/src/main/java/com/example/jz/modle/vo/CauseReportVo.java b/src/main/java/com/example/jz/modle/vo/CauseReportVo.java index 70e8fe1..b06c50c 100644 --- a/src/main/java/com/example/jz/modle/vo/CauseReportVo.java +++ b/src/main/java/com/example/jz/modle/vo/CauseReportVo.java @@ -12,20 +12,20 @@ //澶村儚鍦板潃 private String pic; //鎶ユ浜篿d - private String userName; + private String reporterName; /** * 鎵嬫満鍙风爜 */ - private String userMobile; + private String mobile; /** * 鐢ㄦ埛韬唤璇佸彿鐮� */ - private String userIdcard; + private String idcard; //鏄惁浠e姙 1锛堜唬鍔烇級 0锛堜笉鏄唬鍔烇級 private String isCommission; //鏄惁浠e姙 1锛堜唬鍔烇級 0锛堜笉鏄唬鍔烇級 - private String isIntoGroup; + private Integer isInGroup; //娑夋閲戦 private Double amountInvolved; //鎶ユ鏉愭枡鍥剧墖鍦板潃 澶氫釜鐢�,鍒嗛殧 @@ -44,4 +44,6 @@ private Integer causeId; //缇ょ粍id private Integer groupId; + //妗堜欢鎻忚堪 + private String reportDescription; } diff --git a/src/main/java/com/example/jz/modle/vo/GroupMessageVo.java b/src/main/java/com/example/jz/modle/vo/GroupMessageVo.java index f4596a9..8547597 100644 --- a/src/main/java/com/example/jz/modle/vo/GroupMessageVo.java +++ b/src/main/java/com/example/jz/modle/vo/GroupMessageVo.java @@ -23,6 +23,8 @@ * 鐢ㄦ埛鍚� */ private String userName; + +private String pic; /** * 鏂囨湰鍐呭 */ diff --git a/src/main/java/com/example/jz/modle/vo/GroupUserVo.java b/src/main/java/com/example/jz/modle/vo/GroupUserVo.java index dd6dbc3..0e0c000 100644 --- a/src/main/java/com/example/jz/modle/vo/GroupUserVo.java +++ b/src/main/java/com/example/jz/modle/vo/GroupUserVo.java @@ -23,9 +23,11 @@ * 鐢ㄦ埛鍚� */ private String userId; - /** - * 鏂囨湰鍐呭 - */ + + private Integer groupId; + + private String pic; + private String userName; /** * 鏄惁绂佽█(0涓哄惁1涓烘槸锛� diff --git a/src/main/java/com/example/jz/modle/vo/MessageVo.java b/src/main/java/com/example/jz/modle/vo/MessageVo.java index f7796fc..78873bc 100644 --- a/src/main/java/com/example/jz/modle/vo/MessageVo.java +++ b/src/main/java/com/example/jz/modle/vo/MessageVo.java @@ -25,6 +25,6 @@ @ApiModelProperty(dataType = "Integer",value = "缇ょ粍id") private Integer groupId; - @ApiModelProperty(dataType = "Date",value = "鍒涘缓甯堣") + @ApiModelProperty(dataType = "Date",value = "鍒涘缓鏃堕棿") private Date ctime; } diff --git a/src/main/java/com/example/jz/modle/vo/QuestionVo.java b/src/main/java/com/example/jz/modle/vo/QuestionVo.java index 064fd7d..a33bd6b 100644 --- a/src/main/java/com/example/jz/modle/vo/QuestionVo.java +++ b/src/main/java/com/example/jz/modle/vo/QuestionVo.java @@ -25,4 +25,8 @@ //鏈�鏃╂妗堝彂鏃堕棿 @ApiModelProperty(dataType = "Date", value = "鍙戝竷鏃堕棿") private Date releaseTime; + + //闂瑙g瓟 + @ApiModelProperty(value = "闂瑙g瓟") + private String answer; } diff --git a/src/main/java/com/example/jz/modle/vo/ReportListVo.java b/src/main/java/com/example/jz/modle/vo/ReportListVo.java index c87ddf0..cc9f2e6 100644 --- a/src/main/java/com/example/jz/modle/vo/ReportListVo.java +++ b/src/main/java/com/example/jz/modle/vo/ReportListVo.java @@ -8,8 +8,6 @@ @Data @ApiModel(description = "鎶ユ浜哄憳棣栭〉",value = "ReportListVo") public class ReportListVo extends Report { - //鏄惁杩涚兢 - private Integer isIntoGroup; //缇d private Integer groupId; diff --git a/src/main/java/com/example/jz/service/CauseService.java b/src/main/java/com/example/jz/service/CauseService.java index 0fc2289..167d5a2 100644 --- a/src/main/java/com/example/jz/service/CauseService.java +++ b/src/main/java/com/example/jz/service/CauseService.java @@ -82,5 +82,7 @@ Boolean addReportPeople(AddReportDto addReportDto); List<Map<String,String>> getCauseIdAndName(); + + void loadFileReport(MultipartFile multipartFile,Integer causeId); } diff --git a/src/main/java/com/example/jz/service/GroupService.java b/src/main/java/com/example/jz/service/GroupService.java index 56e0547..a8368be 100644 --- a/src/main/java/com/example/jz/service/GroupService.java +++ b/src/main/java/com/example/jz/service/GroupService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.example.jz.modle.entity.Announcement; import com.example.jz.modle.entity.Group; +import com.example.jz.modle.entity.Message; import com.example.jz.modle.vo.GroupMessageVo; import com.example.jz.modle.vo.GroupUserVo; @@ -23,4 +24,6 @@ Boolean sendMessage(Integer id, String text); List<GroupUserVo> getAllUser(Integer id); + + List<GroupMessageVo> getByCondition(String name, String text,Integer groupId); } diff --git a/src/main/java/com/example/jz/service/ReportService.java b/src/main/java/com/example/jz/service/ReportService.java index b99cbef..94fe678 100644 --- a/src/main/java/com/example/jz/service/ReportService.java +++ b/src/main/java/com/example/jz/service/ReportService.java @@ -29,7 +29,7 @@ ReportListVo getReportListVoById(Serializable id); - Page<ReportListVo> getPageByGroupId(Page<ReportListVo> page, ReportParamDto reportParamDto, Integer groupId); + Page<ReportListVo> getPageByGroupId(Page<ReportListVo> page, ReportParamDto reportParamDto, Integer causeId); /** * 娣诲姞妗堜欢 diff --git a/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java b/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java index 74f45d3..ac5649a 100644 --- a/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java +++ b/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java @@ -12,6 +12,7 @@ import com.example.jz.exception.BusinessException; import com.example.jz.modle.PageParam; import com.example.jz.modle.dto.AddReportDto; +import com.example.jz.modle.dto.AddReportLoadDto; import com.example.jz.modle.dto.CauseDto; import com.example.jz.modle.dto.CauseLoadDto; import com.example.jz.modle.entity.*; @@ -19,8 +20,11 @@ import com.example.jz.modle.vo.CauseVo; import com.example.jz.modle.vo.UserVo; import com.example.jz.service.CauseService; +import com.example.jz.service.ReportService; +import com.example.jz.service.UserService; import lombok.SneakyThrows; import org.springframework.beans.BeanUtils; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -50,6 +54,10 @@ GroupDao groupDao; @Resource GroupUserDao groupUserDao; + @Resource + UserService userService; + @Resource + ReportService reportService; @Resource AnnouncementDao announcementDao; @@ -127,21 +135,17 @@ @Override public PageParam<CauseReportVo> getReporterList(Integer causeId) { PageParam<Report> PageParam = new PageParam<>(); - PageParam<Report> reportPageParam = reportDao.selectPage(PageParam, new QueryWrapper<Report>().eq("cause_id", causeId)); + PageParam<Report> reportPageParam = reportDao.selectPage(PageParam, new QueryWrapper<Report>().eq("cause_id", causeId).orderByDesc("ctime")); List<CauseReportVo> causeReportVos = reportPageParam.getRecords().stream() .map( a -> { CauseReportVo causeReportVo = new CauseReportVo(); User user = userDao.selectOne(new QueryWrapper<User>().eq("id", a.getUserId())); BeanUtils.copyProperties(a, causeReportVo); - causeReportVo.setUserIdcard(user.getUserIdcard()); - causeReportVo.setUserMobile(user.getUserMobile()); - causeReportVo.setUserIdcard(causeReportVo.getUserIdcard().replaceAll("(?<=[\\d]{3})\\d(?=[\\d]{4})", "*")); - causeReportVo.setUserName(user.getRealName()); - if (groupUserDao.selectOne(new QueryWrapper<GroupUser>().eq("user_id", a.getId())) == null) { - causeReportVo.setIsIntoGroup("0"); - } else { - causeReportVo.setIsIntoGroup("1"); + causeReportVo.setMobile(user.getUserMobile()); + causeReportVo.setIdcard(user.getUserIdcard().replaceAll("(?<=[\\d]{3})\\d(?=[\\d]{4})", "*")); + causeReportVo.setReporterName(user.getRealName()); + if (causeReportVo.getIsInGroup()==1) { causeReportVo.setGroupId(groupDao.selectOne(new QueryWrapper<Group>().eq("cause_id",causeId)).getId()); } return causeReportVo; @@ -234,21 +238,25 @@ // 濡傛灉鐢ㄦ埛涓嶅瓨鍦� 鍒欐坊鍔犵敤鎴� user = new User().setUserIdcard(addReportDto.getIdcard()).setUserMobile(addReportDto.getMobile()).setRealName(addReportDto.getReporterName()) .setModifyTime(new Date()).setUserRegtime(new Date()).setPic(addReportDto.getPic()); - userDao.insert(user); + userService.save(user); } + Group group = groupDao.selectOne(new QueryWrapper<Group>().eq("cause_id", addReportDto.getCauseId())); // 娣诲姞浜哄憳杩涚兢缁� - groupUserDao.insert(new GroupUser().setGroupId(addReportDto.getGroupId()).setUserId(user.getId()).setCtime(new Date()).setBanSpeech(0)); + // groupUserDao.insert(new GroupUser().setGroupId(group.getId()).setUserId(user.getId()).setCtime(new Date()).setBanSpeech(0)); // 娣诲姞鎶ユ淇℃伅 Report report = new Report(); BeanUtils.copyProperties(addReportDto, report); report + .setIsInGroup(1) + .setCreator(userDao.selectOne(new QueryWrapper<User>().eq("login_username", SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId()) .setUserId(user.getId()) .setCtime(new Date()) .setStatus(0) .setReportMethod("鐜板満褰曞叆") .setIsCommission("0").setReportTime(new Date()) - .setCauseId(groupDao.selectOne(new QueryWrapper<Group>().eq("id", addReportDto.getGroupId())).getCauseId()); - return reportDao.insert(report) > 0; + .setCauseId(addReportDto.getCauseId()); + reportService.save(report); + return groupUserDao.insert(new GroupUser().setGroupId(group.getId()).setUserId(report.getId()).setCtime(new Date()).setBanSpeech(0))> 0; } @Override @@ -262,4 +270,28 @@ }); return maps; } + + @Override + @SneakyThrows + public void loadFileReport(MultipartFile multipartFile,Integer causeId) { + EasyExcel.read(multipartFile.getInputStream(), AddReportLoadDto.class, new AnalysisEventListener<AddReportLoadDto>() { + @Override + public void invoke(AddReportLoadDto data, AnalysisContext context) { + if (StringUtils.isNotBlank(data.getReporterName())&&StringUtils.isNotBlank(data.getIdcard())){ + AddReportDto addReportDto = new AddReportDto(); + BeanUtils.copyProperties(data,addReportDto); + addReportDto.setCauseId(causeId); + addReportPeople(addReportDto); + } + + } + + @Override + public void doAfterAllAnalysed(AnalysisContext context) { + + } + }) + .autoCloseStream(true) + .doReadAll(); + } } \ No newline at end of file diff --git a/src/main/java/com/example/jz/service/impl/GroupServiceImpl.java b/src/main/java/com/example/jz/service/impl/GroupServiceImpl.java index a4cfab5..65be7a4 100644 --- a/src/main/java/com/example/jz/service/impl/GroupServiceImpl.java +++ b/src/main/java/com/example/jz/service/impl/GroupServiceImpl.java @@ -1,22 +1,22 @@ package com.example.jz.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.example.jz.dao.AnnouncementDao; -import com.example.jz.dao.GroupDao; -import com.example.jz.dao.MessageDao; -import com.example.jz.modle.entity.Announcement; -import com.example.jz.modle.entity.Group; -import com.example.jz.modle.entity.Message; +import com.example.jz.dao.*; +import com.example.jz.modle.entity.*; import com.example.jz.modle.vo.GroupMessageVo; import com.example.jz.modle.vo.GroupUserVo; import com.example.jz.service.GroupService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * 缇よ〃 @@ -27,9 +27,16 @@ */ @Service("groupService") public class GroupServiceImpl extends ServiceImpl<GroupDao, Group> implements GroupService { + @Resource private MessageDao messageDao; + @Resource private AnnouncementDao announcementDao; + @Resource private GroupDao groupDao; + @Resource + private UserDao userDao; + @Resource + private ReportDao reportDao; @Autowired public void setMessageDao(MessageDao messageDao) { @@ -48,7 +55,27 @@ @Override public List<GroupMessageVo> getAllMessage(Integer id) { - return messageDao.getAllMessageByGroup(id); + List<GroupMessageVo> list = messageDao.selectList(new QueryWrapper<Message>().eq("group_id", id).orderByAsc("ctime")).stream().map(item -> { + String username; + String pic = null; + if (item.getUserId() == null) { + username = userDao.selectOne(new QueryWrapper<User>().eq("id", item.getCopId())).getRealName(); + } else { + Report report = reportDao.selectOne(new QueryWrapper<Report>().eq("id", item.getUserId())); + username = userDao.selectOne(new QueryWrapper<User>().eq("id", report.getUserId())).getRealName(); + pic = report.getPic(); + Message message = new Message(); + message.setReportName(username); + messageDao.update(message,new QueryWrapper<Message>().eq("user_id",item.getUserId())); + } + GroupMessageVo groupMessageVo = new GroupMessageVo(); + groupMessageVo.setUserName(username); + groupMessageVo.setText(item.getText()); + groupMessageVo.setCtime(item.getCtime()); + groupMessageVo.setPic(pic); + return groupMessageVo; + }).collect(Collectors.toList()); + return list; } @Override @@ -58,8 +85,8 @@ @Override public Boolean sendMessage(Integer id, String text) { - // todo 鍔ㄦ�佽幏鍙栧綋鍓嶇櫥褰曠敤鎴风殑id - Message message = new Message().setUserId(1).setText(text).setGroupId(id).setCtime(new Date()); + Message message = new Message().setCopId(userDao.selectOne(new QueryWrapper<User>().eq("login_username", SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId()) + .setText(text).setGroupId(id).setCtime(new Date()); return messageDao.insert(message) > 0; } @@ -67,4 +94,39 @@ public List<GroupUserVo> getAllUser(Integer id) { return groupDao.getAllUser(id); } + + @Override + public List<GroupMessageVo> getByCondition(String name, String text,Integer groupId) { + List<GroupMessageVo> groupUserVoList; + if (StringUtils.isBlank(name)) { + groupUserVoList = messageDao.selectList(new QueryWrapper<Message>().like(StringUtils.isNotBlank(text), "text", text).eq("group_id",groupId).orderByAsc("ctime")).stream().map(item -> { + String username; + String pic = null; + if (item.getUserId() == null) { + username = userDao.selectOne(new QueryWrapper<User>().eq("cop_id", item.getCopId())).getRealName(); + } else { + Report report = reportDao.selectOne(new QueryWrapper<Report>().eq("id", item.getUserId())); + username = userDao.selectOne(new QueryWrapper<User>().eq("id", report.getUserId())).getRealName(); + pic = report.getPic(); + } + GroupMessageVo groupMessageVo = new GroupMessageVo(); + groupMessageVo.setUserName(username); + groupMessageVo.setText(item.getText()); + groupMessageVo.setCtime(item.getCtime()); + groupMessageVo.setPic(pic); + return groupMessageVo; + }).collect(Collectors.toList()); + } else { + groupUserVoList = messageDao.selectList(new QueryWrapper<Message>().eq("report_Name", name).eq("group_id",groupId).orderByAsc("ctime")).stream().map(item -> { + Report report = reportDao.selectOne(new QueryWrapper<Report>().eq("id", item.getUserId())); + GroupMessageVo groupMessageVo = new GroupMessageVo(); + groupMessageVo.setUserName(item.getReportName()); + groupMessageVo.setText(item.getText()); + groupMessageVo.setCtime(item.getCtime()); + groupMessageVo.setPic(report.getPic()); + return groupMessageVo; + }).collect(Collectors.toList()); + } + return groupUserVoList; + } } diff --git a/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java b/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java index 7ee12e4..659c1f2 100644 --- a/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java +++ b/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java @@ -3,7 +3,6 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.metadata.data.ImageData; import com.alibaba.excel.metadata.data.WriteCellData; -import com.alibaba.excel.support.ExcelTypeEnum; import com.alibaba.excel.util.IoUtils; import com.alibaba.excel.util.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -11,23 +10,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.jz.dao.*; +import com.example.jz.modle.PageParam; import com.example.jz.modle.dto.AddReportDto; import com.example.jz.modle.dto.ReportParamDto; -import com.example.jz.modle.entity.Group; -import com.example.jz.modle.entity.GroupUser; -import com.example.jz.modle.entity.Report; -import com.example.jz.modle.entity.User; -import com.example.jz.modle.vo.ReportListVo; -import com.example.jz.dao.*; import com.example.jz.modle.entity.*; import com.example.jz.modle.vo.ExportExcelReportVo; import com.example.jz.modle.vo.ReportListVo; import com.example.jz.service.MinIOService; import com.example.jz.service.ReportService; +import com.example.jz.service.UserService; import lombok.SneakyThrows; import org.springframework.beans.BeanUtils; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,11 +31,10 @@ import java.io.Serializable; import java.net.URL; import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; -import java.io.Serializable; +import java.util.Comparator; import java.util.Date; import java.util.List; @@ -65,6 +59,10 @@ @Resource UserDao userDao; + @Resource + UserService userService; + @Resource + ReportService reportService; @Resource MinIOService minIOService; @@ -84,13 +82,17 @@ // 2. 鏇存柊缇ょ敤鎴疯〃 Group group = groupDao.selectOne(new LambdaQueryWrapper<>(Group.class) .eq(Group::getCauseId, report.getCauseId())); - GroupUser groupUser = new GroupUser().setGroupId(group.getId()).setUserId(report.getUserId()).setCtime(new Date()).setBanSpeech(0); + GroupUser groupUser = new GroupUser().setGroupId(group.getId()).setUserId(report.getId()).setCtime(new Date()).setBanSpeech(0); groupUserDao.insert(groupUser); return true; } @Override public void leaveGroup(Integer id, Integer groupId) { + Report report = new Report(); + report.setIsInGroup(0); + report.setId(id); + reportDao.updateById(report); groupUserDao.delete(new QueryWrapper<GroupUser>().eq("user_id", id).eq("group_id", groupId)); } @@ -152,7 +154,8 @@ @Override public Page<ReportListVo> getPage(Page<ReportListVo> page, ReportParamDto reportParamDto) { Page<ReportListVo> aaa = reportDao.getPage(page, reportParamDto); - aaa.getRecords().stream().forEach(x -> x.setIdcard(x.getIdcard().replaceAll("(?<=[\\d]{3})\\d(?=[\\d]{4})", "*"))); + aaa.getRecords().stream() + .forEach(x -> x.setIdcard(x.getIdcard().replaceAll("(?<=[\\d]{3})\\d(?=[\\d]{4})", "*"))); return aaa; } @@ -162,8 +165,19 @@ } @Override - public Page<ReportListVo> getPageByGroupId(Page<ReportListVo> page, ReportParamDto reportParamDto, Integer groupId) { - Page<ReportListVo> aaa = reportDao.getPageByGroupId(page, reportParamDto, groupId); + public Page<ReportListVo> getPageByGroupId(Page<ReportListVo> page, ReportParamDto reportParamDto, Integer causeId) { + Long size = (page.getCurrent() - 1) * page.getSize(); + Long current = page.getSize(); + Page<ReportListVo> aaa = new PageParam<>(); + List<ReportListVo> list = reportDao.getPageByGroupId(reportParamDto, causeId, size, current); + list.forEach(item -> { + if (item.getIsInGroup() == 1) { + item.setGroupId(groupDao.selectOne(new QueryWrapper<Group>().eq("cause_id", causeId)).getId()); + } + }); + aaa.setRecords(list); + Integer pageByGroupIdCount = reportDao.getPageByGroupIdCount(reportParamDto, causeId); + aaa.setTotal(pageByGroupIdCount); aaa.getRecords().stream().forEach(x -> x.setIdcard(x.getIdcard().replaceAll("(?<=[\\d]{3})\\d(?=[\\d]{4})", "*"))); return aaa; } @@ -175,25 +189,26 @@ if (user == null) { // 濡傛灉鐢ㄦ埛涓嶅瓨鍦� 鍒欐坊鍔犵敤鎴� user = new User().setUserIdcard(addReportDto.getIdcard()).setUserMobile(addReportDto.getMobile()).setRealName(addReportDto.getReporterName()) - .setModifyTime(new Date()).setUserRegtime(new Date()).setPic(addReportDto.getPic()); - userDao.insert(user); + .setModifyTime(new Date()).setUserRegtime(new Date()).setPic(addReportDto.getPic()).setCtime(new Date()); + userService.save(user); } // 娣诲姞浜哄憳杩涚兢缁� - groupUserDao.insert(new GroupUser() - .setGroupId(groupDao.selectOne(new QueryWrapper<Group>().eq("cause_id", addReportDto.getCauseId())).getId()) - .setUserId(user.getId()).setCtime(new Date()) - .setBanSpeech(0)); +// groupUserDao.insert(new GroupUser() +// .setGroupId(groupDao.selectOne(new QueryWrapper<Group>().eq("cause_id", addReportDto.getCauseId())).getId()) +// .setUserId(user.getId()).setCtime(new Date()) +// .setBanSpeech(0)); // 娣诲姞鎶ユ淇℃伅 Report report = new Report(); BeanUtils.copyProperties(addReportDto, report); report + .setCreator(userDao.selectOne(new QueryWrapper<User>().eq("login_username", SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId()) .setUserId(user.getId()) .setCtime(new Date()) - .setStatus(1) + .setStatus(0) + .setIsInGroup(0) .setReportMethod("鐜板満褰曞叆") .setIsCommission("0").setReportTime(new Date()) .setCauseId(addReportDto.getCauseId()); - return reportDao.insert(report) > 0; + return reportService.save(report); } -} - +} \ No newline at end of file diff --git a/src/main/java/com/example/jz/service/impl/WorkbenchServiceImpl.java b/src/main/java/com/example/jz/service/impl/WorkbenchServiceImpl.java index 6f23222..0ed9841 100644 --- a/src/main/java/com/example/jz/service/impl/WorkbenchServiceImpl.java +++ b/src/main/java/com/example/jz/service/impl/WorkbenchServiceImpl.java @@ -85,12 +85,12 @@ @Override public List<MessageVo> getGroupMessage() { ArrayList<MessageVo> messageVos = new ArrayList<>(); - messageDao.selectList(new QueryWrapper<Message>().orderByDesc("ctime").last("limit 5")) - .forEach(a -> { + messageDao.selectList(new QueryWrapper<Message>().orderByDesc("ctime")).stream() + .filter(item->item.getUserId()!=null).limit(5).forEach(a -> { MessageVo messageVo = new MessageVo(); messageVo.setGroupName(groupDao.selectOne(new QueryWrapper<Group>().eq("id", a.getGroupId())).getGroupName()); BeanUtils.copyProperties(a, messageVo); - messageVo.setUserName(userDao.selectOne(new QueryWrapper<User>().eq("id", a.getUserId())).getRealName()); + messageVo.setUserName(a.getReportName()); messageVos.add(messageVo); }); return messageVos; diff --git a/src/main/resources/mapper/GroupDao.xml b/src/main/resources/mapper/GroupDao.xml index 14923e0..9cb2fd2 100644 --- a/src/main/resources/mapper/GroupDao.xml +++ b/src/main/resources/mapper/GroupDao.xml @@ -3,15 +3,17 @@ <mapper namespace="com.example.jz.dao.GroupDao"> <resultMap id="GroupUserVoMap" type="com.example.jz.modle.vo.GroupUserVo"> - <result property="userId" column="user_id" /> - <result property="userName" column="real_name" /> - <result property="banSpeech" column="ban_speech" /> + <result property="userId" column="user_id"/> + <result property="groupId" column="group_id"/> + <result property="userName" column="real_name"/> + <result property="banSpeech" column="ban_speech"/> </resultMap> - <select id="getAllUser" resultType="com.example.jz.modle.vo.GroupUserVo"> - select group_user.user_id,group_user.ban_speech,user.real_name - from group_user - join user on group_user.user_id = user.id + <select id="getAllUser" resultMap="GroupUserVoMap"> + select group_user.user_id,group_user.group_id, group_user.ban_speech, user.real_name + FROM group_user + JOIN report ON report.id = group_user.user_id + JOIN `user` ON `user`.id = report.user_id where group_id = #{groupId} </select> diff --git a/src/main/resources/mapper/MessageDao.xml b/src/main/resources/mapper/MessageDao.xml index f3e16e6..d79041f 100644 --- a/src/main/resources/mapper/MessageDao.xml +++ b/src/main/resources/mapper/MessageDao.xml @@ -9,11 +9,12 @@ </resultMap> <select id="getAllMessageByGroup" resultMap="GroupMessageVoMap"> - select u.real_name, m.text, m.ctime + select `user`.real_name, m.text, m.ctime from message m - join user u on m.user_id = u.id + JOIN report ON report.id = m.user_id + JOIN `user` ON `user`.id = report.user_id where m.group_id = #{groupId} - order by m.ctime desc + order by m.ctime asc </select> diff --git a/src/main/resources/mapper/ReportDao.xml b/src/main/resources/mapper/ReportDao.xml index 9242398..a11e47b 100644 --- a/src/main/resources/mapper/ReportDao.xml +++ b/src/main/resources/mapper/ReportDao.xml @@ -12,7 +12,7 @@ and (u.real_name like '%${reportParamDto.people}%' or u.user_idcard like '%${reportParamDto.people}%') </if> <if test="reportParamDto.phoneNumber != ''"> - and u.user_mobile = ${reportParamDto.phoneNumber} + and u.user_mobile like '%${reportParamDto.phoneNumber}%' </if> <if test="reportParamDto.havaMaterial != ''"> <if test="reportParamDto.havaMaterial == 1"> @@ -22,10 +22,11 @@ and r.report_materials is null </if> </if> - <if test="reportParamDto.isInGroup != ''"> - and r.status = ${reportParamDto.isInGroup} + <if test="reportParamDto.isInGroup != null"> + and r.is_in_group = ${reportParamDto.isInGroup} </if> </where> + order by r.ctime DESC </select> <select id="getReportListVoById" resultType="com.example.jz.modle.vo.ReportListVo"> select u.user_mobile mobile, u.user_idcard idcard, u.real_name reporterName, r.* @@ -37,16 +38,18 @@ select u.user_mobile mobile,u.user_idcard idcard,u.real_name reporterName,r.* from report r join user u on r.user_id = u.id - join group_user gu on gu.user_id = u.id <where> 1=1 <if test="reportParamDto.people != ''"> and (u.real_name like '%${reportParamDto.people}%' or u.user_idcard like '%${reportParamDto.people}%') </if> <if test="reportParamDto.phoneNumber != ''"> - and u.user_mobile = ${reportParamDto.phoneNumber} + and u.user_mobile like '%${reportParamDto.phoneNumber}%' </if> - <if test="reportParamDto.havaMaterial != ''"> + <if test="reportParamDto.isInGroup != null"> + and r.is_in_group = ${reportParamDto.isInGroup} + </if> + <if test="reportParamDto.havaMaterial !=null"> <if test="reportParamDto.havaMaterial == 1"> and r.report_materials is not null </if> @@ -54,10 +57,37 @@ and r.report_materials is null </if> </if> - <if test="reportParamDto.isInGroup != ''"> - and r.status = ${reportParamDto.isInGroup} + </where> + and r.cause_id = #{causeId} order by r.ctime DESC limit #{size},#{current} + </select> + + <select id="getPageByGroupIdCount" resultType="Integer"> +select count(1) from ( + select u.user_mobile mobile,u.user_idcard idcard,u.real_name reporterName,r.* + from report r + join user u on r.user_id = u.id + <where> + 1=1 + <if test="reportParamDto.people != ''"> + and (u.real_name like '%${reportParamDto.people}%' or u.user_idcard like '%${reportParamDto.people}%') + </if> + <if test="reportParamDto.phoneNumber != ''"> + and u.user_mobile like '%${reportParamDto.phoneNumber}%' + </if> + <if test="reportParamDto.isInGroup != null"> + and r.is_in_group = ${reportParamDto.isInGroup} + </if> + <if test="reportParamDto.havaMaterial !=null"> + <if test="reportParamDto.havaMaterial == 1"> + and r.report_materials is not null + </if> + <if test="reportParamDto.havaMaterial == 0"> + and r.report_materials is null + </if> </if> </where> - and gu.group_id = #{groupId} + and r.cause_id = #{causeId} + ) as reporter </select> + </mapper> diff --git a/src/test/java/com/example/jz/JzApplicationTests.java b/src/test/java/com/example/jz/JzApplicationTests.java index 8d887ac..a033531 100644 --- a/src/test/java/com/example/jz/JzApplicationTests.java +++ b/src/test/java/com/example/jz/JzApplicationTests.java @@ -1,5 +1,6 @@ package com.example.jz; +import com.example.jz.auth.DefaultPwdEncoder; import com.example.jz.config.MinIOConfig; import com.example.jz.service.MinIOService; import org.junit.jupiter.api.Test; @@ -10,6 +11,8 @@ class JzApplicationTests { @Autowired MinIOService minIOService; + @Autowired + DefaultPwdEncoder defaultPwdEncoder; @Test void contextLoads() { @@ -19,7 +22,7 @@ @Test void test() { - + System.out.println(defaultPwdEncoder.encode("123456")); } } -- Gitblit v1.8.0