From a2dcde864ff049888662cd2565e4df95ba1bb6bd Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Mon, 26 Jun 2023 22:21:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/vo/EnterpriseUserSingleInfoVO.java | 21 ++++++---- .../cool/store/service/WorkFlowService.java | 21 ++++++++++ .../service/impl/WorkFlowServiceImpl.java | 39 +++++++++++++++++++ .../impl/workflow/IntentWorkFlowService.java | 28 +++++++++++++ .../workflow/InterviewWorkFlowService.java | 28 +++++++++++++ .../workflow/ReservationWorkFlowService.java | 28 +++++++++++++ .../impl/workflow/WorkFlowBaseService.java | 25 ++++++++++++ 7 files changed, 183 insertions(+), 7 deletions(-) create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/WorkFlowService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/WorkFlowServiceImpl.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/IntentWorkFlowService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/InterviewWorkFlowService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/ReservationWorkFlowService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/WorkFlowBaseService.java diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserSingleInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserSingleInfoVO.java index 7c3eb8b56..c81cc4c40 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserSingleInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserSingleInfoVO.java @@ -5,8 +5,9 @@ import com.google.common.collect.Lists; import lombok.Data; import org.apache.commons.collections4.CollectionUtils; -import java.util.ArrayList; -import java.util.List; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @Author suzhuhong @@ -26,13 +27,19 @@ public class EnterpriseUserSingleInfoVO { if(CollectionUtils.isEmpty(userList)){ return Lists.newArrayList(); } + Map userIdMap = new HashMap<>(); List resultList = new ArrayList<>(); for (EnterpriseUserDO enterpriseUser : userList) { - EnterpriseUserSingleInfoVO result = new EnterpriseUserSingleInfoVO(); - result.setUserId(enterpriseUser.getUserId()); - result.setUserName(enterpriseUser.getName()); - result.setMobile(enterpriseUser.getMobile()); - resultList.add(result); + String userId = enterpriseUser.getUserId(); + boolean isContains = userIdMap.containsKey(userId); + if(isContains){ + EnterpriseUserSingleInfoVO result = new EnterpriseUserSingleInfoVO(); + result.setUserId(userId); + result.setUserName(enterpriseUser.getName()); + result.setMobile(enterpriseUser.getMobile()); + resultList.add(result); + userIdMap.put(userId, userId); + } } return resultList; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/WorkFlowService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/WorkFlowService.java new file mode 100644 index 000000000..69a9d038e --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/WorkFlowService.java @@ -0,0 +1,21 @@ +package com.cool.store.service; + +import com.cool.store.enums.WorkflowStageEnum; +import com.cool.store.request.CloseFollowRequest; + +/** + * @author zhangchenbiao + * @FileName: WorkFlowService + * @Description: 流程服务 + * @date 2023-06-26 21:14 + */ +public interface WorkFlowService { + + /** + * 结束流程 + * @param workflowStage + * @param request + */ + void endProcess(WorkflowStageEnum workflowStage, CloseFollowRequest request); + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WorkFlowServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WorkFlowServiceImpl.java new file mode 100644 index 000000000..378952eb6 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WorkFlowServiceImpl.java @@ -0,0 +1,39 @@ +package com.cool.store.service.impl; + +import com.cool.store.enums.WorkflowStageEnum; +import com.cool.store.request.CloseFollowRequest; +import com.cool.store.service.WorkFlowService; +import com.cool.store.service.impl.workflow.IntentWorkFlowService; +import com.cool.store.service.impl.workflow.InterviewWorkFlowService; +import com.cool.store.service.impl.workflow.ReservationWorkFlowService; +import com.cool.store.service.impl.workflow.WorkFlowBaseService; +import com.cool.store.utils.CommonContextUtil; +import org.springframework.stereotype.Service; + +/** + * @author zhangchenbiao + * @FileName: WorkFlowBaseService + * @Description: + * @date 2023-06-26 21:14 + */ +@Service +public class WorkFlowServiceImpl implements WorkFlowService{ + + private WorkFlowBaseService getWorkflowService(WorkflowStageEnum workflowStage){ + switch (workflowStage){ + case INTENT: + return CommonContextUtil.getBean(IntentWorkFlowService.class); + case RESERVATION: + return CommonContextUtil.getBean(ReservationWorkFlowService.class); + case INTERVIEW: + return CommonContextUtil.getBean(InterviewWorkFlowService.class); + default: + return null; + } + } + + @Override + public void endProcess(WorkflowStageEnum workflowStage, CloseFollowRequest request) { + getWorkflowService(workflowStage).endProcess(request); + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/IntentWorkFlowService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/IntentWorkFlowService.java new file mode 100644 index 000000000..12d874923 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/IntentWorkFlowService.java @@ -0,0 +1,28 @@ +package com.cool.store.service.impl.workflow; + +import com.cool.store.enums.WorkflowStageEnum; +import com.cool.store.request.CloseFollowRequest; +import com.cool.store.service.impl.WorkFlowServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @author zhangchenbiao + * @FileName: IntentWorkFlowService + * @Description: 意向申请 + * @date 2023-06-26 21:21 + */ +@Slf4j +@Service +public class IntentWorkFlowService extends WorkFlowBaseService { + + @Override + public WorkflowStageEnum getWorkFlowStage() { + return WorkflowStageEnum.INTENT; + } + + @Override + public void endProcess(CloseFollowRequest request) { + log.info("意向申请结束~"); + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/InterviewWorkFlowService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/InterviewWorkFlowService.java new file mode 100644 index 000000000..eb544ac4e --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/InterviewWorkFlowService.java @@ -0,0 +1,28 @@ +package com.cool.store.service.impl.workflow; + +import com.cool.store.enums.WorkflowStageEnum; +import com.cool.store.request.CloseFollowRequest; +import com.cool.store.service.impl.WorkFlowServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @author zhangchenbiao + * @FileName: InterviewWorkFlowService + * @Description:面试流程 + * @date 2023-06-26 21:24 + */ +@Slf4j +@Service +public class InterviewWorkFlowService extends WorkFlowBaseService { + + @Override + public WorkflowStageEnum getWorkFlowStage() { + return WorkflowStageEnum.RESERVATION; + } + + @Override + public void endProcess(CloseFollowRequest request) { + log.info("面试结束~"); + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/ReservationWorkFlowService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/ReservationWorkFlowService.java new file mode 100644 index 000000000..c4694dcee --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/ReservationWorkFlowService.java @@ -0,0 +1,28 @@ +package com.cool.store.service.impl.workflow; + +import com.cool.store.enums.WorkflowStageEnum; +import com.cool.store.request.CloseFollowRequest; +import com.cool.store.service.impl.WorkFlowServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @author zhangchenbiao + * @FileName: ReservationWorkFlowService + * @Description:预约面试 + * @date 2023-06-26 21:23 + */ +@Slf4j +@Service +public class ReservationWorkFlowService extends WorkFlowBaseService { + + @Override + public WorkflowStageEnum getWorkFlowStage() { + return WorkflowStageEnum.RESERVATION; + } + + @Override + public void endProcess(CloseFollowRequest request) { + log.info("预约面试结束~"); + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/WorkFlowBaseService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/WorkFlowBaseService.java new file mode 100644 index 000000000..6eb4b9685 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/WorkFlowBaseService.java @@ -0,0 +1,25 @@ +package com.cool.store.service.impl.workflow; + +import com.cool.store.enums.WorkflowStageEnum; +import com.cool.store.request.CloseFollowRequest; + +/** + * @author zhangchenbiao + * @FileName: WorkFlowBaseService + * @Description: + * @date 2023-06-26 22:15 + */ +public abstract class WorkFlowBaseService { + + /** + * 获取流程阶段 + * @return + */ + public abstract WorkflowStageEnum getWorkFlowStage(); + + /** + * 结束流程 + * @param request + */ + public abstract void endProcess(CloseFollowRequest request); +}