From bae3ad563dfbe88b495be92344a9767d864608e2 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Fri, 23 Feb 2024 11:29:54 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E5=90=B4=E9=97=A8=E5=8C=BB=E8=BF=B0-?= =?UTF-8?q?=E5=90=B4=E9=97=A8=E7=BA=AA=E5=AE=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book/controller/MedicaldesController.java | 47 +++++++++++++++++ .../modules/book/dao/MedicaldesRecordDao.java | 9 ++++ .../modules/book/entity/MedicaldesRecord.java | 52 +++++++++++++++++++ .../book/service/MedicaldesRecordService.java | 9 ++++ .../impl/MedicaldesRecordServiceImpl.java | 11 ++++ 5 files changed, 128 insertions(+) create mode 100644 src/main/java/com/peanut/modules/book/dao/MedicaldesRecordDao.java create mode 100644 src/main/java/com/peanut/modules/book/entity/MedicaldesRecord.java create mode 100644 src/main/java/com/peanut/modules/book/service/MedicaldesRecordService.java create mode 100644 src/main/java/com/peanut/modules/book/service/impl/MedicaldesRecordServiceImpl.java diff --git a/src/main/java/com/peanut/modules/book/controller/MedicaldesController.java b/src/main/java/com/peanut/modules/book/controller/MedicaldesController.java index 451d70b5..e9b77804 100644 --- a/src/main/java/com/peanut/modules/book/controller/MedicaldesController.java +++ b/src/main/java/com/peanut/modules/book/controller/MedicaldesController.java @@ -28,6 +28,8 @@ import java.util.Map; @RequestMapping("book/medicaldes") public class MedicaldesController { + @Autowired + private MedicaldesRecordService recordService; @Autowired private MedicaldesLightService lightService; @Autowired @@ -353,4 +355,49 @@ public class MedicaldesController { return R.ok(); } + /** + * 吴门纪实列表 + */ + @RequestMapping(path = "/recordByType") + public R recordByType(String type) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + if (StringUtils.isNotEmpty(type)){ + wrapper.eq(MedicaldesRecord::getType,type); + } + wrapper.orderByAsc(MedicaldesRecord::getSort); + List list = recordService.list(wrapper); + return R.ok().put("result", list); + } + + /** + * 吴门纪实列表 + */ + @RequestMapping(path = "/recordByPage") + public R recordByPage(@RequestBody Map map) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + if (map.containsKey("type")&&StringUtils.isNotEmpty(map.get("type").toString())){ + wrapper.eq(MedicaldesRecord::getType,map.get("type")); + } + wrapper.orderByAsc(MedicaldesRecord::getSort); + Page page = recordService.page(new Page<>( + Long.parseLong(map.get("current").toString()), Long.parseLong(map.get("limit").toString())),wrapper); + return R.ok().put("result", page); + } + + @RequestMapping(path = "/getRecordById") + public R getRecordById(String id) { + return R.ok().put("result",recordService.getById(id)); + } + + @RequestMapping(path = "/saveOrUpdateRecord") + public R saveOrUpdateRecord(@RequestBody MedicaldesRecord record) { + recordService.saveOrUpdate(record); + return R.ok(); + } + + @RequestMapping(path = "/delRecord") + public R delRecord(String id) { + recordService.removeById(id); + return R.ok(); + } } diff --git a/src/main/java/com/peanut/modules/book/dao/MedicaldesRecordDao.java b/src/main/java/com/peanut/modules/book/dao/MedicaldesRecordDao.java new file mode 100644 index 00000000..ef02e1a8 --- /dev/null +++ b/src/main/java/com/peanut/modules/book/dao/MedicaldesRecordDao.java @@ -0,0 +1,9 @@ +package com.peanut.modules.book.dao; + +import com.github.yulichang.base.MPJBaseMapper; +import com.peanut.modules.book.entity.MedicaldesRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface MedicaldesRecordDao extends MPJBaseMapper { +} diff --git a/src/main/java/com/peanut/modules/book/entity/MedicaldesRecord.java b/src/main/java/com/peanut/modules/book/entity/MedicaldesRecord.java new file mode 100644 index 00000000..f935984c --- /dev/null +++ b/src/main/java/com/peanut/modules/book/entity/MedicaldesRecord.java @@ -0,0 +1,52 @@ +package com.peanut.modules.book.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("medicaldes_record") +public class MedicaldesRecord implements Serializable { + private static final long serialVersionUID = 1L; + + + @TableId + private Integer id; + + /** + * 标题 + */ + private String title; + + /** + * 照片 + */ + private String image; + + /** + * 内容 + */ + private String content; + + /** + * 类型1学术贡献、2抗疫纪实、3吴门公益 + */ + private Integer type; + + /** + * 排序 + */ + private Integer sort; + + @TableLogic + private Integer delFlag; + + + + + + +} diff --git a/src/main/java/com/peanut/modules/book/service/MedicaldesRecordService.java b/src/main/java/com/peanut/modules/book/service/MedicaldesRecordService.java new file mode 100644 index 00000000..f577eb52 --- /dev/null +++ b/src/main/java/com/peanut/modules/book/service/MedicaldesRecordService.java @@ -0,0 +1,9 @@ +package com.peanut.modules.book.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.modules.book.entity.MedicaldesRecord; +import org.springframework.stereotype.Service; + +@Service +public interface MedicaldesRecordService extends IService { +} diff --git a/src/main/java/com/peanut/modules/book/service/impl/MedicaldesRecordServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/MedicaldesRecordServiceImpl.java new file mode 100644 index 00000000..5aae809a --- /dev/null +++ b/src/main/java/com/peanut/modules/book/service/impl/MedicaldesRecordServiceImpl.java @@ -0,0 +1,11 @@ +package com.peanut.modules.book.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.peanut.modules.book.dao.MedicaldesRecordDao; +import com.peanut.modules.book.entity.MedicaldesRecord; +import com.peanut.modules.book.service.MedicaldesRecordService; +import org.springframework.stereotype.Service; + +@Service +public class MedicaldesRecordServiceImpl extends ServiceImpl implements MedicaldesRecordService { +} From 81ab5d5b03ae4df9d4bca222d08a3821116d0cc8 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Mon, 26 Feb 2024 16:11:02 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E4=B8=AD=E5=8C=BB=E7=A0=94=E7=A9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChineseMedicineResearchController.java | 74 +++++++++++++++++++ .../book/dao/ChineseMedicineResearchDao.java | 9 +++ .../book/entity/ChineseMedicineResearch.java | 67 +++++++++++++++++ .../ChineseMedicineResearchService.java | 7 ++ .../ChineseMedicineResearchServiceImpl.java | 13 ++++ 5 files changed, 170 insertions(+) create mode 100644 src/main/java/com/peanut/modules/book/controller/ChineseMedicineResearchController.java create mode 100644 src/main/java/com/peanut/modules/book/dao/ChineseMedicineResearchDao.java create mode 100644 src/main/java/com/peanut/modules/book/entity/ChineseMedicineResearch.java create mode 100644 src/main/java/com/peanut/modules/book/service/ChineseMedicineResearchService.java create mode 100644 src/main/java/com/peanut/modules/book/service/impl/ChineseMedicineResearchServiceImpl.java diff --git a/src/main/java/com/peanut/modules/book/controller/ChineseMedicineResearchController.java b/src/main/java/com/peanut/modules/book/controller/ChineseMedicineResearchController.java new file mode 100644 index 00000000..e6aa04cd --- /dev/null +++ b/src/main/java/com/peanut/modules/book/controller/ChineseMedicineResearchController.java @@ -0,0 +1,74 @@ +package com.peanut.modules.book.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.peanut.common.utils.R; +import com.peanut.modules.book.entity.ChineseMedicineResearch; +import com.peanut.modules.book.entity.MedicaldesRecord; +import com.peanut.modules.book.service.ChineseMedicineResearchService; +import com.peanut.modules.book.service.MedicaldesRecordService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Map; + +@Slf4j +@RestController +@RequestMapping("book/chineseMedicineResearch") +public class ChineseMedicineResearchController { + + @Autowired + private ChineseMedicineResearchService chineseMedicineResearchService; + + /** + * 中医研究列表 + */ + @RequestMapping(path = "/researchByType") + public R researchByType(String type) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + if (StringUtils.isNotEmpty(type)){ + wrapper.eq(ChineseMedicineResearch::getType,type); + } + wrapper.orderByAsc(ChineseMedicineResearch::getSort); + List list = chineseMedicineResearchService.list(wrapper); + return R.ok().put("result", list); + } + + /** + * 中医研究列表 + */ + @RequestMapping(path = "/researchByPage") + public R researchByPage(@RequestBody Map map) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + if (map.containsKey("type")&&StringUtils.isNotEmpty(map.get("type").toString())){ + wrapper.eq(ChineseMedicineResearch::getType,map.get("type")); + } + wrapper.orderByAsc(ChineseMedicineResearch::getSort); + Page page = chineseMedicineResearchService.page(new Page<>( + Long.parseLong(map.get("current").toString()), Long.parseLong(map.get("limit").toString())),wrapper); + return R.ok().put("result", page); + } + + @RequestMapping(path = "/getResearchById") + public R getResearchById(String id) { + return R.ok().put("result",chineseMedicineResearchService.getById(id)); + } + + @RequestMapping(path = "/saveOrUpdateResearch") + public R saveOrUpdateResearch(@RequestBody ChineseMedicineResearch research) { + chineseMedicineResearchService.saveOrUpdate(research); + return R.ok(); + } + + @RequestMapping(path = "/delResearch") + public R delResearch(String id) { + chineseMedicineResearchService.removeById(id); + return R.ok(); + } + +} diff --git a/src/main/java/com/peanut/modules/book/dao/ChineseMedicineResearchDao.java b/src/main/java/com/peanut/modules/book/dao/ChineseMedicineResearchDao.java new file mode 100644 index 00000000..ae3364e4 --- /dev/null +++ b/src/main/java/com/peanut/modules/book/dao/ChineseMedicineResearchDao.java @@ -0,0 +1,9 @@ +package com.peanut.modules.book.dao; + +import com.github.yulichang.base.MPJBaseMapper; +import com.peanut.modules.book.entity.ChineseMedicineResearch; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ChineseMedicineResearchDao extends MPJBaseMapper { +} diff --git a/src/main/java/com/peanut/modules/book/entity/ChineseMedicineResearch.java b/src/main/java/com/peanut/modules/book/entity/ChineseMedicineResearch.java new file mode 100644 index 00000000..739b4c97 --- /dev/null +++ b/src/main/java/com/peanut/modules/book/entity/ChineseMedicineResearch.java @@ -0,0 +1,67 @@ +package com.peanut.modules.book.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("chinese_medicine_research") +public class ChineseMedicineResearch implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId + private Integer id; + + /** + * 标签(中医经典,中医基础,中医临床,针灸推拿,中药研究) + */ + private String type; + + /** + * 标题 + */ + private String title; + + /** + * 链接(公微链接) + */ + private String url; + + /** + * 内容 + */ + private String content; + + /** + * 照片 + */ + private String image; + + /** + * 排序 + */ + private Integer sort; + + /** + * 文件地址 + */ + private String file; + + /** + * 期刊文章引用方式 + */ + private String articleCitation; + + @TableLogic + private Integer delFlag; + + + + + + + +} diff --git a/src/main/java/com/peanut/modules/book/service/ChineseMedicineResearchService.java b/src/main/java/com/peanut/modules/book/service/ChineseMedicineResearchService.java new file mode 100644 index 00000000..a124fd46 --- /dev/null +++ b/src/main/java/com/peanut/modules/book/service/ChineseMedicineResearchService.java @@ -0,0 +1,7 @@ +package com.peanut.modules.book.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.modules.book.entity.ChineseMedicineResearch; + +public interface ChineseMedicineResearchService extends IService { +} diff --git a/src/main/java/com/peanut/modules/book/service/impl/ChineseMedicineResearchServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/ChineseMedicineResearchServiceImpl.java new file mode 100644 index 00000000..d867dc00 --- /dev/null +++ b/src/main/java/com/peanut/modules/book/service/impl/ChineseMedicineResearchServiceImpl.java @@ -0,0 +1,13 @@ +package com.peanut.modules.book.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.peanut.modules.book.dao.ChineseMedicineResearchDao; +import com.peanut.modules.book.entity.ChineseMedicineResearch; +import com.peanut.modules.book.service.ChineseMedicineResearchService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service("chineseMedicineResearchService") +public class ChineseMedicineResearchServiceImpl extends ServiceImpl implements ChineseMedicineResearchService { +} From 6526b4f3d3ab9e6d84a4accde0e147bd3a2d2916 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Fri, 8 Mar 2024 10:12:48 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E5=A4=9A=E9=A1=B9=E7=9B=AE=E7=99=BB?= =?UTF-8?q?=E5=BD=95token=E7=BB=9F=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/service/impl/SysUserTokenServiceImpl.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/peanut/modules/sys/service/impl/SysUserTokenServiceImpl.java b/src/main/java/com/peanut/modules/sys/service/impl/SysUserTokenServiceImpl.java index 894f6738..ed9b88ed 100644 --- a/src/main/java/com/peanut/modules/sys/service/impl/SysUserTokenServiceImpl.java +++ b/src/main/java/com/peanut/modules/sys/service/impl/SysUserTokenServiceImpl.java @@ -23,7 +23,7 @@ import java.util.Date; @Service("sysUserTokenService") public class SysUserTokenServiceImpl extends ServiceImpl implements SysUserTokenService { //10天后过期 - private final static int EXPIRE = 3600 * 12 * 10; + private final static int EXPIRE = 3600 * 24 * 10; @Override @@ -48,10 +48,13 @@ public class SysUserTokenServiceImpl extends ServiceImpl now.getTime()){ + tokenEntity.setToken(tokenEntity.getToken()); + }else { + tokenEntity.setToken(token); + } tokenEntity.setUpdateTime(now); tokenEntity.setExpireTime(expireTime); - //更新token this.updateById(tokenEntity); } From fb1426398f96053989c6b5a6d317af28ba0a6535 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Fri, 8 Mar 2024 14:13:12 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E5=A4=9A=E9=A1=B9=E7=9B=AE=E7=99=BB?= =?UTF-8?q?=E5=BD=95token=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/sys/service/impl/SysUserTokenServiceImpl.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/peanut/modules/sys/service/impl/SysUserTokenServiceImpl.java b/src/main/java/com/peanut/modules/sys/service/impl/SysUserTokenServiceImpl.java index ed9b88ed..b550cf6b 100644 --- a/src/main/java/com/peanut/modules/sys/service/impl/SysUserTokenServiceImpl.java +++ b/src/main/java/com/peanut/modules/sys/service/impl/SysUserTokenServiceImpl.java @@ -49,10 +49,9 @@ public class SysUserTokenServiceImpl extends ServiceImpl now.getTime()){ - tokenEntity.setToken(tokenEntity.getToken()); - }else { - tokenEntity.setToken(token); + token = tokenEntity.getToken(); } + tokenEntity.setToken(token); tokenEntity.setUpdateTime(now); tokenEntity.setExpireTime(expireTime); //更新token From e6d1250cf6317b6859a736be39ee639ab945e680 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Wed, 13 Mar 2024 14:33:24 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=BF=9B=E5=BA=A6=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/oss/controller/OssController.java | 14 +++++++++---- .../modules/oss/service/OssService.java | 2 ++ .../oss/service/impl/OssServiceImpl.java | 21 ++++++++++++++++++- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/peanut/modules/oss/controller/OssController.java b/src/main/java/com/peanut/modules/oss/controller/OssController.java index f1680135..46e52a40 100644 --- a/src/main/java/com/peanut/modules/oss/controller/OssController.java +++ b/src/main/java/com/peanut/modules/oss/controller/OssController.java @@ -7,10 +7,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @Slf4j @RestController @@ -32,4 +29,13 @@ public class OssController { String url = ossService.uploadFileAvatar(file); return R.ok().put("url",url); } + + //获取进度条 + @GetMapping("/getSchedule") + public R getSchedule(String fileName){ + String percent = ossService.getSchedule(fileName); + return R.ok().put("percent",percent); + } + + } diff --git a/src/main/java/com/peanut/modules/oss/service/OssService.java b/src/main/java/com/peanut/modules/oss/service/OssService.java index 7fa5da58..4ae7c437 100644 --- a/src/main/java/com/peanut/modules/oss/service/OssService.java +++ b/src/main/java/com/peanut/modules/oss/service/OssService.java @@ -7,4 +7,6 @@ public interface OssService { String uploadFileAvatar(MultipartFile file); String uploadHtml(String html,String name); + + String getSchedule(String fileName); } diff --git a/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java b/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java index 2d6967c7..24ea10e0 100644 --- a/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java +++ b/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java @@ -2,10 +2,14 @@ package com.peanut.modules.oss.service.impl; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; +import com.aliyun.oss.model.PutObjectRequest; import com.peanut.common.utils.ConstantPropertiesUtils; +import com.peanut.modules.oss.controller.PutObjectProgressListener; import com.peanut.modules.oss.service.OssService; import lombok.extern.slf4j.Slf4j; import org.joda.time.DateTime; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -17,6 +21,9 @@ import java.util.UUID; @Service public class OssServiceImpl implements OssService { + @Autowired + private StringRedisTemplate redisTemplate; + //上传头像到oss @Override public String uploadFileAvatar(MultipartFile file) { @@ -35,6 +42,7 @@ public class OssServiceImpl implements OssService { InputStream inputStream = file.getInputStream(); //获取文件名称 String fileName = file.getOriginalFilename(); + String fileNameProgress = file.getOriginalFilename(); //1 在文件名称里面添加随机唯一的值 String uuid = UUID.randomUUID().toString().replaceAll("-",""); // yuy76t5rew01.jpg @@ -52,7 +60,9 @@ public class OssServiceImpl implements OssService { //第一个参数 Bucket名称 //第二个参数 上传到oss文件路径和文件名称 aa/bb/1.jpg //第三个参数 上传文件输入流 - ossClient.putObject(bucketName,fileName , inputStream); + long fileSize = file.getSize(); + ossClient.putObject(new PutObjectRequest(bucketName,fileName, inputStream). + withProgressListener(new PutObjectProgressListener(fileSize,fileNameProgress))); // 关闭OSSClient。 ossClient.shutdown(); @@ -120,4 +130,13 @@ public class OssServiceImpl implements OssService { return null; } } + + @Override + public String getSchedule(String fileName) { + String percent = redisTemplate.opsForValue().get(fileName); + if ("100".equals(percent)){ + redisTemplate.delete(fileName); + } + return percent==null?"":percent; + } } From cf2fa5daf6e441df821e34d87257ad641f40f8b0 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Wed, 13 Mar 2024 14:44:35 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=BF=9B=E5=BA=A6=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PutObjectProgressListener.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/main/java/com/peanut/modules/oss/controller/PutObjectProgressListener.java diff --git a/src/main/java/com/peanut/modules/oss/controller/PutObjectProgressListener.java b/src/main/java/com/peanut/modules/oss/controller/PutObjectProgressListener.java new file mode 100644 index 00000000..36fd2451 --- /dev/null +++ b/src/main/java/com/peanut/modules/oss/controller/PutObjectProgressListener.java @@ -0,0 +1,54 @@ +package com.peanut.modules.oss.controller; + +import com.aliyun.oss.event.ProgressEvent; +import com.aliyun.oss.event.ProgressEventType; +import com.aliyun.oss.event.ProgressListener; +import com.peanut.common.utils.SpringContextUtils; +import org.springframework.data.redis.core.StringRedisTemplate; + +public class PutObjectProgressListener implements ProgressListener { + + private long bytesWritten = 0; + private long totalBytes = 0; + private String fileName = ""; + + public PutObjectProgressListener() { + } + public PutObjectProgressListener(long fileSize,String fileName) { + this.totalBytes = fileSize; + this.fileName = fileName; + } + + @Override + public void progressChanged(ProgressEvent progressEvent) { + long bytes = progressEvent.getBytes(); + ProgressEventType eventType = progressEvent.getEventType(); + StringRedisTemplate redisTemplate = (StringRedisTemplate)SpringContextUtils.getBean("stringRedisTemplate"); + switch (eventType) { + case TRANSFER_STARTED_EVENT: +// System.out.println("Start to upload......"); +// break; + case REQUEST_CONTENT_LENGTH_EVENT: + //因为传的是文件流,不走此路 +// this.totalBytes = bytes; +// System.out.println(this.totalBytes + " bytes in total will be uploaded to OSS"); +// break; + case REQUEST_BYTE_TRANSFER_EVENT: + this.bytesWritten += bytes; + int percent = (int)(this.bytesWritten * 100.0 / this.totalBytes); +// System.out.println(bytes + " bytes have been written at this time, upload progress: " + percent + "%(" + this.bytesWritten + "/" + this.totalBytes + ")"); + redisTemplate.opsForValue().set(fileName,percent+""); + break; + case TRANSFER_COMPLETED_EVENT: +// this.succeed = true; +// System.out.println("Succeed to upload, " + this.bytesWritten + " bytes have been transferred in total"); +// break; + case TRANSFER_FAILED_EVENT: + redisTemplate.delete(fileName); +// System.out.println("Failed to upload, " + this.bytesWritten + " bytes have been transferred"); +// break; + default: + break; + } + } +} From ce9fbaa3192ecff4037a7fd1ed4672aa4853ba24 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Wed, 13 Mar 2024 15:46:21 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=BF=9B=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/oss/controller/OssController.java | 11 +++- .../controller/PutObjectProgressListener.java | 10 ++-- .../modules/oss/service/OssService.java | 4 +- .../oss/service/impl/OssServiceImpl.java | 59 ++++++++++++++++--- 4 files changed, 67 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/peanut/modules/oss/controller/OssController.java b/src/main/java/com/peanut/modules/oss/controller/OssController.java index 46e52a40..13556ed9 100644 --- a/src/main/java/com/peanut/modules/oss/controller/OssController.java +++ b/src/main/java/com/peanut/modules/oss/controller/OssController.java @@ -30,10 +30,17 @@ public class OssController { return R.ok().put("url",url); } + @PostMapping("/uploadFileSchedule") + @ApiOperation("上传带进度条") + public R uploadFileSchedule(@RequestParam("file") MultipartFile file,@RequestParam("uid") String uid) { + String url = ossService.uploadFileSchedule(file,uid); + return R.ok().put("url",url); + } + //获取进度条 @GetMapping("/getSchedule") - public R getSchedule(String fileName){ - String percent = ossService.getSchedule(fileName); + public R getSchedule(String uid){ + String percent = ossService.getSchedule(uid); return R.ok().put("percent",percent); } diff --git a/src/main/java/com/peanut/modules/oss/controller/PutObjectProgressListener.java b/src/main/java/com/peanut/modules/oss/controller/PutObjectProgressListener.java index 36fd2451..8d05c02b 100644 --- a/src/main/java/com/peanut/modules/oss/controller/PutObjectProgressListener.java +++ b/src/main/java/com/peanut/modules/oss/controller/PutObjectProgressListener.java @@ -10,13 +10,13 @@ public class PutObjectProgressListener implements ProgressListener { private long bytesWritten = 0; private long totalBytes = 0; - private String fileName = ""; + private String uid = ""; public PutObjectProgressListener() { } - public PutObjectProgressListener(long fileSize,String fileName) { + public PutObjectProgressListener(long fileSize,String uid) { this.totalBytes = fileSize; - this.fileName = fileName; + this.uid = uid; } @Override @@ -37,14 +37,14 @@ public class PutObjectProgressListener implements ProgressListener { this.bytesWritten += bytes; int percent = (int)(this.bytesWritten * 100.0 / this.totalBytes); // System.out.println(bytes + " bytes have been written at this time, upload progress: " + percent + "%(" + this.bytesWritten + "/" + this.totalBytes + ")"); - redisTemplate.opsForValue().set(fileName,percent+""); + redisTemplate.opsForValue().set(uid,percent+""); break; case TRANSFER_COMPLETED_EVENT: // this.succeed = true; // System.out.println("Succeed to upload, " + this.bytesWritten + " bytes have been transferred in total"); // break; case TRANSFER_FAILED_EVENT: - redisTemplate.delete(fileName); + redisTemplate.delete(uid); // System.out.println("Failed to upload, " + this.bytesWritten + " bytes have been transferred"); // break; default: diff --git a/src/main/java/com/peanut/modules/oss/service/OssService.java b/src/main/java/com/peanut/modules/oss/service/OssService.java index 4ae7c437..fb0d5de7 100644 --- a/src/main/java/com/peanut/modules/oss/service/OssService.java +++ b/src/main/java/com/peanut/modules/oss/service/OssService.java @@ -6,7 +6,9 @@ public interface OssService { //上传头像到oss String uploadFileAvatar(MultipartFile file); + String uploadFileSchedule(MultipartFile file,String uid); + String uploadHtml(String html,String name); - String getSchedule(String fileName); + String getSchedule(String uid); } diff --git a/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java b/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java index 24ea10e0..8cc26ab1 100644 --- a/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java +++ b/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java @@ -24,7 +24,6 @@ public class OssServiceImpl implements OssService { @Autowired private StringRedisTemplate redisTemplate; - //上传头像到oss @Override public String uploadFileAvatar(MultipartFile file) { // 工具类获取值 @@ -35,14 +34,13 @@ public class OssServiceImpl implements OssService { try { // 创建OSS实例。 - OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); + OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); //获取上传文件输入流 InputStream inputStream = file.getInputStream(); //获取文件名称 String fileName = file.getOriginalFilename(); - String fileNameProgress = file.getOriginalFilename(); //1 在文件名称里面添加随机唯一的值 String uuid = UUID.randomUUID().toString().replaceAll("-",""); // yuy76t5rew01.jpg @@ -60,9 +58,7 @@ public class OssServiceImpl implements OssService { //第一个参数 Bucket名称 //第二个参数 上传到oss文件路径和文件名称 aa/bb/1.jpg //第三个参数 上传文件输入流 - long fileSize = file.getSize(); - ossClient.putObject(new PutObjectRequest(bucketName,fileName, inputStream). - withProgressListener(new PutObjectProgressListener(fileSize,fileNameProgress))); + ossClient.putObject(bucketName,fileName, inputStream); // 关闭OSSClient。 ossClient.shutdown(); @@ -79,6 +75,51 @@ public class OssServiceImpl implements OssService { } } + @Override + public String uploadFileSchedule(MultipartFile file,String uid) { + // 工具类获取值 + String endpoint = ConstantPropertiesUtils.END_POIND; + String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID; + String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET; + String bucketName = ConstantPropertiesUtils.BUCKET_NAME; + + try { + // 创建OSS实例。 + OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); + //获取上传文件输入流 + InputStream inputStream = file.getInputStream(); + //获取文件名称 + String fileName = file.getOriginalFilename(); + //1 在文件名称里面添加随机唯一的值 + String uuid = UUID.randomUUID().toString().replaceAll("-",""); + // yuy76t5rew01.jpg + fileName = uuid+fileName; + + //2 把文件按照日期进行分类 + // 2019/11/12 + String datePath = new DateTime().toString("yyyy/MM/dd"); + //拼接 2019/11/12/ewtqr313401.jpg + fileName = datePath+"/"+fileName; + //调用oss方法实现上传 + //第一个参数 Bucket名称 + //第二个参数 上传到oss文件路径和文件名称 aa/bb/1.jpg + //第三个参数 上传文件输入流 + long fileSize = file.getSize(); + ossClient.putObject(new PutObjectRequest(bucketName,fileName, inputStream). + withProgressListener(new PutObjectProgressListener(fileSize,uid))); + // 关闭OSSClient。 + ossClient.shutdown(); + //把上传之后文件路径返回 + //需要把上传到阿里云oss路径手动拼接出来 + // https://edu-guli-1010.oss-cn-beijing.aliyuncs.com/01.jpg + String url = "https://"+bucketName+"."+endpoint+"/"+fileName; + return url; + }catch(Exception e) { + e.printStackTrace(); + return null; + } + } + @Override public String uploadHtml(String html, String name) { // 工具类获取值 @@ -132,10 +173,10 @@ public class OssServiceImpl implements OssService { } @Override - public String getSchedule(String fileName) { - String percent = redisTemplate.opsForValue().get(fileName); + public String getSchedule(String uid) { + String percent = redisTemplate.opsForValue().get(uid); if ("100".equals(percent)){ - redisTemplate.delete(fileName); + redisTemplate.delete(uid); } return percent==null?"":percent; } From 5385745056d18e733ad76d8627625ee411d8825c Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Wed, 13 Mar 2024 17:18:15 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=BF=9B=E5=BA=A6=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/peanut/modules/oss/service/impl/OssServiceImpl.java | 3 --- src/main/resources/application-dev.yml | 6 +++--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java b/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java index 8cc26ab1..5afd0017 100644 --- a/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java +++ b/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java @@ -175,9 +175,6 @@ public class OssServiceImpl implements OssService { @Override public String getSchedule(String uid) { String percent = redisTemplate.opsForValue().get(uid); - if ("100".equals(percent)){ - redisTemplate.delete(uid); - } return percent==null?"":percent; } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 343ee157..0fbc7c07 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -82,11 +82,11 @@ wxpay: notifyUrl: https://testapi.nuttyreading.com/pay/payNotify refundUrl: https://api.mch.weixin.qq.com/v3/refund/domestic/refunds refundNotifyUrl: https://testapi.nuttyreading.com/pay/refundNotify - keyPemPath: D:/hs/nuttyreading-java/src/main/resources/cent/apiclient_key.pem + keyPemPath: F:\ideaProject\peanutBook\src\main\resources\cent\apiclient_key.pem serialNo: 679AECB2F7AC4183033F713828892BA640E4EEE3 apiV3Key: 4aYFklzaULeGlr7oJPZ6rHWKcxjihZUF - wechatPayCertificateUrl: D:/hs/nuttyreading-java/src/main/resources/cent/wechatpay_7B5676E3CDF56680D0414A009CE501C844DBE2D6.pem - privateKeyUrl: D:/hs/nuttyreading-java/src/main/resources/cent/apiclient_key.pem + wechatPayCertificateUrl: F:\ideaProject\peanutBook\src\main\resources\cent\wechatpay_7B5676E3CDF56680D0414A009CE501C844DBE2D6.pem + privateKeyUrl: F:\ideaProject\peanutBook\src\main\resources\cent\apiclient_key.pem redisAddress: redis://47.93.127.115:6379 From 36bb3fc1946a616e99c58ce572705f8e3fedfc47 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Thu, 14 Mar 2024 10:58:13 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=BF=9B=E5=BA=A6=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/oss/controller/OssController.java | 6 +- .../controller/PutObjectProgressListener.java | 10 +- .../modules/oss/service/OssService.java | 3 +- .../oss/service/impl/OssServiceImpl.java | 127 +++++------------- 4 files changed, 47 insertions(+), 99 deletions(-) diff --git a/src/main/java/com/peanut/modules/oss/controller/OssController.java b/src/main/java/com/peanut/modules/oss/controller/OssController.java index 13556ed9..374a6458 100644 --- a/src/main/java/com/peanut/modules/oss/controller/OssController.java +++ b/src/main/java/com/peanut/modules/oss/controller/OssController.java @@ -9,6 +9,9 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; + +import java.util.UUID; + @Slf4j @RestController @RequestMapping("/oss/fileoss") @@ -40,8 +43,7 @@ public class OssController { //获取进度条 @GetMapping("/getSchedule") public R getSchedule(String uid){ - String percent = ossService.getSchedule(uid); - return R.ok().put("percent",percent); + return ossService.getSchedule(uid); } diff --git a/src/main/java/com/peanut/modules/oss/controller/PutObjectProgressListener.java b/src/main/java/com/peanut/modules/oss/controller/PutObjectProgressListener.java index 8d05c02b..94292529 100644 --- a/src/main/java/com/peanut/modules/oss/controller/PutObjectProgressListener.java +++ b/src/main/java/com/peanut/modules/oss/controller/PutObjectProgressListener.java @@ -6,17 +6,21 @@ import com.aliyun.oss.event.ProgressListener; import com.peanut.common.utils.SpringContextUtils; import org.springframework.data.redis.core.StringRedisTemplate; +import java.util.concurrent.TimeUnit; + public class PutObjectProgressListener implements ProgressListener { private long bytesWritten = 0; private long totalBytes = 0; private String uid = ""; + private String url = ""; public PutObjectProgressListener() { } - public PutObjectProgressListener(long fileSize,String uid) { + public PutObjectProgressListener(long fileSize,String uid,String url) { this.totalBytes = fileSize; this.uid = uid; + this.url = url; } @Override @@ -37,14 +41,14 @@ public class PutObjectProgressListener implements ProgressListener { this.bytesWritten += bytes; int percent = (int)(this.bytesWritten * 100.0 / this.totalBytes); // System.out.println(bytes + " bytes have been written at this time, upload progress: " + percent + "%(" + this.bytesWritten + "/" + this.totalBytes + ")"); - redisTemplate.opsForValue().set(uid,percent+""); + redisTemplate.opsForValue().set(uid,percent+";"+url); + redisTemplate.expire(uid, 600, TimeUnit.SECONDS); break; case TRANSFER_COMPLETED_EVENT: // this.succeed = true; // System.out.println("Succeed to upload, " + this.bytesWritten + " bytes have been transferred in total"); // break; case TRANSFER_FAILED_EVENT: - redisTemplate.delete(uid); // System.out.println("Failed to upload, " + this.bytesWritten + " bytes have been transferred"); // break; default: diff --git a/src/main/java/com/peanut/modules/oss/service/OssService.java b/src/main/java/com/peanut/modules/oss/service/OssService.java index fb0d5de7..7e61208c 100644 --- a/src/main/java/com/peanut/modules/oss/service/OssService.java +++ b/src/main/java/com/peanut/modules/oss/service/OssService.java @@ -1,5 +1,6 @@ package com.peanut.modules.oss.service; +import com.peanut.common.utils.R; import org.springframework.web.multipart.MultipartFile; public interface OssService { @@ -10,5 +11,5 @@ public interface OssService { String uploadHtml(String html,String name); - String getSchedule(String uid); + R getSchedule(String uid); } diff --git a/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java b/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java index 5afd0017..c116e123 100644 --- a/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java +++ b/src/main/java/com/peanut/modules/oss/service/impl/OssServiceImpl.java @@ -4,6 +4,7 @@ import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.model.PutObjectRequest; import com.peanut.common.utils.ConstantPropertiesUtils; +import com.peanut.common.utils.R; import com.peanut.modules.oss.controller.PutObjectProgressListener; import com.peanut.modules.oss.service.OssService; import lombok.extern.slf4j.Slf4j; @@ -26,63 +27,20 @@ public class OssServiceImpl implements OssService { @Override public String uploadFileAvatar(MultipartFile file) { - // 工具类获取值 - String endpoint = ConstantPropertiesUtils.END_POIND; - String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID; - String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET; - String bucketName = ConstantPropertiesUtils.BUCKET_NAME; - - try { - // 创建OSS实例。 - OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); - - - //获取上传文件输入流 - InputStream inputStream = file.getInputStream(); - //获取文件名称 - String fileName = file.getOriginalFilename(); - //1 在文件名称里面添加随机唯一的值 - String uuid = UUID.randomUUID().toString().replaceAll("-",""); - // yuy76t5rew01.jpg - fileName = uuid+fileName; - - //2 把文件按照日期进行分类 - //获取当前日期 - // 2019/11/12 - String datePath = new DateTime().toString("yyyy/MM/dd"); - //拼接 - // 2019/11/12/ewtqr313401.jpg - fileName = datePath+"/"+fileName; - - //调用oss方法实现上传 - //第一个参数 Bucket名称 - //第二个参数 上传到oss文件路径和文件名称 aa/bb/1.jpg - //第三个参数 上传文件输入流 - ossClient.putObject(bucketName,fileName, inputStream); - - // 关闭OSSClient。 - ossClient.shutdown(); - - //把上传之后文件路径返回 - //需要把上传到阿里云oss路径手动拼接出来 - // https://edu-guli-1010.oss-cn-beijing.aliyuncs.com/01.jpg - String url = "https://"+bucketName+"."+endpoint+"/"+fileName; - - return url; - }catch(Exception e) { - e.printStackTrace(); - return null; - } + return uploadFile(file,""); } @Override public String uploadFileSchedule(MultipartFile file,String uid) { + return uploadFile(file,uid); + } + + public String uploadFile(MultipartFile file,String uid){ // 工具类获取值 String endpoint = ConstantPropertiesUtils.END_POIND; String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID; String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET; String bucketName = ConstantPropertiesUtils.BUCKET_NAME; - try { // 创建OSS实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); @@ -92,27 +50,25 @@ public class OssServiceImpl implements OssService { String fileName = file.getOriginalFilename(); //1 在文件名称里面添加随机唯一的值 String uuid = UUID.randomUUID().toString().replaceAll("-",""); - // yuy76t5rew01.jpg fileName = uuid+fileName; - - //2 把文件按照日期进行分类 - // 2019/11/12 + //2 把文件按照日期进行分类 拼接 2019/11/12/ewtqr313401.jpg String datePath = new DateTime().toString("yyyy/MM/dd"); - //拼接 2019/11/12/ewtqr313401.jpg fileName = datePath+"/"+fileName; - //调用oss方法实现上传 - //第一个参数 Bucket名称 - //第二个参数 上传到oss文件路径和文件名称 aa/bb/1.jpg - //第三个参数 上传文件输入流 - long fileSize = file.getSize(); - ossClient.putObject(new PutObjectRequest(bucketName,fileName, inputStream). - withProgressListener(new PutObjectProgressListener(fileSize,uid))); - // 关闭OSSClient。 - ossClient.shutdown(); - //把上传之后文件路径返回 - //需要把上传到阿里云oss路径手动拼接出来 + //把上传之后文件路径返回 需要把上传到阿里云oss路径手动拼接出来 // https://edu-guli-1010.oss-cn-beijing.aliyuncs.com/01.jpg String url = "https://"+bucketName+"."+endpoint+"/"+fileName; + //调用oss方法实现上传 + if ("".equals(uid)){ + ossClient.putObject(bucketName,fileName, inputStream); + }else { + //带进度条 + long fileSize = file.getSize(); + System.out.println(uid+ "" +url); + ossClient.putObject(new PutObjectRequest(bucketName,fileName, inputStream). + withProgressListener(new PutObjectProgressListener(fileSize,uid,url))); + } + // 关闭OSSClient。 + ossClient.shutdown(); return url; }catch(Exception e) { e.printStackTrace(); @@ -127,44 +83,21 @@ public class OssServiceImpl implements OssService { String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID; String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET; String bucketName = ConstantPropertiesUtils.BUCKET_NAME; - try { // 创建OSS实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); - - - //获取上传文件输入流 -// InputStream inputStream = file.getInputStream(); - //获取文件名称 -// String fileName = file.getOriginalFilename(); - //1 在文件名称里面添加随机唯一的值 -// String uuid = UUID.randomUUID().toString().replaceAll("-",""); - // yuy76t5rew01.jpg -// fileName = uuid+fileName; InputStream inputStream = new ByteArrayInputStream(html.getBytes()); String fileName = name; - //2 把文件按照日期进行分类 - //获取当前日期 - // 2019/11/12 + //2 把文件按照日期进行分类 获取当前日期 2019/11/12/ewtqr313401.jpg String datePath = new DateTime().toString("yyyy/MM/dd"); - //拼接 - // 2019/11/12/ewtqr313401.jpg fileName = datePath+"/"+fileName; - //调用oss方法实现上传 - //第一个参数 Bucket名称 - //第二个参数 上传到oss文件路径和文件名称 aa/bb/1.jpg - //第三个参数 上传文件输入流 ossClient.putObject(bucketName,fileName , inputStream); - // 关闭OSSClient。 ossClient.shutdown(); - - //把上传之后文件路径返回 - //需要把上传到阿里云oss路径手动拼接出来 - // https://edu-guli-1010.oss-cn-beijing.aliyuncs.com/01.jpg + //把上传之后文件路径返回 需要把上传到阿里云oss路径手动拼接出来 + //https://edu-guli-1010.oss-cn-beijing.aliyuncs.com/01.jpg String url = "https://"+bucketName+"."+endpoint+"/"+fileName; - return url; }catch(Exception e) { e.printStackTrace(); @@ -173,8 +106,16 @@ public class OssServiceImpl implements OssService { } @Override - public String getSchedule(String uid) { - String percent = redisTemplate.opsForValue().get(uid); - return percent==null?"":percent; + public R getSchedule(String uid) { + R result = new R(); + result.put("percent",""); + result.put("url",""); + String str = redisTemplate.opsForValue().get(uid); + if (str!=null&&str.contains(";")){ + String[] strs = str.split(";"); + result.put("percent",strs[0]); + result.put("url",strs[1]); + } + return result; } } From 63fdd2759ec930e305a889c41dc26615da9ea140 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Thu, 14 Mar 2024 15:38:27 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E5=90=B4=E9=97=A8?= =?UTF-8?q?=E5=8C=BB=E8=BF=B0=E9=87=8C=E5=9B=BE=E6=96=87=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChineseMedicineResearchController.java | 3 - .../controller/GeneralArticleController.java | 57 +++++++++++++++++++ .../book/controller/MedicaldesController.java | 47 --------------- ...sRecordDao.java => GeneralArticleDao.java} | 4 +- ...icaldesRecord.java => GeneralArticle.java} | 15 +++-- ...ervice.java => GeneralArticleService.java} | 4 +- .../impl/GeneralArticleServiceImpl.java | 11 ++++ .../impl/MedicaldesRecordServiceImpl.java | 11 ---- 8 files changed, 82 insertions(+), 70 deletions(-) create mode 100644 src/main/java/com/peanut/modules/book/controller/GeneralArticleController.java rename src/main/java/com/peanut/modules/book/dao/{MedicaldesRecordDao.java => GeneralArticleDao.java} (51%) rename src/main/java/com/peanut/modules/book/entity/{MedicaldesRecord.java => GeneralArticle.java} (71%) rename src/main/java/com/peanut/modules/book/service/{MedicaldesRecordService.java => GeneralArticleService.java} (54%) create mode 100644 src/main/java/com/peanut/modules/book/service/impl/GeneralArticleServiceImpl.java delete mode 100644 src/main/java/com/peanut/modules/book/service/impl/MedicaldesRecordServiceImpl.java diff --git a/src/main/java/com/peanut/modules/book/controller/ChineseMedicineResearchController.java b/src/main/java/com/peanut/modules/book/controller/ChineseMedicineResearchController.java index e6aa04cd..2b107a1f 100644 --- a/src/main/java/com/peanut/modules/book/controller/ChineseMedicineResearchController.java +++ b/src/main/java/com/peanut/modules/book/controller/ChineseMedicineResearchController.java @@ -4,16 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.peanut.common.utils.R; import com.peanut.modules.book.entity.ChineseMedicineResearch; -import com.peanut.modules.book.entity.MedicaldesRecord; import com.peanut.modules.book.service.ChineseMedicineResearchService; -import com.peanut.modules.book.service.MedicaldesRecordService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; - import java.util.List; import java.util.Map; diff --git a/src/main/java/com/peanut/modules/book/controller/GeneralArticleController.java b/src/main/java/com/peanut/modules/book/controller/GeneralArticleController.java new file mode 100644 index 00000000..f39443ea --- /dev/null +++ b/src/main/java/com/peanut/modules/book/controller/GeneralArticleController.java @@ -0,0 +1,57 @@ +package com.peanut.modules.book.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.peanut.common.utils.R; +import com.peanut.modules.book.entity.GeneralArticle; +import com.peanut.modules.book.service.GeneralArticleService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import java.util.List; +import java.util.Map; + +@Slf4j +@RestController +@RequestMapping("book/generalArticle") +public class GeneralArticleController { + + @Autowired + private GeneralArticleService generalArticleService; + + /** + * 文章列表分页 + */ + @RequestMapping(path = "/articleByPage") + public R articleByPage(@RequestBody Map map) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + if (StringUtils.isNotEmpty(map.get("type").toString())){ + wrapper.eq(GeneralArticle::getType,map.get("type")); + } + wrapper.orderByAsc(GeneralArticle::getSort); + Page page = generalArticleService.page(new Page<>( + Long.parseLong(map.get("current").toString()), Long.parseLong(map.get("limit").toString())),wrapper); + return R.ok().put("result", page); + } + + @RequestMapping(path = "/getArticleById") + public R getArticleById(String id) { + return R.ok().put("result",generalArticleService.getById(id)); + } + + @RequestMapping(path = "/saveOrUpdateArticle") + public R saveOrUpdateArticle(@RequestBody GeneralArticle article) { + generalArticleService.saveOrUpdate(article); + return R.ok(); + } + + @RequestMapping(path = "/delArticle") + public R delArticle(String id) { + generalArticleService.removeById(id); + return R.ok(); + } + +} diff --git a/src/main/java/com/peanut/modules/book/controller/MedicaldesController.java b/src/main/java/com/peanut/modules/book/controller/MedicaldesController.java index e9b77804..451d70b5 100644 --- a/src/main/java/com/peanut/modules/book/controller/MedicaldesController.java +++ b/src/main/java/com/peanut/modules/book/controller/MedicaldesController.java @@ -28,8 +28,6 @@ import java.util.Map; @RequestMapping("book/medicaldes") public class MedicaldesController { - @Autowired - private MedicaldesRecordService recordService; @Autowired private MedicaldesLightService lightService; @Autowired @@ -355,49 +353,4 @@ public class MedicaldesController { return R.ok(); } - /** - * 吴门纪实列表 - */ - @RequestMapping(path = "/recordByType") - public R recordByType(String type) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); - if (StringUtils.isNotEmpty(type)){ - wrapper.eq(MedicaldesRecord::getType,type); - } - wrapper.orderByAsc(MedicaldesRecord::getSort); - List list = recordService.list(wrapper); - return R.ok().put("result", list); - } - - /** - * 吴门纪实列表 - */ - @RequestMapping(path = "/recordByPage") - public R recordByPage(@RequestBody Map map) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); - if (map.containsKey("type")&&StringUtils.isNotEmpty(map.get("type").toString())){ - wrapper.eq(MedicaldesRecord::getType,map.get("type")); - } - wrapper.orderByAsc(MedicaldesRecord::getSort); - Page page = recordService.page(new Page<>( - Long.parseLong(map.get("current").toString()), Long.parseLong(map.get("limit").toString())),wrapper); - return R.ok().put("result", page); - } - - @RequestMapping(path = "/getRecordById") - public R getRecordById(String id) { - return R.ok().put("result",recordService.getById(id)); - } - - @RequestMapping(path = "/saveOrUpdateRecord") - public R saveOrUpdateRecord(@RequestBody MedicaldesRecord record) { - recordService.saveOrUpdate(record); - return R.ok(); - } - - @RequestMapping(path = "/delRecord") - public R delRecord(String id) { - recordService.removeById(id); - return R.ok(); - } } diff --git a/src/main/java/com/peanut/modules/book/dao/MedicaldesRecordDao.java b/src/main/java/com/peanut/modules/book/dao/GeneralArticleDao.java similarity index 51% rename from src/main/java/com/peanut/modules/book/dao/MedicaldesRecordDao.java rename to src/main/java/com/peanut/modules/book/dao/GeneralArticleDao.java index ef02e1a8..dc711733 100644 --- a/src/main/java/com/peanut/modules/book/dao/MedicaldesRecordDao.java +++ b/src/main/java/com/peanut/modules/book/dao/GeneralArticleDao.java @@ -1,9 +1,9 @@ package com.peanut.modules.book.dao; import com.github.yulichang.base.MPJBaseMapper; -import com.peanut.modules.book.entity.MedicaldesRecord; +import com.peanut.modules.book.entity.GeneralArticle; import org.apache.ibatis.annotations.Mapper; @Mapper -public interface MedicaldesRecordDao extends MPJBaseMapper { +public interface GeneralArticleDao extends MPJBaseMapper { } diff --git a/src/main/java/com/peanut/modules/book/entity/MedicaldesRecord.java b/src/main/java/com/peanut/modules/book/entity/GeneralArticle.java similarity index 71% rename from src/main/java/com/peanut/modules/book/entity/MedicaldesRecord.java rename to src/main/java/com/peanut/modules/book/entity/GeneralArticle.java index f935984c..57b1b8d4 100644 --- a/src/main/java/com/peanut/modules/book/entity/MedicaldesRecord.java +++ b/src/main/java/com/peanut/modules/book/entity/GeneralArticle.java @@ -8,8 +8,8 @@ import lombok.Data; import java.io.Serializable; @Data -@TableName("medicaldes_record") -public class MedicaldesRecord implements Serializable { +@TableName("general_article") +public class GeneralArticle implements Serializable { private static final long serialVersionUID = 1L; @@ -22,9 +22,9 @@ public class MedicaldesRecord implements Serializable { private String title; /** - * 照片 + * 外链 */ - private String image; + private String url; /** * 内容 @@ -32,7 +32,12 @@ public class MedicaldesRecord implements Serializable { private String content; /** - * 类型1学术贡献、2抗疫纪实、3吴门公益 + * 文章类型 1文章 2外链形式 + */ + private Integer contentType; + + /** + * 类型 1学术思想 2学术平台 */ private Integer type; diff --git a/src/main/java/com/peanut/modules/book/service/MedicaldesRecordService.java b/src/main/java/com/peanut/modules/book/service/GeneralArticleService.java similarity index 54% rename from src/main/java/com/peanut/modules/book/service/MedicaldesRecordService.java rename to src/main/java/com/peanut/modules/book/service/GeneralArticleService.java index f577eb52..5247bac4 100644 --- a/src/main/java/com/peanut/modules/book/service/MedicaldesRecordService.java +++ b/src/main/java/com/peanut/modules/book/service/GeneralArticleService.java @@ -1,9 +1,9 @@ package com.peanut.modules.book.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.peanut.modules.book.entity.MedicaldesRecord; +import com.peanut.modules.book.entity.GeneralArticle; import org.springframework.stereotype.Service; @Service -public interface MedicaldesRecordService extends IService { +public interface GeneralArticleService extends IService { } diff --git a/src/main/java/com/peanut/modules/book/service/impl/GeneralArticleServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/GeneralArticleServiceImpl.java new file mode 100644 index 00000000..b59ed29b --- /dev/null +++ b/src/main/java/com/peanut/modules/book/service/impl/GeneralArticleServiceImpl.java @@ -0,0 +1,11 @@ +package com.peanut.modules.book.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.peanut.modules.book.dao.GeneralArticleDao; +import com.peanut.modules.book.entity.GeneralArticle; +import com.peanut.modules.book.service.GeneralArticleService; +import org.springframework.stereotype.Service; + +@Service +public class GeneralArticleServiceImpl extends ServiceImpl implements GeneralArticleService { +} diff --git a/src/main/java/com/peanut/modules/book/service/impl/MedicaldesRecordServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/MedicaldesRecordServiceImpl.java deleted file mode 100644 index 5aae809a..00000000 --- a/src/main/java/com/peanut/modules/book/service/impl/MedicaldesRecordServiceImpl.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.peanut.modules.book.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.peanut.modules.book.dao.MedicaldesRecordDao; -import com.peanut.modules.book.entity.MedicaldesRecord; -import com.peanut.modules.book.service.MedicaldesRecordService; -import org.springframework.stereotype.Service; - -@Service -public class MedicaldesRecordServiceImpl extends ServiceImpl implements MedicaldesRecordService { -} From d099c05e9040f7bf08084a22ebb55d6b530318a2 Mon Sep 17 00:00:00 2001 From: wangjinlei <751475802@qq.com> Date: Fri, 15 Mar 2024 14:25:19 +0800 Subject: [PATCH 11/11] 1 --- src/main/resources/application-dev1.yml | 93 +++++++++++++++++++++++++ src/main/resources/application.yml | 4 +- src/main/resources/logback-spring.xml | 2 +- 3 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/application-dev1.yml diff --git a/src/main/resources/application-dev1.yml b/src/main/resources/application-dev1.yml new file mode 100644 index 00000000..b3f60415 --- /dev/null +++ b/src/main/resources/application-dev1.yml @@ -0,0 +1,93 @@ +spring: + redis: + open: false # 是否开启redis缓存 true开启 false关闭 + database: 0 + host: 47.93.127.115 + port: 6379 + password: Jgll2015 # 密码(默认为空) + timeout: 6000000ms # 连接超时时长(毫秒) + jedis: + pool: + max-active: 1000 # 连接池最大连接数(使用负值表示没有限制) + max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) + max-idle: 10 # 连接池中的最大空闲连接 + min-idle: 5 # 连接池中的最小空闲连接 + datasource: + type: com.alibaba.druid.pool.DruidDataSource + druid: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test + # username: root + # password: HSXY1234hsxy + # password: Jgll2023Nutty + username: nuttyreading + password: Wu751019! + initial-size: 10 + max-active: 100 + min-idle: 10 + max-wait: 60000 + pool-prepared-statements: true + max-pool-prepared-statement-per-connection-size: 20 + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 300000 + #Oracle需要打开注释 + #validation-query: SELECT 1 FROM DUAL + test-while-idle: true + test-on-borrow: false + test-on-return: false + stat-view-servlet: + enabled: true + url-pattern: /druid/* + #login-username: admin + #login-password: admin + filter: + stat: + log-slow-sql: true + slow-sql-millis: 1000 + merge-sql: false + wall: + config: + multi-statement-allow: true + tomcat: + initSQL: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci + + rabbitmq: + host: 47.93.127.115 + port: 5672 + username: admin + password: 751019 + virtualHost: / +aliyun: + oss: + file: + endpoint: oss-cn-beijing.aliyuncs.com + keyid: LTAIiSMeo8ztauV5 + keysecret: pVIYAOIFSUGg61lYfE8cjg2ZNpnLJA + bucketname: ehh-private-01 + sms: + accessKeyId: LTAI5tJbbw5fY97pnw635yq3 + accessKeySecret: LTXQ9v3OYVwNVbDWWfVpbbcVDKErKi + singName: 疯子读书国际 + templateCode: SMS_248840040 + sTemplateCode: SMS_463780139 + +server: + port: 9200 + + +wxpay: + appId: wx47134a8f15083734 + mchId: 1612860909 + payUrl: https://api.mch.weixin.qq.com/v3/pay/transactions/app + notifyUrl: https://testapi.nuttyreading.com/pay/payNotify + refundUrl: https://api.mch.weixin.qq.com/v3/refund/domestic/refunds + refundNotifyUrl: https://testapi.nuttyreading.com/pay/refundNotify + keyPemPath: D:\hs\nuttyreading-java\src\main\resources\cent\apiclient_key.pem + serialNo: 679AECB2F7AC4183033F713828892BA640E4EEE3 + apiV3Key: 4aYFklzaULeGlr7oJPZ6rHWKcxjihZUF + wechatPayCertificateUrl: D:\hs\nuttyreading-java\src\main\resources\cent\wechatpay_7B5676E3CDF56680D0414A009CE501C844DBE2D6.pem + privateKeyUrl: D:\hs\nuttyreading-java\src\main\resources\cent\apiclient_key.pem + + +redisAddress: redis://47.93.127.115:6379 +redisPassword: Jgll2015 \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index ef47e47e..ccee5bee 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -9,9 +9,9 @@ server: connection-timeout: 6000000ms spring: - # 环境 dev|test|prod + # 环境 dev/dev1|test|prod profiles: - active: dev + active: dev1 # jackson时间格式化 jackson: time-zone: GMT+8 diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index 2e3bac6a..af0788f7 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -186,7 +186,7 @@ - +