From fb9246d3a88eb15a30b9bb385aecd2a175fcec96 Mon Sep 17 00:00:00 2001 From: wangwenchao Date: Thu, 15 Jun 2023 22:41:14 +0800 Subject: [PATCH 1/6] =?UTF-8?q?1.=E8=AE=BE=E8=AE=A1=E6=A1=88=E4=BE=8B?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E8=A1=A8=E8=A1=A8=E7=BB=93=E6=9E=84=E5=B9=B6?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=A1=A8=EF=BC=9B2.=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=A1=88=E4=BE=8B=E6=8E=A8=E8=8D=90=E8=A1=A8=E5=AF=B9=E5=BA=94?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=E7=B1=BB=EF=BC=9B3.=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=A1=88=E4=BE=8B=E6=8E=A8=E8=8D=90=E8=A1=A8=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E8=BF=9E=E6=8E=A5=E5=B1=82=E5=92=8C=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E5=B1=82=E4=BB=A3=E7=A0=81=EF=BC=9B4.=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=A1=88=E4=BE=8B=E7=AE=A1=E7=90=86=E5=88=97=E8=A1=A8=E5=8F=8A?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=A7=93=E5=90=8D=E5=92=8C=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/boecase/api/CasesRecommendApi.java | 41 ++++++++++++++ .../module/boecase/dao/CasesRecommendDao.java | 10 ++++ .../module/boecase/entity/CasesRecommend.java | 56 +++++++++++++++++++ .../service/ICasesRecommendService.java | 16 ++++++ .../impl/CasesRecommendServiceImpl.java | 44 +++++++++++++++ .../module/boecase/vo/CasesRecommendVo.java | 17 ++++++ 6 files changed, 184 insertions(+) create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendDao.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommend.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendService.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesRecommendVo.java diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java new file mode 100644 index 00000000..7b1bf328 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java @@ -0,0 +1,41 @@ +package com.xboe.module.boecase.api; + +import com.xboe.common.PageList; +import com.xboe.common.Pagination; +import com.xboe.core.JsonResponse; +import com.xboe.core.api.ApiBaseController; +import com.xboe.module.boecase.entity.CasesRecommend; +import com.xboe.module.boecase.service.ICasesRecommendService; +import com.xboe.module.boecase.vo.CasesRecommendVo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 案例推荐表 + * */ +@Slf4j +@RestController +@RequestMapping(value = "xboe/m/boe/cases/recommend") +public class CasesRecommendApi extends ApiBaseController { + + @Resource + private ICasesRecommendService iCasesRecommendService; + + /** + * 用于后台管理分页 + * @param pager + * @param casesRecommendVo + * @return + */ + @PostMapping("/page") + public JsonResponse> manage(Pagination pager, CasesRecommendVo casesRecommendVo){ + PageList page = iCasesRecommendService.page(pager.getPageIndex(), pager.getPageSize(), casesRecommendVo); + return success(page); + } + + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendDao.java new file mode 100644 index 00000000..69685510 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendDao.java @@ -0,0 +1,10 @@ +package com.xboe.module.boecase.dao; + +import com.xboe.core.orm.BaseDao; +import com.xboe.module.boecase.entity.CasesRecommend; +import org.springframework.stereotype.Repository; + +@Repository +public class CasesRecommendDao extends BaseDao { +} + diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommend.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommend.java new file mode 100644 index 00000000..8ba103f8 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommend.java @@ -0,0 +1,56 @@ +package com.xboe.module.boecase.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xboe.core.SysConstant; +import com.xboe.core.orm.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import java.time.LocalDateTime; + +/** + * 案例推荐表 + * */ +@Data +@Entity +@EqualsAndHashCode(callSuper = false) +@Table(name = SysConstant.TABLE_PRE+"cases_recommend") +public class CasesRecommend extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /**推荐人ID*/ + @Column(name = "recommend_id",nullable = false,length = 100) + private String recommendId; + + /**推荐人*/ + @Column(name = "recommend_by", length = 255) + private String recommendBy; + + /**推荐时间*/ + @Column(name = "recommend_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime recommendTime; + /**案例数*/ + @Column(name = "case_count",length = 11) + private Integer caseCount; + /**用户数*/ + @Column(name = "user_count",length = 11) + private Integer userCount; + /**推送进度*/ + @Column(name = "push_progress", length = 255) + private String pushProgress; + /**查看率*/ + @Column(name = "view_rate", length = 255) + private String viewRate; + /**推荐组织ID*/ + @Column(name = "recommend_org_id", length = 20) + private String recommendOrgId; + + /**推荐组织名称*/ + @Column(name = "recommend_org_name", length = 255) + private String recommendOrgName; +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendService.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendService.java new file mode 100644 index 00000000..5a4f4f75 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendService.java @@ -0,0 +1,16 @@ +package com.xboe.module.boecase.service; + +import com.xboe.common.PageList; +import com.xboe.module.boecase.entity.CasesRecommend; +import com.xboe.module.boecase.vo.CasesRecommendVo; + +public interface ICasesRecommendService { + /** + * 分页并查询案例推荐列表 + * @param pageIndex + * @param pageSize + * @param casesRecommendVo + * @return + */ + PageList page(int pageIndex, int pageSize, CasesRecommendVo casesRecommendVo); +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java new file mode 100644 index 00000000..59a37411 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java @@ -0,0 +1,44 @@ +package com.xboe.module.boecase.service.impl; + +import com.xboe.common.OrderCondition; +import com.xboe.common.PageList; +import com.xboe.core.orm.FieldFilters; +import com.xboe.core.orm.LikeMatchMode; +import com.xboe.core.orm.QueryBuilder; +import com.xboe.module.boecase.dao.CasesRecommendDao; +import com.xboe.module.boecase.entity.CasesRecommend; +import com.xboe.module.boecase.service.ICasesRecommendService; +import com.xboe.module.boecase.vo.CasesRecommendVo; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; + +@Service +@Transactional +public class CasesRecommendServiceImpl implements ICasesRecommendService { + + @Resource + private CasesRecommendDao casesRecommendDao; + + @Override + public PageList page(int pageIndex, int pageSize, CasesRecommendVo casesRecommendVo) { + QueryBuilder query=QueryBuilder.from(CasesRecommend.class); + query.addFilter(FieldFilters.eq("deleted",false)); + if(StringUtils.isNotBlank(casesRecommendVo.getRecommendName())){ + query.addFilter(FieldFilters.like("recommendBy", LikeMatchMode.ANYWHERE, casesRecommendVo.getRecommendName())); + } + if(!CollectionUtils.isEmpty(casesRecommendVo.getRecommendTimeList())){ + query.addFilter(FieldFilters.ge("recommendTime",casesRecommendVo.getRecommendTimeList().get(0))); + query.addFilter(FieldFilters.le("recommendTime",casesRecommendVo.getRecommendTimeList().get(1))); + } + + query.addOrder(OrderCondition.desc("sysCreateTime")); + query.setPageIndex(pageIndex); + query.setPageSize(pageSize); + PageList page = casesRecommendDao.findPage(query.builder()); + return page; + } +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesRecommendVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesRecommendVo.java new file mode 100644 index 00000000..24988595 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesRecommendVo.java @@ -0,0 +1,17 @@ +package com.xboe.module.boecase.vo; + +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class CasesRecommendVo { + + /** 推荐人姓名 */ + private String recommendName; + + /** 推荐时间区间 */ + private List recommendTimeList; + +} From ef3670726de44c326043f762dda8f3a142d2e953 Mon Sep 17 00:00:00 2001 From: civism Date: Fri, 16 Jun 2023 11:19:14 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=AF=BC=C3=A5=E5=8F=91?= =?UTF-8?q?=E8=B5=B7=E6=8E=A8=E8=8D=90=C2=85=C2=A5=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- servers/boe-server-all/pom.xml | 5 +++ .../xboe/module/boecase/api/RecommendApi.java | 41 +++++++++++------ .../dao/CasesRecommendLaunchImportDao.java | 9 ++++ .../CasesRecommendLaunchImportDataDao.java | 9 ++++ .../entity/CasesRecommendLaunchImport.java | 45 +++++++++++++++++++ .../CasesRecommendLaunchImportData.java | 45 +++++++++++++++++++ ...CasesRecommendLaunchImportDataService.java | 7 +++ .../ICasesRecommendLaunchImportService.java | 16 +++++++ ...sRecommendLaunchImportDataServiceImpl.java | 10 +++++ ...CasesRecommendLaunchImportServiceImpl.java | 16 +++++++ 10 files changed, 189 insertions(+), 14 deletions(-) create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendLaunchImportDao.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendLaunchImportDataDao.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendLaunchImport.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendLaunchImportData.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendLaunchImportDataService.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendLaunchImportService.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendLaunchImportDataServiceImpl.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendLaunchImportServiceImpl.java diff --git a/servers/boe-server-all/pom.xml b/servers/boe-server-all/pom.xml index e0f2844b..faacfc00 100644 --- a/servers/boe-server-all/pom.xml +++ b/servers/boe-server-all/pom.xml @@ -17,6 +17,11 @@ 1.8 + + cn.hutool + hutool-all + 5.8.16 + com.xboe xboe-api diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/RecommendApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/RecommendApi.java index c23a7d55..f0323512 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/RecommendApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/RecommendApi.java @@ -1,13 +1,15 @@ package com.xboe.module.boecase.api; +import java.math.BigDecimal; import java.util.List; import javax.annotation.Resource; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.poi.excel.ExcelReader; +import cn.hutool.poi.excel.ExcelUtil; +import io.netty.util.internal.ObjectUtil; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; import com.xboe.common.utils.StringUtil; import com.xboe.core.JsonResponse; @@ -18,10 +20,11 @@ import com.xboe.module.boecase.entity.Recommend; import com.xboe.module.boecase.service.IRecommendService; import lombok.extern.slf4j.Slf4j; +import org.springframework.web.multipart.MultipartFile; /** * 案例推荐表 - * */ + */ @Slf4j @RestController @RequestMapping(value = "xboe/m/boe/recommend") @@ -29,32 +32,42 @@ public class RecommendApi extends ApiBaseController { @Resource private IRecommendService recommendService; + /** * 推荐 - * */ + */ @PostMapping("/save") - @AutoLog(module = "案例推荐",action = "推荐案例",info = "推荐案例") - public JsonResponse save(String id, AcceptVo acceptVo){ - if(StringUtil.isBlank(id)){ + @AutoLog(module = "案例推荐", action = "推荐案例", info = "推荐案例") + public JsonResponse save(String id, AcceptVo acceptVo) { + if (StringUtil.isBlank(id)) { return badRequest("缺少案例id"); } try { - recommendService.save(id,acceptVo); + recommendService.save(id, acceptVo); return success(true); } catch (Exception e) { - log.error("推荐失败",e); - return error("推荐失败",e.getMessage()); + log.error("推荐失败", e); + return error("推荐失败", e.getMessage()); } } + /** * 推荐列表 - * */ + */ @GetMapping("/query") - public JsonResponse> selectRecommend(){ + public JsonResponse> selectRecommend() { List recommends = recommendService.selectRecommend(); return success(recommends); } + @PostMapping("/import") + public JsonResponse excelImport(@RequestParam("file") MultipartFile file) throws Exception { + ExcelReader reader = ExcelUtil.getReader(file.getInputStream()); + List> read = reader.read(); + + return success(null); + } + } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendLaunchImportDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendLaunchImportDao.java new file mode 100644 index 00000000..c350d138 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendLaunchImportDao.java @@ -0,0 +1,9 @@ +package com.xboe.module.boecase.dao; + +import com.xboe.core.orm.BaseDao; +import com.xboe.module.boecase.entity.CasesRecommendLaunchImport; +import org.springframework.stereotype.Repository; + +@Repository +public class CasesRecommendLaunchImportDao extends BaseDao { +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendLaunchImportDataDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendLaunchImportDataDao.java new file mode 100644 index 00000000..6d90bbb4 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendLaunchImportDataDao.java @@ -0,0 +1,9 @@ +package com.xboe.module.boecase.dao; + +import com.xboe.core.orm.BaseDao; +import com.xboe.module.boecase.entity.CasesRecommendLaunchImportData; +import org.springframework.stereotype.Repository; + +@Repository +public class CasesRecommendLaunchImportDataDao extends BaseDao { +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendLaunchImport.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendLaunchImport.java new file mode 100644 index 00000000..8bf09093 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendLaunchImport.java @@ -0,0 +1,45 @@ +package com.xboe.module.boecase.entity; + +import com.xboe.core.SysConstant; +import com.xboe.core.orm.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * 案例推荐发起导入 + */ +@Data +@Entity +@EqualsAndHashCode(callSuper = false) +@Table(name = SysConstant.TABLE_PRE + "cases_recommend_launch_import") +public class CasesRecommendLaunchImport extends BaseEntity { + + /** + * 总条数 + */ + @Column(name = "total_num",length = 20) + private Long totalNum; + + /** + * 成功条数 + */ + @Column(name = "success_num",length = 20) + private Long successNum; + + /** + * 失败条数 + */ + @Column(name = "fail_num",length = 20) + private Long failNum; + + /** + * 上传状态1进行中2成功3失败 + */ + @Column(name = "process_status",length = 20) + private Integer processStatus; + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendLaunchImportData.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendLaunchImportData.java new file mode 100644 index 00000000..66e342c5 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendLaunchImportData.java @@ -0,0 +1,45 @@ +package com.xboe.module.boecase.entity; + +import com.xboe.core.SysConstant; +import com.xboe.core.orm.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * 案例推荐发起导入 + */ +@Data +@Entity +@EqualsAndHashCode(callSuper = false) +@Table(name = SysConstant.TABLE_PRE + "cases_recommend_launch_import") +public class CasesRecommendLaunchImportData extends BaseEntity { + + /** + * 导入id + */ + @Column(name = "import_id", length = 20) + private String importId; + + /** + * 导入类容第一例标题 + */ + @Column(name = "case_title") + private String caseTitle; + + /** + * 导入类容匹配的案例id + */ + @Column(name = "case_id") + private String caseId; + + /** + * 状态1成功2失败 + */ + @Column(name = "status") + private Integer status; + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendLaunchImportDataService.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendLaunchImportDataService.java new file mode 100644 index 00000000..99b362aa --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendLaunchImportDataService.java @@ -0,0 +1,7 @@ +package com.xboe.module.boecase.service; + + + +public interface ICasesRecommendLaunchImportDataService { + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendLaunchImportService.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendLaunchImportService.java new file mode 100644 index 00000000..a7f0e3b2 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendLaunchImportService.java @@ -0,0 +1,16 @@ +package com.xboe.module.boecase.service; + + +import java.util.List; + +public interface ICasesRecommendLaunchImportService { + + /** + * 导入数据 + * + * @param dataList + * @return + */ + String importData(List> dataList); + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendLaunchImportDataServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendLaunchImportDataServiceImpl.java new file mode 100644 index 00000000..3de47775 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendLaunchImportDataServiceImpl.java @@ -0,0 +1,10 @@ +package com.xboe.module.boecase.service.impl; + + +import com.xboe.module.boecase.service.ICasesRecommendLaunchImportDataService; +import org.springframework.stereotype.Service; + +@Service +public class CasesRecommendLaunchImportDataServiceImpl implements ICasesRecommendLaunchImportDataService { + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendLaunchImportServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendLaunchImportServiceImpl.java new file mode 100644 index 00000000..5782a149 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendLaunchImportServiceImpl.java @@ -0,0 +1,16 @@ +package com.xboe.module.boecase.service.impl; + + +import com.xboe.module.boecase.service.ICasesRecommendLaunchImportService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLaunchImportService { + + @Override + public String importData(List> dataList) { + return null; + } +} From 58a6427ad48e3ac28136e2ce6b1dddd0bc377670 Mon Sep 17 00:00:00 2001 From: wangwenchao Date: Fri, 16 Jun 2023 21:51:39 +0800 Subject: [PATCH 3/6] =?UTF-8?q?1.=E6=8E=A5=E5=8F=A3=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E5=8F=8A=E9=97=AE=E9=A2=98=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E5=88=86=E6=9E=90=E9=97=AE=E9=A2=98=E8=AE=A8=E8=AE=BA=EF=BC=9B?= =?UTF-8?q?2.=E6=A1=88=E4=BE=8B=E6=8E=A8=E8=8D=90=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=A0=E9=99=A4=E6=A1=88=E4=BE=8B=E6=8E=A8?= =?UTF-8?q?=E8=8D=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/boecase/api/CasesRecommendApi.java | 17 ++++++++++++++++- .../boecase/service/ICasesRecommendService.java | 6 ++++++ .../service/impl/CasesRecommendServiceImpl.java | 5 +++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java index 7b1bf328..01734109 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java @@ -8,6 +8,7 @@ import com.xboe.module.boecase.entity.CasesRecommend; import com.xboe.module.boecase.service.ICasesRecommendService; import com.xboe.module.boecase.vo.CasesRecommendVo; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -32,10 +33,24 @@ public class CasesRecommendApi extends ApiBaseController { * @return */ @PostMapping("/page") - public JsonResponse> manage(Pagination pager, CasesRecommendVo casesRecommendVo){ + public JsonResponse> page(Pagination pager, CasesRecommendVo casesRecommendVo){ PageList page = iCasesRecommendService.page(pager.getPageIndex(), pager.getPageSize(), casesRecommendVo); return success(page); } + @PostMapping("/delete") + public JsonResponse delete(String id) { + if (StringUtils.isBlank(id)) { + return badRequest("缺少必要参数"); + } + try { + iCasesRecommendService.delete(id); + return success(true); + } catch (Exception e) { + log.error("删除失败",e); + return error("删除失败",e.getMessage()); + } + } + } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendService.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendService.java index 5a4f4f75..fbfc2b3e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendService.java @@ -13,4 +13,10 @@ public interface ICasesRecommendService { * @return */ PageList page(int pageIndex, int pageSize, CasesRecommendVo casesRecommendVo); + + /** + * 删除 + * @param id + */ + void delete(String id); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java index 59a37411..530c385a 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java @@ -41,4 +41,9 @@ public class CasesRecommendServiceImpl implements ICasesRecommendService { PageList page = casesRecommendDao.findPage(query.builder()); return page; } + + @Override + public void delete(String id) { + casesRecommendDao.setDeleted(id); + } } From 7e9f78ccda1ed1e3a5ca295c3f729c6ac4581f89 Mon Sep 17 00:00:00 2001 From: Guava Date: Sat, 17 Jun 2023 09:55:07 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=A1=88=E4=BE=8B?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E8=A1=A8=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/boecase/api/CasesRecommendApi.java | 63 ++++++++++-- .../xboe/module/boecase/api/RecommendApi.java | 29 ++---- .../dao/CasesRecommendPushRecordDao.java | 9 ++ .../entity/CasesRecommendPushRecord.java | 95 +++++++++++++++++++ .../ICasesRecommendPushRecordService.java | 5 + .../CasesRecommendPushRecordServiceImpl.java | 11 +++ .../boecase/vo/CasesRecommendLaunchVo.java | 40 ++++++++ 7 files changed, 223 insertions(+), 29 deletions(-) create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendPushRecordDao.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendPushRecord.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesRecommendLaunchVo.java diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java index 01734109..e13546e5 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java @@ -1,23 +1,27 @@ package com.xboe.module.boecase.api; +import cn.hutool.poi.excel.ExcelReader; +import cn.hutool.poi.excel.ExcelUtil; import com.xboe.common.PageList; import com.xboe.common.Pagination; import com.xboe.core.JsonResponse; import com.xboe.core.api.ApiBaseController; import com.xboe.module.boecase.entity.CasesRecommend; +import com.xboe.module.boecase.service.ICasesRecommendLaunchImportService; import com.xboe.module.boecase.service.ICasesRecommendService; +import com.xboe.module.boecase.vo.CasesRecommendLaunchVo; import com.xboe.module.boecase.vo.CasesRecommendVo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -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; import javax.annotation.Resource; +import java.util.List; /** * 案例推荐表 - * */ + */ @Slf4j @RestController @RequestMapping(value = "xboe/m/boe/cases/recommend") @@ -26,14 +30,18 @@ public class CasesRecommendApi extends ApiBaseController { @Resource private ICasesRecommendService iCasesRecommendService; + @Resource + private ICasesRecommendLaunchImportService iCasesRecommendLaunchImportService; + /** * 用于后台管理分页 + * * @param pager * @param casesRecommendVo * @return */ @PostMapping("/page") - public JsonResponse> page(Pagination pager, CasesRecommendVo casesRecommendVo){ + public JsonResponse> page(Pagination pager, CasesRecommendVo casesRecommendVo) { PageList page = iCasesRecommendService.page(pager.getPageIndex(), pager.getPageSize(), casesRecommendVo); return success(page); } @@ -47,10 +55,51 @@ public class CasesRecommendApi extends ApiBaseController { iCasesRecommendService.delete(id); return success(true); } catch (Exception e) { - log.error("删除失败",e); - return error("删除失败",e.getMessage()); + log.error("删除失败", e); + return error("删除失败", e.getMessage()); } } + /** + * 导入 + * + * @param file + * @return + * @throws Exception + */ + @PostMapping("/import") + public JsonResponse excelImport(@RequestParam("file") MultipartFile file) throws Exception { + ExcelReader reader = ExcelUtil.getReader(file.getInputStream()); + List> read = reader.read(); + + return success(null); + } + + + /** + * 下载错误数据 + * + * @return + * @throws Exception + */ + @GetMapping("/download") + public void download(String importId) { + + } + + + /** + * 发起推送 + * + * @param casesRecommendLaunch + * @return + */ + @PostMapping("/launch") + public JsonResponse excelImport(@RequestBody CasesRecommendLaunchVo casesRecommendLaunch) { + + return success(true); + } + + } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/RecommendApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/RecommendApi.java index f0323512..0200fc26 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/RecommendApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/RecommendApi.java @@ -1,16 +1,5 @@ package com.xboe.module.boecase.api; -import java.math.BigDecimal; -import java.util.List; - -import javax.annotation.Resource; - -import cn.hutool.poi.excel.ExcelReader; -import cn.hutool.poi.excel.ExcelUtil; -import io.netty.util.internal.ObjectUtil; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; - import com.xboe.common.utils.StringUtil; import com.xboe.core.JsonResponse; import com.xboe.core.api.ApiBaseController; @@ -18,9 +7,14 @@ import com.xboe.core.log.AutoLog; import com.xboe.module.boecase.dto.AcceptVo; import com.xboe.module.boecase.entity.Recommend; import com.xboe.module.boecase.service.IRecommendService; - import lombok.extern.slf4j.Slf4j; -import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; /** * 案例推荐表 @@ -61,13 +55,4 @@ public class RecommendApi extends ApiBaseController { } - @PostMapping("/import") - public JsonResponse excelImport(@RequestParam("file") MultipartFile file) throws Exception { - ExcelReader reader = ExcelUtil.getReader(file.getInputStream()); - List> read = reader.read(); - - return success(null); - } - - } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendPushRecordDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendPushRecordDao.java new file mode 100644 index 00000000..3eb8fba2 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecommendPushRecordDao.java @@ -0,0 +1,9 @@ +package com.xboe.module.boecase.dao; + +import com.xboe.core.orm.BaseDao; +import com.xboe.module.boecase.entity.CasesRecommendPushRecord; +import org.springframework.stereotype.Repository; + +@Repository +public class CasesRecommendPushRecordDao extends BaseDao { +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendPushRecord.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendPushRecord.java new file mode 100644 index 00000000..8761d514 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendPushRecord.java @@ -0,0 +1,95 @@ +package com.xboe.module.boecase.entity; + +import com.xboe.core.SysConstant; +import com.xboe.core.orm.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import java.util.Date; + +/** + * 案例推荐发起导入 + */ +@Data +@Entity +@EqualsAndHashCode(callSuper = false) +@Table(name = SysConstant.TABLE_PRE + "cases_recommend_push_record") +public class CasesRecommendPushRecord extends BaseEntity { + + /** + * 推送id + */ + @Column(name = "recommend_id") + private String recommendId; + + /** + * 案例id + */ + @Column(name = "case_id") + private String caseId; + + + /** + * 案例标题 + */ + @Column(name = "case_title") + private String caseTitle; + + + /** + * 推送用户id + */ + @Column(name = "push_user_id") + private String pushUserId; + + + /** + * 推送用户名称 + */ + @Column(name = "push_user_name") + private String pushUserName; + + + /** + * 推送状态1未推送2推送中3已推送4推送失败5已撤回 + */ + @Column(name = "push_status") + private Integer pushStatus; + + + /** + * 推送时间 + */ + @Column(name = "push_time") + private Integer pushTime; + + + /** + * 查看标识 + */ + @Column(name = "read_flag") + private Integer readFlag; + + /** + * 首次查看时间 + */ + @Column(name = "read_start_time") + private Date readStartTime; + + /** + * 最后查看时间 + */ + @Column(name = "read_end_time") + private Date readEndTime; + + /** + * 备注 + */ + @Column(name = "remark") + private String remark; + + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java new file mode 100644 index 00000000..f0f276bd --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java @@ -0,0 +1,5 @@ +package com.xboe.module.boecase.service; + +public interface ICasesRecommendPushRecordService { + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java new file mode 100644 index 00000000..c00c45f4 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java @@ -0,0 +1,11 @@ +package com.xboe.module.boecase.service.impl; + +import com.xboe.module.boecase.service.ICasesRecommendPushRecordService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Transactional +public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushRecordService { + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesRecommendLaunchVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesRecommendLaunchVo.java new file mode 100644 index 00000000..6b0c1c6f --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CasesRecommendLaunchVo.java @@ -0,0 +1,40 @@ +package com.xboe.module.boecase.vo; + +import lombok.Data; + +import java.util.List; + +/** + * @author : civism + * @version 1.0 + * @date 2023/6/17 09:46 + */ +@Data +public class CasesRecommendLaunchVo { + + + /** + * 发起类型 1 正常选择 2 文件导入 + */ + private Integer launchType; + + /** + * 如果launchType为2 必须传递 其他情况不用传递 + */ + private String importId; + + /** + * 推送的文章标题id launchType 为1必须传递 其他情况不用传递 + */ + private List casesIdList; + + /** + * 推送的用户id + */ + private List pushUserIdList; + + /** + * 推荐机构 + */ + private String recommendOrgName; +} From aafaf92f96ad0bfd4d780abfe677e098d43639fc Mon Sep 17 00:00:00 2001 From: Guava Date: Sat, 17 Jun 2023 11:23:16 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/boecase/api/CasesRecommendApi.java | 40 ++++++++++- .../com/xboe/module/boecase/dao/CasesDao.java | 21 +++--- .../entity/CasesRecommendLaunchImport.java | 6 +- .../ICasesRecommendLaunchImportService.java | 19 +++++ ...CasesRecommendLaunchImportServiceImpl.java | 69 ++++++++++++++++++- 5 files changed, 140 insertions(+), 15 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java index e13546e5..de90e766 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java @@ -1,12 +1,16 @@ package com.xboe.module.boecase.api; +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.io.IoUtil; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; +import cn.hutool.poi.excel.ExcelWriter; import com.xboe.common.PageList; import com.xboe.common.Pagination; import com.xboe.core.JsonResponse; import com.xboe.core.api.ApiBaseController; import com.xboe.module.boecase.entity.CasesRecommend; +import com.xboe.module.boecase.entity.CasesRecommendLaunchImport; import com.xboe.module.boecase.service.ICasesRecommendLaunchImportService; import com.xboe.module.boecase.service.ICasesRecommendService; import com.xboe.module.boecase.vo.CasesRecommendLaunchVo; @@ -17,6 +21,8 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -61,6 +67,19 @@ public class CasesRecommendApi extends ApiBaseController { } + /** + * 获取导入纪录 + * + * @return + * @throws Exception + */ + @GetMapping("/import-info") + public JsonResponse excelImport(String importId) { + CasesRecommendLaunchImport byId = iCasesRecommendLaunchImportService.getById(importId); + return success(byId); + } + + /** * 导入 * @@ -72,8 +91,8 @@ public class CasesRecommendApi extends ApiBaseController { public JsonResponse excelImport(@RequestParam("file") MultipartFile file) throws Exception { ExcelReader reader = ExcelUtil.getReader(file.getInputStream()); List> read = reader.read(); - - return success(null); + String s = iCasesRecommendLaunchImportService.importData(read); + return success(s); } @@ -84,7 +103,22 @@ public class CasesRecommendApi extends ApiBaseController { * @throws Exception */ @GetMapping("/download") - public void download(String importId) { + public void download(String importId, HttpServletResponse response) throws Exception { + + List dataList = iCasesRecommendLaunchImportService.downFailData(importId); + + // 通过工具类创建writer,默认创建xls格式 + ExcelWriter writer = ExcelUtil.getWriter(); + + writer.writeHeadRow(ListUtil.toList("标题")); + writer.write(dataList); + response.setContentType("application/vnd.ms-excel;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=failData.xls"); + ServletOutputStream out = response.getOutputStream(); + + writer.flush(out, true); + writer.close(); + IoUtil.close(out); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesDao.java index e5dc25a0..21b0a098 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesDao.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesDao.java @@ -1,32 +1,37 @@ package com.xboe.module.boecase.dao; -import java.util.List; - -import org.springframework.stereotype.Repository; - import com.xboe.common.OrderCondition; import com.xboe.common.PageList; import com.xboe.core.orm.BaseDao; +import com.xboe.core.orm.FieldFilters; import com.xboe.core.orm.IFieldFilter; import com.xboe.module.boecase.entity.Cases; +import org.springframework.stereotype.Repository; + +import java.util.List; @Repository public class CasesDao extends BaseDao { /** * 案例列表分页 - * */ - public PageList queryPageCases(int pageIndex, int pageSize, String keyWord,OrderCondition order, List filters){ + */ + public PageList queryPageCases(int pageIndex, int pageSize, String keyWord, OrderCondition order, List filters) { PageList page = this.getGenericDao().findPage(pageIndex, pageSize, getEntityClass(), filters, order); return page; } + /** * 案例列表置顶分页* - * */ - public PageList queryPageIsTop(int pageIndex,int pageSize,String keyWord,OrderCondition order,List filters){ + */ + public PageList queryPageIsTop(int pageIndex, int pageSize, String keyWord, OrderCondition order, List filters) { PageList page = this.getGenericDao().findPage(pageIndex, pageSize, getEntityClass(), filters, order); return page; } + public Cases getByTitle(String title) { + return this.getGenericDao().findOne(Cases.class, FieldFilters.eq("title", title)); + } + } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendLaunchImport.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendLaunchImport.java index 8bf09093..0c593482 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendLaunchImport.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/CasesRecommendLaunchImport.java @@ -22,19 +22,19 @@ public class CasesRecommendLaunchImport extends BaseEntity { * 总条数 */ @Column(name = "total_num",length = 20) - private Long totalNum; + private Integer totalNum; /** * 成功条数 */ @Column(name = "success_num",length = 20) - private Long successNum; + private Integer successNum; /** * 失败条数 */ @Column(name = "fail_num",length = 20) - private Long failNum; + private Integer failNum; /** * 上传状态1进行中2成功3失败 diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendLaunchImportService.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendLaunchImportService.java index a7f0e3b2..6b784dd0 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendLaunchImportService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendLaunchImportService.java @@ -1,6 +1,8 @@ package com.xboe.module.boecase.service; +import com.xboe.module.boecase.entity.CasesRecommendLaunchImport; + import java.util.List; public interface ICasesRecommendLaunchImportService { @@ -13,4 +15,21 @@ public interface ICasesRecommendLaunchImportService { */ String importData(List> dataList); + + /** + * 下载失败的数据 + * + * @param importId + * @return + */ + List downFailData(String importId); + + /** + * 获取导入结果信息 + * + * @param id + * @return + */ + CasesRecommendLaunchImport getById(String id); + } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendLaunchImportServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendLaunchImportServiceImpl.java index 5782a149..02083a94 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendLaunchImportServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendLaunchImportServiceImpl.java @@ -1,16 +1,83 @@ package com.xboe.module.boecase.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.IdUtil; +import com.xboe.core.orm.FieldFilters; +import com.xboe.module.boecase.dao.CasesDao; +import com.xboe.module.boecase.dao.CasesRecommendLaunchImportDao; +import com.xboe.module.boecase.dao.CasesRecommendLaunchImportDataDao; +import com.xboe.module.boecase.entity.Cases; +import com.xboe.module.boecase.entity.CasesRecommendLaunchImport; +import com.xboe.module.boecase.entity.CasesRecommendLaunchImportData; import com.xboe.module.boecase.service.ICasesRecommendLaunchImportService; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; @Service public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLaunchImportService { + @Resource + private CasesRecommendLaunchImportDao casesRecommendLaunchImportDao; + + @Resource + private CasesRecommendLaunchImportDataDao casesRecommendLaunchImportDataDao; + + @Resource + private CasesDao casesDao; + @Override public String importData(List> dataList) { - return null; + if (CollectionUtil.isEmpty(dataList)) { + throw new RuntimeException("导入数据为空"); + } + int totalNum = dataList.size(); + int successNum = 0; + int failNum = 0; + Long importId = IdUtil.getSnowflakeNextId(); + + for (int i = 1; i < dataList.size(); i++) { + String caseTitle = dataList.get(i).get(0).toString(); + CasesRecommendLaunchImportData casesRecommendLaunchImportData = new CasesRecommendLaunchImportData(); + casesRecommendLaunchImportData.setImportId(importId + ""); + casesRecommendLaunchImportData.setCaseTitle(caseTitle); + Cases cases = casesDao.getByTitle(caseTitle); + if (cases == null) { + failNum++; + casesRecommendLaunchImportData.setStatus(2); + } else { + casesRecommendLaunchImportData.setStatus(1); + casesRecommendLaunchImportData.setCaseTitle(caseTitle); + } + casesRecommendLaunchImportDataDao.save(casesRecommendLaunchImportData); + successNum++; + } + CasesRecommendLaunchImport casesRecommendLaunchImport = new CasesRecommendLaunchImport(); + casesRecommendLaunchImport.setFailNum(failNum); + casesRecommendLaunchImport.setId(importId + ""); + casesRecommendLaunchImport.setSuccessNum(successNum); + casesRecommendLaunchImport.setTotalNum(totalNum); + casesRecommendLaunchImportDao.save(casesRecommendLaunchImport); + return importId + ""; + } + + + @Override + public List downFailData(String importId) { + + List dataList = casesRecommendLaunchImportDataDao.findList(FieldFilters.eq("import_id", importId)); + if (CollectionUtil.isEmpty(dataList)) { + return Collections.emptyList(); + } + return dataList.stream().map(CasesRecommendLaunchImportData::getCaseTitle).collect(Collectors.toList()); + } + + @Override + public CasesRecommendLaunchImport getById(String id) { + return casesRecommendLaunchImportDao.get(id); } } From 92a404e46a14d3a0a66e8007e76d904c31f7f59a Mon Sep 17 00:00:00 2001 From: Guava Date: Sat, 17 Jun 2023 16:27:31 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/enums/CasesPushStatusEnum.java | 40 +++++++++ .../enums/CasesRecommendLaunchTypeEnum.java | 35 ++++++++ .../module/boecase/api/CasesRecommendApi.java | 20 ++++- .../ICasesRecommendPushRecordService.java | 11 +++ .../CasesRecommendPushRecordServiceImpl.java | 85 +++++++++++++++++++ 5 files changed, 190 insertions(+), 1 deletion(-) create mode 100644 servers/boe-server-all/src/main/java/com/xboe/enums/CasesPushStatusEnum.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/enums/CasesRecommendLaunchTypeEnum.java diff --git a/servers/boe-server-all/src/main/java/com/xboe/enums/CasesPushStatusEnum.java b/servers/boe-server-all/src/main/java/com/xboe/enums/CasesPushStatusEnum.java new file mode 100644 index 00000000..f5f74074 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/enums/CasesPushStatusEnum.java @@ -0,0 +1,40 @@ +package com.xboe.enums; + +/** + * @author : civism + * @version 1.0 + * @date 2023/6/17 16:13 + */ +public enum CasesPushStatusEnum { + + /** + * 推送状态1未推送2推送中3已推送4推送失败5已撤回 + */ + WAIT_PUSH(1,"未推送"), + PUSH_ING(2,"推送中"), + PUSH_SUCCESS(3,"已推送"), + PUSH_FAIL(4,"推送失败"), + PUSH_REVOKE(5,"已撤回"), + + ; + + + CasesPushStatusEnum(Integer status, String desc) { + this.status = status; + this.desc = desc; + } + + private Integer status; + + + private String desc; + + + public Integer getStatus() { + return status; + } + + public String getDesc() { + return desc; + } +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/enums/CasesRecommendLaunchTypeEnum.java b/servers/boe-server-all/src/main/java/com/xboe/enums/CasesRecommendLaunchTypeEnum.java new file mode 100644 index 00000000..5414d969 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/enums/CasesRecommendLaunchTypeEnum.java @@ -0,0 +1,35 @@ +package com.xboe.enums; + +/** + * @author : civism + * @version 1.0 + * @date 2023/6/17 16:22 + */ +public enum CasesRecommendLaunchTypeEnum { + + /** + * 发起类型 1 正常选择 2 文件导入 + */ + COMMON(1, "正常选择"), + IMPORT(2, "文件导入"), + ; + + + private Integer launchType; + + private String desc; + + + CasesRecommendLaunchTypeEnum(Integer launchType, String desc) { + this.launchType = launchType; + this.desc = desc; + } + + public Integer getLaunchType() { + return launchType; + } + + public String getDesc() { + return desc; + } +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java index de90e766..b9083604 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java @@ -1,7 +1,9 @@ package com.xboe.module.boecase.api; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; @@ -9,9 +11,11 @@ import com.xboe.common.PageList; import com.xboe.common.Pagination; import com.xboe.core.JsonResponse; import com.xboe.core.api.ApiBaseController; +import com.xboe.enums.CasesRecommendLaunchTypeEnum; import com.xboe.module.boecase.entity.CasesRecommend; import com.xboe.module.boecase.entity.CasesRecommendLaunchImport; import com.xboe.module.boecase.service.ICasesRecommendLaunchImportService; +import com.xboe.module.boecase.service.ICasesRecommendPushRecordService; import com.xboe.module.boecase.service.ICasesRecommendService; import com.xboe.module.boecase.vo.CasesRecommendLaunchVo; import com.xboe.module.boecase.vo.CasesRecommendVo; @@ -39,6 +43,9 @@ public class CasesRecommendApi extends ApiBaseController { @Resource private ICasesRecommendLaunchImportService iCasesRecommendLaunchImportService; + @Resource + private ICasesRecommendPushRecordService iCasesRecommendPushRecordService; + /** * 用于后台管理分页 * @@ -131,8 +138,19 @@ public class CasesRecommendApi extends ApiBaseController { */ @PostMapping("/launch") public JsonResponse excelImport(@RequestBody CasesRecommendLaunchVo casesRecommendLaunch) { + if (CasesRecommendLaunchTypeEnum.COMMON.getLaunchType().equals(casesRecommendLaunch.getLaunchType()) || CasesRecommendLaunchTypeEnum.IMPORT.getLaunchType().equals(casesRecommendLaunch.getLaunchType())) { + throw new RuntimeException("参数错误"); + } + if (CasesRecommendLaunchTypeEnum.COMMON.getLaunchType().equals(casesRecommendLaunch.getLaunchType()) && CollectionUtil.isEmpty(casesRecommendLaunch.getCasesIdList())) { + throw new RuntimeException("推送案例id不能为空"); + } else if (CasesRecommendLaunchTypeEnum.IMPORT.getLaunchType().equals(casesRecommendLaunch.getLaunchType()) && StrUtil.isEmpty(casesRecommendLaunch.getImportId())) { + throw new RuntimeException("导入id不能为空"); + } + if (CollectionUtil.isEmpty(casesRecommendLaunch.getPushUserIdList())) { + throw new RuntimeException("参数错误"); + } - return success(true); + return success(iCasesRecommendPushRecordService.launchPush(casesRecommendLaunch)); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java index f0f276bd..86bb4715 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java @@ -1,5 +1,16 @@ package com.xboe.module.boecase.service; +import com.xboe.module.boecase.vo.CasesRecommendLaunchVo; + public interface ICasesRecommendPushRecordService { + + /** + * 案例推送 + * + * @param casesRecommendLaunch + * @return + */ + boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch); + } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java index c00c45f4..24379ec2 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java @@ -1,11 +1,96 @@ package com.xboe.module.boecase.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.xboe.core.orm.FieldFilters; +import com.xboe.data.dto.UserData; +import com.xboe.data.outside.IOutSideDataService; +import com.xboe.enums.CasesPushStatusEnum; +import com.xboe.module.boecase.dao.CasesDao; +import com.xboe.module.boecase.dao.CasesRecommendDao; +import com.xboe.module.boecase.dao.CasesRecommendLaunchImportDataDao; +import com.xboe.module.boecase.dao.CasesRecommendPushRecordDao; +import com.xboe.module.boecase.entity.Cases; +import com.xboe.module.boecase.entity.CasesRecommend; +import com.xboe.module.boecase.entity.CasesRecommendLaunchImportData; +import com.xboe.module.boecase.entity.CasesRecommendPushRecord; import com.xboe.module.boecase.service.ICasesRecommendPushRecordService; +import com.xboe.module.boecase.vo.CasesRecommendLaunchVo; +import com.xboe.system.user.dao.UserDao; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + @Service @Transactional public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushRecordService { + + @Resource + private UserDao userDao; + + @Resource + private IOutSideDataService outSideDataService; + + @Resource + private CasesDao casesDao; + + @Resource + private CasesRecommendDao casesRecommendDao; + + @Resource + private CasesRecommendLaunchImportDataDao casesRecommendLaunchImportDataDao; + + @Resource + private CasesRecommendPushRecordDao casesRecommendPushRecordDao; + + @Override + public boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch) { + //当前用户登录信息 + UserData userInfoByUserId = outSideDataService.getUserInfoByUserId(null); + + CasesRecommend casesRecommend = new CasesRecommend(); + casesRecommend.setRecommendId(userInfoByUserId.getId()); + casesRecommend.setRecommendBy(userInfoByUserId.getName()); + casesRecommend.setRecommendTime(LocalDateTime.now()); + casesRecommend.setCaseCount(casesRecommendLaunch.getCasesIdList().size()); + casesRecommend.setUserCount(casesRecommendLaunch.getPushUserIdList().size()); + casesRecommend.setRecommendOrgName(casesRecommendLaunch.getRecommendOrgName()); + casesRecommendDao.save(casesRecommend); + + List caseIds = new ArrayList<>(); + if (casesRecommendLaunch.getLaunchType() == 1) { + caseIds.addAll(casesRecommendLaunch.getCasesIdList()); + } else { + List importDataList = casesRecommendLaunchImportDataDao.findList(FieldFilters.eq("import_id", casesRecommendLaunch.getImportId())); + List caseIdList = importDataList.stream().filter(casesRecommendLaunchImportData -> casesRecommendLaunchImportData.getStatus() == 1).map(CasesRecommendLaunchImportData::getCaseId).collect(Collectors.toList()); + caseIds.addAll(caseIdList); + } + for (String caseId : caseIds) { + Cases cases = casesDao.get(caseId); + List pushRecords = new ArrayList<>(); + Map userMap = userDao.findMap("id", "name", FieldFilters.in("id", casesRecommendLaunch.getPushUserIdList())); + + for (String userId : casesRecommendLaunch.getPushUserIdList()) { + CasesRecommendPushRecord casesRecommendPushRecord = new CasesRecommendPushRecord(); + casesRecommendPushRecord.setRecommendId(casesRecommend.getId()); + casesRecommendPushRecord.setCaseId(caseId); + casesRecommendPushRecord.setCaseTitle(cases.getTitle()); + casesRecommendPushRecord.setPushUserId(userId); + casesRecommendPushRecord.setPushUserName(userMap.get(userId) != null ? userMap.get(userId).toString() : null); + casesRecommendPushRecord.setPushStatus(CasesPushStatusEnum.WAIT_PUSH.getStatus()); + pushRecords.add(casesRecommendPushRecord); + } + if (CollectionUtil.isNotEmpty(pushRecords)) { + casesRecommendPushRecordDao.saveList(pushRecords); + } + } + + return true; + } }