From cdbf0f61fd963ea567f23a1f7dc8ae8fd22d878e Mon Sep 17 00:00:00 2001 From: Guava Date: Tue, 20 Jun 2023 20:42:58 +0800 Subject: [PATCH 01/35] =?UTF-8?q?=E8=BD=AC=E7=A7=BB=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xboe/constants/CasesPushStatusEnum.java | 40 ++++++++ .../module/cases/dao/CasesRecommendDao.java | 10 ++ .../dao/CasesRecommendPushRecordDao.java | 9 ++ .../module/cases/entity/CasesRecommend.java | 56 +++++++++++ .../entity/CasesRecommendPushRecord.java | 95 +++++++++++++++++++ .../ICasesRecommendPushRecordService.java | 24 +++++ .../cases/service/ICasesRecommendService.java | 25 +++++ .../CasesRecommendPushRecordServiceImpl.java | 28 ++++++ .../impl/CasesRecommendServiceImpl.java | 28 ++++++ .../xboe/task/CasesRecommendPushSchedule.java | 87 +++++++++++++++++ 10 files changed, 402 insertions(+) create mode 100644 servers/boe-server-task/src/main/java/com/xboe/constants/CasesPushStatusEnum.java create mode 100644 servers/boe-server-task/src/main/java/com/xboe/module/cases/dao/CasesRecommendDao.java create mode 100644 servers/boe-server-task/src/main/java/com/xboe/module/cases/dao/CasesRecommendPushRecordDao.java create mode 100644 servers/boe-server-task/src/main/java/com/xboe/module/cases/entity/CasesRecommend.java create mode 100644 servers/boe-server-task/src/main/java/com/xboe/module/cases/entity/CasesRecommendPushRecord.java create mode 100644 servers/boe-server-task/src/main/java/com/xboe/module/cases/service/ICasesRecommendPushRecordService.java create mode 100644 servers/boe-server-task/src/main/java/com/xboe/module/cases/service/ICasesRecommendService.java create mode 100644 servers/boe-server-task/src/main/java/com/xboe/module/cases/service/impl/CasesRecommendPushRecordServiceImpl.java create mode 100644 servers/boe-server-task/src/main/java/com/xboe/module/cases/service/impl/CasesRecommendServiceImpl.java create mode 100644 servers/boe-server-task/src/main/java/com/xboe/task/CasesRecommendPushSchedule.java diff --git a/servers/boe-server-task/src/main/java/com/xboe/constants/CasesPushStatusEnum.java b/servers/boe-server-task/src/main/java/com/xboe/constants/CasesPushStatusEnum.java new file mode 100644 index 00000000..5112411a --- /dev/null +++ b/servers/boe-server-task/src/main/java/com/xboe/constants/CasesPushStatusEnum.java @@ -0,0 +1,40 @@ +package com.xboe.constants; + +/** + * @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-task/src/main/java/com/xboe/module/cases/dao/CasesRecommendDao.java b/servers/boe-server-task/src/main/java/com/xboe/module/cases/dao/CasesRecommendDao.java new file mode 100644 index 00000000..b0d9debf --- /dev/null +++ b/servers/boe-server-task/src/main/java/com/xboe/module/cases/dao/CasesRecommendDao.java @@ -0,0 +1,10 @@ +package com.xboe.module.cases.dao; + +import com.xboe.casetask.entity.CasesRecommend; +import com.xboe.core.orm.BaseDao; +import org.springframework.stereotype.Repository; + +@Repository +public class CasesRecommendDao extends BaseDao { +} + diff --git a/servers/boe-server-task/src/main/java/com/xboe/module/cases/dao/CasesRecommendPushRecordDao.java b/servers/boe-server-task/src/main/java/com/xboe/module/cases/dao/CasesRecommendPushRecordDao.java new file mode 100644 index 00000000..d811200a --- /dev/null +++ b/servers/boe-server-task/src/main/java/com/xboe/module/cases/dao/CasesRecommendPushRecordDao.java @@ -0,0 +1,9 @@ +package com.xboe.module.cases.dao; + +import com.xboe.core.orm.BaseDao; +import com.xboe.module.cases.entity.CasesRecommendPushRecord; +import org.springframework.stereotype.Repository; + +@Repository +public class CasesRecommendPushRecordDao extends BaseDao { +} diff --git a/servers/boe-server-task/src/main/java/com/xboe/module/cases/entity/CasesRecommend.java b/servers/boe-server-task/src/main/java/com/xboe/module/cases/entity/CasesRecommend.java new file mode 100644 index 00000000..a3032134 --- /dev/null +++ b/servers/boe-server-task/src/main/java/com/xboe/module/cases/entity/CasesRecommend.java @@ -0,0 +1,56 @@ +package com.xboe.module.cases.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-task/src/main/java/com/xboe/module/cases/entity/CasesRecommendPushRecord.java b/servers/boe-server-task/src/main/java/com/xboe/module/cases/entity/CasesRecommendPushRecord.java new file mode 100644 index 00000000..e7c2e16f --- /dev/null +++ b/servers/boe-server-task/src/main/java/com/xboe/module/cases/entity/CasesRecommendPushRecord.java @@ -0,0 +1,95 @@ +package com.xboe.module.cases.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 Date 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-task/src/main/java/com/xboe/module/cases/service/ICasesRecommendPushRecordService.java b/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/ICasesRecommendPushRecordService.java new file mode 100644 index 00000000..6f827539 --- /dev/null +++ b/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/ICasesRecommendPushRecordService.java @@ -0,0 +1,24 @@ +package com.xboe.module.cases.service; + +import com.xboe.module.cases.entity.CasesRecommendPushRecord; + +import java.util.List; + +public interface ICasesRecommendPushRecordService { + + /** + * 查询推送纪录通过推送状态 + * + * @param pushStatusList + * @return + */ + List queryPushRecordByPushStatus(List pushStatusList); + + + /** + * 修改 + * @param casesRecommendPushRecord + * @return + */ + boolean update(CasesRecommendPushRecord casesRecommendPushRecord); +} diff --git a/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/ICasesRecommendService.java b/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/ICasesRecommendService.java new file mode 100644 index 00000000..6d57d469 --- /dev/null +++ b/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/ICasesRecommendService.java @@ -0,0 +1,25 @@ +package com.xboe.module.cases.service; + +import com.xboe.module.cases.entity.CasesRecommend; + +import java.util.List; + +public interface ICasesRecommendService { + + /** + * 通过推送状态查询 + * + * @param pushProgress + * @return + */ + List queryByPushProgress(String pushProgress); + + /** + * 修改 + * + * @param casesRecommend + * @return + */ + boolean update(CasesRecommend casesRecommend); + +} diff --git a/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/impl/CasesRecommendPushRecordServiceImpl.java b/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/impl/CasesRecommendPushRecordServiceImpl.java new file mode 100644 index 00000000..a2d59f44 --- /dev/null +++ b/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/impl/CasesRecommendPushRecordServiceImpl.java @@ -0,0 +1,28 @@ +package com.xboe.module.cases.service.impl; + +import com.xboe.core.orm.FieldFilters; +import com.xboe.module.cases.dao.CasesRecommendPushRecordDao; +import com.xboe.module.cases.entity.CasesRecommendPushRecord; +import com.xboe.module.cases.service.ICasesRecommendPushRecordService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushRecordService { + + @Resource + private CasesRecommendPushRecordDao casesRecommendPushRecordDao; + + @Override + public List queryPushRecordByPushStatus(List pushStatusList) { + return casesRecommendPushRecordDao.getGenericDao().findList(CasesRecommendPushRecord.class, FieldFilters.in("push_status", pushStatusList)); + } + + + @Override + public boolean update(CasesRecommendPushRecord casesRecommendPushRecord) { + return casesRecommendPushRecordDao.getGenericDao().update(casesRecommendPushRecord) != null; + } +} diff --git a/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/impl/CasesRecommendServiceImpl.java b/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/impl/CasesRecommendServiceImpl.java new file mode 100644 index 00000000..92191a12 --- /dev/null +++ b/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/impl/CasesRecommendServiceImpl.java @@ -0,0 +1,28 @@ +package com.xboe.module.cases.service.impl; + +import com.xboe.casetask.dao.CasesRecommendDao; +import com.xboe.casetask.entity.CasesRecommend; +import com.xboe.casetask.service.ICasesRecommendService; +import com.xboe.core.orm.FieldFilters; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class CasesRecommendServiceImpl implements ICasesRecommendService { + + @Resource + private CasesRecommendDao casesRecommendDao; + + @Override + public List queryByPushProgress(String pushProgress) { + return casesRecommendDao.getGenericDao().findList(CasesRecommend.class, FieldFilters.eq("push_progress", pushProgress)); + } + + + @Override + public boolean update(CasesRecommend casesRecommend) { + return casesRecommendDao.getGenericDao().update(casesRecommend) != null; + } +} diff --git a/servers/boe-server-task/src/main/java/com/xboe/task/CasesRecommendPushSchedule.java b/servers/boe-server-task/src/main/java/com/xboe/task/CasesRecommendPushSchedule.java new file mode 100644 index 00000000..ef95a988 --- /dev/null +++ b/servers/boe-server-task/src/main/java/com/xboe/task/CasesRecommendPushSchedule.java @@ -0,0 +1,87 @@ +package com.xboe.task; + +import com.xboe.constants.CasesPushStatusEnum; +import com.xboe.module.cases.entity.CasesRecommend; +import com.xboe.module.cases.entity.CasesRecommendPushRecord; +import com.xboe.module.cases.service.ICasesRecommendPushRecordService; +import com.xboe.module.cases.service.ICasesRecommendService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @author : civism + * @version 1.0 + * @date 2023/6/18 10:50 + */ +@EnableScheduling +@Component("com.xboe.casetask.CasesRecommendPushSchedule") +@Slf4j +public class CasesRecommendPushSchedule { + + + @Resource + private ICasesRecommendService casesRecommendService; + + + @Resource + private ICasesRecommendPushRecordService casesRecommendPushRecordService; + + /** + * 每分钟执行一次 + */ + @Scheduled(cron = "0 * * * * ? ") + public void execute() { + List casesRecommends = casesRecommendService.queryByPushProgress(CasesPushStatusEnum.WAIT_PUSH.name()); + if (CollectionUtils.isEmpty(casesRecommends)) { + log.warn("没有推送纪录,无需推送"); + return; + } + for (CasesRecommend casesRecommend : casesRecommends) { + List pushStatusList = new ArrayList<>(); + pushStatusList.add(CasesPushStatusEnum.WAIT_PUSH.getStatus()); + pushStatusList.add(CasesPushStatusEnum.WAIT_PUSH.getStatus()); + List casesRecommendPushRecords = casesRecommendPushRecordService.queryPushRecordByPushStatus(pushStatusList); + if (CollectionUtils.isEmpty(casesRecommendPushRecords)) { + //修改为推送完成 --- 无数据 无需推送 + CasesRecommend tempUpdate = new CasesRecommend(); + tempUpdate.setId(casesRecommend.getId()); + tempUpdate.setPushProgress(CasesPushStatusEnum.PUSH_SUCCESS.name()); + casesRecommendService.update(tempUpdate); + continue; + } + //修改为推送中 + CasesRecommend tempUpdate = new CasesRecommend(); + tempUpdate.setId(casesRecommend.getId()); + tempUpdate.setPushProgress(CasesPushStatusEnum.PUSH_ING.name()); + casesRecommendService.update(tempUpdate); + + for (CasesRecommendPushRecord casesRecommendPushRecord : casesRecommendPushRecords) { + + CasesRecommendPushRecord pushRecordTemp = new CasesRecommendPushRecord(); + pushRecordTemp.setId(casesRecommendPushRecord.getId()); + pushRecordTemp.setPushTime(new Date()); + try { + //TODO 推送 + pushRecordTemp.setPushStatus(CasesPushStatusEnum.PUSH_SUCCESS.getStatus()); + } catch (Exception e) { + pushRecordTemp.setPushStatus(CasesPushStatusEnum.PUSH_FAIL.getStatus()); + } + casesRecommendPushRecordService.update(pushRecordTemp); + } + + //修改为推送完成 --- 无数据 无需推送 + CasesRecommend finishTemp = new CasesRecommend(); + finishTemp.setId(casesRecommend.getId()); + finishTemp.setPushProgress(CasesPushStatusEnum.PUSH_SUCCESS.name()); + casesRecommendService.update(finishTemp); + } + } +} From d416e2bc71750d1e349b4a4909b5551a83d49c70 Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 09:06:01 +0800 Subject: [PATCH 02/35] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=8F=91=E9=80=81=E4=BB=A5=E5=8F=8A=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/service/impl/MessageServiceImpl.java | 51 ++++++++++++++----- .../xboe/task/CasesRecommendPushSchedule.java | 11 +++- 2 files changed, 48 insertions(+), 14 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/system/user/service/impl/MessageServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/system/user/service/impl/MessageServiceImpl.java index a474096a..b68b83ea 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/system/user/service/impl/MessageServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/system/user/service/impl/MessageServiceImpl.java @@ -1,24 +1,24 @@ package com.xboe.system.user.service.impl; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.annotation.Resource; - import com.xboe.common.OrderCondition; -import com.xboe.core.orm.FilterCheckValue; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - import com.xboe.common.PageList; import com.xboe.core.orm.FieldFilters; import com.xboe.core.orm.QueryBuilder; import com.xboe.core.orm.UpdateBuilder; +import com.xboe.module.boecase.dao.CasesRecommendPushRecordDao; +import com.xboe.module.boecase.entity.CasesRecommendPushRecord; import com.xboe.system.user.dao.MessageDao; import com.xboe.system.user.entity.Message; import com.xboe.system.user.service.IMessageService; -import com.xboe.system.user.vo.BatchMessage; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 消息 @@ -29,6 +29,9 @@ public class MessageServiceImpl implements IMessageService { @Resource private MessageDao dao; + @Resource + private CasesRecommendPushRecordDao casesRecommendPushRecordDao; + @Override public PageList query(int pageIndex, int pageSize, String aid, Boolean isRead) { QueryBuilder builder = QueryBuilder.from(Message.class); @@ -72,6 +75,14 @@ public class MessageServiceImpl implements IMessageService { Message message = dao.get(id); if(!message.getIsRead()){ dao.updateFieldById(id,"isRead",true); + + if("99".equals(message.getRefType())){ + casesRecommendPushRecordDao.update(UpdateBuilder.from(CasesRecommendPushRecord.class) + .addUpdateField("readFlag",1) + .addUpdateField("readStartTime",new Date()) + .addFilter(FieldFilters.eq("id",message.getRefId())) + .builder()); + } } return message; } @@ -94,6 +105,20 @@ public class MessageServiceImpl implements IMessageService { @Override @Transactional public void updateIsRead(List ids) { + if(CollectionUtils.isEmpty(ids)){ + return; + } + //更新最后读时间 + for (String id:ids){ + Message message = dao.get(id); + if("99".equals(message.getRefType())){ + casesRecommendPushRecordDao.update(UpdateBuilder.from(CasesRecommendPushRecord.class) + .addUpdateField("readEndTime",new Date()) + .addFilter(FieldFilters.eq("id",message.getRefId())) + .builder()); + } + } + dao.update(UpdateBuilder.from(Message.class) .addUpdateField("isRead",true) .addFilter(FieldFilters.in("id",ids)) @@ -141,13 +166,13 @@ public class MessageServiceImpl implements IMessageService { @Override public void cleanByAcceptId(String aid) { dao.deleteByField("acceptId", aid); - + } @Override @Transactional public void batchSave(List list) { - + // for(Message msg : list) { // // } diff --git a/servers/boe-server-task/src/main/java/com/xboe/task/CasesRecommendPushSchedule.java b/servers/boe-server-task/src/main/java/com/xboe/task/CasesRecommendPushSchedule.java index ef95a988..7546b148 100644 --- a/servers/boe-server-task/src/main/java/com/xboe/task/CasesRecommendPushSchedule.java +++ b/servers/boe-server-task/src/main/java/com/xboe/task/CasesRecommendPushSchedule.java @@ -1,6 +1,7 @@ package com.xboe.task; import com.xboe.constants.CasesPushStatusEnum; +import com.xboe.core.event.IEventDataSender; import com.xboe.module.cases.entity.CasesRecommend; import com.xboe.module.cases.entity.CasesRecommendPushRecord; import com.xboe.module.cases.service.ICasesRecommendPushRecordService; @@ -34,6 +35,10 @@ public class CasesRecommendPushSchedule { @Resource private ICasesRecommendPushRecordService casesRecommendPushRecordService; + @Resource + private IEventDataSender eventDataSender; + + /** * 每分钟执行一次 */ @@ -69,7 +74,11 @@ public class CasesRecommendPushSchedule { pushRecordTemp.setId(casesRecommendPushRecord.getId()); pushRecordTemp.setPushTime(new Date()); try { - //TODO 推送 + + eventDataSender.send("案例推荐", "recommendCases", "案例推荐【" + casesRecommendPushRecord.getCaseTitle() + "】", + casesRecommendPushRecord.getCaseId(), "99", casesRecommendPushRecord.getCaseTitle(), + casesRecommendPushRecord.getSysCreateAid(), casesRecommendPushRecord.getSysCreateBy(), ""); + pushRecordTemp.setPushStatus(CasesPushStatusEnum.PUSH_SUCCESS.getStatus()); } catch (Exception e) { pushRecordTemp.setPushStatus(CasesPushStatusEnum.PUSH_FAIL.getStatus()); From 784e251cbef92f80517c770dd35ee6f02c3289fa Mon Sep 17 00:00:00 2001 From: wangwenchao Date: Wed, 21 Jun 2023 10:40:30 +0800 Subject: [PATCH 03/35] =?UTF-8?q?1.=E6=8F=90=E5=87=BA=E6=92=A4=E5=9B=9E?= =?UTF-8?q?=E6=88=96=E8=80=85=E9=87=8D=E6=96=B0=E6=8E=A8=E9=80=81=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=88=B0=E4=B8=9A=E5=8A=A1=E5=B1=82=E5=B9=B6=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=A1=88=E4=BE=8B=E6=8E=A8=E8=8D=90=E8=A1=A8=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=80=BB=E8=BE=91=EF=BC=9B2.=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=A1=88=E4=BE=8B=E6=8E=A8=E8=8D=90=E5=88=97=E8=A1=A8=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=97=B6=E6=90=9C=E7=B4=A2=E6=9D=A1=E4=BB=B6=E7=9A=84?= =?UTF-8?q?key=E5=80=BC=EF=BC=9B3.=E6=A1=88=E4=BE=8B=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E7=8E=87=E7=9A=84=E8=AE=A1=E7=AE=97=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=9B4.=E9=87=8D=E6=96=B0=E6=8E=A8=E9=80=81=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=9C=AA=E6=8E=A8=E9=80=81=E6=88=90=E5=8A=9F=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=BF=87=E6=BB=A4=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/boecase/api/CasesRecommendApi.java | 27 ++++++++--------- .../service/ICasesRecommendService.java | 8 +++++ .../CasesRecommendPushRecordServiceImpl.java | 4 +-- .../impl/CasesRecommendServiceImpl.java | 30 ++++++++++++++++--- 4 files changed, 48 insertions(+), 21 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 03c97c71..820b1d26 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 @@ -11,7 +11,6 @@ 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.CasesPushStatusEnum; import com.xboe.enums.CasesRecommendLaunchTypeEnum; import com.xboe.module.boecase.entity.CasesRecommend; import com.xboe.module.boecase.entity.CasesRecommendLaunchImport; @@ -30,7 +29,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -63,10 +61,18 @@ public class CasesRecommendApi extends ApiBaseController { @PostMapping("/page") public JsonResponse> page(Pagination pager, CasesRecommendVo casesRecommendVo) { PageList page = iCasesRecommendService.page(pager.getPageIndex(), pager.getPageSize(), casesRecommendVo); + // 组装查看率 + page.getList().forEach(it -> { + List recordList = iCasesRecommendPushRecordService.findAllByRecommendId(it.getId()); + // 查看率:查看率=案例查看人数(各案例查看人数之合)/(当条推荐记录包含的案例 × 用户数) + long viewCount = recordList.stream().filter(record -> record.getReadFlag().equals(1)).count(); + it.setViewRate(String.valueOf(viewCount * 100 / recordList.size()).concat("%")); + }); + return success(page); } - @PostMapping("/delete") + @GetMapping("/delete") public JsonResponse delete(String id) { if (StringUtils.isBlank(id)) { return badRequest("缺少必要参数"); @@ -171,6 +177,7 @@ public class CasesRecommendApi extends ApiBaseController { if (StringUtils.isEmpty(casesRecommendId)) { throw new RuntimeException("缺少必要参数"); } + CasesRecommend casesRecommend = iCasesRecommendService.findById(casesRecommendId); // 拿取表格里需要的数据 List recordList = iCasesRecommendPushRecordService.findAllByRecommendId(casesRecommendId); // 用个List装表格的所有内容 @@ -179,7 +186,7 @@ public class CasesRecommendApi extends ApiBaseController { Map row = new LinkedHashMap<>(); row.put("案例名称", it.getCaseTitle()); row.put("推送用户", it.getPushUserName()); - row.put("所属组织", "it.get"); + row.put("所属组织", casesRecommend.getRecommendOrgName()); row.put("推送时间", it.getPushTime()); row.put("是否查看", it.getReadFlag()); row.put("首次查看时间", it.getReadStartTime()); @@ -227,17 +234,7 @@ public class CasesRecommendApi extends ApiBaseController { if (StringUtils.isEmpty(casesRecommendPushVo.getCasesRecommendId())) { throw new RuntimeException("缺少必要参数"); } - // 查询 - CasesRecommend db = iCasesRecommendService.findById(casesRecommendPushVo.getCasesRecommendId()); - if (CasesPushStatusEnum.PUSH_SUCCESS.getStatus().equals(db.getPushProgress())){ - // 当为推送成功时为 - iCasesRecommendPushRecordService.rePushOrWithdraw(true, casesRecommendPushVo.getCasesRecommendId()); - }else if (CasesPushStatusEnum.PUSH_FAIL.getStatus().equals(db.getPushProgress()) - || CasesPushStatusEnum.PUSH_REVOKE.getStatus().equals(db.getPushProgress())){ - // 推送失败或者已撤回时 - iCasesRecommendPushRecordService.rePushOrWithdraw(false, casesRecommendPushVo.getCasesRecommendId()); - } - + iCasesRecommendService.rePushOrWithdraw(casesRecommendPushVo); return success(true); } 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 4ce96881..5ea6e659 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 @@ -2,6 +2,7 @@ package com.xboe.module.boecase.service; import com.xboe.common.PageList; import com.xboe.module.boecase.entity.CasesRecommend; +import com.xboe.module.boecase.vo.CasesRecommendPushVo; import com.xboe.module.boecase.vo.CasesRecommendVo; public interface ICasesRecommendService { @@ -26,4 +27,11 @@ public interface ICasesRecommendService { * @return */ CasesRecommend findById(String id); + + /** + * 撤回或者重新推送 + * @param casesRecommendPushVo + */ + void rePushOrWithdraw(CasesRecommendPushVo casesRecommendPushVo); + } 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 9cb93f9f..e11c6d7c 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 @@ -114,8 +114,8 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR record.setPushStatus(CasesPushStatusEnum.PUSH_REVOKE.getStatus()) ); } else { - recordList.stream().forEach(record -> - record.setPushStatus(CasesPushStatusEnum.PUSH_ING.getStatus()) + recordList.stream().filter(it -> CasesPushStatusEnum.PUSH_SUCCESS.getStatus() != it.getPushStatus()).forEach(record -> + record.setPushStatus(CasesPushStatusEnum.WAIT_PUSH.getStatus()) ); } if (CollectionUtil.isNotEmpty(recordList)) { 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 f07f31bf..69a6715b 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 @@ -5,9 +5,12 @@ 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.enums.CasesPushStatusEnum; import com.xboe.module.boecase.dao.CasesRecommendDao; import com.xboe.module.boecase.entity.CasesRecommend; +import com.xboe.module.boecase.service.ICasesRecommendPushRecordService; import com.xboe.module.boecase.service.ICasesRecommendService; +import com.xboe.module.boecase.vo.CasesRecommendPushVo; import com.xboe.module.boecase.vo.CasesRecommendVo; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -22,20 +25,22 @@ public class CasesRecommendServiceImpl implements ICasesRecommendService { @Resource private CasesRecommendDao casesRecommendDao; + @Resource + private ICasesRecommendPushRecordService iCasesRecommendPushRecordService; @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())); + query.addFilter(FieldFilters.like("recommend_by", 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.addFilter(FieldFilters.ge("recommend_time",casesRecommendVo.getRecommendTimeList().get(0))); + query.addFilter(FieldFilters.le("recommend_time",casesRecommendVo.getRecommendTimeList().get(1))); } - query.addOrder(OrderCondition.desc("sysCreateTime")); + query.addOrder(OrderCondition.desc("sys_create_time")); query.setPageIndex(pageIndex); query.setPageSize(pageSize); PageList page = casesRecommendDao.findPage(query.builder()); @@ -51,4 +56,21 @@ public class CasesRecommendServiceImpl implements ICasesRecommendService { public CasesRecommend findById(String id) { return casesRecommendDao.get(id); } + + @Override + public void rePushOrWithdraw(CasesRecommendPushVo casesRecommendPushVo) { + // 查询 + CasesRecommend db = casesRecommendDao.get(casesRecommendPushVo.getCasesRecommendId()); + if (CasesPushStatusEnum.PUSH_SUCCESS.getStatus().equals(db.getPushProgress())){ + // 当为推送成功时为 + iCasesRecommendPushRecordService.rePushOrWithdraw(true, casesRecommendPushVo.getCasesRecommendId()); + db.setPushProgress(CasesPushStatusEnum.PUSH_REVOKE.getStatus()); + }else if (CasesPushStatusEnum.PUSH_FAIL.getStatus().equals(db.getPushProgress()) + || CasesPushStatusEnum.PUSH_REVOKE.getStatus().equals(db.getPushProgress())){ + // 推送失败或者已撤回时 + iCasesRecommendPushRecordService.rePushOrWithdraw(false, casesRecommendPushVo.getCasesRecommendId()); + db.setPushProgress(CasesPushStatusEnum.WAIT_PUSH.getStatus()); + } + casesRecommendDao.update(db); + } } From 6d90fcd8c293ef9559904ae2dd8a928e4db03786 Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 11:33:55 +0800 Subject: [PATCH 04/35] =?UTF-8?q?=E6=B7=BB=E5=8A=A0poi=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- servers/boe-server-all/pom.xml | 473 +++++++++++++++++---------------- 1 file changed, 239 insertions(+), 234 deletions(-) diff --git a/servers/boe-server-all/pom.xml b/servers/boe-server-all/pom.xml index faacfc00..e81c69eb 100644 --- a/servers/boe-server-all/pom.xml +++ b/servers/boe-server-all/pom.xml @@ -1,161 +1,166 @@ - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.6.3 - - - com.xboe - boe-server-all - 2.0.0 - boe-server-all - BOE 项目所有功能启动工程,用于开发 - - 1.8 - - - - cn.hutool - hutool-all - 5.8.16 - - - com.xboe - xboe-api - 1.0.0 - - - com.xboe - xboe-module-scorm - 1.0.0 - - - com.xboe - xboe-core - 1.0.0 - - - com.xboe - xboe-redis - 1.0.0 - - - com.xboe - xboe-module-course - 1.0.0 - - - com.xboe - xboe-module-idconfig - 1.0.0 - - - - com.xboe - xboe-module-es - 1.0.0 - - - - it.sauronsoftware - jave - 1.0.2 - system - ${project.basedir}/src/main/resources/libs/jave-1.0.2.jar - - - com.auth0 - java-jwt - 3.18.3 - - - - - org.apache.commons - commons-lang3 - - - commons-codec - commons-codec - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.6.3 + + + com.xboe + boe-server-all + 2.0.0 + boe-server-all + BOE 项目所有功能启动工程,用于开发 + + 1.8 + + + + org.apache.poi + poi-ooxml + 5.2.2 + + + cn.hutool + hutool-all + 5.8.16 + + + com.xboe + xboe-api + 1.0.0 + + + com.xboe + xboe-module-scorm + 1.0.0 + + + com.xboe + xboe-core + 1.0.0 + + + com.xboe + xboe-redis + 1.0.0 + + + com.xboe + xboe-module-course + 1.0.0 + + + com.xboe + xboe-module-idconfig + 1.0.0 + - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-data-redis - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.session - spring-session-data-redis - + + com.xboe + xboe-module-es + 1.0.0 + - - mysql - mysql-connector-java - 5.1.27 - - - - org.projectlombok - lombok - true - - - org.springframework.boot - spring-boot-starter-test - test - + + it.sauronsoftware + jave + 1.0.2 + system + ${project.basedir}/src/main/resources/libs/jave-1.0.2.jar + + + com.auth0 + java-jwt + 3.18.3 + + + + + org.apache.commons + commons-lang3 + + + commons-codec + commons-codec + - - - com.github.whvcse - easy-captcha - 1.6.2 - - - - org.apache.poi - poi - 4.0.1 - + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.session + spring-session-data-redis + - - com.fasterxml.jackson.datatype - jackson-datatype-jsr310 - - - org.apache.httpcomponents - httpclient - - - javax.mail - javax.mail-api - 1.5.6 - + + mysql + mysql-connector-java + 5.1.27 + + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + - - org.apache.commons - commons-email - 1.4 - + + + com.github.whvcse + easy-captcha + 1.6.2 + + + + org.apache.poi + poi + 4.0.1 + - + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + org.apache.httpcomponents + httpclient + + + javax.mail + javax.mail-api + 1.5.6 + + + + org.apache.commons + commons-email + 1.4 + + + com.aspose slides @@ -163,28 +168,28 @@ system ${project.basedir}/src/main/resources/aspose/aspose.slides-15.9.0.jar - - com.aspose - words - 15.8.0 - system - ${project.basedir}/src/main/resources/aspose/aspose-words-15.8.0.jar - - - com.aspose - cells - 18.11 - system - ${project.basedir}/src/main/resources/aspose/aspose-cells-java-18.11.jar - + + com.aspose + words + 15.8.0 + system + ${project.basedir}/src/main/resources/aspose/aspose-words-15.8.0.jar + + + com.aspose + cells + 18.11 + system + ${project.basedir}/src/main/resources/aspose/aspose-cells-java-18.11.jar + - - - com.github.ulisesbocchio - jasypt-spring-boot-starter - 3.0.3 - - + + + com.github.ulisesbocchio + jasypt-spring-boot-starter + 3.0.3 + + org.elasticsearch.client elasticsearch-rest-high-level-client 7.9.0 @@ -200,27 +205,27 @@ 7.9.0 - - - - - true - src/main/resources - - application-${profileActive}.properties - application.properties - - - - false - src/main/resources - - *.properties - - - - - + + + + + true + src/main/resources + + application-${profileActive}.properties + application.properties + + + + false + src/main/resources + + *.properties + + + + + org.apache.maven.plugins maven-compiler-plugin @@ -229,48 +234,48 @@ 1.8 - - org.springframework.boot - spring-boot-maven-plugin - - - - org.projectlombok - lombok - - + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + true - - - - - - pro - - pro - - - - pre - - pre - - - - test - - test - - - - dev - - dev - - - true - - - + + + + + + pro + + pro + + + + pre + + pre + + + + test + + test + + + + dev + + dev + + + true + + + From 03b702586965d62a2f218ecf32a249f66d884822 Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 11:36:01 +0800 Subject: [PATCH 05/35] =?UTF-8?q?=E8=A7=A3=E5=86=B3task=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/xboe/module/cases/dao/CasesRecommendDao.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers/boe-server-task/src/main/java/com/xboe/module/cases/dao/CasesRecommendDao.java b/servers/boe-server-task/src/main/java/com/xboe/module/cases/dao/CasesRecommendDao.java index b0d9debf..974bb579 100644 --- a/servers/boe-server-task/src/main/java/com/xboe/module/cases/dao/CasesRecommendDao.java +++ b/servers/boe-server-task/src/main/java/com/xboe/module/cases/dao/CasesRecommendDao.java @@ -1,7 +1,7 @@ package com.xboe.module.cases.dao; -import com.xboe.casetask.entity.CasesRecommend; import com.xboe.core.orm.BaseDao; +import com.xboe.module.cases.entity.CasesRecommend; import org.springframework.stereotype.Repository; @Repository From 83c18350e9afde62cd91ac250da18189b79d3a74 Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 11:37:10 +0800 Subject: [PATCH 06/35] =?UTF-8?q?=E8=A7=A3=E5=86=B3task=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cases/service/impl/CasesRecommendServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/impl/CasesRecommendServiceImpl.java b/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/impl/CasesRecommendServiceImpl.java index 92191a12..1c1cf224 100644 --- a/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/impl/CasesRecommendServiceImpl.java +++ b/servers/boe-server-task/src/main/java/com/xboe/module/cases/service/impl/CasesRecommendServiceImpl.java @@ -1,9 +1,9 @@ package com.xboe.module.cases.service.impl; -import com.xboe.casetask.dao.CasesRecommendDao; -import com.xboe.casetask.entity.CasesRecommend; -import com.xboe.casetask.service.ICasesRecommendService; import com.xboe.core.orm.FieldFilters; +import com.xboe.module.cases.dao.CasesRecommendDao; +import com.xboe.module.cases.entity.CasesRecommend; +import com.xboe.module.cases.service.ICasesRecommendService; import org.springframework.stereotype.Service; import javax.annotation.Resource; From e55976b4db6585aef5b6405a4e17770cb1a1a174 Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 11:40:16 +0800 Subject: [PATCH 07/35] =?UTF-8?q?=E4=BF=AE=E6=94=B9pom=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- servers/boe-server-all/pom.xml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/servers/boe-server-all/pom.xml b/servers/boe-server-all/pom.xml index e81c69eb..232270fc 100644 --- a/servers/boe-server-all/pom.xml +++ b/servers/boe-server-all/pom.xml @@ -133,13 +133,6 @@ easy-captcha 1.6.2 - - - org.apache.poi - poi - 4.0.1 - - com.fasterxml.jackson.datatype jackson-datatype-jsr310 From 57eaac9e841c1077c11f2f1d03f47b821e428e3b Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 13:12:56 +0800 Subject: [PATCH 08/35] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=8B=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CasesRecommendLaunchImportServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) 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 02083a94..61cab64d 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 @@ -12,6 +12,7 @@ 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 org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Collections; @@ -19,6 +20,7 @@ import java.util.List; import java.util.stream.Collectors; @Service +@Transactional public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLaunchImportService { @Resource From eb23e3263a0fe68781c8d25b35b6dc378401be3f Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 13:24:24 +0800 Subject: [PATCH 09/35] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/boecase/entity/CasesRecommendLaunchImport.java | 3 +++ .../impl/CasesRecommendLaunchImportServiceImpl.java | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) 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 0c593482..6be7c03f 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 @@ -42,4 +42,7 @@ public class CasesRecommendLaunchImport extends BaseEntity { @Column(name = "process_status",length = 20) private Integer processStatus; + @Column(name = "import_id") + private String importId; + } 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 61cab64d..d386525b 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 @@ -40,12 +40,12 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau int totalNum = dataList.size(); int successNum = 0; int failNum = 0; - Long importId = IdUtil.getSnowflakeNextId(); + String 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.setImportId(importId); casesRecommendLaunchImportData.setCaseTitle(caseTitle); Cases cases = casesDao.getByTitle(caseTitle); if (cases == null) { @@ -60,11 +60,11 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau } CasesRecommendLaunchImport casesRecommendLaunchImport = new CasesRecommendLaunchImport(); casesRecommendLaunchImport.setFailNum(failNum); - casesRecommendLaunchImport.setId(importId + ""); + casesRecommendLaunchImport.setImportId(importId); casesRecommendLaunchImport.setSuccessNum(successNum); casesRecommendLaunchImport.setTotalNum(totalNum); casesRecommendLaunchImportDao.save(casesRecommendLaunchImport); - return importId + ""; + return importId; } From 215d0465db402b7f8f624c6fa3942370c37d2875 Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 13:26:42 +0800 Subject: [PATCH 10/35] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boecase/service/ICasesRecommendLaunchImportService.java | 2 +- .../service/impl/CasesRecommendLaunchImportServiceImpl.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) 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 6b784dd0..9348c66d 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 @@ -30,6 +30,6 @@ public interface ICasesRecommendLaunchImportService { * @param id * @return */ - CasesRecommendLaunchImport getById(String id); + CasesRecommendLaunchImport getByImportId(String importId); } 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 d386525b..30da32ea 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 @@ -79,7 +79,8 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau } @Override - public CasesRecommendLaunchImport getById(String id) { - return casesRecommendLaunchImportDao.get(id); + public CasesRecommendLaunchImport getByImportId(String importId) { + return casesRecommendLaunchImportDao.findOne(FieldFilters.eq("import_id", importId)); } + } From 44b9cffc5fcb8e0989c442c63e84e9c2ccb30502 Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 13:27:19 +0800 Subject: [PATCH 11/35] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/module/boecase/api/CasesRecommendApi.java | 2 +- 1 file changed, 1 insertion(+), 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 820b1d26..ff551ed7 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 @@ -95,7 +95,7 @@ public class CasesRecommendApi extends ApiBaseController { */ @GetMapping("/import-info") public JsonResponse excelImport(String importId) { - CasesRecommendLaunchImport byId = iCasesRecommendLaunchImportService.getById(importId); + CasesRecommendLaunchImport byId = iCasesRecommendLaunchImportService.getByImportId(importId); return success(byId); } From 12e46b47b7c7d52987b4a37b886e22eb8a194094 Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 13:47:04 +0800 Subject: [PATCH 12/35] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=BE=93=E5=87=BA=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CasesRecommendLaunchImportServiceImpl.java | 4 ++-- servers/boe-server-all/src/main/resources/log/logback-dev.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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 30da32ea..11eaf0fc 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 @@ -34,10 +34,10 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau @Override public String importData(List> dataList) { - if (CollectionUtil.isEmpty(dataList)) { + if (CollectionUtil.isEmpty(dataList) || dataList.size() < 1) { throw new RuntimeException("导入数据为空"); } - int totalNum = dataList.size(); + int totalNum = dataList.size() - 1; int successNum = 0; int failNum = 0; String importId = IdUtil.getSnowflakeNextId() + ""; diff --git a/servers/boe-server-all/src/main/resources/log/logback-dev.xml b/servers/boe-server-all/src/main/resources/log/logback-dev.xml index 4a26a112..4fe34ba2 100644 --- a/servers/boe-server-all/src/main/resources/log/logback-dev.xml +++ b/servers/boe-server-all/src/main/resources/log/logback-dev.xml @@ -1,7 +1,7 @@ - + From 502d0ad2b2608c6827797ccd3509e74044bc8f59 Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 13:49:54 +0800 Subject: [PATCH 13/35] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- servers/boe-server-all/src/main/resources/log/logback-dev.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers/boe-server-all/src/main/resources/log/logback-dev.xml b/servers/boe-server-all/src/main/resources/log/logback-dev.xml index 4fe34ba2..042cd536 100644 --- a/servers/boe-server-all/src/main/resources/log/logback-dev.xml +++ b/servers/boe-server-all/src/main/resources/log/logback-dev.xml @@ -1,7 +1,7 @@ - + From 064b5090a7140586498aded82c8bc660f5bd1d43 Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 13:54:49 +0800 Subject: [PATCH 14/35] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/log/logback-dev.xml | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/servers/boe-server-all/src/main/resources/log/logback-dev.xml b/servers/boe-server-all/src/main/resources/log/logback-dev.xml index 042cd536..e1ab5d56 100644 --- a/servers/boe-server-all/src/main/resources/log/logback-dev.xml +++ b/servers/boe-server-all/src/main/resources/log/logback-dev.xml @@ -31,6 +31,19 @@ + + + ${log.path}/info.log + + ${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz + 50MB + 30 + + + %date [%thread] %-5level [%logger{50}] %file:%line - %msg%n + + + ${log.path}/error.log @@ -50,5 +63,15 @@ + + + + + + + + + + From 2d49cc0bd21429edc80881cd8eac6e179dbaf6ff Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 13:57:31 +0800 Subject: [PATCH 15/35] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boe-server-all/src/main/resources/log/logback-dev.xml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/servers/boe-server-all/src/main/resources/log/logback-dev.xml b/servers/boe-server-all/src/main/resources/log/logback-dev.xml index e1ab5d56..f2f8b4aa 100644 --- a/servers/boe-server-all/src/main/resources/log/logback-dev.xml +++ b/servers/boe-server-all/src/main/resources/log/logback-dev.xml @@ -66,12 +66,4 @@ - - - - - - - - From b8ea3860b9e84c93f017ffc10506fc8c27490fee Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 13:58:49 +0800 Subject: [PATCH 16/35] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/log/logback-dev.xml | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/servers/boe-server-all/src/main/resources/log/logback-dev.xml b/servers/boe-server-all/src/main/resources/log/logback-dev.xml index f2f8b4aa..1d75bbe3 100644 --- a/servers/boe-server-all/src/main/resources/log/logback-dev.xml +++ b/servers/boe-server-all/src/main/resources/log/logback-dev.xml @@ -31,19 +31,6 @@ - - - ${log.path}/info.log - - ${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz - 50MB - 30 - - - %date [%thread] %-5level [%logger{50}] %file:%line - %msg%n - - - ${log.path}/error.log @@ -62,8 +49,8 @@ + - From 034c4cbf66f78a31f99093dc1d3ac161047c1115 Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 14:10:44 +0800 Subject: [PATCH 17/35] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CasesRecommendLaunchImportServiceImpl.java | 1 + 1 file changed, 1 insertion(+) 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 11eaf0fc..d1eabd42 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 @@ -63,6 +63,7 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau casesRecommendLaunchImport.setImportId(importId); casesRecommendLaunchImport.setSuccessNum(successNum); casesRecommendLaunchImport.setTotalNum(totalNum); + casesRecommendLaunchImport.setProcessStatus(1); casesRecommendLaunchImportDao.save(casesRecommendLaunchImport); return importId; } From f1727d5cdc433d03321691540bc61fdc5bdc9cec Mon Sep 17 00:00:00 2001 From: wangwenchao Date: Wed, 21 Jun 2023 14:36:32 +0800 Subject: [PATCH 18/35] =?UTF-8?q?=E6=8E=92=E6=9F=A5=E6=A1=88=E4=BE=8B?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E5=88=97=E8=A1=A8=E6=8A=A5=E9=94=99=E5=8F=8A?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=8A=9F=E8=83=BD=E4=B8=8D=E5=A5=BD=E4=BD=BF?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E5=B9=B6=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xboe/module/boecase/api/CasesRecommendApi.java | 13 +++++++------ .../xboe/module/boecase/vo/CasesRecommendVo.java | 3 ++- 2 files changed, 9 insertions(+), 7 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 ff551ed7..544a926d 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 @@ -54,19 +54,20 @@ public class CasesRecommendApi extends ApiBaseController { /** * 用于后台管理分页 * - * @param pager * @param casesRecommendVo * @return */ @PostMapping("/page") - public JsonResponse> page(Pagination pager, CasesRecommendVo casesRecommendVo) { - PageList page = iCasesRecommendService.page(pager.getPageIndex(), pager.getPageSize(), casesRecommendVo); + public JsonResponse> page(@RequestBody CasesRecommendVo casesRecommendVo) { + PageList page = iCasesRecommendService.page(casesRecommendVo.getPageIndex(), casesRecommendVo.getPageSize(), casesRecommendVo); // 组装查看率 page.getList().forEach(it -> { List recordList = iCasesRecommendPushRecordService.findAllByRecommendId(it.getId()); - // 查看率:查看率=案例查看人数(各案例查看人数之合)/(当条推荐记录包含的案例 × 用户数) - long viewCount = recordList.stream().filter(record -> record.getReadFlag().equals(1)).count(); - it.setViewRate(String.valueOf(viewCount * 100 / recordList.size()).concat("%")); + if (CollectionUtil.isNotEmpty(recordList)){ + // 查看率:查看率=案例查看人数(各案例查看人数之合)/(当条推荐记录包含的案例 × 用户数) + long viewCount = recordList.stream().filter(record -> record.getReadFlag().equals(1)).count(); + it.setViewRate(String.valueOf(viewCount * 100 / recordList.size()).concat("%")); + } }); return success(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 index 24988595..0e4438a1 100644 --- 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 @@ -1,12 +1,13 @@ package com.xboe.module.boecase.vo; +import com.xboe.common.Pagination; import lombok.Data; import java.time.LocalDateTime; import java.util.List; @Data -public class CasesRecommendVo { +public class CasesRecommendVo extends Pagination { /** 推荐人姓名 */ private String recommendName; From 877189f73020c9d29980625e22400845bf2d760c Mon Sep 17 00:00:00 2001 From: wangwenchao Date: Wed, 21 Jun 2023 15:39:13 +0800 Subject: [PATCH 19/35] =?UTF-8?q?=E8=81=94=E8=B0=83=E6=8E=92=E6=9F=A5?= =?UTF-8?q?=E6=A1=88=E4=BE=8B=E6=8E=A8=E8=8D=90=E5=88=97=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=B8=8D=E8=83=BD=E6=A0=B9=E6=8D=AE=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E9=97=AE=E9=A2=98=E5=B9=B6=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/module/boecase/vo/CasesRecommendVo.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 index 0e4438a1..1d0ba10e 100644 --- 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 @@ -1,9 +1,9 @@ package com.xboe.module.boecase.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import com.xboe.common.Pagination; import lombok.Data; -import java.time.LocalDateTime; import java.util.List; @Data @@ -13,6 +13,6 @@ public class CasesRecommendVo extends Pagination { private String recommendName; /** 推荐时间区间 */ - private List recommendTimeList; + private List recommendTimeList; } From 99395ee8d59804950e3e27adea8f612089e02141 Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 16:48:19 +0800 Subject: [PATCH 20/35] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=B0=E5=A4=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/boecase/api/CasesRecommendApi.java | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 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 ff551ed7..993e6db0 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 @@ -131,7 +131,9 @@ public class CasesRecommendApi extends ApiBaseController { ExcelWriter writer = ExcelUtil.getWriter(); writer.writeHeadRow(ListUtil.toList("标题")); - writer.write(dataList); + if (CollectionUtil.isNotEmpty(dataList)) { + writer.write(dataList); + } response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename=failData.xls"); ServletOutputStream out = response.getOutputStream(); @@ -193,29 +195,29 @@ public class CasesRecommendApi extends ApiBaseController { row.put("总查看时间", it.getReadEndTime()); return row; }).collect(Collectors.toList()); - if (CollectionUtil.isNotEmpty(rows)){ + if (CollectionUtil.isNotEmpty(rows)) { // 通过工具类创建writer try (ExcelWriter writer = ExcelUtil.getWriter(true); // 输出流 ServletOutputStream servletOutputStream = response.getOutputStream() - ){ + ) { // 一次性写出内容 writer.write(rows, true); // 微调一下每个列的宽度 - writer.setColumnWidth(0,50); - writer.setColumnWidth(1,16); - writer.setColumnWidth(2,24); - writer.setColumnWidth(3,34); - writer.setColumnWidth(4,10); - writer.setColumnWidth(5,20); - writer.setColumnWidth(6,20); + writer.setColumnWidth(0, 50); + writer.setColumnWidth(1, 16); + writer.setColumnWidth(2, 24); + writer.setColumnWidth(3, 34); + writer.setColumnWidth(4, 10); + writer.setColumnWidth(5, 20); + writer.setColumnWidth(6, 20); // 此处的response.setContentType 和教程里的不同 response.setContentType("application/octet-stream"); // filename就是表格的名字,这个无所谓,反正前端还会重命名 - response.setHeader("Content-Disposition","attachment;filename=推荐信息.xlsx"); + response.setHeader("Content-Disposition", "attachment;filename=推荐信息.xlsx"); - writer.flush(servletOutputStream,true); - }catch (Exception e){ + writer.flush(servletOutputStream, true); + } catch (Exception e) { throw new RuntimeException(e.getMessage()); } } From 707a28405e6d6669d777cfb802d8ef82d9204a46 Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 17:06:29 +0800 Subject: [PATCH 21/35] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=BC=A0=E9=80=92=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/boecase/api/CasesRecommendApi.java | 7 +++---- 1 file changed, 3 insertions(+), 4 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 93f5abe8..229b4f26 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,7 +8,6 @@ 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.enums.CasesRecommendLaunchTypeEnum; @@ -63,7 +62,7 @@ public class CasesRecommendApi extends ApiBaseController { // 组装查看率 page.getList().forEach(it -> { List recordList = iCasesRecommendPushRecordService.findAllByRecommendId(it.getId()); - if (CollectionUtil.isNotEmpty(recordList)){ + if (CollectionUtil.isNotEmpty(recordList)) { // 查看率:查看率=案例查看人数(各案例查看人数之合)/(当条推荐记录包含的案例 × 用户数) long viewCount = recordList.stream().filter(record -> record.getReadFlag().equals(1)).count(); it.setViewRate(String.valueOf(viewCount * 100 / recordList.size()).concat("%")); @@ -123,8 +122,8 @@ public class CasesRecommendApi extends ApiBaseController { * @return * @throws Exception */ - @GetMapping("/download") - public void download(String importId, HttpServletResponse response) throws Exception { + @GetMapping("/download/{importId}") + public void download(@PathVariable("importId") String importId, HttpServletResponse response) throws Exception { List dataList = iCasesRecommendLaunchImportService.downFailData(importId); From a6b8584fef6e70ce27d8ceedd556930c7f91788a Mon Sep 17 00:00:00 2001 From: Guava Date: Wed, 21 Jun 2023 17:11:11 +0800 Subject: [PATCH 22/35] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/module/boecase/api/CasesRecommendApi.java | 4 ++-- .../service/impl/CasesRecommendLaunchImportServiceImpl.java | 5 ++--- 2 files changed, 4 insertions(+), 5 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 229b4f26..0d26a02a 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 @@ -122,8 +122,8 @@ public class CasesRecommendApi extends ApiBaseController { * @return * @throws Exception */ - @GetMapping("/download/{importId}") - public void download(@PathVariable("importId") String importId, HttpServletResponse response) throws Exception { + @GetMapping("/download") + public void download(String importId, HttpServletResponse response) throws Exception { List dataList = iCasesRecommendLaunchImportService.downFailData(importId); 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 d1eabd42..653a0257 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 @@ -15,7 +15,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -72,9 +71,9 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau @Override public List downFailData(String importId) { - List dataList = casesRecommendLaunchImportDataDao.findList(FieldFilters.eq("import_id", importId)); + List dataList = casesRecommendLaunchImportDataDao.findList(FieldFilters.eq("importId", importId)); if (CollectionUtil.isEmpty(dataList)) { - return Collections.emptyList(); + return null; } return dataList.stream().map(CasesRecommendLaunchImportData::getCaseTitle).collect(Collectors.toList()); } From 7a697ff6041b46b72a63e0ea89443d5cddaa2761 Mon Sep 17 00:00:00 2001 From: Boolean Date: Thu, 22 Jun 2023 15:10:04 +0800 Subject: [PATCH 23/35] =?UTF-8?q?=E5=AD=A6=E5=91=98=E6=A1=88=E4=BE=8B?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/boecase/api/CasesApi.java | 3 +- .../boecase/dao/CasesMajorTypeRepoDao.java | 16 +++ .../module/boecase/dao/CasesRecordDao.java | 3 +- .../xboe/module/boecase/dto/CasePageVo.java | 2 +- .../com/xboe/module/boecase/dto/PageDto.java | 4 +- .../service/impl/CasesServiceImpl.java | 107 ++++++++++++++++-- .../com/xboe/orm/CustomFieldInFilter.java | 26 +++++ .../src/main/resources/log/logback-dev.xml | 2 +- .../dao/CasesMajorTypeRepoDaoTest.java | 28 +++++ .../boecase/dao/CasesRecordDaoTest.java | 21 ++++ .../service/impl/CasesServiceImplTest.java | 32 ++++++ 11 files changed, 227 insertions(+), 17 deletions(-) create mode 100644 servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesMajorTypeRepoDao.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/orm/CustomFieldInFilter.java create mode 100644 servers/boe-server-all/src/test/java/com/xboe/module/boecase/dao/CasesMajorTypeRepoDaoTest.java create mode 100644 servers/boe-server-all/src/test/java/com/xboe/module/boecase/dao/CasesRecordDaoTest.java create mode 100644 servers/boe-server-all/src/test/java/com/xboe/module/boecase/service/impl/CasesServiceImplTest.java diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index 3da88829..e7d7160d 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -17,6 +17,7 @@ import com.xboe.module.dict.entity.DictItem; import com.xboe.module.excel.ExportsExcelSenderUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -104,7 +105,7 @@ public class CasesApi extends ApiBaseController { } @PostMapping("/queryListV2") - public JsonResponse> queryCaseBreV2(@RequestBody CasePageVo req){ + public JsonResponse> queryCaseBreV2(@Validated CasePageVo req){ String type = req.getType(); PageList views = null; if (type.equals("recommend")) { diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesMajorTypeRepoDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesMajorTypeRepoDao.java new file mode 100644 index 00000000..a865d3ac --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesMajorTypeRepoDao.java @@ -0,0 +1,16 @@ +package com.xboe.module.boecase.dao; + +import com.xboe.module.boecase.entity.CasesMajorType; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface CasesMajorTypeRepoDao extends JpaRepository, JpaSpecificationExecutor { + + @Query(nativeQuery = true, value = "select * from boe_cases_major_type as c where major_id in (:marjorIds) group by c.case_id") + List findCasesBy(List marjorIds); +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java index 24a92f4b..941dafbd 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java @@ -18,6 +18,7 @@ import org.springframework.stereotype.Repository; @Repository public interface CasesRecordDao extends JpaRepository, JpaSpecificationExecutor { + @Query(nativeQuery = true, value = "select b.* from boe_cases_recommend_push_record a LEFT JOIN boe_cases b on. a.case_id = b.id and b.deleted=false " + " where a.deleted=false and a.push_user_id= :#{#condition.userId}" + " and if(:#{#condition.keyWord} is not null,b.title like CONCAT('%',:#{#condition.keyWord},'%')" + @@ -28,7 +29,7 @@ public interface CasesRecordDao extends JpaRepository, JpaSpecifi " or b.keyword4 like CONCAT('%',:#{#condition.keyWord},'%')" + " or b.keyword5 like CONCAT('%',:#{#condition.keyWord},'%'),1=1)" + " and if(:#{#condition.years} is not null ,YEAR(b.sys_create_time) in (:#{#condition.years}),1=1 )" + - " and if(:#{#condition.majorType} is nto null ,b.major_type = :#{#condition.majorType},1=1) " + + " and if(:#{#condition.majorType} is not null ,b.major_type = :#{#condition.majorType},1=1) " + " and if(:#{#condition.org1} is not null,b.org_domain_parent in (:#{#condition.org1}),1=1)" + " and if(:#{#condition.org2} is not null,b.org_domain_parent2 in (:#{#condition.org2}),1=1)" + " and if(:#{#condition.org3} is not null,b.org_domain_parent3 in (:#{#condition.org3}),1=1)" + diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java index c3a615a5..5e2024fe 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java @@ -41,7 +41,7 @@ public class CasePageVo extends PageDto { private String authorName; - private List years; + private List years; /** * 已经返回给前端的案例需要过滤掉 diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/PageDto.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/PageDto.java index c62be937..fee85f15 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/PageDto.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/PageDto.java @@ -5,6 +5,6 @@ import lombok.Data; @Data public class PageDto { - private int pageIndex = 1; - private int pageSize = 10; + private Integer pageIndex = 1; + private Integer pageSize = 10; } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index 50f65a04..b1893848 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -1,5 +1,8 @@ package com.xboe.module.boecase.service.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.text.split.SplitIter; +import cn.hutool.core.util.StrUtil; import com.xboe.common.OrderCondition; import com.xboe.common.PageList; import com.xboe.common.utils.IDGenerator; @@ -7,6 +10,7 @@ import com.xboe.common.utils.StringUtil; import com.xboe.core.orm.*; import com.xboe.module.boecase.dao.CasesDao; import com.xboe.module.boecase.dao.CasesMajorTypeDao; +import com.xboe.module.boecase.dao.CasesMajorTypeRepoDao; import com.xboe.module.boecase.dao.CasesRecordDao; import com.xboe.module.boecase.dto.*; import com.xboe.module.boecase.entity.Cases; @@ -14,6 +18,7 @@ import com.xboe.module.boecase.entity.CasesMajorType; import com.xboe.module.boecase.service.ICasesService; import com.xboe.module.dict.dao.SysDictionaryDao; import com.xboe.module.dict.entity.DictItem; +import com.xboe.orm.CustomFieldInFilter; import com.xboe.school.vo.CasesVo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -22,11 +27,15 @@ import org.springframework.data.domain.PageRequest; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; import javax.transaction.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; @Slf4j @Service @@ -45,6 +54,12 @@ public class CasesServiceImpl implements ICasesService { @Resource private CasesRecordDao casesRecordDao; + @Resource + private CasesMajorTypeRepoDao casesMajorTypeRepoDao; + + @PersistenceContext + private EntityManager entityManager; + /** * 案例分页查询,用于门户的查询 */ @@ -84,11 +99,7 @@ public class CasesServiceImpl implements ICasesService { filters.add(FieldFilters.isNotNull("filePath")); filters.add(FieldFilters.ne("filePath", "")); -// if(StringUtil.isNotBlank(caseVo.getMajorType())){ -// filters.add(FieldFilters.eq("majorType",caseVo.getMajorType())); -// } if (StringUtil.isNotBlank(caseVo.getMajorType())) { - QueryBuilder from = QueryBuilder.from(CasesMajorType.class); //前端直接字符串拼接传,后端转化数组 if (caseVo.getMajorType().contains(",")) { @@ -165,13 +176,87 @@ public class CasesServiceImpl implements ICasesService { */ @Override public PageList queryPageCasesV2(CasePageVo caseVo) { - PageRequest pageRequest = PageRequest.of(caseVo.getPageIndex(), caseVo.getPageSize()); - Page cases = casesRecordDao.queryList(pageRequest, caseVo); - PageList pageList = new PageList<>(); - pageList.setCount((int) cases.getTotalElements()); - pageList.setPageSize(cases.getSize()); - pageList.setList(cases.getContent()); - return pageList; + + String keyword = caseVo.getKeyWord(); + QueryBuilder query=QueryBuilder.from(Cases.class); + PageList page=null; + List filters = new ArrayList<>(); + filters.add(FieldFilters.eq("deleted",false)); + List likes=new ArrayList(); + likes.add(FieldFilters.like("title", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); + likes.add(FieldFilters.like("authorName", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); + likes.add(FieldFilters.like("keyword1", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); + likes.add(FieldFilters.like("keyword2", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); + likes.add(FieldFilters.like("keyword3", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); + likes.add(FieldFilters.like("keyword4", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); + likes.add(FieldFilters.like("keyword5", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); + List notInIds = caseVo.getNotInIds(); + if (CollUtil.isNotEmpty(notInIds)) { + filters.add(FieldFilters.notIn("id", notInIds)); + } + + if(StringUtil.isNotBlank(caseVo.getKeyWord())) { + filters.add(FieldFilters.or(likes)); + } + + //创建时间过滤 + List years = caseVo.getYears(); + if (CollUtil.isNotEmpty(years)) { + filters.add(new CustomFieldInFilter("YEAR(sysCreateTime)","sysCreateTime",years)); + } + + //增加只是查询有附件的 + filters.add(FieldFilters.isNotNull("filePath")); + filters.add(FieldFilters.ne("filePath","")); + + String majorType = caseVo.getMajorType(); + if(StringUtil.isNotBlank(majorType)){ + List casesTypes = casesMajorTypeRepoDao.findCasesBy(StrUtil.split(majorType, ",")); + if(CollUtil.isNotEmpty(casesTypes)){ + List caseIds = casesTypes.stream().map(CasesMajorType::getCaseId).collect(Collectors.toList()); + query.addFilter(FieldFilters.in("id",caseIds)); + }else { + return page; + } + } + + if(StringUtils.isNotBlank(caseVo.getCaseType())){ + filters.add(FieldFilters.eq("caseType",caseVo.getCaseType())); + } + if(caseVo.getBreCommend()!=null){ + if(!caseVo.getBreCommend()){ + filters.add(FieldFilters.eq("breCommend",0)); + }else { + filters.add(FieldFilters.eq("breCommend", 1)); + } + } + if(caseVo.getIsTop()!=null && caseVo.getIsTop()) { + query.addOrder(OrderCondition.desc("isTop")); + query.addOrder(OrderCondition.desc("topTime")); + } + //如果选择的是优秀案例,那么这里就按优秀案例的试试排序 + if(caseVo.getExcellent()!=null){ + filters.add(FieldFilters.eq("excellent",caseVo.getExcellent())); + } + OrderCondition order=null; + if(StringUtils.isNotBlank(caseVo.getOrderField())) { + if(caseVo.getOrderAsc()==null || caseVo.getOrderAsc()) { + order=OrderCondition.asc(caseVo.getOrderField()); + }else { + order=OrderCondition.desc(caseVo.getOrderField()); + } + }else { + order=OrderCondition.desc("sysCreateTime"); + } + + query.addFilters(filters); + query.addOrder(order); + query.addOrder(OrderCondition.rand()); + query.setPageIndex(caseVo.getPageIndex()); + query.setPageSize(caseVo.getPageSize()); + page = casesDao.findPage(query.builder()); + + return page; } @Override diff --git a/servers/boe-server-all/src/main/java/com/xboe/orm/CustomFieldInFilter.java b/servers/boe-server-all/src/main/java/com/xboe/orm/CustomFieldInFilter.java new file mode 100644 index 00000000..997edcf7 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/orm/CustomFieldInFilter.java @@ -0,0 +1,26 @@ +package com.xboe.orm; + +import com.xboe.common.beans.KeyValue; +import com.xboe.core.orm.impl.FieldInFilter; + +import java.util.Collection; + +public class CustomFieldInFilter extends FieldInFilter { + + private String param; + + public CustomFieldInFilter(String name,String param, Collection values) { + super(name, values); + this.param = param; + } + + @Override + public String getNamed(String name, int order) { + return super.getNamed(param, order); + } + + @Override + public String getNamed(String pre, String name, int order) { + return super.getNamed(pre, param, order); + } +} diff --git a/servers/boe-server-all/src/main/resources/log/logback-dev.xml b/servers/boe-server-all/src/main/resources/log/logback-dev.xml index 1d75bbe3..00672a79 100644 --- a/servers/boe-server-all/src/main/resources/log/logback-dev.xml +++ b/servers/boe-server-all/src/main/resources/log/logback-dev.xml @@ -1,7 +1,7 @@ - + diff --git a/servers/boe-server-all/src/test/java/com/xboe/module/boecase/dao/CasesMajorTypeRepoDaoTest.java b/servers/boe-server-all/src/test/java/com/xboe/module/boecase/dao/CasesMajorTypeRepoDaoTest.java new file mode 100644 index 00000000..38a3d4d3 --- /dev/null +++ b/servers/boe-server-all/src/test/java/com/xboe/module/boecase/dao/CasesMajorTypeRepoDaoTest.java @@ -0,0 +1,28 @@ +package com.xboe.module.boecase.dao; + +import com.xboe.module.boecase.entity.CasesMajorType; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +@SpringBootTest +@ActiveProfiles("dev") +class CasesMajorTypeRepoDaoTest { + + @Autowired + private CasesMajorTypeRepoDao casesMajorTypeRepoDao; + + @Test + void findCasesBy() { + ArrayList params = new ArrayList<>(); + params.add("27737267694995149"); + List majorTypes = casesMajorTypeRepoDao.findCasesBy(params); + System.out.println(majorTypes); + } +} \ No newline at end of file diff --git a/servers/boe-server-all/src/test/java/com/xboe/module/boecase/dao/CasesRecordDaoTest.java b/servers/boe-server-all/src/test/java/com/xboe/module/boecase/dao/CasesRecordDaoTest.java new file mode 100644 index 00000000..5dec4da4 --- /dev/null +++ b/servers/boe-server-all/src/test/java/com/xboe/module/boecase/dao/CasesRecordDaoTest.java @@ -0,0 +1,21 @@ +package com.xboe.module.boecase.dao; + +import com.xboe.module.boecase.dto.CasePageVo; +import com.xboe.module.boecase.entity.Cases; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.test.context.ActiveProfiles; + +import static org.junit.jupiter.api.Assertions.*; + +@SpringBootTest +@ActiveProfiles("dev") +class CasesRecordDaoTest { + + @Autowired + private CasesRecordDao casesRecordDao; + +} \ No newline at end of file diff --git a/servers/boe-server-all/src/test/java/com/xboe/module/boecase/service/impl/CasesServiceImplTest.java b/servers/boe-server-all/src/test/java/com/xboe/module/boecase/service/impl/CasesServiceImplTest.java new file mode 100644 index 00000000..83a6610e --- /dev/null +++ b/servers/boe-server-all/src/test/java/com/xboe/module/boecase/service/impl/CasesServiceImplTest.java @@ -0,0 +1,32 @@ +package com.xboe.module.boecase.service.impl; + +import cn.hutool.core.collection.ListUtil; +import com.xboe.common.PageList; +import com.xboe.module.boecase.dto.CasePageVo; +import com.xboe.module.boecase.entity.Cases; +import com.xboe.module.boecase.service.ICasesService; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; + +import static org.junit.jupiter.api.Assertions.*; + +@SpringBootTest +@ActiveProfiles("dev") +class CasesServiceImplTest { + + @Autowired + private ICasesService casesService; + + @Test + void queryPageCasesV2() { + CasePageVo pageVo = new CasePageVo(); +// pageVo.setYears(ListUtil.toList(2023)); + pageVo.setPageIndex(1); + pageVo.setPageSize(10); + pageVo.setExcellent(Boolean.TRUE); + PageList casesV2 = casesService.queryPageCasesV2(pageVo); + System.out.println(casesV2); + } +} \ No newline at end of file From bc255523cee23a2270620d365b0d68cbbd36ba20 Mon Sep 17 00:00:00 2001 From: Guava Date: Thu, 22 Jun 2023 21:24:07 +0800 Subject: [PATCH 24/35] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/boecase/dao/CasesRecordDao.java | 31 ++++++++++++++++--- .../CasesRecommendLaunchImportData.java | 2 +- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java index 24a92f4b..2b434bca 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java @@ -18,8 +18,15 @@ import org.springframework.stereotype.Repository; @Repository public interface CasesRecordDao extends JpaRepository, JpaSpecificationExecutor { - @Query(nativeQuery = true, value = "select b.* from boe_cases_recommend_push_record a LEFT JOIN boe_cases b on. a.case_id = b.id and b.deleted=false " + - " where a.deleted=false and a.push_user_id= :#{#condition.userId}" + + @Query(nativeQuery = true, value = "select b.id,b.sys_create_aid,b.sys_create_by,b.sys_create_time,b.deleted,b.sys_update_by,b.sys_update_time,b.sys_version," + + "b.excellent_time,b.excellent,b.case_value,b.readers,b.keyword5,b.keyword4,b.keyword3,b.keyword2,b.keyword1,b.case_theme_description,b.case_theme" + + ",b.case_type2,b.case_type1,b.case_type,b.case_owner_org,b.case_specialty_sequence,b.case_other_contributor,b.case_owner_phone,b.case_owner_department" + + ",b.case_owner,b.case_flow,b.case_scope,b.is_leadership_plan,b.case_channel,b.email,b.contact_number,b.department,b.drafter,b.end_time,b.drafting_time," + + "b.confidentiality_level,b.approval_number,b.major_type,b.org_domain_parent3,b.org_domain_parent2,b.org_domain_parent,b.org_domain,b.summary,b.cites,b.recommends," + + "b.favorites,b.shares,b.praises,b.comments,b.views,b.status,b.top_time,b.is_top,b.recommend_time,b.bre_commend,b.cover_url,b.author_name,b.author_id,b.file_name" + + ",b.file_path,b.content,b.company_id,b.title" + + " from boe_cases_recommend_push_record a LEFT JOIN boe_cases b on a.case_id = b.id and b.deleted=0 " + + " where a.deleted=0 and a.push_user_id= :#{#condition.userId}" + " and if(:#{#condition.keyWord} is not null,b.title like CONCAT('%',:#{#condition.keyWord},'%')" + " or b.author_name like CONCAT('%',:#{#condition.keyWord},'%')" + " or b.keyword1 like CONCAT('%',:#{#condition.keyWord},'%')" + @@ -28,10 +35,26 @@ public interface CasesRecordDao extends JpaRepository, JpaSpecifi " or b.keyword4 like CONCAT('%',:#{#condition.keyWord},'%')" + " or b.keyword5 like CONCAT('%',:#{#condition.keyWord},'%'),1=1)" + " and if(:#{#condition.years} is not null ,YEAR(b.sys_create_time) in (:#{#condition.years}),1=1 )" + - " and if(:#{#condition.majorType} is nto null ,b.major_type = :#{#condition.majorType},1=1) " + + " and if(:#{#condition.majorType} is not null ,b.major_type = :#{#condition.majorType},1=1) " + " and if(:#{#condition.org1} is not null,b.org_domain_parent in (:#{#condition.org1}),1=1)" + " and if(:#{#condition.org2} is not null,b.org_domain_parent2 in (:#{#condition.org2}),1=1)" + " and if(:#{#condition.org3} is not null,b.org_domain_parent3 in (:#{#condition.org3}),1=1)" + - " group by b.id order by a.sys_create_time DESC") + " group by b.id order by a.sys_create_time DESC", + countQuery = "select count(*)" + + " from boe_cases_recommend_push_record a LEFT JOIN boe_cases b on a.case_id = b.id and b.deleted=0 " + + " where a.deleted=0 and a.push_user_id= :#{#condition.userId}" + + " and if(:#{#condition.keyWord} is not null,b.title like CONCAT('%',:#{#condition.keyWord},'%')" + + " or b.author_name like CONCAT('%',:#{#condition.keyWord},'%')" + + " or b.keyword1 like CONCAT('%',:#{#condition.keyWord},'%')" + + " or b.keyword2 like CONCAT('%',:#{#condition.keyWord},'%')" + + " or b.keyword3 like CONCAT('%',:#{#condition.keyWord},'%')" + + " or b.keyword4 like CONCAT('%',:#{#condition.keyWord},'%')" + + " or b.keyword5 like CONCAT('%',:#{#condition.keyWord},'%'),1=1)" + + " and if(:#{#condition.years} is not null ,YEAR(b.sys_create_time) in (:#{#condition.years}),1=1 )" + + " and if(:#{#condition.majorType} is not null ,b.major_type = :#{#condition.majorType},1=1) " + + " and if(:#{#condition.org1} is not null,b.org_domain_parent in (:#{#condition.org1}),1=1)" + + " and if(:#{#condition.org2} is not null,b.org_domain_parent2 in (:#{#condition.org2}),1=1)" + + " and if(:#{#condition.org3} is not null,b.org_domain_parent3 in (:#{#condition.org3}),1=1)" + + " group by b.id") Page queryList(Pageable pageable, @Param("condition") CasePageVo casePage); } 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 index 66e342c5..ae87891d 100644 --- 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 @@ -15,7 +15,7 @@ import javax.persistence.Table; @Data @Entity @EqualsAndHashCode(callSuper = false) -@Table(name = SysConstant.TABLE_PRE + "cases_recommend_launch_import") +@Table(name = SysConstant.TABLE_PRE + "cases_recommend_launch_import_data") public class CasesRecommendLaunchImportData extends BaseEntity { /** From 555039fbcfac446c2648af38a30575b86b1a68f9 Mon Sep 17 00:00:00 2001 From: Boolean Date: Fri, 23 Jun 2023 12:15:18 +0800 Subject: [PATCH 25/35] =?UTF-8?q?=E7=BB=84=E7=BB=87=E9=A2=86=E5=9F=9F?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/boecase/api/CasesApi.java | 10 +++--- .../xboe/module/boecase/dto/CasePageVo.java | 6 ++-- .../xboe/module/boecase/dto/OrgDomainDto.java | 12 +++---- .../service/impl/CasesServiceImpl.java | 32 +++++++++++++++++++ 4 files changed, 46 insertions(+), 14 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index e7d7160d..6e813b6c 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -1,5 +1,6 @@ package com.xboe.module.boecase.api; +import cn.hutool.core.collection.CollUtil; import com.xboe.common.PageList; import com.xboe.common.Pagination; import com.xboe.common.utils.StringUtil; @@ -105,9 +106,9 @@ public class CasesApi extends ApiBaseController { } @PostMapping("/queryListV2") - public JsonResponse> queryCaseBreV2(@Validated CasePageVo req){ + public JsonResponse> queryCaseBreV2(@Validated @RequestBody CasePageVo req){ String type = req.getType(); - PageList views = null; + PageList views; if (type.equals("recommend")) { views = casesService.queryRecommendPageCasesV2(req); } else { @@ -115,8 +116,9 @@ public class CasesApi extends ApiBaseController { } if(views!=null){ - if(views.getList()!=null && !views.getList().isEmpty()){ - for (Cases c:views.getList()) { + List cases = views.getList(); + if(CollUtil.isNotEmpty(cases)){ + for (Cases c: cases) { StringBuffer stringBuffer = new StringBuffer(); List caseId = casesMajorTypeDao.findList(FieldFilters.eq("caseId", c.getId())); if(caseId!=null && !caseId.isEmpty()){ diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java index 5e2024fe..085919c5 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java @@ -62,21 +62,21 @@ public class CasePageVo extends PageDto { public List getOrg1() { if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) { - return orgDomainDtos.stream().map(OrgDomainDto::getOrgDomainParent).filter(StrUtil::isNotBlank).collect(Collectors.toList()); + return orgDomainDtos.stream().map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList()); } return null; } public List getOrg2() { if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) { - return orgDomainDtos.stream().map(OrgDomainDto::getOrgDomainParent2).filter(StrUtil::isNotBlank).collect(Collectors.toList()); + return orgDomainDtos.stream().flatMap(it->it.getChildren().stream()).map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList()); } return null; } public List getOrg3() { if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) { - return orgDomainDtos.stream().map(OrgDomainDto::getOrgDomainParent3).filter(StrUtil::isNotBlank).collect(Collectors.toList()); + return orgDomainDtos.stream().flatMap(it->it.getChildren().stream().flatMap(i->i.getChildren().stream())).map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList()); } return null; } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/OrgDomainDto.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/OrgDomainDto.java index ee7f58c5..1036b47e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/OrgDomainDto.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/OrgDomainDto.java @@ -2,19 +2,17 @@ package com.xboe.module.boecase.dto; import lombok.Data; +import java.util.List; + @Data public class OrgDomainDto { /** * 组织领域1级 */ - private String orgDomainParent; + private String parent; /** - * 组织领域2级 + * 组织领域子级 */ - private String orgDomainParent2; - /** - * 组织领域3级 - */ - private String orgDomainParent3; + private List children; } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index b1893848..2308008e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -219,6 +219,38 @@ public class CasesServiceImpl implements ICasesService { return page; } } + List orgDomainDtos = caseVo.getOrgDomainDtos(); + IFieldFilter orgDomain = null; + if(CollUtil.isNotEmpty(orgDomainDtos)){ + for (int i = 0; i < orgDomainDtos.size(); i++) { + OrgDomainDto domainDto = orgDomainDtos.get(i); + String orgDomainParent = domainDto.getParent(); + IFieldFilter itemFilter = FieldFilters.eq("orgDomainParent",orgDomainParent); + List orgDomainParent2 = domainDto.getChildren(); + if (CollUtil.isNotEmpty(orgDomainParent2)) { + List seconds = orgDomainParent2.stream().map(OrgDomainDto::getParent).collect(Collectors.toList()); + IFieldFilter orgDomainParentFilter = FieldFilters.in("orgDomainParent2", seconds); + itemFilter = FieldFilters.and(itemFilter, orgDomainParentFilter); + } + for (OrgDomainDto orgDomainDto : orgDomainParent2) { + List orgDomainParent3 = orgDomainDto.getChildren(); + if (CollUtil.isNotEmpty(orgDomainParent3)) { + List thirds = orgDomainParent3.stream().map(OrgDomainDto::getParent).collect(Collectors.toList()); + IFieldFilter orgDomainParent3Filter = FieldFilters.eq("orgDomainParent3", thirds); + itemFilter = FieldFilters.and(itemFilter, orgDomainParent3Filter); + } + } + + if (i==0) { + orgDomain = itemFilter; + } else { + orgDomain = FieldFilters.or(orgDomain, itemFilter); + } + } + } + if (Objects.nonNull(orgDomain)) { + filters.add(orgDomain); + } if(StringUtils.isNotBlank(caseVo.getCaseType())){ filters.add(FieldFilters.eq("caseType",caseVo.getCaseType())); From c77f32b11e6cd5e0486eeb9ced920270d835d8ee Mon Sep 17 00:00:00 2001 From: wangwenchao Date: Fri, 23 Jun 2023 16:59:57 +0800 Subject: [PATCH 26/35] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E6=A1=88=E4=BE=8B?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E8=A1=A8=E4=BF=A1=E6=81=AF=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98=EF=BC=9B2.=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=A1=88=E4=BE=8B=E6=8E=A8=E8=8D=90=E8=A1=A8=E6=92=A4?= =?UTF-8?q?=E5=9B=9E=E6=93=8D=E4=BD=9C=E4=B8=AD=E6=9C=AA=E5=AF=B9=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E4=B8=AD=E7=9A=84=E8=AE=B0=E5=BD=95=E8=B5=B7=E4=BD=9C?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B3.=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=A1=88=E4=BE=8B=E6=8E=A8=E8=8D=90=E8=A1=A8=E4=B8=AD?= =?UTF-8?q?=E5=A4=9A=E4=BD=99=E7=9A=84=E6=8E=A8=E8=8D=90=E7=BB=84=E7=BB=87?= =?UTF-8?q?ID=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/module/boecase/api/CasesRecommendApi.java | 6 +++--- .../java/com/xboe/module/boecase/entity/CasesRecommend.java | 3 --- .../boecase/service/impl/CasesRecommendServiceImpl.java | 5 ++++- 3 files changed, 7 insertions(+), 7 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 0d26a02a..a36e15ce 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 @@ -197,7 +197,7 @@ public class CasesRecommendApi extends ApiBaseController { }).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(rows)) { // 通过工具类创建writer - try (ExcelWriter writer = ExcelUtil.getWriter(true); + try (ExcelWriter writer = ExcelUtil.getWriter(); // 输出流 ServletOutputStream servletOutputStream = response.getOutputStream() ) { @@ -212,9 +212,9 @@ public class CasesRecommendApi extends ApiBaseController { writer.setColumnWidth(5, 20); writer.setColumnWidth(6, 20); // 此处的response.setContentType 和教程里的不同 - response.setContentType("application/octet-stream"); + response.setContentType("application/vnd.ms-excel;charset=utf-8"); // filename就是表格的名字,这个无所谓,反正前端还会重命名 - response.setHeader("Content-Disposition", "attachment;filename=推荐信息.xlsx"); + response.setHeader("Content-Disposition", "attachment;filename=推荐信息.xls"); writer.flush(servletOutputStream, true); } catch (Exception e) { 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 index bc4816e1..7d536917 100644 --- 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 @@ -46,9 +46,6 @@ public class CasesRecommend extends BaseEntity { /**查看率*/ @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) 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 69a6715b..a3fa701f 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 @@ -61,7 +61,10 @@ public class CasesRecommendServiceImpl implements ICasesRecommendService { public void rePushOrWithdraw(CasesRecommendPushVo casesRecommendPushVo) { // 查询 CasesRecommend db = casesRecommendDao.get(casesRecommendPushVo.getCasesRecommendId()); - if (CasesPushStatusEnum.PUSH_SUCCESS.getStatus().equals(db.getPushProgress())){ + if (CasesPushStatusEnum.PUSH_SUCCESS.getStatus().equals(db.getPushProgress()) + || CasesPushStatusEnum.WAIT_PUSH.getStatus().equals(db.getPushProgress()) + || CasesPushStatusEnum.PUSH_ING.getStatus().equals(db.getPushProgress()) + ){ // 当为推送成功时为 iCasesRecommendPushRecordService.rePushOrWithdraw(true, casesRecommendPushVo.getCasesRecommendId()); db.setPushProgress(CasesPushStatusEnum.PUSH_REVOKE.getStatus()); From 989f8ec11382abfcbe582918050d4a34dd06b3da Mon Sep 17 00:00:00 2001 From: Boolean Date: Fri, 23 Jun 2023 17:20:16 +0800 Subject: [PATCH 27/35] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/boecase/api/CasesApi.java | 1 + .../com/xboe/module/boecase/entity/Cases.java | 3 + .../entity/CasesRecommendPushRecord.java | 6 + .../service/impl/CasesServiceImpl.java | 137 +++++++++++------- 4 files changed, 96 insertions(+), 51 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index 6e813b6c..edbfb3f1 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -109,6 +109,7 @@ public class CasesApi extends ApiBaseController { public JsonResponse> queryCaseBreV2(@Validated @RequestBody CasePageVo req){ String type = req.getType(); PageList views; + req.setUserId(getCurrent().getAccountId()); if (type.equals("recommend")) { views = casesService.queryRecommendPageCasesV2(req); } else { diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java index 05039700..3c1e367b 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java @@ -261,6 +261,9 @@ public class Cases extends BaseEntity { @Transient private List majorIds; + @Transient + private String recommendOrgName; + public Cases() { 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 index 8761d514..49b83179 100644 --- 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 @@ -91,5 +91,11 @@ public class CasesRecommendPushRecord extends BaseEntity { @Column(name = "remark") private String remark; + public CasesRecommendPushRecord() { + } + public CasesRecommendPushRecord(String recommendId,String caseId) { + this.recommendId = recommendId; + this.caseId = caseId; + } } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index 2308008e..2b70a315 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -4,17 +4,17 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.text.split.SplitIter; import cn.hutool.core.util.StrUtil; import com.xboe.common.OrderCondition; +import com.xboe.common.OrderDirection; import com.xboe.common.PageList; import com.xboe.common.utils.IDGenerator; import com.xboe.common.utils.StringUtil; import com.xboe.core.orm.*; -import com.xboe.module.boecase.dao.CasesDao; -import com.xboe.module.boecase.dao.CasesMajorTypeDao; -import com.xboe.module.boecase.dao.CasesMajorTypeRepoDao; -import com.xboe.module.boecase.dao.CasesRecordDao; +import com.xboe.module.boecase.dao.*; import com.xboe.module.boecase.dto.*; import com.xboe.module.boecase.entity.Cases; import com.xboe.module.boecase.entity.CasesMajorType; +import com.xboe.module.boecase.entity.CasesRecommend; +import com.xboe.module.boecase.entity.CasesRecommendPushRecord; import com.xboe.module.boecase.service.ICasesService; import com.xboe.module.dict.dao.SysDictionaryDao; import com.xboe.module.dict.entity.DictItem; @@ -22,6 +22,7 @@ import com.xboe.orm.CustomFieldInFilter; import com.xboe.school.vo.CasesVo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.stereotype.Service; @@ -31,10 +32,8 @@ import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.transaction.Transactional; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; @Slf4j @@ -57,8 +56,11 @@ public class CasesServiceImpl implements ICasesService { @Resource private CasesMajorTypeRepoDao casesMajorTypeRepoDao; - @PersistenceContext - private EntityManager entityManager; + @Autowired + private CasesRecommendPushRecordDao casesRecommendPushRecordDao; + + @Autowired + private CasesRecommendDao casesRecommendDao; /** * 案例分页查询,用于门户的查询 @@ -178,11 +180,11 @@ public class CasesServiceImpl implements ICasesService { public PageList queryPageCasesV2(CasePageVo caseVo) { String keyword = caseVo.getKeyWord(); - QueryBuilder query=QueryBuilder.from(Cases.class); - PageList page=null; + QueryBuilder query = QueryBuilder.from(Cases.class); + PageList page = null; List filters = new ArrayList<>(); - filters.add(FieldFilters.eq("deleted",false)); - List likes=new ArrayList(); + filters.add(FieldFilters.eq("deleted", false)); + List likes = new ArrayList(); likes.add(FieldFilters.like("title", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); likes.add(FieldFilters.like("authorName", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); likes.add(FieldFilters.like("keyword1", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); @@ -195,37 +197,37 @@ public class CasesServiceImpl implements ICasesService { filters.add(FieldFilters.notIn("id", notInIds)); } - if(StringUtil.isNotBlank(caseVo.getKeyWord())) { + if (StringUtil.isNotBlank(caseVo.getKeyWord())) { filters.add(FieldFilters.or(likes)); } //创建时间过滤 List years = caseVo.getYears(); if (CollUtil.isNotEmpty(years)) { - filters.add(new CustomFieldInFilter("YEAR(sysCreateTime)","sysCreateTime",years)); + filters.add(new CustomFieldInFilter("YEAR(sysCreateTime)", "sysCreateTime", years)); } //增加只是查询有附件的 filters.add(FieldFilters.isNotNull("filePath")); - filters.add(FieldFilters.ne("filePath","")); + filters.add(FieldFilters.ne("filePath", "")); String majorType = caseVo.getMajorType(); - if(StringUtil.isNotBlank(majorType)){ + if (StringUtil.isNotBlank(majorType)) { List casesTypes = casesMajorTypeRepoDao.findCasesBy(StrUtil.split(majorType, ",")); - if(CollUtil.isNotEmpty(casesTypes)){ + if (CollUtil.isNotEmpty(casesTypes)) { List caseIds = casesTypes.stream().map(CasesMajorType::getCaseId).collect(Collectors.toList()); - query.addFilter(FieldFilters.in("id",caseIds)); - }else { + query.addFilter(FieldFilters.in("id", caseIds)); + } else { return page; } } List orgDomainDtos = caseVo.getOrgDomainDtos(); IFieldFilter orgDomain = null; - if(CollUtil.isNotEmpty(orgDomainDtos)){ + if (CollUtil.isNotEmpty(orgDomainDtos)) { for (int i = 0; i < orgDomainDtos.size(); i++) { OrgDomainDto domainDto = orgDomainDtos.get(i); String orgDomainParent = domainDto.getParent(); - IFieldFilter itemFilter = FieldFilters.eq("orgDomainParent",orgDomainParent); + IFieldFilter itemFilter = FieldFilters.eq("orgDomainParent", orgDomainParent); List orgDomainParent2 = domainDto.getChildren(); if (CollUtil.isNotEmpty(orgDomainParent2)) { List seconds = orgDomainParent2.stream().map(OrgDomainDto::getParent).collect(Collectors.toList()); @@ -241,7 +243,7 @@ public class CasesServiceImpl implements ICasesService { } } - if (i==0) { + if (i == 0) { orgDomain = itemFilter; } else { orgDomain = FieldFilters.or(orgDomain, itemFilter); @@ -252,33 +254,26 @@ public class CasesServiceImpl implements ICasesService { filters.add(orgDomain); } - if(StringUtils.isNotBlank(caseVo.getCaseType())){ - filters.add(FieldFilters.eq("caseType",caseVo.getCaseType())); + if (StringUtils.isNotBlank(caseVo.getCaseType())) { + filters.add(FieldFilters.eq("caseType", caseVo.getCaseType())); } - if(caseVo.getBreCommend()!=null){ - if(!caseVo.getBreCommend()){ - filters.add(FieldFilters.eq("breCommend",0)); - }else { - filters.add(FieldFilters.eq("breCommend", 1)); - } - } - if(caseVo.getIsTop()!=null && caseVo.getIsTop()) { + if (caseVo.getIsTop() != null && caseVo.getIsTop()) { query.addOrder(OrderCondition.desc("isTop")); query.addOrder(OrderCondition.desc("topTime")); } //如果选择的是优秀案例,那么这里就按优秀案例的试试排序 - if(caseVo.getExcellent()!=null){ - filters.add(FieldFilters.eq("excellent",caseVo.getExcellent())); + if (caseVo.getExcellent() != null) { + filters.add(FieldFilters.eq("excellent", caseVo.getExcellent())); } - OrderCondition order=null; - if(StringUtils.isNotBlank(caseVo.getOrderField())) { - if(caseVo.getOrderAsc()==null || caseVo.getOrderAsc()) { - order=OrderCondition.asc(caseVo.getOrderField()); - }else { - order=OrderCondition.desc(caseVo.getOrderField()); + OrderCondition order = null; + if (StringUtils.isNotBlank(caseVo.getOrderField())) { + if (caseVo.getOrderAsc() == null || caseVo.getOrderAsc()) { + order = OrderCondition.asc(caseVo.getOrderField()); + } else { + order = OrderCondition.desc(caseVo.getOrderField()); } - }else { - order=OrderCondition.desc("sysCreateTime"); + } else { + order = OrderCondition.desc("sysCreateTime"); } query.addFilters(filters); @@ -287,19 +282,59 @@ public class CasesServiceImpl implements ICasesService { query.setPageIndex(caseVo.getPageIndex()); query.setPageSize(caseVo.getPageSize()); page = casesDao.findPage(query.builder()); + List list = page.getList(); + if (CollUtil.isNotEmpty(list)) { + List caseIds = list.stream().map(Cases::getId).collect(Collectors.toList()); + QueryBuilder recommendCasesQuery = QueryBuilder.from(CasesRecommendPushRecord.class); + recommendCasesQuery.addField("new CasesRecommendPushRecord(recommendId,caseId)"); + List subFilters = new ArrayList<>(); + subFilters.add(FieldFilters.eq("pushUserId", caseVo.getUserId())); + subFilters.add(FieldFilters.in("caseId", caseIds)); + subFilters.add(FieldFilters.eq("pushStatus", 4)); + subFilters.add(FieldFilters.eq("deleted", Boolean.FALSE)); + + QueryBuilder queryBuilder = recommendCasesQuery.addFilters(subFilters) + .addOrder("sysCreateTime", OrderDirection.DESC) + .addGroupBy("recommendId"); + List pushRecords = casesRecommendPushRecordDao.findList(queryBuilder.builder()); + if (CollUtil.isNotEmpty(pushRecords)) { + List rIds = pushRecords.stream().map(CasesRecommendPushRecord::getRecommendId).collect(Collectors.toList()); + QueryBuilder builder = QueryBuilder.from(CasesRecommend.class); + builder.addField("new CasesRecommend(id,recommendOrgName)"); + List recommendFilters = new ArrayList<>(); + recommendFilters.add(FieldFilters.eq("deleted", Boolean.FALSE)); + recommendFilters.add(FieldFilters.in("id", rIds)); + builder.addFilters(recommendFilters); + List recommands = casesRecommendDao.findList(builder.builder()); + if (CollUtil.isNotEmpty(recommands)) { + Map collect = recommands.stream().collect(Collectors.toMap(k -> k.getId(), v -> v.getRecommendOrgName())); + list.forEach(it -> { + CasesRecommendPushRecord one = CollUtil.findOne(pushRecords, (a) -> StrUtil.equals(a.getCaseId(), it.getId())); + if (Objects.nonNull(one)) { + String recommendOrgName = collect.get(one.getRecommendId()); + it.setBreCommend(1); + it.setRecommendOrgName(recommendOrgName); + } else { + it.setBreCommend(0); + } + }); + } + } + + } return page; } @Override public PageList queryRecommendPageCasesV2(CasePageVo caseVo) { - PageRequest pageRequest = PageRequest.of(caseVo.getPageIndex(), caseVo.getPageSize()); - Page cases = casesRecordDao.queryList(pageRequest, caseVo); - PageList pageList = new PageList<>(); - pageList.setCount((int) cases.getTotalElements()); - pageList.setPageSize(cases.getSize()); - pageList.setList(cases.getContent()); - return pageList; + PageRequest pageRequest = PageRequest.of(caseVo.getPageIndex(), caseVo.getPageSize()); + Page cases = casesRecordDao.queryList(pageRequest, caseVo); + PageList pageList = new PageList<>(); + pageList.setCount((int) cases.getTotalElements()); + pageList.setPageSize(cases.getSize()); + pageList.setList(cases.getContent()); + return pageList; } /** From 9832a70982fafaa0334f32696db200814b3f43e6 Mon Sep 17 00:00:00 2001 From: Boolean Date: Fri, 23 Jun 2023 17:34:04 +0800 Subject: [PATCH 28/35] =?UTF-8?q?=E6=8E=A8=E8=8D=90=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=B8=BA=E7=A9=BA=E9=97=AE=E9=A2=98=E8=A7=A3?= =?UTF-8?q?=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xboe/module/boecase/service/impl/CasesServiceImplTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/servers/boe-server-all/src/test/java/com/xboe/module/boecase/service/impl/CasesServiceImplTest.java b/servers/boe-server-all/src/test/java/com/xboe/module/boecase/service/impl/CasesServiceImplTest.java index 83a6610e..099018d4 100644 --- a/servers/boe-server-all/src/test/java/com/xboe/module/boecase/service/impl/CasesServiceImplTest.java +++ b/servers/boe-server-all/src/test/java/com/xboe/module/boecase/service/impl/CasesServiceImplTest.java @@ -25,6 +25,7 @@ class CasesServiceImplTest { // pageVo.setYears(ListUtil.toList(2023)); pageVo.setPageIndex(1); pageVo.setPageSize(10); + pageVo.setUserId("199"); pageVo.setExcellent(Boolean.TRUE); PageList casesV2 = casesService.queryPageCasesV2(pageVo); System.out.println(casesV2); From 6cfa75fdb47841660e417227da412beec220253c Mon Sep 17 00:00:00 2001 From: Guava Date: Fri, 23 Jun 2023 17:38:17 +0800 Subject: [PATCH 29/35] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/data/dto/ImportData.java | 19 +++++++++++++++++++ .../module/boecase/api/CasesRecommendApi.java | 7 ++++--- .../ICasesRecommendLaunchImportService.java | 3 ++- ...CasesRecommendLaunchImportServiceImpl.java | 12 +++++++++--- 4 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java b/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java new file mode 100644 index 00000000..ff68df14 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java @@ -0,0 +1,19 @@ +package com.xboe.data.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @author : civism + * @version 1.0 + * @date 2023/6/23 17:32 + */ +@Data +public class ImportData { + + private String importId; + + + private List caseIdList; +} 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 0d26a02a..e8027cc8 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 @@ -10,6 +10,7 @@ import cn.hutool.poi.excel.ExcelWriter; import com.xboe.common.PageList; import com.xboe.core.JsonResponse; import com.xboe.core.api.ApiBaseController; +import com.xboe.data.dto.ImportData; import com.xboe.enums.CasesRecommendLaunchTypeEnum; import com.xboe.module.boecase.entity.CasesRecommend; import com.xboe.module.boecase.entity.CasesRecommendLaunchImport; @@ -108,11 +109,11 @@ public class CasesRecommendApi extends ApiBaseController { * @throws Exception */ @PostMapping("/import") - public JsonResponse excelImport(@RequestParam("file") MultipartFile file) throws Exception { + public JsonResponse excelImport(@RequestParam("file") MultipartFile file) throws Exception { ExcelReader reader = ExcelUtil.getReader(file.getInputStream()); List> read = reader.read(); - String s = iCasesRecommendLaunchImportService.importData(read); - return success(s); + ImportData importData = iCasesRecommendLaunchImportService.importData(read); + return success(importData); } 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 9348c66d..5ac01aab 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,7 @@ package com.xboe.module.boecase.service; +import com.xboe.data.dto.ImportData; import com.xboe.module.boecase.entity.CasesRecommendLaunchImport; import java.util.List; @@ -13,7 +14,7 @@ public interface ICasesRecommendLaunchImportService { * @param dataList * @return */ - String importData(List> dataList); + ImportData importData(List> dataList); /** 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 653a0257..b2555caa 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 @@ -4,6 +4,7 @@ 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.data.dto.ImportData; import com.xboe.module.boecase.dao.CasesDao; import com.xboe.module.boecase.dao.CasesRecommendLaunchImportDao; import com.xboe.module.boecase.dao.CasesRecommendLaunchImportDataDao; @@ -15,6 +16,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -32,7 +34,7 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau private CasesDao casesDao; @Override - public String importData(List> dataList) { + public ImportData importData(List> dataList) { if (CollectionUtil.isEmpty(dataList) || dataList.size() < 1) { throw new RuntimeException("导入数据为空"); } @@ -40,7 +42,9 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau int successNum = 0; int failNum = 0; String importId = IdUtil.getSnowflakeNextId() + ""; - + ImportData importData = new ImportData(); + importData.setImportId(importId); + List caseIds = new ArrayList<>(); for (int i = 1; i < dataList.size(); i++) { String caseTitle = dataList.get(i).get(0).toString(); CasesRecommendLaunchImportData casesRecommendLaunchImportData = new CasesRecommendLaunchImportData(); @@ -51,12 +55,14 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau failNum++; casesRecommendLaunchImportData.setStatus(2); } else { + caseIds.add(cases.getId()); casesRecommendLaunchImportData.setStatus(1); casesRecommendLaunchImportData.setCaseTitle(caseTitle); } casesRecommendLaunchImportDataDao.save(casesRecommendLaunchImportData); successNum++; } + importData.setCaseIdList(caseIds); CasesRecommendLaunchImport casesRecommendLaunchImport = new CasesRecommendLaunchImport(); casesRecommendLaunchImport.setFailNum(failNum); casesRecommendLaunchImport.setImportId(importId); @@ -64,7 +70,7 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau casesRecommendLaunchImport.setTotalNum(totalNum); casesRecommendLaunchImport.setProcessStatus(1); casesRecommendLaunchImportDao.save(casesRecommendLaunchImport); - return importId; + return importData; } From 95d3c05ccfef9949e69c8b51cbbd27d3eeae4fa0 Mon Sep 17 00:00:00 2001 From: Guava Date: Fri, 23 Jun 2023 17:40:28 +0800 Subject: [PATCH 30/35] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CasesRecommendLaunchImportServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 b2555caa..d36aade1 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 @@ -86,7 +86,7 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau @Override public CasesRecommendLaunchImport getByImportId(String importId) { - return casesRecommendLaunchImportDao.findOne(FieldFilters.eq("import_id", importId)); + return casesRecommendLaunchImportDao.findOne(FieldFilters.eq("importId", importId)); } } From f57e7deb49756eca7077e4b69fac370849126b99 Mon Sep 17 00:00:00 2001 From: Guava Date: Fri, 23 Jun 2023 18:58:18 +0800 Subject: [PATCH 31/35] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=89=8D10=E6=A0=87=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/data/dto/ImportData.java | 2 ++ .../impl/CasesRecommendLaunchImportServiceImpl.java | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java b/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java index ff68df14..04193074 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java +++ b/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java @@ -16,4 +16,6 @@ public class ImportData { private List caseIdList; + + private List caseTitleList; } 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 d36aade1..3ffc6107 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 @@ -45,8 +45,13 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau ImportData importData = new ImportData(); importData.setImportId(importId); List caseIds = new ArrayList<>(); + + List caseTitleList = new ArrayList<>(); for (int i = 1; i < dataList.size(); i++) { String caseTitle = dataList.get(i).get(0).toString(); + if (caseTitleList.size() < 10) { + caseTitleList.add(caseTitle); + } CasesRecommendLaunchImportData casesRecommendLaunchImportData = new CasesRecommendLaunchImportData(); casesRecommendLaunchImportData.setImportId(importId); casesRecommendLaunchImportData.setCaseTitle(caseTitle); @@ -58,9 +63,9 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau caseIds.add(cases.getId()); casesRecommendLaunchImportData.setStatus(1); casesRecommendLaunchImportData.setCaseTitle(caseTitle); + successNum++; } casesRecommendLaunchImportDataDao.save(casesRecommendLaunchImportData); - successNum++; } importData.setCaseIdList(caseIds); CasesRecommendLaunchImport casesRecommendLaunchImport = new CasesRecommendLaunchImport(); @@ -77,7 +82,8 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau @Override public List downFailData(String importId) { - List dataList = casesRecommendLaunchImportDataDao.findList(FieldFilters.eq("importId", importId)); + List dataList = casesRecommendLaunchImportDataDao.findList(FieldFilters.eq("importId", importId) + , FieldFilters.eq("status", 2)); if (CollectionUtil.isEmpty(dataList)) { return null; } From 25dfca07880cd4cdf2b8c1b24a9fd0a72b93333b Mon Sep 17 00:00:00 2001 From: Guava Date: Fri, 23 Jun 2023 19:00:07 +0800 Subject: [PATCH 32/35] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=89=8D10=E6=A0=87=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CasesRecommendLaunchImportServiceImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 3ffc6107..176f8683 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 @@ -49,9 +49,7 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau List caseTitleList = new ArrayList<>(); for (int i = 1; i < dataList.size(); i++) { String caseTitle = dataList.get(i).get(0).toString(); - if (caseTitleList.size() < 10) { - caseTitleList.add(caseTitle); - } + CasesRecommendLaunchImportData casesRecommendLaunchImportData = new CasesRecommendLaunchImportData(); casesRecommendLaunchImportData.setImportId(importId); casesRecommendLaunchImportData.setCaseTitle(caseTitle); @@ -60,6 +58,9 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau failNum++; casesRecommendLaunchImportData.setStatus(2); } else { + if (caseTitleList.size() < 10) { + caseTitleList.add(caseTitle); + } caseIds.add(cases.getId()); casesRecommendLaunchImportData.setStatus(1); casesRecommendLaunchImportData.setCaseTitle(caseTitle); From 832defe20139cbff668f44393bda559bcf3999bc Mon Sep 17 00:00:00 2001 From: Guava Date: Fri, 23 Jun 2023 19:03:43 +0800 Subject: [PATCH 33/35] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=89=8D10=E6=A0=87=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CasesRecommendLaunchImportServiceImpl.java | 1 + 1 file changed, 1 insertion(+) 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 176f8683..bc663e1e 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 @@ -68,6 +68,7 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau } casesRecommendLaunchImportDataDao.save(casesRecommendLaunchImportData); } + importData.setCaseTitleList(caseTitleList); importData.setCaseIdList(caseIds); CasesRecommendLaunchImport casesRecommendLaunchImport = new CasesRecommendLaunchImport(); casesRecommendLaunchImport.setFailNum(failNum); From 81dfbfe747c3c41e7c8acec40ac045d0a2396840 Mon Sep 17 00:00:00 2001 From: Guava Date: Fri, 23 Jun 2023 19:12:46 +0800 Subject: [PATCH 34/35] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/xboe/data/dto/ImportData.java | 16 +++++++++++++++- .../CasesRecommendLaunchImportServiceImpl.java | 4 ++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java b/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java index 04193074..19af8e90 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java +++ b/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java @@ -1,6 +1,8 @@ package com.xboe.data.dto; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.List; @@ -17,5 +19,17 @@ public class ImportData { private List caseIdList; - private List caseTitleList; + + private List caseTitleList; + + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class CasesTitle { + + private String caseId; + + private String caseTitle; + } } 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 bc663e1e..047c599f 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 @@ -46,7 +46,7 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau importData.setImportId(importId); List caseIds = new ArrayList<>(); - List caseTitleList = new ArrayList<>(); + List caseTitleList = new ArrayList<>(); for (int i = 1; i < dataList.size(); i++) { String caseTitle = dataList.get(i).get(0).toString(); @@ -59,7 +59,7 @@ public class CasesRecommendLaunchImportServiceImpl implements ICasesRecommendLau casesRecommendLaunchImportData.setStatus(2); } else { if (caseTitleList.size() < 10) { - caseTitleList.add(caseTitle); + caseTitleList.add(new ImportData.CasesTitle(cases.getId(), cases.getTitle())); } caseIds.add(cases.getId()); casesRecommendLaunchImportData.setStatus(1); From 7ac9d2b4e5e48d43ab81a82eded12d5884506847 Mon Sep 17 00:00:00 2001 From: Boolean Date: Sat, 24 Jun 2023 11:55:28 +0800 Subject: [PATCH 35/35] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=A1=88=E4=BE=8B?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/module/boecase/entity/Cases.java | 3 +++ .../com/xboe/module/boecase/service/impl/CasesServiceImpl.java | 2 ++ 2 files changed, 5 insertions(+) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java index 3c1e367b..df6ef6e0 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java @@ -261,6 +261,9 @@ public class Cases extends BaseEntity { @Transient private List majorIds; + /** + * 推荐组织 + */ @Transient private String recommendOrgName; diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index 2b70a315..e00ed157 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -697,6 +697,8 @@ public class CasesServiceImpl implements ICasesService { cases.setPraises(0); cases.setShares(0); cases.setFavorites(0); + cases.setCites(0); + cases.setRecommends(0); StringBuffer stringBuffer = new StringBuffer(); List majorIds = cases.getMajorIds(); for (String s : majorIds) {