diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineInfoDAO.java index cd04cf14d..b4ff8afa5 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineInfoDAO.java @@ -82,13 +82,21 @@ public class LineInfoDAO { return null; } - public List listByInvestmentManager(String investmentManagerUserId,Integer subStageStatus) { + public List listByInvestmentManager(String investmentManagerUserId,List subStageStatus) { if (StringUtils.isBlank(investmentManagerUserId)){ return null; } List lineInfo = lineInfoMapper.listByInvestmentManager(investmentManagerUserId,subStageStatus); return lineInfo; } + public List listByInterview(String interviewId, Integer interviewType,List subStageStatus) { + if (StringUtils.isBlank(interviewId)){ + return null; + } + List lineInfo = lineInfoMapper.listByInterview(interviewId,interviewType,subStageStatus); + return lineInfo; + } + public List lineList(LineListRequest lineListRequest, String userId, List wantShopAreaIds) { List lineInfo = lineInfoMapper.lineList(lineListRequest,userId,wantShopAreaIds); return lineInfo; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineInterviewDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineInterviewDAO.java index 280a5d0ff..f9da90caf 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineInterviewDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineInterviewDAO.java @@ -8,10 +8,12 @@ import com.cool.store.request.LineInterviewPageRequest; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -36,7 +38,7 @@ public class LineInterviewDAO { public List getInterviewByLindIds(List lineIds, InterviewTypeEnum interviewType){ if(CollectionUtils.isEmpty(lineIds) || Objects.isNull(interviewType)){ - return null; + return Lists.newArrayList(); } return lineInterviewMapper.getInterviewByLindIds(lineIds, interviewType.getCode()); } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java index e1a3465cc..0756ccac5 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java @@ -6,7 +6,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Repository; import javax.annotation.Resource; -import java.util.Objects; +import java.util.*; +import java.util.stream.Collectors; /** * @author wxp @@ -38,4 +39,13 @@ public class LinePayDAO { return linePayMapper.updateByPrimaryKeySelective(linePayDO); } + + public Map getLinePayByLineIds(List lineIds) { + if(Objects.isNull(lineIds) || lineIds.size() == 0){ + return new HashMap<>(); + } + List linePayDO = linePayMapper.getLinePayByLineIds(lineIds); + return linePayDO.stream().collect(Collectors.toMap(LinePayDO::getLineId, linePayDO1 -> linePayDO1, (o, n) -> o)); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInfoMapper.java index 92f45c03a..350f1acf8 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInfoMapper.java @@ -20,7 +20,16 @@ public interface LineInfoMapper extends Mapper { * @param investmentManagerUserId * @return */ - List listByInvestmentManager(@Param("investmentManagerUserId") String investmentManagerUserId, @Param("code") Integer code); + List listByInvestmentManager(@Param("investmentManagerUserId") String investmentManagerUserId, @Param("codes") List codes); + + /** + * 面试官待处理 + * @param interviewId + * @param interviewType + * @param codes + * @return + */ + List listByInterview(@Param("interviewId") String interviewId, @Param("interviewType") Integer interviewType, @Param("codes") List codes); /** * 我的线索列表 diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java index 15092a6e6..84ba8b39d 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java @@ -3,6 +3,8 @@ package com.cool.store.mapper; import com.cool.store.entity.LinePayDO; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @author wxp * @date 2024-03-27 09:25 @@ -39,4 +41,11 @@ public interface LinePayMapper { LinePayDO getLinePayByLineId(@Param("lineId") Long lineId); + /** + * getLinePayByLineIds + * @param lineIds + * @return + */ + List getLinePayByLineIds(@Param("lineIds") List lineIds); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/TrainingExperienceMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/TrainingExperienceMapper.java index d687794de..520ebba24 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/TrainingExperienceMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/TrainingExperienceMapper.java @@ -5,6 +5,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import javax.websocket.server.PathParam; +import java.util.List; @Mapper public interface TrainingExperienceMapper { @@ -16,4 +17,6 @@ public interface TrainingExperienceMapper { @Param("abandonCause") String abandonCause); LeaseBaseInfoDO selectByLineId(@Param("lineId") Long lineId); + + List selectByLineIds(@Param("lineIds") List lineIds); } diff --git a/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml index 275829734..d839f4546 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml @@ -291,17 +291,35 @@ + + + select * from xfsg_line_pay where line_id = #{lineId} and deleted = '0' + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/TrainingExperienceMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/TrainingExperienceMapper.xml index 386cd9ccd..494f7a842 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/TrainingExperienceMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/TrainingExperienceMapper.xml @@ -76,6 +76,18 @@ from xfsg_lease_base_info where line_id = #{lineId} + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/InterviewPendingVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/InterviewPendingVO.java index 71e8205f8..27dd6d358 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/InterviewPendingVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/InterviewPendingVO.java @@ -18,6 +18,9 @@ public class InterviewPendingVO extends BaseInfoVO { @ApiModelProperty("面谈结束时间 10:00") private String endTime; + @ApiModelProperty("面试官名称") + private String interviewer; + public InterviewPendingVO(){}; public InterviewPendingVO(BaseInfoVO baseInfoVO) { diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/PayStagePendingVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/PayStagePendingVO.java new file mode 100644 index 000000000..512be35dc --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/PayStagePendingVO.java @@ -0,0 +1,24 @@ +package com.cool.store.vo.desk; + +import com.cool.store.vo.BaseInfoVO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2024/4/1 16:37 + * @Version 1.0 + */ +@Data +public class PayStagePendingVO extends BaseInfoVO { + + @ApiModelProperty("缴费时间 2024年04月23日 16:00") + private String payTime; + + public PayStagePendingVO(){}; + + public PayStagePendingVO(BaseInfoVO baseInfoVO) { + super(baseInfoVO); + } + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/SigningPendingVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/SigningPendingVO.java new file mode 100644 index 000000000..d3c9bbf0c --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/SigningPendingVO.java @@ -0,0 +1,26 @@ +package com.cool.store.vo.desk; + +import com.cool.store.vo.BaseInfoVO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2024/4/1 16:55 + * @Version 1.0 + */ +@Data +public class SigningPendingVO extends BaseInfoVO { + + @ApiModelProperty("提交时间 2024年04月23日 16:00") + private String submitTime; + + public SigningPendingVO(){}; + + public SigningPendingVO(BaseInfoVO baseInfoVO) { + super(baseInfoVO); + } + + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/StoreExperiencePendingVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/StoreExperiencePendingVO.java new file mode 100644 index 000000000..a061a773e --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/desk/StoreExperiencePendingVO.java @@ -0,0 +1,26 @@ +package com.cool.store.vo.desk; + +import com.cool.store.vo.BaseInfoVO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2024/4/1 17:05 + * @Version 1.0 + */ +@Data +public class StoreExperiencePendingVO extends BaseInfoVO { + @ApiModelProperty("开始时间 2024年04月23日") + private String experienceStartTime; + + @ApiModelProperty("结束时间 23日") + private String experienceEndTime; + + public StoreExperiencePendingVO(){}; + + public StoreExperiencePendingVO(BaseInfoVO baseInfoVO) { + super(baseInfoVO); + } + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java index 15b66dea5..0ac223a35 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java @@ -1,10 +1,10 @@ package com.cool.store.service; +import com.cool.store.context.LoginUserInfo; import com.cool.store.entity.HyPartnerLabelDO; import com.cool.store.entity.LineInfoDO; import com.cool.store.vo.BaseInfoVO; -import com.cool.store.vo.desk.IntendPendingVO; -import com.cool.store.vo.desk.InterviewPendingVO; +import com.cool.store.vo.desk.*; import com.github.pagehelper.PageInfo; import java.util.List; @@ -36,6 +36,52 @@ public interface DeskService { */ PageInfo interviewPendingList(Integer pageNum, Integer pageSize,String userId); + /** + * 一审面试待处理 + * @param pageNum + * @param pageSize + * @param user + * @return + */ + PageInfo firstInterviewPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); + + /** + * 二审面试待处理 + * @param pageNum + * @param pageSize + * @param user + * @return + */ + PageInfo secondInterviewPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); + + /** + * payStagePendingList + * @param pageNum + * @param pageSize + * @param user + * @return + */ + PageInfo payStagePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); + + + /** + * signingPendingList + * @param pageNum + * @param pageSize + * @param user + * @return + */ + PageInfo signingPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); + + /** + * storeExperiencePendingList + * @param pageNum + * @param pageSize + * @param user + * @return + */ + PageInfo storeExperiencePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); + /** * convertToBaseInfoVO * @param lineInfoDO diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java index 568b9bad1..a0f2c1e3f 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java @@ -1,24 +1,20 @@ package com.cool.store.service.impl; import cn.hutool.core.bean.BeanUtil; -import com.cool.store.dao.HyOpenAreaInfoDAO; -import com.cool.store.dao.HyPartnerLabelDAO; -import com.cool.store.dao.LineInfoDAO; -import com.cool.store.dao.LineInterviewDAO; -import com.cool.store.entity.HyOpenAreaInfoDO; -import com.cool.store.entity.HyPartnerLabelDO; -import com.cool.store.entity.LineInfoDO; -import com.cool.store.entity.LineInterviewDO; +import com.cool.store.context.LoginUserInfo; +import com.cool.store.dao.*; +import com.cool.store.entity.*; import com.cool.store.enums.InterviewTypeEnum; import com.cool.store.enums.WorkflowSubStageStatusEnum; +import com.cool.store.mapper.IntentAgreementMapper; import com.cool.store.mapper.LineInterviewMapper; +import com.cool.store.mapper.TrainingExperienceMapper; import com.cool.store.service.DeskService; import com.cool.store.utils.StringUtil; import com.cool.store.utils.poi.DateUtils; import com.cool.store.vo.BaseInfoVO; import com.cool.store.vo.LabelBaseInfoVO; -import com.cool.store.vo.desk.IntendPendingVO; -import com.cool.store.vo.desk.InterviewPendingVO; +import com.cool.store.vo.desk.*; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.collections4.CollectionUtils; @@ -44,11 +40,17 @@ public class DeskServiceImpl implements DeskService { HyOpenAreaInfoDAO hyOpenAreaInfoDAO; @Resource LineInterviewDAO lineInterviewDAO; + @Resource + LinePayDAO linePayDAO; + @Resource + IntentAgreementMapper intentAgreementMapper; + @Resource + TrainingExperienceMapper trainingExperienceMapper; @Override public PageInfo intendPendingList(Integer pageNum, Integer pageSize,String userId) { PageHelper.startPage(pageNum, pageSize); - List lineInfoDOS = lineInfoDAO.listByInvestmentManager(userId, WorkflowSubStageStatusEnum.INTENT_5.getCode()); + List lineInfoDOS = lineInfoDAO.listByInvestmentManager(userId, Arrays.asList(WorkflowSubStageStatusEnum.INTENT_5.getCode())); PageInfo page = new PageInfo(lineInfoDOS); Map userPortraitMap = this.getUserPortraitMap(lineInfoDOS); List wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); @@ -68,7 +70,7 @@ public class DeskServiceImpl implements DeskService { @Override public PageInfo interviewPendingList(Integer pageNum, Integer pageSize, String userId) { PageHelper.startPage(pageNum, pageSize); - List lineInfoDOS = lineInfoDAO.listByInvestmentManager(userId,WorkflowSubStageStatusEnum.INTENT_5.getCode()); + List lineInfoDOS = lineInfoDAO.listByInvestmentManager(userId,Arrays.asList(WorkflowSubStageStatusEnum.INVITING_INTERVIEWS_20.getCode())); PageInfo page = new PageInfo(lineInfoDOS); Map userPortraitMap = this.getUserPortraitMap(lineInfoDOS); List wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); @@ -92,6 +94,155 @@ public class DeskServiceImpl implements DeskService { return page; } + @Override + public PageInfo firstInterviewPendingList(Integer pageNum, Integer pageSize, LoginUserInfo userInfo) { + PageHelper.startPage(pageNum, pageSize); + List lineInfoDOS = lineInfoDAO.listByInterview(userInfo.getUserId(),InterviewTypeEnum.INTERVIEW.getCode(), + Arrays.asList(WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_35.getCode(), + WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_40.getCode(), + WorkflowSubStageStatusEnum.FIRST_INTERVIEWS_30.getCode())); + PageInfo page = new PageInfo(lineInfoDOS); + Map userPortraitMap = this.getUserPortraitMap(lineInfoDOS); + List wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); + Map wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); + List lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); + List interviewByLindIds = lineInterviewDAO.getInterviewByLindIds(lineIds, InterviewTypeEnum.MEET); + Map interviewDOMap = interviewByLindIds.stream().collect(Collectors.toMap(LineInterviewDO::getLineId, x -> x, (k1, k2) -> k1)); + + List list = new ArrayList<>(); + lineInfoDOS.forEach(x->{ + BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); + InterviewPendingVO interviewPendingVO = new InterviewPendingVO(baseInfoVO); + LineInterviewDO lineInterviewDO = interviewDOMap.get(x.getId()); + if (lineInterviewDO != null){ + interviewPendingVO.setStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START,lineInterviewDO.getStartTime())); + interviewPendingVO.setEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END,lineInterviewDO.getEndTime())); + interviewPendingVO.setInterviewer(userInfo.getName()); + } + list.add(interviewPendingVO); + }); + page.setList(list); + return page; + } + + + @Override + public PageInfo secondInterviewPendingList(Integer pageNum, Integer pageSize, LoginUserInfo userInfo) { + PageHelper.startPage(pageNum, pageSize); + List lineInfoDOS = lineInfoDAO.listByInterview(userInfo.getUserId(),InterviewTypeEnum.SECOND_INTERVIEW.getCode(), + Arrays.asList(WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_105.getCode(), + WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_110.getCode(), + WorkflowSubStageStatusEnum.SECOND_INTERVIEWS_115.getCode())); + PageInfo page = new PageInfo(lineInfoDOS); + Map userPortraitMap = this.getUserPortraitMap(lineInfoDOS); + List wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); + Map wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); + List lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); + List interviewByLindIds = lineInterviewDAO.getInterviewByLindIds(lineIds, InterviewTypeEnum.MEET); + Map interviewDOMap = interviewByLindIds.stream().collect(Collectors.toMap(LineInterviewDO::getLineId, x -> x, (k1, k2) -> k1)); + + List list = new ArrayList<>(); + lineInfoDOS.forEach(x->{ + BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); + InterviewPendingVO interviewPendingVO = new InterviewPendingVO(baseInfoVO); + LineInterviewDO lineInterviewDO = interviewDOMap.get(x.getId()); + if (lineInterviewDO != null){ + interviewPendingVO.setStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START,lineInterviewDO.getStartTime())); + interviewPendingVO.setEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_END,lineInterviewDO.getEndTime())); + interviewPendingVO.setInterviewer(userInfo.getName()); + } + list.add(interviewPendingVO); + }); + page.setList(list); + return page; + } + + @Override + public PageInfo payStagePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { + PageHelper.startPage(pageNum, pageSize); + List lineInfoDOS = lineInfoDAO.listByInvestmentManager(user.getUserId(), Arrays.asList(WorkflowSubStageStatusEnum.PAY_DEPOSIT_50.getCode())); + PageInfo page = new PageInfo(lineInfoDOS); + Map userPortraitMap = this.getUserPortraitMap(lineInfoDOS); + List wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); + Map wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); + List lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); + Map payMap = linePayDAO.getLinePayByLineIds(lineIds); + List list = new ArrayList<>(); + lineInfoDOS.forEach(x->{ + BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); + PayStagePendingVO payStagePendingVO = new PayStagePendingVO(baseInfoVO); + LinePayDO linePayDO = payMap.get(x.getId()); + if (linePayDO != null && linePayDO.getPayTime() != null){ + payStagePendingVO.setPayTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START,linePayDO.getPayTime())); + } + + list.add(payStagePendingVO); + }); + page.setList(list); + return page ; + } + + @Override + public PageInfo signingPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { + PageHelper.startPage(pageNum, pageSize); + List lineInfoDOS = lineInfoDAO.listByInvestmentManager(user.getUserId(), + Arrays.asList(WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_63.getCode(), + WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_70.getCode(), + WorkflowSubStageStatusEnum.SIGN_INTENT_AGREEMENT_80.getCode())); + PageInfo page = new PageInfo(lineInfoDOS); + Map userPortraitMap = this.getUserPortraitMap(lineInfoDOS); + List wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); + Map wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); + List lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); + List signingBaseInfoDOS = intentAgreementMapper.selectByLineIds(lineIds); + Map dateMap = signingBaseInfoDOS.stream().collect(Collectors.toMap(SigningBaseInfoDO::getId, SigningBaseInfoDO::getCreateTime)); + List list = new ArrayList<>(); + lineInfoDOS.forEach(x->{ + BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); + SigningPendingVO signingPendingVO = new SigningPendingVO(baseInfoVO); + Date date = dateMap.get(x.getId()); + if (date != null){ + signingPendingVO.setSubmitTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START,date)); + } + list.add(signingPendingVO); + }); + page.setList(list); + return page ; + } + + @Override + public PageInfo storeExperiencePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { + PageHelper.startPage(pageNum, pageSize); + List lineInfoDOS = lineInfoDAO.listByInvestmentManager(user.getUserId(), + Arrays.asList(WorkflowSubStageStatusEnum.STORE_EXPERIENCE_85.getCode(), + WorkflowSubStageStatusEnum.STORE_EXPERIENCE_95.getCode())); + PageInfo page = new PageInfo(lineInfoDOS); + Map userPortraitMap = this.getUserPortraitMap(lineInfoDOS); + List wantShopAreaIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList()); + Map wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); + List lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList()); + Map infoDOMap = new HashMap<>(); + if (CollectionUtils.isNotEmpty(lineIds)){ + List leaseBaseInfoDOS = trainingExperienceMapper.selectByLineIds(lineIds); + infoDOMap = leaseBaseInfoDOS.stream().collect(Collectors.toMap(LeaseBaseInfoDO::getLineId, x -> x)); + } + List list = new ArrayList<>(); + Map finalInfoDOMap = infoDOMap; + lineInfoDOS.forEach(x->{ + BaseInfoVO baseInfoVO = convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap); + StoreExperiencePendingVO storeExperiencePendingVO = new StoreExperiencePendingVO(baseInfoVO); + LeaseBaseInfoDO date = finalInfoDOMap.get(x.getId()); + if (date != null && date.getExperienceStartTime() != null && date.getExperienceEndTime() != null){ + storeExperiencePendingVO.setExperienceStartTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1,date.getExperienceStartTime())); + storeExperiencePendingVO.setExperienceEndTime(DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_2,date.getExperienceEndTime())); + } + list.add(storeExperiencePendingVO); + }); + page.setList(list); + return page ; + } + + /** * convertToBaseInfoVO * @param lineInfoDO diff --git a/coolstore-partner-service/src/main/java/com/cool/store/utils/poi/DateUtils.java b/coolstore-partner-service/src/main/java/com/cool/store/utils/poi/DateUtils.java index 422d32564..a5b698da9 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/utils/poi/DateUtils.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/utils/poi/DateUtils.java @@ -31,6 +31,10 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils public static String SPECIAL_DATE_START = "yyyy年MM月dd日 HH:mm"; + public static String SPECIAL_DATE_START_1 = "yyyy年MM月dd日"; + + public static String SPECIAL_DATE_START_2 = "dd日"; + public static String SPECIAL_DATE_END = "HH:mm"; private static String[] parsePatterns = { diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java index d23e58e6b..9736058fe 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java @@ -1,9 +1,10 @@ package com.cool.store.controller.webb; +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.context.LoginUserInfo; import com.cool.store.response.ResponseResult; import com.cool.store.service.DeskService; -import com.cool.store.vo.desk.IntendPendingVO; -import com.cool.store.vo.desk.InterviewPendingVO; +import com.cool.store.vo.desk.*; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -32,7 +33,7 @@ public class DeskController { @GetMapping("/intendPendingList") public ResponseResult> intendPendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { -// LoginUserInfo userInfo = CurrentUserHolder.getUser(); + LoginUserInfo userInfo = CurrentUserHolder.getUser(); return ResponseResult.success(deskService.intendPendingList(pageNumber,pageSize,"055740241221153440")); } @@ -40,10 +41,56 @@ public class DeskController { @GetMapping("/interviewPendingList") public ResponseResult> interviewPendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { -// LoginUserInfo userInfo = CurrentUserHolder.getUser(); + LoginUserInfo userInfo = CurrentUserHolder.getUser(); return ResponseResult.success(deskService.interviewPendingList(pageNumber,pageSize,"055740241221153440")); } + @ApiOperation("待处理-一审") + @GetMapping("/firstInterviewPendingList") + public ResponseResult> firstInterviewPendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, + @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { + LoginUserInfo userInfo = CurrentUserHolder.getUser(); + userInfo.setUserId("055740241221153440"); + return ResponseResult.success(deskService.firstInterviewPendingList(pageNumber,pageSize,userInfo)); + } + + @ApiOperation("待处理-二审") + @GetMapping("/secondInterviewPendingList") + public ResponseResult> secondInterviewPendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, + @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { + LoginUserInfo userInfo = CurrentUserHolder.getUser(); + userInfo.setUserId("055740241221153440"); + return ResponseResult.success(deskService.secondInterviewPendingList(pageNumber,pageSize,userInfo)); + } + + + @ApiOperation("待处理-缴纳意向金") + @GetMapping("/payStagePendingList") + public ResponseResult> payStagePendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, + @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { + LoginUserInfo userInfo = CurrentUserHolder.getUser(); + userInfo.setUserId("055740241221153440"); + return ResponseResult.success(deskService.payStagePendingList(pageNumber,pageSize,userInfo)); + } + + @ApiOperation("待处理-意向协议") + @GetMapping("/signingPendingList") + public ResponseResult> signingPendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, + @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { + LoginUserInfo userInfo = CurrentUserHolder.getUser(); + userInfo.setUserId("055740241221153440"); + return ResponseResult.success(deskService.signingPendingList(pageNumber,pageSize,userInfo)); + } + + @ApiOperation("待处理-实训体验") + @GetMapping("/storeExperiencePendingList") + public ResponseResult> storeExperiencePendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, + @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { + LoginUserInfo userInfo = CurrentUserHolder.getUser(); + userInfo.setUserId("055740241221153440"); + return ResponseResult.success(deskService.storeExperiencePendingList(pageNumber,pageSize,userInfo)); + } +