From 9c6150c879432b21816618a256c166dc3801b1a2 Mon Sep 17 00:00:00 2001 From: wl <173@qq.com> Date: 星期二, 19 七月 2022 14:11:44 +0800 Subject: [PATCH] 群公告 导入导出 --- src/main/java/com/example/jz/modle/entity/Cause.java | 22 src/main/java/com/example/jz/modle/vo/ExportExcelReportVo.java | 55 +++ src/main/java/com/example/jz/dao/ReportDao.java | 2 src/main/java/com/example/jz/controller/ReportController.java | 19 + src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java | 64 ++++ src/main/java/com/example/jz/controller/CauseController.java | 18 + src/main/java/com/example/jz/enums/CauseEnums.java | 31 ++ src/main/java/com/example/jz/service/impl/CauseServiceImpl.java | 66 +++ pom.xml | 5 src/main/java/com/example/jz/service/AnnouncementService.java | 26 + /dev/null | 131 --------- src/main/java/com/example/jz/modle/dto/CauseLoadDto.java | 43 +++ src/main/java/com/example/jz/service/ReportService.java | 3 src/main/java/com/example/jz/controller/UserController.java | 70 +--- src/main/java/com/example/jz/modle/vo/AnnouncementVo.java | 23 + src/main/java/com/example/jz/controller/GroupUserController.java | 85 ++++++ src/main/java/com/example/jz/modle/dto/CauseDto.java | 1 src/main/java/com/example/jz/service/CauseService.java | 11 src/main/java/com/example/jz/modle/dto/ReportParamDto.java | 2 src/main/java/com/example/jz/controller/AnnouncementController.java | 87 ++--- src/main/java/com/example/jz/service/impl/ReportServiceImpl.java | 73 +++++ 21 files changed, 566 insertions(+), 271 deletions(-) diff --git a/pom.xml b/pom.xml index 9b62808..8b63f80 100644 --- a/pom.xml +++ b/pom.xml @@ -82,6 +82,11 @@ <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version> </dependency> + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>easyexcel</artifactId> + <version>3.0.5</version> + </dependency> <!-- hutool 宸ュ叿鍖� --> <dependency> <groupId>cn.hutool</groupId> diff --git a/src/main/java/com/example/jz/controller/AnnouncementController.java b/src/main/java/com/example/jz/controller/AnnouncementController.java index d537234..9e658d6 100644 --- a/src/main/java/com/example/jz/controller/AnnouncementController.java +++ b/src/main/java/com/example/jz/controller/AnnouncementController.java @@ -1,17 +1,14 @@ package com.example.jz.controller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.api.ApiController; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.example.jz.modle.entity.Announcement; import com.example.jz.modle.R; +import com.example.jz.modle.entity.Announcement; import com.example.jz.service.AnnouncementService; -import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.io.Serializable; -import java.util.List; /** * 鍏憡琛�(Announcement)琛ㄦ帶鍒跺眰 @@ -28,59 +25,45 @@ @Resource private AnnouncementService announcementService; - /** - * 鍒嗛〉鏌ヨ鎵�鏈夋暟鎹� - * - * @param page 鍒嗛〉瀵硅薄 - * @param announcement 鏌ヨ瀹炰綋 - * @return 鎵�鏈夋暟鎹� - */ - @GetMapping - public R<Page<Announcement>> selectAll(Page<Announcement> page, Announcement announcement) { - return R.ok(this.announcementService.page(page, new QueryWrapper<>(announcement))); + @ApiOperation(httpMethod = "GET", value = "缇ゅ叕鍛婃煡璇�") + @GetMapping("/getAnnouncements") + @ApiResponse(message = "鎵ц鎴愬姛", code = 200) + public R getAnnouncements(@RequestParam(value = "size") Integer size, + @RequestParam(value = "current") Integer current, + @RequestParam(value = "groupId") Integer groupId, + @RequestParam(value = "content", required = false) String content, + @RequestParam(value = "status", required = false) Integer status) { + return R.ok(announcementService.getAnnouncements(size, current, content, status, groupId)); } - /** - * 閫氳繃涓婚敭鏌ヨ鍗曟潯鏁版嵁 - * - * @param id 涓婚敭 - * @return 鍗曟潯鏁版嵁 - */ - @GetMapping("{id}") - public R selectOne(@PathVariable Serializable id) { - return R.ok(this.announcementService.getById(id)); + @ApiOperation(httpMethod = "POST", value = "缇ゅ叕鍛婃坊鍔�") + @PostMapping("/add") + @ApiResponse(message = "鎵ц鎴愬姛", code = 200) + public R insert(@RequestParam(value = "groupId") Integer groupId, @RequestBody Announcement announcement) { + return R.ok(announcementService.add(groupId, announcement)); } - /** - * 鏂板鏁版嵁 - * - * @param announcement 瀹炰綋瀵硅薄 - * @return 鏂板缁撴灉 - */ - @PostMapping - public R insert(@RequestBody Announcement announcement) { - return R.ok(this.announcementService.save(announcement)); + @ApiOperation(httpMethod = "PUT", value = "缇ゅ叕鍛婂彂甯�") + @PutMapping("/updateStatusPublic") + @ApiResponse(message = "鎵ц鎴愬姛", code = 200) + public R updateStatusPublic(@RequestParam(value = "id") Integer id) { + announcementService.updateStatus(id); + return R.ok(); } - /** - * 淇敼鏁版嵁 - * - * @param announcement 瀹炰綋瀵硅薄 - * @return 淇敼缁撴灉 - */ - @PutMapping - public R update(@RequestBody Announcement announcement) { - return R.ok(this.announcementService.updateById(announcement)); + @ApiOperation(httpMethod = "PUT", value = "缇ゅ叕鍛婁笅鏋�") + @PutMapping("/updateStatusUnshelve") + @ApiResponse(message = "鎵ц鎴愬姛", code = 200) + public R updateStatusUnshelve(@RequestParam(value = "id") Integer id) { + announcementService.updateStatusUnshelve(id); + return R.ok(); } - /** - * 鍒犻櫎鏁版嵁 - * - * @param idList 涓婚敭缁撳悎 - * @return 鍒犻櫎缁撴灉 - */ - @DeleteMapping - public R delete(@RequestParam("idList") List<Long> idList) { - return R.ok(this.announcementService.removeByIds(idList)); + @ApiOperation(httpMethod = "DELETE", value = "缇ゅ叕鍛婂垹闄�") + @DeleteMapping("/delete") + @ApiResponse(message = "鎵ц鎴愬姛", code = 200) + public R delete(@RequestParam(value = "id") Integer id) { + announcementService.removeById(id); + return R.ok(); } } diff --git a/src/main/java/com/example/jz/controller/CauseController.java b/src/main/java/com/example/jz/controller/CauseController.java index fbe2d62..a5cde56 100644 --- a/src/main/java/com/example/jz/controller/CauseController.java +++ b/src/main/java/com/example/jz/controller/CauseController.java @@ -8,16 +8,18 @@ import com.example.jz.modle.dto.AddReportDto; import com.example.jz.modle.dto.CauseDto; import com.example.jz.modle.dto.ReportParamDto; -import com.example.jz.modle.entity.Report; import com.example.jz.modle.vo.ReportListVo; import com.example.jz.service.CauseService; import com.example.jz.service.ReportService; -import com.example.jz.service.UserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; +import lombok.SneakyThrows; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; /** * 妗堜欢琛�(Cause)琛ㄦ帶鍒跺眰 @@ -27,11 +29,12 @@ */ @RestController @RequestMapping("cause") -@Api(tags = "妗堜欢鍖�") +@Api(tags = "妗堜欢鍖�-妗堜欢褰曞叆") public class CauseController extends ApiController { /** * 鏈嶅姟瀵硅薄 */ + @Resource private CauseService causeService; private ReportService reportService; @@ -98,6 +101,15 @@ return R.ok(); } + @ApiOperation(httpMethod = "POST", value = "妗堜欢瀵煎叆") + @PostMapping("/upload") + @ApiResponse(message = "鎵ц鎴愬姛", code = 200) + @SneakyThrows + public R upload(@RequestParam(value = "multipartFile") MultipartFile multipartFile) { + causeService.loadFile(multipartFile); + return R.ok(); + } + @ApiOperation(httpMethod = "GET", value = "鏍规嵁缇ょ粍id鏌ヨ妗堜欢鍒嗛〉") @GetMapping("/getAllReportList") @ApiResponse(message = "鎵ц鎴愬姛", code = 200) diff --git a/src/main/java/com/example/jz/controller/GroupUserController.java b/src/main/java/com/example/jz/controller/GroupUserController.java new file mode 100644 index 0000000..12deb72 --- /dev/null +++ b/src/main/java/com/example/jz/controller/GroupUserController.java @@ -0,0 +1,85 @@ +package com.example.jz.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.entity.GroupUser; +import com.example.jz.service.GroupUserService; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.io.Serializable; +import java.util.List; + +/** + * 鐢ㄦ埛鍜岀兢涓棿琛�(GroupUser)琛ㄦ帶鍒跺眰 + * + * @author makejava + * @since 2022-07-11 16:35:57 + */ +@RestController +@RequestMapping("groupUser") +public class GroupUserController extends ApiController { + /** + * 鏈嶅姟瀵硅薄 + */ + @Resource + private GroupUserService groupUserService; + + /** + * 鍒嗛〉鏌ヨ鎵�鏈夋暟鎹� + * + * @param page 鍒嗛〉瀵硅薄 + * @param groupUser 鏌ヨ瀹炰綋 + * @return 鎵�鏈夋暟鎹� + */ + @GetMapping + public R selectAll(Page<GroupUser> page, GroupUser groupUser) { + return success(this.groupUserService.page(page, new QueryWrapper<>(groupUser))); + } + + /** + * 閫氳繃涓婚敭鏌ヨ鍗曟潯鏁版嵁 + * + * @param id 涓婚敭 + * @return 鍗曟潯鏁版嵁 + */ + @GetMapping("{id}") + public R selectOne(@PathVariable Serializable id) { + return success(this.groupUserService.getById(id)); + } + + /** + * 鏂板鏁版嵁 + * + * @param groupUser 瀹炰綋瀵硅薄 + * @return 鏂板缁撴灉 + */ + @PostMapping + public R insert(@RequestBody GroupUser groupUser) { + return success(this.groupUserService.save(groupUser)); + } + + /** + * 淇敼鏁版嵁 + * + * @param groupUser 瀹炰綋瀵硅薄 + * @return 淇敼缁撴灉 + */ + @PutMapping + public R update(@RequestBody GroupUser groupUser) { + return success(this.groupUserService.updateById(groupUser)); + } + + /** + * 鍒犻櫎鏁版嵁 + * + * @param idList 涓婚敭缁撳悎 + * @return 鍒犻櫎缁撴灉 + */ + @DeleteMapping + public R delete(@RequestParam("idList") List<Long> idList) { + return success(this.groupUserService.removeByIds(idList)); + } +} diff --git a/src/main/java/com/example/jz/controller/ReportController.java b/src/main/java/com/example/jz/controller/ReportController.java index f2cc3f0..821f17b 100644 --- a/src/main/java/com/example/jz/controller/ReportController.java +++ b/src/main/java/com/example/jz/controller/ReportController.java @@ -1,5 +1,6 @@ package com.example.jz.controller; + import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.api.ApiController; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -14,6 +15,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import java.io.Serializable; import java.util.Date; @@ -25,7 +27,7 @@ */ @RestController @RequestMapping("report") -@Api(value = "鎶ユ鎺ュ彛", tags = "鎶ユ鎺ュ彛") +@Api(value = "妗堜欢鍖�-妗堜欢浜哄憳", tags = "妗堜欢鍖�-妗堜欢浜哄憳") public class ReportController extends ApiController { /** * 鏈嶅姟瀵硅薄 @@ -36,7 +38,7 @@ /** * 鍒嗛〉鏌ヨ鎵�鏈夋暟鎹� * - * @param page 鍒嗛〉瀵硅薄 + * @param page 鍒嗛〉瀵硅薄 * @param reportParamDto 鏌ヨ瀹炰綋 * @return 鎵�鏈夋暟鎹� */ @@ -97,17 +99,24 @@ @ApiOperation(httpMethod = "DELETE", value = "鎶ユ浜轰汉鍛橀��缇�") @DeleteMapping("/leaveGroup") @ApiResponse(message = "鎵ц鎴愬姛", code = 200) - public R leaveGroup( @RequestParam(value = "id") Integer id,@RequestParam(value = "groupId") Integer groupId) { - reportService.leaveGroup(id,groupId); + public R leaveGroup(@RequestParam(value = "id") Integer id, @RequestParam(value = "groupId") Integer groupId) { + reportService.leaveGroup(id, groupId); return R.ok(); } @ApiOperation(httpMethod = "DELETE", value = "鍒犻櫎鎶ユ浜�") @DeleteMapping("/deleteReporter") @ApiResponse(message = "鎵ц鎴愬姛", code = 200) - public R deleteReporter( @RequestParam(value = "id") Integer id) { + public R deleteReporter(@RequestParam(value = "id") Integer id) { reportService.removeById(id); return R.ok(); } + + @ApiOperation(httpMethod = "POST", value = "瀵煎嚭鏉愭枡") + @PostMapping("/exportReporter") + @ApiResponse(message = "鎵ц鎴愬姛", code = 200) + public void exportReport(@RequestParam(value = "id") Integer id, HttpServletResponse response) { + reportService.exportReporter(id, response); + } } diff --git a/src/main/java/com/example/jz/controller/UserController.java b/src/main/java/com/example/jz/controller/UserController.java index 20d0031..6b2c106 100644 --- a/src/main/java/com/example/jz/controller/UserController.java +++ b/src/main/java/com/example/jz/controller/UserController.java @@ -3,16 +3,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.api.ApiController; import com.baomidou.mybatisplus.extension.api.R; -import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.example.jz.modle.entity.User; import com.example.jz.service.UserService; -import com.example.jz.utils.Md5Utils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -22,19 +15,17 @@ /** * 鐢ㄦ埛琛�(User)琛ㄦ帶鍒跺眰 * - * @author 瀹夌懢鐒� + * @author makejava * @since 2022-07-11 16:35:57 */ @RestController @RequestMapping("user") -@Api(tags = "鐢ㄦ埛绠$悊") public class UserController extends ApiController { + /** + * 鏈嶅姟瀵硅薄 + */ + @Resource private UserService userService; - - @Autowired - public void setUserService(UserService userService) { - this.userService = userService; - } /** * 鍒嗛〉鏌ヨ鎵�鏈夋暟鎹� @@ -44,7 +35,6 @@ * @return 鎵�鏈夋暟鎹� */ @GetMapping - @ApiOperation("鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�") public R selectAll(Page<User> page, User user) { return success(this.userService.page(page, new QueryWrapper<>(user))); } @@ -56,9 +46,19 @@ * @return 鍗曟潯鏁版嵁 */ @GetMapping("{id}") - @ApiOperation("閫氳繃涓婚敭鏌ヨ鍗曟潯鏁版嵁") public R selectOne(@PathVariable Serializable id) { return success(this.userService.getById(id)); + } + + /** + * 鏂板鏁版嵁 + * + * @param user 瀹炰綋瀵硅薄 + * @return 鏂板缁撴灉 + */ + @PostMapping + public R insert(@RequestBody User user) { + return success(this.userService.save(user)); } /** @@ -68,9 +68,8 @@ * @return 淇敼缁撴灉 */ @PutMapping - @ApiOperation("淇敼鐢ㄦ埛鏁版嵁") public R update(@RequestBody User user) { - return success(userService.updateById(user)); + return success(this.userService.updateById(user)); } /** @@ -80,42 +79,7 @@ * @return 鍒犻櫎缁撴灉 */ @DeleteMapping - @ApiOperation("鍒犻櫎鐢ㄦ埛鏁版嵁") public R delete(@RequestParam("idList") List<Long> idList) { return success(this.userService.removeByIds(idList)); - } - - /** - * 娣诲姞绠$悊鍛� - * - * @param id 鐢ㄦ埛id - * @param username 绠$悊鍛樼敤鎴峰悕 - * @param password 绠$悊鍛樺瘑鐮� - * @return - */ - @PostMapping("/addAdmin/{id}") - @ApiOperation("娣诲姞绠$悊鍛�") - @ApiImplicitParams({ - @ApiImplicitParam(name = "password", value = "瀵嗙爜", required = true, dataType = "String"), - @ApiImplicitParam(name = "username", value = "鐢ㄦ埛鍚�", required = true, dataType = "String") - }) - public R addAdmin(@PathVariable Serializable id, String username, String password) { - User user = userService.getById(id).setLoginUsername(username).setLoginPassword(Md5Utils.md5(password)).setRole(1); - return success(userService.updateById(user)); - } - - /** - * 閲嶇疆绠$悊鍛樺瘑鐮� - * - * @param id 鐢ㄦ埛id - * @return - */ - @GetMapping("/resetPassword/{id}") - @ApiOperation("閲嶇疆绠$悊鍛樺瘑鐮�") - public R resetPassword(@PathVariable Serializable id) { - User user = userService.getById(id); - // 閲嶇疆鍒濆瀵嗙爜涓鸿韩浠借瘉鍚庡叚浣� - user.setLoginPassword(Md5Utils.md5(user.getUserIdcard().substring(user.getUserIdcard().length() - 6))); - return success(userService.updateById(user)); } } diff --git a/src/main/java/com/example/jz/dao/ReportDao.java b/src/main/java/com/example/jz/dao/ReportDao.java index eee3b7d..53fd686 100644 --- a/src/main/java/com/example/jz/dao/ReportDao.java +++ b/src/main/java/com/example/jz/dao/ReportDao.java @@ -19,7 +19,7 @@ @Mapper public interface ReportDao extends BaseMapper<Report> { - Page<ReportListVo> getPage(Page<ReportListVo> page,@Param("reportParamDto") ReportParamDto reportParamDto); + Page<ReportListVo> getPage(Page<ReportListVo> page,@Param("reportDto") ReportParamDto reportParamDto); ReportListVo getReportListVoById(Serializable id); diff --git a/src/main/java/com/example/jz/enums/CauseEnums.java b/src/main/java/com/example/jz/enums/CauseEnums.java new file mode 100644 index 0000000..dcf6862 --- /dev/null +++ b/src/main/java/com/example/jz/enums/CauseEnums.java @@ -0,0 +1,31 @@ +package com.example.jz.enums; + +public enum CauseEnums { + + //鏈鏍� + UNCHECKED(0,"鏈鏍�"), + //涓嶄簣绔嬫 + NOTTOPUTONRECORD(1,"涓嶄簣绔嬫"), + //鍙楃悊涓� + UNDERCONSIDERATION(2,"鍙楃悊涓�"), + //宸茬粨妗� + CASECLOSED(3,"宸茬粨妗�"), + //宸叉挙妗� + HASBEENDROPPED(4,"宸叉挙妗�"); + + private final int value; + + private final String msg; + + CauseEnums(int value,String msg){ + this.value = value; + this.msg = msg; + } + public int value() { + return this.value; + } + + public String getMsg() { + return this.msg; + } +} diff --git a/src/main/java/com/example/jz/modle/dto/CauseDto.java b/src/main/java/com/example/jz/modle/dto/CauseDto.java index e62c1ea..b0b2ed7 100644 --- a/src/main/java/com/example/jz/modle/dto/CauseDto.java +++ b/src/main/java/com/example/jz/modle/dto/CauseDto.java @@ -19,7 +19,6 @@ //绗竴娆℃鍙戞椂闂� @ApiModelProperty(dataType = "Date", value = "绗竴娆℃鍙戞椂闂�") -// @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss.SSS") private Date firstTime; //璐熻矗浜篿d diff --git a/src/main/java/com/example/jz/modle/dto/CauseLoadDto.java b/src/main/java/com/example/jz/modle/dto/CauseLoadDto.java new file mode 100644 index 0000000..9247020 --- /dev/null +++ b/src/main/java/com/example/jz/modle/dto/CauseLoadDto.java @@ -0,0 +1,43 @@ +package com.example.jz.modle.dto; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +@ApiModel(description = "妗堜欢褰曞叆瀵煎叆", value = "CauseLoadDto") +public class CauseLoadDto { + //妗堜欢缂栧彿 + @ApiModelProperty(dataType = "String", value = "妗堜欢缂栧彿") + @ExcelProperty(value = "妗堜欢缂栧彿",index = 0) + private String number; + + //妗堜欢鍚嶇О + @ApiModelProperty(dataType = "String", value = "妗堜欢鍚嶇О") + @ExcelProperty(value = "妗堜欢鍚嶇О",index = 1) + private String name; + + //鏈�鏃╂妗堝彂鏃堕棿 + @ApiModelProperty(dataType = "Date", value = "鏈�鏃╁彂妗堟椂闂�") + @ExcelProperty(value = "鏈�鏃╁彂妗堟椂闂�",index = 2) + private Date firstTime; + + //妗堜欢鐘舵�� + @ApiModelProperty(dataType = "String", value = "妗堜欢鐘舵��") + @ExcelProperty(value = "妗堜欢鐘舵��",index = 3) + private String status; + + //璐熻矗浜� + @ApiModelProperty(dataType = "String", value = "璐熻矗浜�") + @ExcelProperty(value = "璐熻矗浜�",index = 4) + private String userName; + + //妗堜欢鎻忚堪 + @ApiModelProperty(dataType = "String", value = "妗堜欢鎻忚堪") + @ExcelProperty(value = "妗堜欢鎻忚堪",index = 5) + private String description; + +} diff --git a/src/main/java/com/example/jz/modle/dto/ReportParamDto.java b/src/main/java/com/example/jz/modle/dto/ReportParamDto.java index f991a22..7708269 100644 --- a/src/main/java/com/example/jz/modle/dto/ReportParamDto.java +++ b/src/main/java/com/example/jz/modle/dto/ReportParamDto.java @@ -18,7 +18,7 @@ @AllArgsConstructor @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) -@ApiModel("鎶ユ鏌ヨ鏉′欢") +@ApiModel("淇濆畨鏌ヨ鏉′欢") public class ReportParamDto { /** * 鏌ヨ鏉′欢 鍙互鏄鍚嶄篃鍙互鏄韩浠借瘉鍙� diff --git a/src/main/java/com/example/jz/modle/entity/Cause.java b/src/main/java/com/example/jz/modle/entity/Cause.java index 3469987..a0d9934 100644 --- a/src/main/java/com/example/jz/modle/entity/Cause.java +++ b/src/main/java/com/example/jz/modle/entity/Cause.java @@ -1,11 +1,10 @@ package com.example.jz.modle.entity; -import java.util.Date; - -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; + import java.io.Serializable; +import java.util.Date; /** * 妗堜欢琛�(Cause)琛ㄥ疄浣撶被 @@ -26,7 +25,7 @@ //鍒涘缓鏃堕棿 private Date ctime; //鐘舵�� 0鏈鏍� 1涓嶄簣绔嬫 2鍙楃悊涓� 3宸茬粨妗� - private String status; + private Integer status; //璐熻矗浜篿d private Integer userId; //妗堜欢鎻忚堪 @@ -73,13 +72,6 @@ this.ctime = ctime; } - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } public Integer getUserId() { return userId; @@ -106,5 +98,13 @@ protected Serializable pkVal() { return this.id; } + + public Integer getStatus() { + return status; } + public void setStatus(Integer status) { + this.status = status; + } +} + diff --git a/src/main/java/com/example/jz/modle/vo/AnnouncementVo.java b/src/main/java/com/example/jz/modle/vo/AnnouncementVo.java index f5089db..a5d0ef6 100644 --- a/src/main/java/com/example/jz/modle/vo/AnnouncementVo.java +++ b/src/main/java/com/example/jz/modle/vo/AnnouncementVo.java @@ -9,9 +9,32 @@ @ApiModel(description = "妗堜欢缇ゅ叕鍛�",value = "AnnouncementVo") public class AnnouncementVo { + /** + * 鍏憡鍐呭 + */ private String text; + /** + * 缇d + */ + private Integer groupId; + /** + * 鍏憡id + */ + private Integer id; /** * 鍒涘缓鏃堕棿 */ private Date ctime; + + //鍏憡鏈夋晥寮�濮嬫椂闂� + private Date effectiveStime; + + //鍏叡鏈夋晥缁撴潫鏃堕棿 + private Date effectiveEtime; + + //鍒涘缓浜� + private String createName; + + //鐘舵�� + private Integer status; } diff --git a/src/main/java/com/example/jz/modle/vo/ExportExcelReportVo.java b/src/main/java/com/example/jz/modle/vo/ExportExcelReportVo.java new file mode 100644 index 0000000..7003186 --- /dev/null +++ b/src/main/java/com/example/jz/modle/vo/ExportExcelReportVo.java @@ -0,0 +1,55 @@ +package com.example.jz.modle.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.BooleanEnum; +import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.alibaba.excel.metadata.data.ImageData; +import com.alibaba.excel.metadata.data.WriteCellData; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +@Data +@ApiModel(description = "瀵煎嚭excel鎶ユ鏉愭枡", value = "ExportExcelReportVo") +@ContentRowHeight(120) +@HeadRowHeight(20) +@ColumnWidth(25) +public class ExportExcelReportVo { + + @ExcelProperty(value = "鎶ユ浜�", index = 0) + @ContentStyle(wrapped = BooleanEnum.TRUE, horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER) + private String realName; + + @ExcelProperty(value = "鎵嬫満鍙�", index = 1) + @ContentStyle(wrapped = BooleanEnum.TRUE, horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER) + private String userMobile; + + @ExcelProperty(value = "韬唤璇佸彿", index = 2) + @ContentStyle(wrapped = BooleanEnum.TRUE, horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER) + private String userIdcard; + //琚獥鏃堕棿 + @ExcelProperty(value = "琚獥鏃堕棿", index = 3) + @ContentStyle(wrapped = BooleanEnum.TRUE, horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER) + private Date cheatTime; + + //娑夋閲戦 + @ExcelProperty(value = "娑夋閲戦", index = 4) + @ContentStyle(wrapped = BooleanEnum.TRUE, horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER) + private Double amountInvolved; + + //琛ュ厖淇℃伅 + @ExcelProperty(value = "琛ュ厖淇℃伅", index = 5) + @ContentStyle(wrapped = BooleanEnum.TRUE, horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER) + private String information; + + @ExcelProperty(value = "妗堜欢鏉愭枡", index = 6) + @ColumnWidth(120) + private WriteCellData<List<ImageData>> writeCellData; +} diff --git a/src/main/java/com/example/jz/service/AnnouncementService.java b/src/main/java/com/example/jz/service/AnnouncementService.java index 1bcd219..3f16e7d 100644 --- a/src/main/java/com/example/jz/service/AnnouncementService.java +++ b/src/main/java/com/example/jz/service/AnnouncementService.java @@ -1,7 +1,11 @@ package com.example.jz.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.example.jz.modle.PageParam; import com.example.jz.modle.entity.Announcement; +import com.example.jz.modle.vo.AnnouncementVo; + +import java.util.List; /** * 鍏憡琛�(Announcement)琛ㄦ湇鍔℃帴鍙� @@ -11,5 +15,27 @@ */ public interface AnnouncementService extends IService<Announcement> { + /** + * @Description 鏌ヨ鍏叡瀹d紶閫氬憡id + * @Param [size, current, content, status, groupId] + * @return com.example.jz.modle.PageParam<com.example.jz.modle.entity.Announcement> + **/ + PageParam<AnnouncementVo> getAnnouncements(Integer size, Integer current, String content, Integer status,Integer groupId); + + /** + * @Description 鍙戝竷 + * @Param [id] + * @return java.lang.Integer + **/ + Integer updateStatus(Integer id); + + /** + * @Description 涓嬫灦 + * @Param [id] + * @return java.lang.Integer + **/ + Integer updateStatusUnshelve(Integer id); + + Integer add(Integer groupId, Announcement announcement); } diff --git a/src/main/java/com/example/jz/service/CauseService.java b/src/main/java/com/example/jz/service/CauseService.java index 20f6c79..769f683 100644 --- a/src/main/java/com/example/jz/service/CauseService.java +++ b/src/main/java/com/example/jz/service/CauseService.java @@ -4,11 +4,13 @@ import com.example.jz.modle.PageParam; import com.example.jz.modle.dto.AddReportDto; import com.example.jz.modle.dto.CauseDto; +import com.example.jz.modle.entity.Announcement; import com.example.jz.modle.entity.Cause; import com.example.jz.modle.vo.AnnouncementVo; import com.example.jz.modle.vo.CauseReportVo; import com.example.jz.modle.vo.CauseVo; import com.example.jz.modle.vo.UserVo; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -60,7 +62,7 @@ * @Param [groupId] * @return java.util.List<com.example.jz.modle.vo.AnnouncementVo> **/ - List<AnnouncementVo> getGroupAnnouncement(Integer groupId); + List<Announcement> getGroupAnnouncement(Integer groupId); /** * @Description 鍒犻櫎妗堜欢 @@ -69,6 +71,13 @@ **/ void deleteCause(Integer id); + /** + * @Description 鏂囦欢瀵煎叆 + * @Param [multipartFile] + * @return void + **/ + void loadFile(MultipartFile multipartFile); + Boolean addReportPeople(AddReportDto addReportDto); } diff --git a/src/main/java/com/example/jz/service/ReportService.java b/src/main/java/com/example/jz/service/ReportService.java index 95cfc6c..33e0b6f 100644 --- a/src/main/java/com/example/jz/service/ReportService.java +++ b/src/main/java/com/example/jz/service/ReportService.java @@ -6,6 +6,7 @@ import com.example.jz.modle.entity.Report; import com.example.jz.modle.vo.ReportListVo; +import javax.servlet.http.HttpServletResponse; import java.io.Serializable; /** @@ -20,6 +21,8 @@ void leaveGroup(Integer id, Integer groupId); + void exportReporter(Integer id, HttpServletResponse response); + Page<ReportListVo> getPage(Page<ReportListVo> page, ReportParamDto reportParamDto); ReportListVo getReportListVoById(Serializable id); diff --git a/src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java b/src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java index 0887f7e..5e343a3 100644 --- a/src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java +++ b/src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java @@ -1,10 +1,23 @@ package com.example.jz.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +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.UserDao; +import com.example.jz.modle.PageParam; import com.example.jz.modle.entity.Announcement; +import com.example.jz.modle.entity.User; +import com.example.jz.modle.vo.AnnouncementVo; import com.example.jz.service.AnnouncementService; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; /** * 鍏憡琛�(Announcement)琛ㄦ湇鍔″疄鐜扮被 @@ -15,4 +28,55 @@ @Service("announcementService") public class AnnouncementServiceImpl extends ServiceImpl<AnnouncementDao, Announcement> implements AnnouncementService { + @Resource + AnnouncementDao announcementDao; + @Resource + UserDao userDao; + + @Override + public PageParam<AnnouncementVo> getAnnouncements(Integer size, Integer current, String content, Integer status, Integer groupId) { + PageParam<Announcement> announcementPageParam = new PageParam<>(); + announcementPageParam.setSize(size); + announcementPageParam.setCurrent(current); + QueryWrapper<Announcement> announcementQueryWrapper = new QueryWrapper<>(); + if (StringUtils.isNotBlank(content)) { + announcementQueryWrapper.like("text", content); + } + if (status != null) { + announcementQueryWrapper.eq("status", status); + } + announcementQueryWrapper.eq("group_id", groupId); + announcementQueryWrapper.orderByDesc("ctime"); + PageParam<Announcement> announcementPageParamList = announcementDao.selectPage(announcementPageParam, announcementQueryWrapper); + List<AnnouncementVo> announcementVoList = announcementPageParamList.getRecords().stream().map( + a -> { + AnnouncementVo announcementVo = new AnnouncementVo(); + BeanUtils.copyProperties(a, announcementVo); + announcementVo.setCreateName(userDao.selectOne(new QueryWrapper<User>().eq("id", a.getCreator())).getRealName()); + return announcementVo; + } + ).collect(Collectors.toList()); + PageParam<AnnouncementVo> announcementVoPageParam = new PageParam<>(); + BeanUtils.copyProperties(announcementPageParamList, announcementVoPageParam); + announcementVoPageParam.setRecords(announcementVoList); + return announcementVoPageParam; + } + + @Override + public Integer updateStatus(Integer id) { + return announcementDao.update(new Announcement().setStatus(1), new UpdateWrapper<Announcement>().eq("id", id)); + } + + @Override + public Integer updateStatusUnshelve(Integer id) { + return announcementDao.update(new Announcement().setStatus(2), new UpdateWrapper<Announcement>().eq("id", id)); + } + + @Override + public Integer add(Integer groupId, Announcement announcement) { + announcement.setStatus(0); + announcement.setCtime(new Date()); + announcement.setGroupId(groupId); + return announcementDao.insert(announcement); + } } 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 bcc2ce5..5be530f 100644 --- a/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java +++ b/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java @@ -1,30 +1,37 @@ package com.example.jz.service.impl; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; 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.*; +import com.example.jz.enums.CauseEnums; import com.example.jz.modle.PageParam; import com.example.jz.modle.dto.AddReportDto; import com.example.jz.modle.dto.CauseDto; +import com.example.jz.modle.dto.CauseLoadDto; import com.example.jz.modle.entity.*; -import com.example.jz.modle.vo.AnnouncementVo; import com.example.jz.modle.vo.CauseReportVo; import com.example.jz.modle.vo.CauseVo; import com.example.jz.modle.vo.UserVo; import com.example.jz.service.CauseService; +import lombok.SneakyThrows; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** - * 锟斤拷锟斤拷锟斤拷(Cause)锟斤拷锟斤拷锟绞碉拷锟斤拷锟� + * 妗堜欢琛�(Cause)琛ㄦ湇鍔″疄鐜扮被 * * @author makejava * @since 2022-07-13 11:52:58 @@ -56,7 +63,7 @@ BeanUtils.copyProperties(causeDto, cause); cause.setCtime(new Date()); causeService.save(cause); - //锟斤拷锟斤拷群锟斤拷 + //鍒涘缓缇ょ粍 Group group = new Group(); group.setCtime(new Date()); group.setGroupName(causeDto.getName()); @@ -136,15 +143,8 @@ } @Override - public List<AnnouncementVo> getGroupAnnouncement(Integer groupId) { - return announcementDao.selectList(new QueryWrapper<Announcement>().eq("group_id", groupId)).stream() - .map( - a -> { - AnnouncementVo announcementVo = new AnnouncementVo(); - BeanUtils.copyProperties(a, announcementVo); - return announcementVo; - } - ).collect(Collectors.toList()); + public List<Announcement> getGroupAnnouncement(Integer groupId) { + return announcementDao.selectList(new QueryWrapper<Announcement>().eq("group_id", groupId)); } @Override @@ -153,6 +153,48 @@ } @Override + @SneakyThrows + public void loadFile(MultipartFile multipartFile) { + ArrayList<CauseLoadDto> causeLoadDtos = new ArrayList<>(); + EasyExcel.read(multipartFile.getInputStream(),CauseLoadDto.class, new AnalysisEventListener<CauseLoadDto>() { + @Override + public void invoke(CauseLoadDto data, AnalysisContext context) { + causeLoadDtos.add(data); + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + + } + }) + .autoCloseStream(true) + .doReadAll(); + causeLoadDtos.forEach( + a -> { + Cause cause = new Cause(); + BeanUtils.copyProperties(a, cause); + if (a.getStatus().equals(CauseEnums.UNCHECKED.getMsg())) { + cause.setStatus(CauseEnums.UNCHECKED.value()); + } + if (a.getStatus().equals(CauseEnums.NOTTOPUTONRECORD.getMsg())) { + cause.setStatus(CauseEnums.NOTTOPUTONRECORD.value()); + } + if (a.getStatus().equals(CauseEnums.UNDERCONSIDERATION.getMsg())) { + cause.setStatus(CauseEnums.UNDERCONSIDERATION.value()); + } + if (a.getStatus().equals(CauseEnums.CASECLOSED.getMsg())) { + cause.setStatus(CauseEnums.CASECLOSED.value()); + } + if (a.getStatus().equals(CauseEnums.HASBEENDROPPED.getMsg())) { + cause.setStatus(CauseEnums.HASBEENDROPPED.value()); + } + cause.setCtime(new Date()); + cause.setUserId(userDao.selectOne(new QueryWrapper<User>().eq("real_name", a.getUserName())).getId()); + causeDao.insert(cause); + }); + } + + @Override @Transactional public Boolean addReportPeople(AddReportDto addReportDto) { User user = userDao.selectOne(new LambdaQueryWrapper<User>(User.class).eq(User::getUserIdcard, addReportDto.getIdcard())); 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 e3ff882..679896c 100644 --- a/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java +++ b/src/main/java/com/example/jz/service/impl/ReportServiceImpl.java @@ -1,5 +1,11 @@ package com.example.jz.service.impl; +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; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -12,13 +18,28 @@ import com.example.jz.modle.entity.GroupUser; import com.example.jz.modle.entity.Report; 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.service.MinIOService; import com.example.jz.service.ReportService; +import lombok.SneakyThrows; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +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.Date; +import java.util.List; /** * 鎶ユ琛�(Report)琛ㄦ湇鍔″疄鐜扮被 @@ -35,6 +56,15 @@ private GroupDao groupDao; @Autowired private GroupUserDao groupUserDao; + + @Resource + CauseDao causeDao; + + @Resource + UserDao userDao; + + @Resource + MinIOService minIOService; /** * 瀹℃牳鎶ユ @@ -62,6 +92,49 @@ } @Override + @SneakyThrows + public void exportReporter(Integer id, HttpServletResponse response) { + //鏌ヨ鎶ユ浜虹浉鍏充俊鎭�氳繃妗堜欢 + List<Report> reports = reportDao.selectList(new QueryWrapper<Report>().eq("cause_id", id).orderByDesc()); + ArrayList<ExportExcelReportVo> exportExcelReportVos = new ArrayList<>(); + reports.forEach( + a -> { + ExportExcelReportVo exportExcelReportVo = new ExportExcelReportVo(); + User user = userDao.selectOne(new QueryWrapper<User>().eq("id", a.getUserId())); + BeanUtils.copyProperties(a, exportExcelReportVo); + exportExcelReportVo.setUserIdcard(user.getUserIdcard()); + exportExcelReportVo.setUserMobile(user.getUserMobile()); + exportExcelReportVo.setRealName(user.getRealName()); + WriteCellData<List<ImageData>> objectWriteCellData = new WriteCellData<>(); + ArrayList<ImageData> imageDataList = new ArrayList<>(); + if (StringUtils.isNotBlank(a.getReportMaterials())) { + String[] urls = a.getReportMaterials().split(","); + for (int i = 0; i < urls.length; i++) { + int width=600; + try { + ImageData imageData = new ImageData(); + imageData.setImage(IoUtils.toByteArray(new URL(minIOService.getPreviewFileUrl(urls[i])).openConnection().getInputStream())); + imageData.setLeft(width/ urls.length*i); + imageData.setRight(width-width/ urls.length*(i+1)); + imageDataList.add(imageData); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + objectWriteCellData.setImageDataList(imageDataList); + exportExcelReportVo.setWriteCellData(objectWriteCellData); + exportExcelReportVos.add(exportExcelReportVo); + } + ); + String name = causeDao.selectOne(new QueryWrapper<Cause>().eq("id", id)).getName(); + response.setHeader("Content-disposition", "attachment;filename="+ LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))+URLEncoder.encode(name+".xlsx","utf-8")); + response.setCharacterEncoding("utf-8"); + response.setContentType("application/vnd.ms-excel"); + EasyExcel.write(response.getOutputStream(), ExportExcelReportVo.class).sheet("鏉愭枡瀵煎嚭").doWrite(exportExcelReportVos); + } + + @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})", "*"))); diff --git a/src/main/java/com/example/jz/utils/MD5Utils.java b/src/main/java/com/example/jz/utils/MD5Utils.java deleted file mode 100644 index 4112d5e..0000000 --- a/src/main/java/com/example/jz/utils/MD5Utils.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.example.jz.utils; - -import java.io.UnsupportedEncodingException; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.Base64; - -/** - * @author 瀹夌懢鐒� - * @data 2022/7/18 - 10:52 AM - * @description 鍔犲瘑宸ュ叿绫� - */ -public class Md5Utils { - - public static String md5(String str) { - try { - MessageDigest md = MessageDigest.getInstance("MD5"); - md.update(str.getBytes()); - byte b[] = md.digest(); - - str = byteToStr(b); - } catch (Exception e) { - e.printStackTrace(); - - } - return str; - } - - public static String byteToStr(byte[] b){ - int i; - StringBuffer buf = new StringBuffer(""); - for (int offset = 0; offset < b.length; offset++) { - i = b[offset]; - //System.out.println(i); - if (i < 0) - i += 256; - if (i < 16) - buf.append("0"); - buf.append(Integer.toHexString(i)); - } - return buf.toString(); - } - - /** - * 浼犲叆鏂囨湰鍐呭锛岃繑鍥� SHA-256 涓� - * - * @param strText - * @return - */ - public static String SHA256(final String strText) - { - return SHA(strText, "SHA-256"); - } - - public static String SHA1(final String strText) - { - return SHA(strText, "SHA-1"); - } - - /** - * 浼犲叆鏂囨湰鍐呭锛岃繑鍥� SHA-512 涓� - * - * @param strText - * @return - */ - public static String SHA512(final String strText) - { - return SHA(strText, "SHA-512"); - } - - /** - * 瀛楃涓� SHA 鍔犲瘑 - * - * @param strText - * @return - */ - private static String SHA(final String strText, final String strType) - { - // 杩斿洖鍊� - String strResult = null; - - // 鏄惁鏄湁鏁堝瓧绗︿覆 - if (strText != null && strText.length() > 0) - { - try - { - // SHA 鍔犲瘑寮�濮� - MessageDigest messageDigest = MessageDigest.getInstance(strType); - // 浼犲叆瑕佸姞瀵嗙殑瀛楃涓� - messageDigest.update(strText.getBytes("utf-8")); - // 寰楀埌 byte 绫诲瀷鐨勭粨鏋� - byte byteBuffer[] = messageDigest.digest(); - strResult = byteToStr(byteBuffer); - } - catch (NoSuchAlgorithmException e) - { - e.printStackTrace(); - }catch (UnsupportedEncodingException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } - - return strResult; - } - - public static String base64(String str){ - String baseStr = null; - Base64.Encoder encoder = Base64.getEncoder(); - byte[] textByte; - try { - textByte = str.getBytes("UTF-8"); - baseStr = encoder.encodeToString(textByte); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - - return baseStr; - - } - - public static void main(String[] args) { - String password = "bunana1"; - System.out.println(md5(password)); - //String base64 = base64(sha512); - //System.out.println(base64); - //String pwd1 = md5(base64); - //System.out.println(pwd1); - } -} -- Gitblit v1.8.0