springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml
@@ -33,10 +33,6 @@ <optional>true</optional> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> </dependency> <dependency> <groupId>com.panzhihua</groupId> <artifactId>common</artifactId> </dependency> springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/AppletsApplication.java
@@ -6,9 +6,9 @@ import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.swagger2.annotations.EnableSwagger2; @EnableOpenApi @EnableSwagger2 @SpringCloudApplication @EnableCircuitBreaker @EnableEurekaClient springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/PartyBuildingApi.java
@@ -27,7 +27,7 @@ @ApiOperation(value = "分页党建动态/政策文件",response =PartyCommitteeVO.class ) @PostMapping("pagedynamic") public R pageYnamic(PartyBuildingComPbDynVO partyBuildingComPbDynVO){ public R pageYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO){ Integer communityId=1;//todo 获取社区id Integer type = partyBuildingComPbDynVO.getType(); if (ObjectUtils.isEmpty(type)) { springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/SwaggerConfig.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/Swagger3Config.java @@ -10,7 +10,6 @@ import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -19,7 +18,7 @@ * @create: 2020-11-19 16:08 **/ @Configuration public class Swagger3Config { public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml
@@ -32,8 +32,8 @@ <optional>true</optional> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> </dependency> <dependency> <groupId>com.panzhihua</groupId> @@ -46,10 +46,6 @@ <dependency> <groupId>com.netflix.hystrix</groupId> <artifactId>hystrix-javanica</artifactId> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> </dependency> </dependencies> springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/AppletsBackstageApplication.java
@@ -1,14 +1,13 @@ package com.panzhihua.applets_backstage; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.SpringCloudApplication; import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.openfeign.EnableFeignClients; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.swagger2.annotations.EnableSwagger2; @EnableOpenApi @EnableSwagger2 @SpringCloudApplication @EnableCircuitBreaker @EnableEurekaClient springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/SwaggerConfig.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/Swagger3Config.java @@ -18,7 +18,7 @@ * @create: 2020-11-19 16:08 **/ @Configuration public class Swagger3Config { public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) springcloud_k8s_panzhihuazhihuishequ/common/pom.xml
@@ -58,7 +58,7 @@ </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <artifactId>springfox-swagger2</artifactId> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> @@ -87,7 +87,11 @@ <artifactId>easyexcel</artifactId> <version>2.2.6</version> </dependency> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.53</version> </dependency> </dependencies> springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/config/FtpConfig.java
File was deleted springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/FtpConstants.java
@@ -14,7 +14,7 @@ /** * 端口号 */ public static final Integer FTPPORT=21; public static final Integer FTPPORT=22; /** * ftp访问用户名 */ springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PageActivityMembersVO.java
@@ -1,5 +1,6 @@ package com.panzhihua.common.model.vos.partybuilding; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -17,6 +18,7 @@ private String phone; @ApiModelProperty(value ="姓名") private String name; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(value ="报名时间") private String registrationTime; @ApiModelProperty(value ="人员主键") springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingActivityVO.java
@@ -1,5 +1,6 @@ package com.panzhihua.common.model.vos.partybuilding; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,7 +16,8 @@ **/ @Data @ApiModel("党员活动") public class PartyBuildingActivityVO { public class PartyBuildingActivityVO { @ApiModelProperty("党员id") private Integer id; @@ -27,25 +29,25 @@ @ApiModelProperty("1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消") private Integer status; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty("发布时间") private Date releaseTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty("发布开始时间") private Date releaseTimeBegin; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty("发布结束时间") private Date releaseTimeEnd; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty("活动开始时间") private Date activityTimeBegin; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty("活动结束时间") private Date activityTimeEnd; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty("报名开始时间") private Date enrollTimeBegin; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty("报名结束时间") private Date enrollTimeEnd; springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingComPbDynVO.java
@@ -1,5 +1,6 @@ package com.panzhihua.common.model.vos.partybuilding; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -23,14 +24,14 @@ private String title; @ApiModelProperty("状态 1 待发布 2 已发布") private boolean status; private Integer status; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty("发布时间") private Date publishAt; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty("发布开始时间") private Date publishAtBegin; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty("发布结束时间") private Date publishAtEnd; springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingMemberVO.java
@@ -1,5 +1,6 @@ package com.panzhihua.common.model.vos.partybuilding; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,17 +16,19 @@ @Data @ApiModel("社区管理》党建》党员信息") public class PartyBuildingMemberVO { @ApiModelProperty(value = "姓名",required = true) @ApiModelProperty(value = "姓名") private String name; @ApiModelProperty(value = "身份证",required = true) @ApiModelProperty(value = "身份证") private String idCard; @ApiModelProperty(value = "入党时间",required = true) @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "入党时间") private Date joinTime; @ApiModelProperty(value = "转正时间",required = true) @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") @ApiModelProperty(value = "转正时间") private Date employmentTime; @ApiModelProperty(value = "所属党组织id",required = true) @ApiModelProperty(value = "所属党组织id") private Integer orgId; @ApiModelProperty(value = "头像图片路径",required = true) @ApiModelProperty(value = "头像图片路径") private String photoPath; @ApiModelProperty(value = "社区ID",hidden=true) private Integer communityId; springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/ftp/FTPClientService.java
File was deleted springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/PartyBuildingService.java
@@ -22,21 +22,21 @@ * @param partyBuildingMemberVO 党员基本信息 * @return 新增结果 */ @PostMapping("addpartybuildingmember") @PostMapping("/partybuildIng/addpartybuildingmember") R addPartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO); /** * 平台所有的党组织 * @return 党组织集合 */ @PostMapping("listpartyorganization") @PostMapping("/partybuildIng/listpartyorganization") List<PartyOrganizationVO> listPartyOrganization(); /** * 批量新增党员 * @param list 党员集合 */ @PostMapping("listsavepartybuildingmemberexcelVO") @PostMapping("/partybuildIng/listsavepartybuildingmemberexcelvo") R listSavePartyBuildingMemberExcelVO(@RequestBody List<PartyBuildingMemberExcelVO> list); /** @@ -44,23 +44,23 @@ * @param pagePartyOrganizationVO 查询信息 * @return 分页数据 */ @PostMapping("pagepartyorganization") @PostMapping("/partybuildIng/pagepartyorganization") R pagePartyOrganization(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO); /** * 党员活动 * @param id 党员id * @param partyBuildingActivityVO 党员活动查询参数 * @return 参加的所有活动 */ @PostMapping("listpartymemberactivities") R listPartyMemberActivities(@RequestParam("id") Integer id); @PostMapping("/partybuildIng/listpartymemberactivities") R listPartyMemberActivities(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO); /** * 活动报名名单分页查询 * @param pageActivityMembersVO 查询参数 手机号 名字 * @return 分页数据 */ @PostMapping("pageactivitymembers") @PostMapping("/partybuildIng/pageactivitymembers") R pageActivityMembers(@RequestBody PageActivityMembersVO pageActivityMembersVO); /** @@ -68,7 +68,7 @@ * @param partyBuildingMemberVO 编辑字段 * @return 编辑结果 */ @PostMapping("updatepartybuildingmember") @PostMapping("/partybuildIng/updatepartybuildingmember") R updatePartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO); /** @@ -76,7 +76,7 @@ * @param id 活动id * @return 活动详情内容 */ @PostMapping("activityinfo") @PostMapping("/partybuildIng/activityinfo") R activityinfo(@RequestParam("id") Integer id); /** @@ -84,14 +84,14 @@ * @param communityId 社区id * @return 党员列表 */ @PostMapping("listPartyMember") @PostMapping("/partybuildIng/listPartyMember") R listPartyMember(@RequestParam("communityId")Integer communityId); /** * 社区下拉选择身份 * @return 身份集合 */ @PostMapping("listidentity") @PostMapping("/partybuildIng/listidentity") R listIdentity(); /** @@ -99,21 +99,21 @@ * @param partyCommitteeVO 新增信息 * @return 新增结果 */ @PostMapping("addpartycommittee") @PostMapping("/partybuildIng/addpartycommittee") R addPartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO); /** * 编辑党委 * @param partyCommitteeVO 编辑信息 * @return 编辑结果 */ @PostMapping("updatepartycommittee") @PostMapping("/partybuildIng/updatepartycommittee") R updatePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO); /** * 删除党委 * @param partyCommitteeVO 删除id * @return 删除结果 */ @PostMapping("deletepartycommittee") @PostMapping("/partybuildIng/deletepartycommittee") R deletePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO); /** @@ -121,7 +121,7 @@ * @param partyCommitteeVO 查询参数 * @return 分页集合 */ @PostMapping("pagepartycommittee") @PostMapping("/partybuildIng/pagepartycommittee") R pagePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO); /** @@ -129,7 +129,7 @@ * @param partyCommitteeVO 动态内容 * @return 新增结果 */ @PostMapping("adddynamic") @PostMapping("/partybuildIng/adddynamic") R adddYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO); /** @@ -137,7 +137,7 @@ * @param partyCommitteeVO 编辑内容 * @return 编辑结果 */ @PostMapping("updatedynamic") @PostMapping("/partybuildIng/updatedynamic") R updateYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO); /** @@ -145,7 +145,7 @@ * @param id 动态主键 * @return 详情 */ @PostMapping("infodynamic") @PostMapping("/partybuildIng/infodynamic") R infoYnamic(@RequestParam("id") Integer id); /** @@ -153,7 +153,7 @@ * @param partyBuildingComPbDynVO 查询参数 * @return 分页数据 */ @PostMapping("pagedynamic") @PostMapping("/partybuildIng/pagedynamic") R pageYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO); /** @@ -161,7 +161,7 @@ * @param id 动态主键 * @return 删除结果 */ @PostMapping("deletedynamic") @PostMapping("/partybuildIng/deletedynamic") R deleteYnamic(@RequestParam("id") Integer id); /** @@ -169,7 +169,7 @@ * @param partyBuildingActivityVO 参数 * @return 新增结果 */ @PostMapping("addactivity") @PostMapping("/partybuildIng/addactivity") R addactivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO); /** @@ -177,7 +177,7 @@ * @param partyBuildingActivityVO 编辑内容 * @return 编辑结果 */ @PostMapping("updateactivity") @PostMapping("/partybuildIng/updateactivity") R updateActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO); /** @@ -185,7 +185,7 @@ * @param id 主键id * @return 发布结果 */ @PostMapping("releaseactivity") @PostMapping("/partybuildIng/releaseactivity") R releaseActivity(@RequestParam("id") Integer id); /** @@ -193,7 +193,7 @@ * @param id 主键id * @return 删除结果 */ @PostMapping("deleteactivity") @PostMapping("/partybuildIng/deleteactivity") R deleteActivity(@RequestParam("id") Integer id); /** @@ -201,7 +201,7 @@ * @param partyBuildingActivityVO 查询条件 * @return 查询结果 */ @PostMapping("pageactivity") @PostMapping("/partybuildIng/pageactivity") R pageActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO); /** @@ -209,6 +209,21 @@ * @param comPbDynUserVO 记录内容 * @return 增加结果 */ @PostMapping("adddynuser") @PostMapping("/partybuildIng/adddynuser") R addDynUser(@RequestBody ComPbDynUserVO comPbDynUserVO); /** * 删除党员 * @param id 党员主键 * @return 删除结果 */ @PostMapping("/partybuildIng/deletepartybuildingmember") R deleteDynUser(@RequestParam("id") Integer id); /** * 取消活动 * @param partyBuildingActivityVO 取消原因 * @return 操作结果 */ @PostMapping("/partybuildIng/cancelactivity") R cancelActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO); } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SFTPUtil.java
New file @@ -0,0 +1,301 @@ package com.panzhihua.common.utlis; import com.jcraft.jsch.*; import com.panzhihua.common.constants.FtpConstants; import org.apache.commons.io.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.*; import java.util.Properties; import java.util.Vector; /** * @version 1.0.0 * @ClassName: SFTPUtil * @Description: sftp连接工具类 */ public class SFTPUtil { private transient Logger log = LoggerFactory.getLogger(this.getClass()); private ChannelSftp sftp; private Session session; // FTP 登录用户名 private String userName; // FTP 登录密码 private String password; // FTP 服务器地址IP地址 private String host; // FTP 端口 private int port; /** * 构造基于密码认证的sftp对象 * * @param userName * @param password * @param host * @param port */ public SFTPUtil(String userName, String password, String host, int port) { this.userName = userName; this.password = password; this.host = host; this.port = port; } public SFTPUtil() { this.userName = FtpConstants.FTPUSERNAME; this.password = FtpConstants.FTPPASSWORD; this.host = FtpConstants.FTPHOST; this.port = FtpConstants.FTPPORT; } /** * 连接sftp服务器 * * @throws Exception */ public void login() { try { JSch jsch = new JSch(); log.info("sftp connect by host:{} username:{}", host, userName); session = jsch.getSession(userName, host, port); log.info("Session is build"); if (password != null) { session.setPassword(password); } Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.connect(); log.info("Session is connected"); Channel channel = session.openChannel("sftp"); channel.connect(); log.info("channel is connected"); sftp = (ChannelSftp) channel; log.info(String.format("sftp server host:[%s] port:[%s] is connect successfull", host, port)); } catch (JSchException e) { log.error("Cannot connect to specified sftp server : {}:{} \n Exception message is: {}", new Object[]{host, port, e.getMessage()}); } } /** * 关闭连接 server */ public void logout() { if (sftp != null) { if (sftp.isConnected()) { sftp.disconnect(); log.info("sftp is closed already"); } } if (session != null) { if (session.isConnected()) { session.disconnect(); log.info("sshSession is closed already"); } } } /** * 递归根据路径创建文件夹 * * @param dirs 根据 / 分隔后的数组文件夹名称 * @param tempPath 拼接路径 * @param length 文件夹的格式 * @param index 数组下标 * @return */ public void mkdirDir(String[] dirs, String tempPath, int length, int index) { // 以"/a/b/c/d"为例按"/"分隔后,第0位是"";顾下标从1开始 index++; if (index < length) { // 目录不存在,则创建文件夹 tempPath += "/" + dirs[index]; } try { log.info("检测目录[" + tempPath + "]"); sftp.cd(tempPath); if (index < length) { mkdirDir(dirs, tempPath, length, index); } } catch (SftpException ex) { log.warn("创建目录[" + tempPath + "]"); try { sftp.mkdir(tempPath); sftp.cd(tempPath); } catch (SftpException e) { e.printStackTrace(); log.error("创建目录[" + tempPath + "]失败,异常信息[" + e.getMessage() + "]"); } log.info("进入目录[" + tempPath + "]"); mkdirDir(dirs, tempPath, length, index); } } /** * 将输入流的数据上传到sftp作为文件(多层目录) * * @param directory 上传到该目录(多层目录) * @param sftpFileName sftp端文件名 * @param input 输入流 * @throws SftpException * @throws Exception */ public void uploadMore(String directory, String sftpFileName, InputStream input) throws SftpException { try { sftp.cd(directory); } catch (SftpException e) { // 目录不存在,则创建文件夹 String[] dirs = directory.split("/"); String tempPath = ""; int index = 0; mkdirDir(dirs, tempPath, dirs.length, index); } sftp.put(input, sftpFileName);// 上传文件 } /** * 将输入流的数据上传到sftp作为文件 * * @param directory 上传到该目录(单层目录) * @param sftpFileName sftp端文件名 * @param input 输入流 * @throws SftpException * @throws Exception */ public void upload(String directory, String sftpFileName, InputStream input) throws SftpException { try { sftp.cd(directory); } catch (SftpException e) { log.warn("directory is not exist"); sftp.mkdir(directory); sftp.cd(directory); } sftp.put(input, sftpFileName); log.info("file:{} is upload successful", sftpFileName); } /** * 上传单个文件 * * @param directory 上传到sftp目录 * @param uploadFile 要上传的文件,包括路径 * @throws FileNotFoundException * @throws SftpException * @throws Exception */ public void upload(String directory, String uploadFile) throws FileNotFoundException, SftpException { File file = new File(uploadFile); upload(directory, file.getName(), new FileInputStream(file)); } /** * 将byte[]上传到sftp,作为文件。注意:从String生成byte[]是,要指定字符集。 * * @param directory 上传到sftp目录 * @param sftpFileName 文件在sftp端的命名 * @param byteArr 要上传的字节数组 * @throws SftpException * @throws Exception */ public void upload(String directory, String sftpFileName, byte[] byteArr) throws SftpException { upload(directory, sftpFileName, new ByteArrayInputStream(byteArr)); } /** * 将字符串按照指定的字符编码上传到sftp * * @param directory 上传到sftp目录 * @param sftpFileName 文件在sftp端的命名 * @param dataStr 待上传的数据 * @param charsetName sftp上的文件,按该字符编码保存 * @throws UnsupportedEncodingException * @throws SftpException * @throws Exception */ public void upload(String directory, String sftpFileName, String dataStr, String charsetName) throws UnsupportedEncodingException, SftpException { upload(directory, sftpFileName, new ByteArrayInputStream(dataStr.getBytes(charsetName))); } /** * 下载文件 * * @param directory 下载目录 * @param downloadFile 下载的文件 * @param saveFile 存在本地的路径 * @throws SftpException * @throws FileNotFoundException * @throws Exception */ public void download(String directory, String downloadFile, String saveFile) throws SftpException, FileNotFoundException { if (directory != null && !"".equals(directory)) { sftp.cd(directory); } File file = new File(saveFile); sftp.get(downloadFile, new FileOutputStream(file)); log.info("file:{} is download successful", downloadFile); } /** * 下载文件 * * @param directory 下载目录 * @param downloadFile 下载的文件名 * @return 字节数组 * @throws SftpException * @throws IOException * @throws Exception */ public byte[] download(String directory, String downloadFile) throws SftpException, IOException { if (directory != null && !"".equals(directory)) { sftp.cd(directory); } InputStream is = sftp.get(downloadFile); byte[] fileData = IOUtils.toByteArray(is); log.info("file:{} is download successful", downloadFile); return fileData; } /** * 删除文件 * * @param directory 要删除文件所在目录 * @param deleteFile 要删除的文件 * @throws SftpException * @throws Exception */ public void delete(String directory, String deleteFile) throws SftpException { sftp.cd(directory); sftp.rm(deleteFile); } /** * 列出目录下的文件 * * @param directory 要列出的目录 * @return * @throws SftpException */ public Vector<?> listFiles(String directory) throws SftpException { return sftp.ls(directory); } public static void main(String[] args) throws SftpException, IOException { SFTPUtil sftp = new SFTPUtil("root", "evanN7F2K5M6", "47.104.148.185", 22); sftp.login(); File file = new File("F:\\settings.xml"); InputStream is = new FileInputStream(file); // 多级目录创建并上传 sftp.uploadMore("/mnt/data/ftp/ss", "settings.xml", is); sftp.logout(); } } springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/constants/FtpConstants.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/partybuilding/PageActivityMembersVO.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/partybuilding/PartyBuildingActivityVO.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/partybuilding/PartyBuildingComPbDynVO.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/partybuilding/PartyBuildingMemberVO.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/service/ftp/FTPClientService.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/service/partybuilding/PartyBuildingService.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/utlis/SFTPUtil.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/community_backstage/pom.xml
@@ -37,10 +37,6 @@ <optional>true</optional> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> </dependency> <dependency> <groupId>com.panzhihua</groupId> <artifactId>common</artifactId> </dependency> @@ -49,12 +45,9 @@ <artifactId>hystrix-javanica</artifactId> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> </dependency> </dependencies> springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/CommunityBackstageApplication.java
@@ -1,15 +1,14 @@ package com.panzhihua.community_backstage; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.SpringCloudApplication; import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.swagger2.annotations.EnableSwagger2; @EnableOpenApi @EnableSwagger2 @SpringCloudApplication @EnableCircuitBreaker @EnableEurekaClient springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
@@ -1,28 +1,40 @@ package com.panzhihua.community_backstage.api; import com.alibaba.excel.EasyExcel; import com.jcraft.jsch.SftpException; import com.panzhihua.common.constants.FtpConstants; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.partybuilding.*; import com.panzhihua.common.model.vos.user.RoleVO; import com.panzhihua.common.service.ftp.FTPClientService; import com.panzhihua.common.service.partybuilding.PartyBuildingService; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.SFTPUtil; import com.panzhihua.community_backstage.listen.PartyBuildingMemberExcelListen; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org.springframework.core.io.FileSystemResource; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile; import javax.activation.MimetypesFileTypeMap; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.io.*; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -37,8 +49,6 @@ public class CommunityPartyBuildingApi extends BaseController { @Resource private PartyBuildingService partyBuildingService; @Resource private FTPClientService ftpClientService; @Resource private UserService userService; /** @@ -79,26 +89,37 @@ } @ApiOperation(value = "下载模板-导入党员") @PostMapping("downloadtemplate") public R downloadTemplate(HttpServletResponse httpServletResponse) { Boolean download = ftpClientService.download(UPLOAD_EXCEL, FtpConstants.FTPFILEPATH_MUBAN, httpServletResponse); if (download) { return R.ok(); @GetMapping(value = "downloadtemplate",headers="Accept=application/octet-stream") public ResponseEntity<byte[]> downloadTemplate() { SFTPUtil sftp = new SFTPUtil(); sftp.login(); try { byte[] download = sftp.download(FtpConstants.FTPFILEPATH_MUBAN, UPLOAD_EXCEL); ResponseEntity.BodyBuilder bodyBuilder = ResponseEntity.ok(); bodyBuilder.contentType(MediaType.APPLICATION_OCTET_STREAM); String encodeFileName = URLEncoder.encode(UPLOAD_EXCEL, "UTF-8"); bodyBuilder.header("Content-Disposition","attachment;filename="+encodeFileName); return bodyBuilder.body(download); } catch (Exception e) { e.printStackTrace(); } return R.fail(); return null; } @ApiOperation(value = "上传照片") @PostMapping("uploadimage") public R uploadImage(CommonsMultipartFile commonsMultipartFile) { String name = commonsMultipartFile.getName(); @PostMapping(value = "uploadimage",consumes = "multipart/*",headers = "content-type=multipart/form-date") public R uploadImage(@RequestParam MultipartFile file, HttpServletRequest request) { String name = file.getOriginalFilename(); try { boolean b = ftpClientService.uploadFile(commonsMultipartFile.getInputStream(), name, FtpConstants.FTPFILEPATH_IDCARD); if (b) { return R.ok(FtpConstants.HTTP_URL + name); } return R.fail(); } catch (IOException e) { SFTPUtil sftp = new SFTPUtil(); sftp.login(); InputStream is = file.getInputStream(); sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is); sftp.logout(); return R.ok(FtpConstants.HTTP_URL+"/idcard/" + name); } catch (Exception e) { log.error("上传照片失败【{}】", e.getMessage()); return R.fail(); } @@ -106,15 +127,15 @@ } @ApiOperation(value = "批量新增党员导入excel") @PostMapping(value = "downloadtemplate", headers = "content-type=multipart/form-data") public R downloadTemplate(CommonsMultipartFile commonsMultipartFile) { String fileName = commonsMultipartFile.getOriginalFilename(); //获取文件名 if (!fileName.equals(UPLOAD_EXCEL.equals(fileName))) { @PostMapping(value = "downloadtemplate", consumes = "multipart/*",headers = "content-type=multipart/form-date") public R downloadTemplate(@RequestParam MultipartFile file, HttpServletRequest request) { String fileName = file.getOriginalFilename(); //获取文件名 if (!fileName.equals(UPLOAD_EXCEL)) { return R.fail(400, "文件名字错误"); } InputStream inputStream = null; try { inputStream = commonsMultipartFile.getInputStream(); inputStream = file.getInputStream();//todo 导入要看数据库有无重复数据 加入社区字段 身份证字段导入重复判断 EasyExcel.read(inputStream, PartyBuildingMemberExcelVO.class, new PartyBuildingMemberExcelListen(partyBuildingService)).sheet().doRead(); } catch (IOException e) { e.printStackTrace(); @@ -125,21 +146,21 @@ } @ApiOperation(value = "党员管理分页查询",response = PartyBuildingMemberVO.class) @GetMapping("pagepartyorganization") @PostMapping("pagepartyorganization") public R pagePartyOrganization(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO) { R r = partyBuildingService.pagePartyOrganization(pagePartyOrganizationVO); return r; } @ApiOperation(value = "党员档案--党员活动",response = PartyBuildingActivityVO.class) @GetMapping("listpartymemberactivities") public R listPartyMemberActivities(@RequestParam("id") Integer id) { R r = partyBuildingService.listPartyMemberActivities(id); @PostMapping("listpartymemberactivities") public R listPartyMemberActivities(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) { R r = partyBuildingService.listPartyMemberActivities(partyBuildingActivityVO); return r; } @ApiOperation(value = "活动报名名单分页查询",response = PageActivityMembersVO.class) @GetMapping("pageactivitymembers") @PostMapping("pageactivitymembers") public R pageActivityMembers(@RequestBody PageActivityMembersVO pageActivityMembersVO) { R r = partyBuildingService.pageActivityMembers(pageActivityMembersVO); return r; @@ -163,7 +184,7 @@ @PutMapping("updateactivity") public R updateActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) { Integer id = partyBuildingActivityVO.getId(); if (ObjectUtils.isEmpty(id)) { if (ObjectUtils.isEmpty(id)) {//todo 修改报名人数 最低人数 0 的判断 return R.fail("主键不能为空"); } R r = partyBuildingService.updateActivity(partyBuildingActivityVO); @@ -204,7 +225,8 @@ if (empty||emptycancelReason||emptyid) { return R.fail("参数不全"); } R r = partyBuildingService.deleteActivity(id); // R r = partyBuildingService.deleteActivity(id); R r = partyBuildingService.cancelActivity(partyBuildingActivityVO); return r; } @@ -311,7 +333,7 @@ } @ApiOperation(value = "分页查询党员动态/政策文件",response = PartyCommitteeVO.class) @GetMapping("pagedynamic") @PostMapping("pagedynamic") public R pageYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) { Integer type = partyBuildingComPbDynVO.getType(); if (ObjectUtils.isEmpty(type)) { @@ -335,18 +357,23 @@ return r; } /** * 增加阅读记录 * @param comPbDynUserVO 记录内容 * @return 增加结果 */ @PostMapping("adddynuser") public R addDynUser(@RequestBody ComPbDynUserVO comPbDynUserVO){ R r =partyBuildingService.addDynUser(comPbDynUserVO); @ApiOperation(value = "删除党员") @DeleteMapping("deletepartybuildingmember") public R deleteDynUser(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO){ Integer id = partyBuildingMemberVO.getId(); if (ObjectUtils.isEmpty(id)) { return R.fail("党员主键不能为空");//todo 加限制只能删除自己小区的党员 或者日志记录 } R r =partyBuildingService.deleteDynUser(id); return r; } } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/SwaggerConfig.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/Swagger3Config.java @@ -18,7 +18,7 @@ * @create: 2020-11-19 16:08 **/ @Configuration public class Swagger3Config { public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/PartyBuildingMemberExcelListen.java
@@ -2,6 +2,7 @@ import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.constants.HttpStatus; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberExcelVO; @@ -35,6 +36,7 @@ list.add(partyBuildingMemberExcelVO); // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM if(list.size() >= BATCH_COUNT){ log.info("excel导入数据【{}】", JSONObject.toJSONString(list)); R r = this.partyBuildingService.listSavePartyBuildingMemberExcelVO(list); if (r.getCode()!= HttpStatus.SUCCESS) { log.error("excel导入数据失败【{}】",r.getMsg()); @@ -46,6 +48,7 @@ @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { log.info("excel导入数据【{}】", JSONObject.toJSONString(list)); this.partyBuildingService.listSavePartyBuildingMemberExcelVO(list); //确保最后遗留的数据保存在数据库中 } } springcloud_k8s_panzhihuazhihuishequ/pom.xml
@@ -77,12 +77,17 @@ <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>${swagger-bootstrap-ui.version}</version> <version>1.9.6</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>${springfox-boot-starter.version}</version> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <!-- io常用工具类 --> springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/PartyBuildIngApi.java
@@ -51,8 +51,8 @@ * 批量新增党员 * @param list 党员集合 */ @PostMapping("listsavePartybuildingmemberExcelVO") public R listSavePartyBuildingMemberExcelVO(List<PartyBuildingMemberExcelVO> list){ @PostMapping("listsavepartybuildingmemberexcelvo") public R listSavePartyBuildingMemberExcelVO(@RequestBody List<PartyBuildingMemberExcelVO> list){ R r=comPbMemberService.listSavePartyBuildingMemberExcelVO(list); return r; } @@ -292,4 +292,26 @@ return r; } /** * 删除党员 * @param id 党员主键 * @return 删除结果 */ @PostMapping("deletepartybuildingmember") public R deleteDynUser(@RequestParam("id") Integer id){ R r=comPbMemberService.deleteDynUser(id); return r; } /** * 取消活动 * @param partyBuildingActivityVO 取消原因 * @return 操作结果 */ @PostMapping("cancelactivity") public R cancelActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO){ R r=comBpActivityService.cancelActivity(partyBuildingActivityVO); return r; } } springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComBpActivityDAO.java
@@ -26,7 +26,7 @@ "a.id activityId,\n" + "a.NAME,\n" + "a.address,\n" + "a.satus,\n" + "a.status,\n" + "a.create_at releaseTimeBegin,\n" + "a.activity_time_begin,\n" + "a.activity_time_end,\n" + @@ -65,20 +65,20 @@ "enroll_time_end \n" + "FROM\n" + "com_bp_activity \n" + "where community_id=#{communityId}\n"+ "<if test='name != null and name.trim() != ""'>" + "and name = #{name} \n" + "where community_id=#{partyBuildingActivityVO.communityId}\n"+ "<if test='partyBuildingActivityVO.name != null and partyBuildingActivityVO.name.trim() != ""'>" + "and name = #{partyBuildingActivityVO.name} \n" + " </if> " + "<if test='status != null and status.trim() != ""'>" + "AND `status` = #{status} \n" + "<if test='partyBuildingActivityVO.status != null and partyBuildingActivityVO.status != 0'>" + "AND `status` = #{partyBuildingActivityVO.status} \n" + " </if> " + "<if test='releaseTimeBegin != null and releaseTimeBegin.trim() != ""'>" + "AND release_time BETWEEN #{releaseTimeBegin} \n" + "AND #{releaseTimeEnd} \n" + "<if test='partyBuildingActivityVO.releaseTimeBegin != null and partyBuildingActivityVO.releaseTimeBegin.trim() != ""'>" + "AND release_time BETWEEN #{partyBuildingActivityVO.releaseTimeBegin} \n" + "AND #{partyBuildingActivityVO.releaseTimeEnd} \n" + " </if> " + "<if test='activityTimeBegin != null and activityTimeBegin.trim() != ""'>" + "AND activity_time_begin BETWEEN #{activityTimeBegin} \n" + "AND #{activityTimeEnd}" + "<if test='partyBuildingActivityVO.activityTimeBegin != null and partyBuildingActivityVO.activityTimeBegin.trim() != ""'>" + "AND activity_time_begin BETWEEN #{partyBuildingActivityVO.activityTimeBegin} \n" + "AND #{partyBuildingActivityVO.activityTimeEnd}" + " </if> " + "order by create_at desc "+ "</script>") springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbActivityMemberDAO.java
@@ -31,12 +31,12 @@ "JOIN com_pb_member me ON m.member_id = me.id\n" + "LEFT JOIN sys_user u ON me.id_card = u.id_card \n" + "WHERE\n" + "m.activity_id = 1 \n" + "<if test='name != null and name.trim() != ""'>" + "AND me.`name` = #{name} \n" + "m.activity_id = #{pageActivityMembersVO.activityId} \n" + "<if test='pageActivityMembersVO.name != null and pageActivityMembersVO.name.trim() != ""'>" + "AND me.`name` = #{pageActivityMembersVO.name} \n" + " </if> " + "<if test='phone != null and phone.trim() != ""'>" + "AND u.phone = #{phone}" + "<if test='pageActivityMembersVO.phone != null and pageActivityMembersVO.phone.trim() != ""'>" + "AND u.phone = #{pageActivityMembersVO.phone}" + " </if> " + "</script>") IPage<PageActivityMembersVO> pageActivityMembers(Page page, @Param("pageActivityMembersVO") PageActivityMembersVO pageActivityMembersVO); springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbDynDAO.java
@@ -31,23 +31,23 @@ "FROM\n" + "com_pb_dyn d\n" + "LEFT JOIN com_pb_dyn_user u ON d.id = u.dyn_id \n" + "where d.type=#{type} \n" + "<if test='communityId != null and communityId.trim() != ""'>" + "d.community_id = #{communityId} \n" + "where d.type=#{partyBuildingComPbDynVO.type} \n" + "<if test='partyBuildingComPbDynVO.communityId != null and partyBuildingComPbDynVO.communityId != 0'>" + "and d.community_id = #{partyBuildingComPbDynVO.communityId} \n" + " </if> " + "<if test='title != null and title.trim() != ""'>" + "d.title = #{title} \n" + "<if test='partyBuildingComPbDynVO.title != null and partyBuildingComPbDynVO.title.trim() != ""'>" + "and d.title = #{partyBuildingComPbDynVO.title} \n" + " </if> " + "<if test='status != null and status.trim() != ""'>" + "AND d.`status` = #{status} \n" + "<if test='partyBuildingComPbDynVO.status != null and partyBuildingComPbDynVO.status != 0'>" + "AND d.`status` = #{partyBuildingComPbDynVO.status} \n" + " </if> " + "<if test='publishAtBegin != null and publishAtBegin.trim() != ""'>" + "AND d.publish_at BETWEEN #{publishAtBegin} \n" + "AND #{publishAtEnd} \n" + "<if test='partyBuildingComPbDynVO.publishAtBegin != null and partyBuildingComPbDynVO.publishAtBegin.trim() != ""'>" + "AND d.publish_at BETWEEN #{partyBuildingComPbDynVO.publishAtBegin} \n" + "AND #{partyBuildingComPbDynVO.publishAtEnd} \n" + " </if> " + "GROUP BY\n" + "d.id\n" + "ORDER BY d.create_at desc"+ "</script>") IPage<PartyCommitteeVO> pageYnamic(Page page, @Param("partyBuildingComPbDynVO") PartyBuildingComPbDynVO partyBuildingComPbDynVO); IPage<PartyBuildingComPbDynVO> pageYnamic(Page page, @Param("partyBuildingComPbDynVO") PartyBuildingComPbDynVO partyBuildingComPbDynVO); } springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberDAO.java
@@ -33,6 +33,7 @@ @Select("<script> " + "SELECT\n" + "o.`name` orgName,\n" + "m.id_card,\n"+ "m.`id`,\n" + "u.phone,\n" + "m.`name`,\n" + @@ -52,14 +53,14 @@ "LEFT JOIN sys_user u ON m.id_card = u.id_card\n" + "LEFT JOIN com_pb_org o ON m.org_id = o.id"+ " <where>" + "<if test='orgName != null and orgName.trim() != ""'>" + "o.name=#{orgName}"+ "<if test='pagePartyOrganizationVO.orgName != null and pagePartyOrganizationVO.orgName.trim() != ""'>" + "and o.name=#{pagePartyOrganizationVO.orgName}"+ " </if> " + "<if test='account != null and account.trim() != ""'>" + "u.phone=#{account}"+ "<if test='pagePartyOrganizationVO.account != null and pagePartyOrganizationVO.account.trim() != ""'>" + "and u.phone=#{pagePartyOrganizationVO.account}"+ " </if> " + "<if test='name != null and name.trim() != ""'>" + "m.name=#{name}"+ "<if test='pagePartyOrganizationVO.name != null and pagePartyOrganizationVO.name.trim() != ""'>" + "and m.name=#{pagePartyOrganizationVO.name}"+ " </if> " + " </where>" + "</script>") springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberRoleDAO.java
@@ -29,12 +29,12 @@ "JOIN com_pb_member m ON mr.member_id = m.id\n" + "JOIN sys_role r ON mr.role_id = r.role_id \n" + "WHERE\n" + "mr.community_id = #{communityId} \n" + "<if test='communityId != null and communityId.trim() != ""'>" + "AND m.`name` = #{name} \n" + "mr.community_id = #{partyCommitteeVO.communityId} \n" + "<if test='partyCommitteeVO.name != null and partyCommitteeVO.name.trim() != ""'>" + "AND m.`name` = #{partyCommitteeVO.name} \n" + " </if> " + "<if test='roleId != null and roleId.trim() != ""'>" + "AND r.role_id =#{roleId}" + "<if test='partyCommitteeVO.roleId != null and partyCommitteeVO.roleId != 0'>" + "AND r.role_id =#{partyCommitteeVO.roleId}" + " </if> " + "</script>") IPage<PartyCommitteeVO> pagePartyOrganization(Page page, @Param("partyCommitteeVO") PartyCommitteeVO partyCommitteeVO); springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbMemberDO.java
@@ -38,11 +38,6 @@ private String idCard; /** * 档案id */ private Integer archivesId; /** * 姓名 */ private String name; springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbOrgDO.java
@@ -1,5 +1,6 @@ package com.panzhihua.service_dangjian.model.dos; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; @@ -11,6 +12,7 @@ * @create: 2020-11-30 11:34 **/ @Data @TableName("com_pb_org") public class ComPbOrgDO implements Serializable { /** springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComBpActivityService.java
@@ -61,5 +61,10 @@ * @return 查询结果 */ R pageActivity(PartyBuildingActivityVO partyBuildingActivityVO); /** * 取消活动 * @param partyBuildingActivityVO 取消原因 * @return 操作结果 */ R cancelActivity(PartyBuildingActivityVO partyBuildingActivityVO); } springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbMemberService.java
@@ -107,4 +107,12 @@ * @return 增加结果 */ R addDynUser(ComPbDynUserVO comPbDynUserVO); /** * 删除党员 * @param id 党员主键 * @return 删除结果 */ R deleteDynUser(Integer id); } springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComBpActivityServiceImpl.java
@@ -195,5 +195,24 @@ return R.ok(iPage); } /** * 取消活动 * * @param partyBuildingActivityVO 取消原因 * @return 操作结果 */ @Override public R cancelActivity(PartyBuildingActivityVO partyBuildingActivityVO) { ComBpActivityDO comBpActivityDO=new ComBpActivityDO(); comBpActivityDO.setId(partyBuildingActivityVO.getId()); comBpActivityDO.setCancelReason(partyBuildingActivityVO.getCancelReason()); comBpActivityDO.setCreateBy(partyBuildingActivityVO.getCreateBy()); int update = comBpActivityDAO.updateById(comBpActivityDO); if (update>0) { return R.ok(); } return R.fail(); } } springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberServiceImpl.java
@@ -59,8 +59,8 @@ public R addPartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO) { String idCard = partyBuildingMemberVO.getIdCard(); ComPbMemberDO comPbMemberDO = comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda().eq(ComPbMemberDO::getIdCard, idCard)); if (ObjectUtils.isEmpty(comPbMemberDO)) { throw new PartyBuildingMemberException("党员身份证重复"); if (!ObjectUtils.isEmpty(comPbMemberDO)) { return R.fail("身份证已经存在"); } ComPbMemberDO comPbMemberDO1=new ComPbMemberDO(); BeanUtils.copyProperties(partyBuildingMemberVO,comPbMemberDO1); @@ -116,9 +116,9 @@ String orgName = partyBuildingMemberExcelVO.getOrgName(); List<PartyOrganizationVO> collect = partyOrganizationVOArrayList.stream().filter(partyOrganizationVO -> orgName.equals(partyOrganizationVO.getName())).collect(Collectors.toList()); if (ObjectUtils.isEmpty(collect)) { throw new PartyBuildingMemberException("导入失败,组织不存在"+partyBuildingMemberExcelVO.getName()); throw new PartyBuildingMemberException("导入失败,组织不存在"+partyBuildingMemberExcelVO.getOrgName()); }else{ comPbMemberDO.setArchivesId(Integer.parseInt(collect.get(0).getId())); comPbMemberDO.setOrgId(Integer.parseInt(collect.get(0).getId())); } comPbMemberDO.setEmploymentTime(partyBuildingMemberExcelVO.getEmploymentTime()); comPbMemberDO.setJoinTime(partyBuildingMemberExcelVO.getJoinTime()); @@ -146,10 +146,10 @@ Page page=new Page<>(); Long pageNum = pagePartyOrganizationVO.getPageNum(); Long pageSize = pagePartyOrganizationVO.getPageSize(); if (ObjectUtils.isEmpty(pageNum)) { if (ObjectUtils.isEmpty(pageNum)||0==pageNum) { pageNum=1l; } if (ObjectUtils.isEmpty(pageSize)) { if (ObjectUtils.isEmpty(pageSize)||0==pageSize) { pageSize=10l; } page.setSize(pageSize); @@ -166,8 +166,11 @@ */ @Override public R updatePartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO) { Integer id = partyBuildingMemberVO.getId(); ComPbMemberDO comPbMemberDO=new ComPbMemberDO(); Integer orgId = partyBuildingMemberVO.getOrgId(); if (null!=orgId&&0==orgId) { partyBuildingMemberVO.setOrgId(null); } BeanUtils.copyProperties(partyBuildingMemberVO,comPbMemberDO); int i = comPbMemberDAO.updateById(comPbMemberDO); if (i>0) { @@ -357,7 +360,7 @@ } page.setSize(pageSize); page.setCurrent(pageNum); IPage<PartyCommitteeVO> iPage=comPbDynDAO.pageYnamic(page, partyBuildingComPbDynVO); IPage<PartyBuildingComPbDynVO> iPage=comPbDynDAO.pageYnamic(page, partyBuildingComPbDynVO); return R.ok(iPage); } @@ -393,5 +396,22 @@ return R.ok(); } /** * 删除党员 * * @param id 党员主键 * @return 删除结果 */ @Override public R deleteDynUser(Integer id) { int delete = comPbMemberDAO.deleteById(id); if (delete>0) { return R.ok(); } return R.fail(); } } springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/application.yml
@@ -85,3 +85,6 @@ logic-delete-value: 1 #数据库类型 db-type: mysql select-strategy: not_empty update-strategy: not_empty insert-strategy: not_empty springcloud_k8s_panzhihuazhihuishequ/zuul/pom.xml
@@ -49,13 +49,13 @@ <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> </dependency> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> </dependency> </dependencies> springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/ZuulApplication.java
@@ -7,9 +7,9 @@ import org.springframework.cloud.netflix.zuul.EnableZuulProxy; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.swagger2.annotations.EnableSwagger2; @EnableOpenApi @EnableSwagger2 @SpringCloudApplication @EnableCircuitBreaker @EnableEurekaClient springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/SwaggerConfig.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/Swagger2Config.java @@ -28,14 +28,14 @@ @Configuration @EnableSwagger2 @Primary public class Swagger2Config implements SwaggerResourcesProvider { public class SwaggerConfig implements SwaggerResourcesProvider { //RouteLocator可以根据zuul配置的路由列表获取服务 private final RouteLocator routeLocator; private String[]ids=new String[]{"appletsbackstage","applets","communitybackstage"}; public Swagger2Config(RouteLocator routeLocator) { public SwaggerConfig(RouteLocator routeLocator) { this.routeLocator = routeLocator; } /** springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
@@ -66,12 +66,12 @@ String requestURI = request.getRequestURI(); boolean contains = requestURI.contains("login"); boolean doc = requestURI.contains("doc.html"); boolean css = requestURI.contains("css"); boolean js = requestURI.contains("js"); boolean ui = requestURI.contains("ui"); boolean css = requestURI.contains(".css"); boolean js = requestURI.contains(".js"); boolean ui = requestURI.contains("/ui"); boolean swagger = requestURI.contains("swagger"); boolean ico = requestURI.contains("ico"); boolean docs = requestURI.contains("docs"); boolean ico = requestURI.contains(".ico"); boolean docs = requestURI.contains("-docs"); boolean error = requestURI.contains("error"); boolean refreshToken = requestURI.contains("refreshToken"); boolean logout = requestURI.contains("logout"); springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/application.yml
@@ -37,6 +37,17 @@ path: /api/communitybackstage/** serviceId: communitybackstage ribbon: ConnectTimeout: 60000 ReadTimeout: 60000 hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 60000 eureka: client: