From 202d356a60db23167a8f2493c9dccdbc4a801b08 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Tue, 19 Mar 2024 17:52:09 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=A2=E8=B0=88/=E9=9D=A2=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/dao/EnterpriseUserDAO.java | 4 +- .../com/cool/store/dao/HyOpenAreaInfoDAO.java | 4 +- .../cool/store/dao/LineCalendarsEventDAO.java | 7 + .../java/com/cool/store/dao/LineInfoDAO.java | 11 +- .../com/cool/store/dao/LineInterviewDAO.java | 15 + .../store/mapper/LineInterviewMapper.java | 9 + .../main/resources/mapper/LineInfoMapper.xml | 3 +- .../resources/mapper/LineInterviewMapper.xml | 46 ++ .../dto/interview/LineInterviewPageDTO.java | 54 ++ .../cool/store/entity/LineAuditInfoDO.java | 196 +------- .../store/entity/LineCalendarsEventDO.java | 216 +------- .../com/cool/store/entity/LineInfoDO.java | 464 +----------------- .../cool/store/entity/LineInterviewDO.java | 394 +-------------- .../request/LineInterviewPageRequest.java | 39 ++ .../request/ModifyInterviewerRequest.java | 27 + .../vo/interview/LineInterviewPageVO.java | 102 ++++ .../store/service/LineInterviewService.java | 25 + .../impl/LineInterviewServiceImpl.java | 89 +++- .../webc/LineInterviewController.java | 22 + 19 files changed, 466 insertions(+), 1261 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/interview/LineInterviewPageDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/LineInterviewPageRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/ModifyInterviewerRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/interview/LineInterviewPageVO.java diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java index 0fd4a71ea..84d8b2e2b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java @@ -84,12 +84,12 @@ public class EnterpriseUserDAO { public Map getUserNameAndMobile(List userIds){ List userList = getUserInfoByUserIds(userIds); - return userList.stream().filter(o->!StringUtils.isAnyBlank(o.getMobile(), o.getName())).collect(Collectors.toMap(k -> k.getUserId(), v -> v.getName() + " " + v.getMobile())); + return userList.stream().filter(o->!StringUtils.isAnyBlank(o.getMobile())).collect(Collectors.toMap(k -> k.getUserId(), v -> v.getName() + " " + v.getMobile())); } public Map getUserNameMap(List userIds){ List userList = getUserInfoByUserIds(userIds); - return userList.stream().filter(o->!StringUtils.isAnyBlank(o.getMobile(), o.getName())).collect(Collectors.toMap(k -> k.getUserId(), v -> v.getName())); + return userList.stream().filter(o->!StringUtils.isAnyBlank(o.getName())).collect(Collectors.toMap(k -> k.getUserId(), v -> v.getName())); } public Map getUserMap(List userIds){ diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java index 1b4e11177..710657010 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java @@ -94,12 +94,12 @@ public class HyOpenAreaInfoDAO { return ListUtils.emptyIfNull(hyOpenAreaInfoDOS).stream().collect(Collectors.toMap(k->k.getId(), v->v.getAreaName(), (k1, k2)->k1)); } - public Map selectNameMapByIds(List ids){ + public Map selectNameMapByIds(List ids){ if (CollectionUtils.isEmpty(ids)){ return Maps.newHashMap(); } List hyOpenAreaInfoDOS = hyOpenAreaInfoMapper.selectByIds(ids); - return ListUtils.emptyIfNull(hyOpenAreaInfoDOS).stream().collect(Collectors.toMap(k->String.valueOf(k.getId()), v->v.getAreaPath().replace("/"," "))); + return ListUtils.emptyIfNull(hyOpenAreaInfoDOS).stream().collect(Collectors.toMap(k->k.getId(), v->v.getAreaPath().replace("/"," ").trim())); } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineCalendarsEventDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineCalendarsEventDAO.java index 56c6233c1..1c3a521b3 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineCalendarsEventDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LineCalendarsEventDAO.java @@ -66,4 +66,11 @@ public class LineCalendarsEventDAO { return param.getId(); } + public Integer updateCalendarsEvent(LineCalendarsEventDO param){ + if(Objects.isNull(param.getId())){ + return null; + } + return lineCalendarsEventMapper.updateByPrimaryKeySelective(param); + } + } 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 0aac20169..ac6cc170f 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 @@ -2,9 +2,11 @@ package com.cool.store.dao; import com.cool.store.entity.LineInfoDO; import com.cool.store.mapper.LineInfoMapper; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.Objects; /** * @author zhangchenbiao @@ -12,6 +14,7 @@ import javax.annotation.Resource; * @Description: * @date 2024-03-19 10:49 */ +@Slf4j @Repository public class LineInfoDAO { @@ -23,7 +26,11 @@ public class LineInfoDAO { return lineInfoMapper.selectByPrimaryKey(lineId); } - public Integer updateLineStage(Long lineId){ - return lineInfoMapper.updateByPrimaryKeySelective(null); + public Integer updateLineInfo(LineInfoDO param){ + if(Objects.isNull(param.getId())){ + log.error("线索id为空"); + return null; + } + return lineInfoMapper.updateByPrimaryKeySelective(param); } } 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 b41368e74..6c148178e 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 @@ -1,8 +1,13 @@ package com.cool.store.dao; +import com.cool.store.dto.interview.LineInterviewPageDTO; import com.cool.store.entity.LineInterviewDO; import com.cool.store.enums.InterviewTypeEnum; import com.cool.store.mapper.LineInterviewMapper; +import com.cool.store.request.LineInterviewPageRequest; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import org.springframework.stereotype.Repository; import javax.annotation.Resource; @@ -36,4 +41,14 @@ public class LineInterviewDAO { return interview.getId(); } + /** + * 获取面试分页列表 + * @param request + * @return + */ + public Page getInterviewerPage(LineInterviewPageRequest request){ + PageHelper.startPage(request.getPageNum(), request.getPageSize()); + return lineInterviewMapper.getInterviewerPage(request); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInterviewMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInterviewMapper.java index 050325886..790328153 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInterviewMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInterviewMapper.java @@ -1,6 +1,9 @@ package com.cool.store.mapper; +import com.cool.store.dto.interview.LineInterviewPageDTO; import com.cool.store.entity.LineInterviewDO; +import com.cool.store.request.LineInterviewPageRequest; +import com.github.pagehelper.Page; import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; @@ -14,4 +17,10 @@ public interface LineInterviewMapper extends Mapper { */ LineInterviewDO getInterviewInfo(@Param("lineId") Long lineId, @Param("interviewType") Integer interviewType); + /** + * 获取面试分页 + * @param request + * @return + */ + Page getInterviewerPage(LineInterviewPageRequest request); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml index 2398e20cb..4fad29b46 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml @@ -8,7 +8,7 @@ - + @@ -23,6 +23,7 @@ + diff --git a/coolstore-partner-dao/src/main/resources/mapper/LineInterviewMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/LineInterviewMapper.xml index 9cb43861a..0a962590c 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/LineInterviewMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/LineInterviewMapper.xml @@ -29,4 +29,50 @@ + + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/interview/LineInterviewPageDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/interview/LineInterviewPageDTO.java new file mode 100644 index 000000000..a29fa39d0 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/interview/LineInterviewPageDTO.java @@ -0,0 +1,54 @@ +package com.cool.store.dto.interview; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangchenbiao + * @FileName: LineInterviewPageDTO + * @Description: + * @date 2024-03-19 16:11 + */ +@Data +public class LineInterviewPageDTO { + + @ApiModelProperty("线索id") + private Long lineId; + + @ApiModelProperty("线索姓名") + private String username; + + @ApiModelProperty("手机号") + private String mobile; + + @ApiModelProperty("意向区域") + private Long wantShopAreaId; + + @ApiModelProperty("用户标签") + private String userPortrait; + + @ApiModelProperty("计划开始时间") + private String startTime; + + @ApiModelProperty("计划结束时间") + private String endTime; + + @ApiModelProperty("面试状态") + private Integer interviewStatus; + + @ApiModelProperty("招商经理") + private String investmentManager; + + @ApiModelProperty("线索来源") + private Integer lineSource; + + @ApiModelProperty("实际开始时间") + private String actualStartTime; + + @ApiModelProperty("实际结束时间") + private String actualEndTime; + + @ApiModelProperty("面审人") + private String interviewer; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/LineAuditInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/LineAuditInfoDO.java index 5114441c9..fe1d55897 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/LineAuditInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/LineAuditInfoDO.java @@ -1,8 +1,11 @@ package com.cool.store.entity; +import lombok.Data; + import java.util.Date; import javax.persistence.*; +@Data @Table(name = "xfsg_line_audit_info") public class LineAuditInfoDO { @Id @@ -68,197 +71,4 @@ public class LineAuditInfoDO { */ private Boolean deleted; - /** - * @return id - */ - public Long getId() { - return id; - } - - /** - * @param id - */ - public void setId(Long id) { - this.id = id; - } - - /** - * 获取partner_user_info.partner_id - * - * @return partner_id - partner_user_info.partner_id - */ - public String getPartnerId() { - return partnerId; - } - - /** - * 设置partner_user_info.partner_id - * - * @param partnerId partner_user_info.partner_id - */ - public void setPartnerId(String partnerId) { - this.partnerId = partnerId; - } - - /** - * 获取line_info.id - * - * @return line_id - line_info.id - */ - public Long getLineId() { - return lineId; - } - - /** - * 设置line_info.id - * - * @param lineId line_info.id - */ - public void setLineId(Long lineId) { - this.lineId = lineId; - } - - /** - * 获取结果类型 0通过,1拒绝,2结束跟进 - * - * @return result_type - 结果类型 0通过,1拒绝,2结束跟进 - */ - public Integer getResultType() { - return resultType; - } - - /** - * 设置结果类型 0通过,1拒绝,2结束跟进 - * - * @param resultType 结果类型 0通过,1拒绝,2结束跟进 - */ - public void setResultType(Integer resultType) { - this.resultType = resultType; - } - - /** - * 获取通过原因 - * - * @return pass_reason - 通过原因 - */ - public String getPassReason() { - return passReason; - } - - /** - * 设置通过原因 - * - * @param passReason 通过原因 - */ - public void setPassReason(String passReason) { - this.passReason = passReason; - } - - /** - * 获取公开拒绝原因 - * - * @return reject_public_reason - 公开拒绝原因 - */ - public String getRejectPublicReason() { - return rejectPublicReason; - } - - /** - * 设置公开拒绝原因 - * - * @param rejectPublicReason 公开拒绝原因 - */ - public void setRejectPublicReason(String rejectPublicReason) { - this.rejectPublicReason = rejectPublicReason; - } - - /** - * 获取真实拒绝原因 - * - * @return reject_real_reason - 真实拒绝原因 - */ - public String getRejectRealReason() { - return rejectRealReason; - } - - /** - * 设置真实拒绝原因 - * - * @param rejectRealReason 真实拒绝原因 - */ - public void setRejectRealReason(String rejectRealReason) { - this.rejectRealReason = rejectRealReason; - } - - /** - * 获取证明文件或凭证 - * - * @return certify_file - 证明文件或凭证 - */ - public String getCertifyFile() { - return certifyFile; - } - - /** - * 设置证明文件或凭证 - * - * @param certifyFile 证明文件或凭证 - */ - public void setCertifyFile(String certifyFile) { - this.certifyFile = certifyFile; - } - - /** - * 获取创建时间 - * - * @return create_time - 创建时间 - */ - public Date getCreateTime() { - return createTime; - } - - /** - * 设置创建时间 - * - * @param createTime 创建时间 - */ - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - /** - * 获取更新时间 - * - * @return update_time - 更新时间 - */ - public Date getUpdateTime() { - return updateTime; - } - - /** - * 设置更新时间 - * - * @param updateTime 更新时间 - */ - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } - - /** - * 获取是否删除:0.否 1.是 - * - * @return deleted - 是否删除:0.否 1.是 - */ - public Boolean getDeleted() { - return deleted; - } - - /** - * 设置是否删除:0.否 1.是 - * - * @param deleted 是否删除:0.否 1.是 - */ - public void setDeleted(Boolean deleted) { - this.deleted = deleted; - } } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/LineCalendarsEventDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/LineCalendarsEventDO.java index 723934600..5e51b9235 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/LineCalendarsEventDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/LineCalendarsEventDO.java @@ -1,8 +1,11 @@ package com.cool.store.entity; +import lombok.Data; + import java.util.Date; import javax.persistence.*; +@Data @Table(name = "xfsg_line_calendars_event") public class LineCalendarsEventDO { @Id @@ -34,7 +37,7 @@ public class LineCalendarsEventDO { private String eventTitle; /** - * 房间状态:0面谈;1面试; + * 面试类型:0面谈;1一审;2二审 */ @Column(name = "interview_type") private Integer interviewType; @@ -79,215 +82,4 @@ public class LineCalendarsEventDO { @Column(name = "update_time") private Date updateTime; - /** - * @return id - */ - public Long getId() { - return id; - } - - /** - * @param id - */ - public void setId(Long id) { - this.id = id; - } - - /** - * 获取区域ID - * - * @return region_id - 区域ID - */ - public Long getRegionId() { - return regionId; - } - - /** - * 设置区域ID - * - * @param regionId 区域ID - */ - public void setRegionId(Long regionId) { - this.regionId = regionId; - } - - /** - * 获取line_info.id - * - * @return line_id - line_info.id - */ - public Long getLineId() { - return lineId; - } - - /** - * 设置line_info.id - * - * @param lineId line_info.id - */ - public void setLineId(Long lineId) { - this.lineId = lineId; - } - - /** - * 获取partner_user_info.partner_id - * - * @return partner_id - partner_user_info.partner_id - */ - public String getPartnerId() { - return partnerId; - } - - /** - * 设置partner_user_info.partner_id - * - * @param partnerId partner_user_info.partner_id - */ - public void setPartnerId(String partnerId) { - this.partnerId = partnerId; - } - - /** - * 获取事件标题 - * - * @return event_title - 事件标题 - */ - public String getEventTitle() { - return eventTitle; - } - - /** - * 设置事件标题 - * - * @param eventTitle 事件标题 - */ - public void setEventTitle(String eventTitle) { - this.eventTitle = eventTitle; - } - - /** - * 获取房间状态:0面谈;1面试; - * - * @return interview_type - 房间状态:0面谈;1面试; - */ - public Integer getInterviewType() { - return interviewType; - } - - /** - * 设置房间状态:0面谈;1面试; - * - * @param interviewType 房间状态:0面谈;1面试; - */ - public void setInterviewType(Integer interviewType) { - this.interviewType = interviewType; - } - - /** - * 获取面试开始时间 - * - * @return start_time - 面试开始时间 - */ - public Date getStartTime() { - return startTime; - } - - /** - * 设置面试开始时间 - * - * @param startTime 面试开始时间 - */ - public void setStartTime(Date startTime) { - this.startTime = startTime; - } - - /** - * 获取面试结束时间 - * - * @return end_time - 面试结束时间 - */ - public Date getEndTime() { - return endTime; - } - - /** - * 设置面试结束时间 - * - * @param endTime 面试结束时间 - */ - public void setEndTime(Date endTime) { - this.endTime = endTime; - } - - /** - * 获取面试官 - * - * @return interviewer - 面试官 - */ - public String getInterviewer() { - return interviewer; - } - - /** - * 设置面试官 - * - * @param interviewer 面试官 - */ - public void setInterviewer(String interviewer) { - this.interviewer = interviewer; - } - - /** - * 获取删除标识 - * - * @return deleted - 删除标识 - */ - public Boolean getDeleted() { - return deleted; - } - - /** - * 设置删除标识 - * - * @param deleted 删除标识 - */ - public void setDeleted(Boolean deleted) { - this.deleted = deleted; - } - - /** - * 获取创建时间 - * - * @return create_time - 创建时间 - */ - public Date getCreateTime() { - return createTime; - } - - /** - * 设置创建时间 - * - * @param createTime 创建时间 - */ - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - /** - * 获取更新时间 - * - * @return update_time - 更新时间 - */ - public Date getUpdateTime() { - return updateTime; - } - - /** - * 设置更新时间 - * - * @param updateTime 更新时间 - */ - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/LineInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/LineInfoDO.java index 0fc0b987c..b7dd86a50 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/LineInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/LineInfoDO.java @@ -1,8 +1,11 @@ package com.cool.store.entity; +import lombok.Data; + import java.util.Date; import javax.persistence.*; +@Data @Table(name = "xfsg_line_info") public class LineInfoDO { @Id @@ -37,7 +40,7 @@ public class LineInfoDO { * 意向开店区域 */ @Column(name = "want_shop_area_id") - private String wantShopAreaId; + private Long wantShopAreaId; /** * 居住地址 @@ -123,6 +126,12 @@ public class LineInfoDO { @Column(name = "is_join") private Boolean isJoin; + /** + * 0.公海 1.私海 2黑名单 + */ + @Column(name = "line_status") + private Integer lineStatus; + /** * 创建时间 */ @@ -152,457 +161,4 @@ public class LineInfoDO { */ private Boolean deleted; - /** - * @return id - */ - public Long getId() { - return id; - } - - /** - * @param id - */ - public void setId(Long id) { - this.id = id; - } - - /** - * 获取partner_user_info.partner_id - * - * @return partner_id - partner_user_info.partner_id - */ - public String getPartnerId() { - return partnerId; - } - - /** - * 设置partner_user_info.partner_id - * - * @param partnerId partner_user_info.partner_id - */ - public void setPartnerId(String partnerId) { - this.partnerId = partnerId; - } - - public Long getRegionId() { - return regionId; - } - - public void setRegionId(Long regionId) { - this.regionId = regionId; - } - - /** - * 获取手机号 - * - * @return mobile - 手机号 - */ - public String getMobile() { - return mobile; - } - - /** - * 设置手机号 - * - * @param mobile 手机号 - */ - public void setMobile(String mobile) { - this.mobile = mobile; - } - - /** - * 获取申请人姓名 - * - * @return username - 申请人姓名 - */ - public String getUsername() { - return username; - } - - /** - * 设置申请人姓名 - * - * @param username 申请人姓名 - */ - public void setUsername(String username) { - this.username = username; - } - - /** - * 获取性别0未选,1男,2女 - * - * @return sex - 性别0未选,1男,2女 - */ - public String getSex() { - return sex; - } - - /** - * 设置性别0未选,1男,2女 - * - * @param sex 性别0未选,1男,2女 - */ - public void setSex(String sex) { - this.sex = sex; - } - - /** - * 获取意向开店区域 - * - * @return want_shop_area_id - 意向开店区域 - */ - public String getWantShopAreaId() { - return wantShopAreaId; - } - - /** - * 设置意向开店区域 - * - * @param wantShopAreaId 意向开店区域 - */ - public void setWantShopAreaId(String wantShopAreaId) { - this.wantShopAreaId = wantShopAreaId; - } - - /** - * 获取居住地址 - * - * @return live_address - 居住地址 - */ - public String getLiveAddress() { - return liveAddress; - } - - /** - * 设置居住地址 - * - * @param liveAddress 居住地址 - */ - public void setLiveAddress(String liveAddress) { - this.liveAddress = liveAddress; - } - - /** - * 获取流程阶段:1意向加盟;2新店进展; - * - * @return workflow_stage - 流程阶段:1意向加盟;2新店进展; - */ - public Integer getWorkflowStage() { - return workflowStage; - } - - /** - * 设置流程阶段:1意向加盟;2新店进展; - * - * @param workflowStage 流程阶段:1意向加盟;2新店进展; - */ - public void setWorkflowStage(Integer workflowStage) { - this.workflowStage = workflowStage; - } - - /** - * 获取流程子阶段 - * - * @return workflow_sub_stage - 流程子阶段 - */ - public Integer getWorkflowSubStage() { - return workflowSubStage; - } - - /** - * 设置流程子阶段 - * - * @param workflowSubStage 流程子阶段 - */ - public void setWorkflowSubStage(Integer workflowSubStage) { - this.workflowSubStage = workflowSubStage; - } - - /** - * 获取流程子阶段状态 - * - * @return workflow_sub_stage_status - 流程子阶段状态 - */ - public Integer getWorkflowSubStageStatus() { - return workflowSubStageStatus; - } - - /** - * 设置流程子阶段状态 - * - * @param workflowSubStageStatus 流程子阶段状态 - */ - public void setWorkflowSubStageStatus(Integer workflowSubStageStatus) { - this.workflowSubStageStatus = workflowSubStageStatus; - } - - /** - * 获取待选址铺位 - * - * @return select_site_num - 待选址铺位 - */ - public Integer getSelectSiteNum() { - return selectSiteNum; - } - - /** - * 设置待选址铺位 - * - * @param selectSiteNum 待选址铺位 - */ - public void setSelectSiteNum(Integer selectSiteNum) { - this.selectSiteNum = selectSiteNum; - } - - /** - * 获取筹备中铺位 - * - * @return prepare_shop_num - 筹备中铺位 - */ - public Integer getPrepareShopNum() { - return prepareShopNum; - } - - /** - * 设置筹备中铺位 - * - * @param prepareShopNum 筹备中铺位 - */ - public void setPrepareShopNum(Integer prepareShopNum) { - this.prepareShopNum = prepareShopNum; - } - - /** - * 获取营业中铺位 - * - * @return open_shop_num - 营业中铺位 - */ - public Integer getOpenShopNum() { - return openShopNum; - } - - /** - * 设置营业中铺位 - * - * @param openShopNum 营业中铺位 - */ - public void setOpenShopNum(Integer openShopNum) { - this.openShopNum = openShopNum; - } - - /** - * 获取线索来源 - * - * @return line_source - 线索来源 - */ - public Integer getLineSource() { - return lineSource; - } - - /** - * 设置线索来源 - * - * @param lineSource 线索来源 - */ - public void setLineSource(Integer lineSource) { - this.lineSource = lineSource; - } - - /** - * 获取招商经理 - * - * @return investment_manager - 招商经理 - */ - public String getInvestmentManager() { - return investmentManager; - } - - /** - * 设置招商经理 - * - * @param investmentManager 招商经理 - */ - public void setInvestmentManager(String investmentManager) { - this.investmentManager = investmentManager; - } - - /** - * 获取拓展经理 - * - * @return development_manager - 拓展经理 - */ - public String getDevelopmentManager() { - return developmentManager; - } - - /** - * 设置拓展经理 - * - * @param developmentManager 拓展经理 - */ - public void setDevelopmentManager(String developmentManager) { - this.developmentManager = developmentManager; - } - - /** - * 获取一审面试官 - * - * @return first_interviewer - 一审面试官 - */ - public String getFirstInterviewer() { - return firstInterviewer; - } - - /** - * 设置一审面试官 - * - * @param firstInterviewer 一审面试官 - */ - public void setFirstInterviewer(String firstInterviewer) { - this.firstInterviewer = firstInterviewer; - } - - /** - * 获取二审面试官 - * - * @return second_interviewer - 二审面试官 - */ - public String getSecondInterviewer() { - return secondInterviewer; - } - - /** - * 设置二审面试官 - * - * @param secondInterviewer 二审面试官 - */ - public void setSecondInterviewer(String secondInterviewer) { - this.secondInterviewer = secondInterviewer; - } - - /** - * 获取用户画像 - * - * @return user_portrait - 用户画像 - */ - public String getUserPortrait() { - return userPortrait; - } - - /** - * 设置用户画像 - * - * @param userPortrait 用户画像 - */ - public void setUserPortrait(String userPortrait) { - this.userPortrait = userPortrait; - } - - /** - * 获取是否是加盟商:0.否 1.是 - * - * @return is_join - 是否是加盟商:0.否 1.是 - */ - public Boolean getIsJoin() { - return isJoin; - } - - /** - * 设置是否是加盟商:0.否 1.是 - * - * @param isJoin 是否是加盟商:0.否 1.是 - */ - public void setIsJoin(Boolean isJoin) { - this.isJoin = isJoin; - } - - /** - * 获取创建时间 - * - * @return create_time - 创建时间 - */ - public Date getCreateTime() { - return createTime; - } - - /** - * 设置创建时间 - * - * @param createTime 创建时间 - */ - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - /** - * 获取更新时间 - * - * @return update_time - 更新时间 - */ - public Date getUpdateTime() { - return updateTime; - } - - /** - * 设置更新时间 - * - * @param updateTime 更新时间 - */ - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } - - /** - * 获取创建人 - * - * @return create_user_id - 创建人 - */ - public String getCreateUserId() { - return createUserId; - } - - /** - * 设置创建人 - * - * @param createUserId 创建人 - */ - public void setCreateUserId(String createUserId) { - this.createUserId = createUserId; - } - - /** - * 获取更新人 - * - * @return update_user_id - 更新人 - */ - public String getUpdateUserId() { - return updateUserId; - } - - /** - * 设置更新人 - * - * @param updateUserId 更新人 - */ - public void setUpdateUserId(String updateUserId) { - this.updateUserId = updateUserId; - } - - /** - * 获取是否删除:0.否 1.是 - * - * @return deleted - 是否删除:0.否 1.是 - */ - public Boolean getDeleted() { - return deleted; - } - - /** - * 设置是否删除:0.否 1.是 - * - * @param deleted 是否删除:0.否 1.是 - */ - public void setDeleted(Boolean deleted) { - this.deleted = deleted; - } } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/LineInterviewDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/LineInterviewDO.java index db3f52d37..3b8f24720 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/LineInterviewDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/LineInterviewDO.java @@ -1,8 +1,11 @@ package com.cool.store.entity; +import lombok.Data; + import java.util.Date; import javax.persistence.*; +@Data @Table(name = "xfsg_line_interview") public class LineInterviewDO { @Id @@ -133,395 +136,4 @@ public class LineInterviewDO { @Column(name = "update_time") private Date updateTime; - /** - * @return id - */ - public Long getId() { - return id; - } - - /** - * @param id - */ - public void setId(Long id) { - this.id = id; - } - - /** - * 获取line_info.id - * - * @return line_id - line_info.id - */ - public Long getLineId() { - return lineId; - } - - /** - * 设置line_info.id - * - * @param lineId line_info.id - */ - public void setLineId(Long lineId) { - this.lineId = lineId; - } - - /** - * 获取partner_user_info.partner_id - * - * @return partner_id - partner_user_info.partner_id - */ - public String getPartnerId() { - return partnerId; - } - - /** - * 设置partner_user_info.partner_id - * - * @param partnerId partner_user_info.partner_id - */ - public void setPartnerId(String partnerId) { - this.partnerId = partnerId; - } - - /** - * 获取区域ID - * - * @return region_id - 区域ID - */ - public Long getRegionId() { - return regionId; - } - - /** - * 设置区域ID - * - * @param regionId 区域ID - */ - public void setRegionId(Long regionId) { - this.regionId = regionId; - } - - /** - * 获取面试日期 - * - * @return interview_date - 面试日期 - */ - public Date getInterviewDate() { - return interviewDate; - } - - /** - * 设置面试日期 - * - * @param interviewDate 面试日期 - */ - public void setInterviewDate(Date interviewDate) { - this.interviewDate = interviewDate; - } - - /** - * 获取面试开始时间 - * - * @return start_time - 面试开始时间 - */ - public Date getStartTime() { - return startTime; - } - - /** - * 设置面试开始时间 - * - * @param startTime 面试开始时间 - */ - public void setStartTime(Date startTime) { - this.startTime = startTime; - } - - /** - * 获取面试结束时间 - * - * @return end_time - 面试结束时间 - */ - public Date getEndTime() { - return endTime; - } - - /** - * 设置面试结束时间 - * - * @param endTime 面试结束时间 - */ - public void setEndTime(Date endTime) { - this.endTime = endTime; - } - - /** - * 获取0未参加,1参加 - * - * @return is_partner_interview - 0未参加,1参加 - */ - public Integer getIsPartnerInterview() { - return isPartnerInterview; - } - - /** - * 设置0未参加,1参加 - * - * @param isPartnerInterview 0未参加,1参加 - */ - public void setIsPartnerInterview(Integer isPartnerInterview) { - this.isPartnerInterview = isPartnerInterview; - } - - /** - * 获取实际开始时间 - * - * @return actual_start_time - 实际开始时间 - */ - public Date getActualStartTime() { - return actualStartTime; - } - - /** - * 设置实际开始时间 - * - * @param actualStartTime 实际开始时间 - */ - public void setActualStartTime(Date actualStartTime) { - this.actualStartTime = actualStartTime; - } - - /** - * 获取实际结束时间 - * - * @return actual_end_time - 实际结束时间 - */ - public Date getActualEndTime() { - return actualEndTime; - } - - /** - * 设置实际结束时间 - * - * @param actualEndTime 实际结束时间 - */ - public void setActualEndTime(Date actualEndTime) { - this.actualEndTime = actualEndTime; - } - - /** - * 获取房间号 - * - * @return room_id - 房间号 - */ - public String getRoomId() { - return roomId; - } - - /** - * 设置房间号 - * - * @param roomId 房间号 - */ - public void setRoomId(String roomId) { - this.roomId = roomId; - } - - /** - * 获取房间密码 - * - * @return room_password - 房间密码 - */ - public String getRoomPassword() { - return roomPassword; - } - - /** - * 设置房间密码 - * - * @param roomPassword 房间密码 - */ - public void setRoomPassword(String roomPassword) { - this.roomPassword = roomPassword; - } - - /** - * 获取面试官 - * - * @return interviewer - 面试官 - */ - public String getInterviewer() { - return interviewer; - } - - /** - * 设置面试官 - * - * @param interviewer 面试官 - */ - public void setInterviewer(String interviewer) { - this.interviewer = interviewer; - } - - /** - * 获取房间状态:0待开放;1已开放; 2已关闭 - * - * @return room_status - 房间状态:0待开放;1已开放; 2已关闭 - */ - public Integer getRoomStatus() { - return roomStatus; - } - - /** - * 设置房间状态:0待开放;1已开放; 2已关闭 - * - * @param roomStatus 房间状态:0待开放;1已开放; 2已关闭 - */ - public void setRoomStatus(Integer roomStatus) { - this.roomStatus = roomStatus; - } - - /** - * 获取面试状态 0待面试 1已通过 2未通过 - * - * @return interview_status - 面试状态 0待面试 1已通过 2未通过 - */ - public Integer getInterviewStatus() { - return interviewStatus; - } - - /** - * 设置面试状态 0待面试 1已通过 2未通过 - * - * @param interviewStatus 面试状态 0待面试 1已通过 2未通过 - */ - public void setInterviewStatus(Integer interviewStatus) { - this.interviewStatus = interviewStatus; - } - - /** - * 获取面试类型:0面谈,1一审,2二审 - * - * @return interview_type - 面试类型:0面谈,1一审,2二审 - */ - public Integer getInterviewType() { - return interviewType; - } - - /** - * 设置面试类型:0面谈,1一审,2二审 - * - * @param interviewType 面试类型:0面谈,1一审,2二审 - */ - public void setInterviewType(Integer interviewType) { - this.interviewType = interviewType; - } - - /** - * 获取视频链接 - * - * @return video_url - 视频链接 - */ - public String getVideoUrl() { - return videoUrl; - } - - /** - * 设置视频链接 - * - * @param videoUrl 视频链接 - */ - public void setVideoUrl(String videoUrl) { - this.videoUrl = videoUrl; - } - - /** - * 获取line_audit_info.id - * - * @return audit_id - line_audit_info.id - */ - public Long getAuditId() { - return auditId; - } - - /** - * 设置line_audit_info.id - * - * @param auditId line_audit_info.id - */ - public void setAuditId(Long auditId) { - this.auditId = auditId; - } - - /** - * 获取line_calendars_event.id - * - * @return calendars_event_id - line_calendars_event.id - */ - public Long getCalendarsEventId() { - return calendarsEventId; - } - - /** - * 设置line_calendars_event.id - * - * @param calendarsEventId line_calendars_event.id - */ - public void setCalendarsEventId(Long calendarsEventId) { - this.calendarsEventId = calendarsEventId; - } - - /** - * 获取删除标识 - * - * @return deleted - 删除标识 - */ - public Boolean getDeleted() { - return deleted; - } - - /** - * 设置删除标识 - * - * @param deleted 删除标识 - */ - public void setDeleted(Boolean deleted) { - this.deleted = deleted; - } - - /** - * 获取创建时间 - * - * @return create_time - 创建时间 - */ - public Date getCreateTime() { - return createTime; - } - - /** - * 设置创建时间 - * - * @param createTime 创建时间 - */ - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - /** - * 获取更新时间 - * - * @return update_time - 更新时间 - */ - public Date getUpdateTime() { - return updateTime; - } - - /** - * 设置更新时间 - * - * @param updateTime 更新时间 - */ - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/LineInterviewPageRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/LineInterviewPageRequest.java new file mode 100644 index 000000000..0fbcafb4d --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/LineInterviewPageRequest.java @@ -0,0 +1,39 @@ +package com.cool.store.request; + +import com.cool.store.common.PageBasicInfo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangchenbiao + * @FileName: LineInterviewPageRequest + * @Description:面试列表 + * @date 2024-03-19 15:51 + */ +@Data +public class LineInterviewPageRequest extends PageBasicInfo { + + @ApiModelProperty("线索姓名") + private String username; + + @ApiModelProperty("手机号") + private String mobile; + + @ApiModelProperty("流程阶段") + private String workflowStage; + + @ApiModelProperty("流程子阶段") + private String workflowSubStage; + + @ApiModelProperty("面试状态") + private Integer interviewStatus; + + @ApiModelProperty("线索来源") + private Integer lineSource; + + @ApiModelProperty("面试类型:0面谈;1一审;2二审") + private Integer interviewType; + + private String interviewer; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/ModifyInterviewerRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/ModifyInterviewerRequest.java new file mode 100644 index 000000000..dfd611044 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/ModifyInterviewerRequest.java @@ -0,0 +1,27 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author zhangchenbiao + * @FileName: AppointmentTimeRequest + * @Description:预约时间 + * @date 2024-03-19 9:57 + */ +@Data +public class ModifyInterviewerRequest { + + @ApiModelProperty("线索id") + private Long lineId; + + @ApiModelProperty("面试类型:0面谈,1一审,2二审") + private Integer interviewType; + + @NotNull(message = "面审官不能为空") + @ApiModelProperty("面审官") + private String interviewer; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/LineInterviewPageVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/LineInterviewPageVO.java new file mode 100644 index 000000000..12e597220 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/LineInterviewPageVO.java @@ -0,0 +1,102 @@ +package com.cool.store.vo.interview; + +import com.cool.store.dto.interview.LineInterviewPageDTO; +import com.cool.store.utils.StringUtil; +import com.google.common.collect.Lists; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @author zhangchenbiao + * @FileName: LineInterviewPageVO + * @Description: + * @date 2024-03-19 15:55 + */ +@Data +public class LineInterviewPageVO { + + @ApiModelProperty("线索id") + private Long lineId; + + @ApiModelProperty("线索姓名") + private String username; + + @ApiModelProperty("手机号") + private String mobile; + + @ApiModelProperty("意向区域") + private String wantShopArea; + + @ApiModelProperty("用户标签") + private List userPortraitList; + + @ApiModelProperty("计划开始时间") + private String startTime; + + @ApiModelProperty("计划结束时间") + private String endTime; + + @ApiModelProperty("面试状态") + private Integer interviewStatus; + + @ApiModelProperty("招商经理") + private String investmentManagerUsername; + + @ApiModelProperty("线索来源") + private Integer lineSource; + + @ApiModelProperty("实际开始时间") + private String actualStartTime; + + @ApiModelProperty("实际结束时间") + private String actualEndTime; + + @ApiModelProperty("面审人") + private String interviewerUsername; + + public static List convertList(List list, Map userPortraitMap, Map userNameMap, Map cityNameMap){ + if(CollectionUtils.isEmpty(list)){ + return Lists.newArrayList(); + } + List resultList = new ArrayList<>(); + for (LineInterviewPageDTO lineInterviewPage : list) { + LineInterviewPageVO result = new LineInterviewPageVO(); + result.setLineId(lineInterviewPage.getLineId()); + result.setUsername(lineInterviewPage.getUsername()); + result.setMobile(lineInterviewPage.getMobile()); + result.setWantShopArea(cityNameMap.get(lineInterviewPage.getWantShopAreaId())); + result.setStartTime(lineInterviewPage.getStartTime()); + result.setEndTime(lineInterviewPage.getEndTime()); + result.setInterviewStatus(lineInterviewPage.getInterviewStatus()); + result.setInvestmentManagerUsername(userNameMap.get(lineInterviewPage.getInvestmentManager())); + result.setLineSource(lineInterviewPage.getLineSource()); + result.setActualStartTime(lineInterviewPage.getActualStartTime()); + result.setActualEndTime(lineInterviewPage.getActualEndTime()); + result.setInterviewerUsername(userNameMap.get(lineInterviewPage.getInterviewer())); + List userPortraitList = new ArrayList<>(); + if(StringUtils.isNotBlank(lineInterviewPage.getUserPortrait())){ + String[] parts = lineInterviewPage.getUserPortrait().split(","); + for (String part : parts) { + String trimmedPart = part.trim(); + if (StringUtils.isNotBlank(trimmedPart)) { + String s = userPortraitMap.get(Long.valueOf(part)); + if(StringUtils.isNotBlank(s)){ + userPortraitList.add(s); + } + } + } + result.setUserPortraitList(userPortraitList); + } + resultList.add(result); + } + return resultList; + } + + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/LineInterviewService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/LineInterviewService.java index c8b08d270..d75d03f21 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/LineInterviewService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/LineInterviewService.java @@ -1,7 +1,11 @@ package com.cool.store.service; import com.cool.store.request.AppointmentTimeRequest; +import com.cool.store.request.LineInterviewPageRequest; +import com.cool.store.request.ModifyInterviewerRequest; import com.cool.store.vo.interview.AppointmentTimeVO; +import com.cool.store.vo.interview.LineInterviewPageVO; +import com.github.pagehelper.PageInfo; import java.time.LocalDate; import java.util.List; @@ -29,4 +33,25 @@ public interface LineInterviewService { * @return */ Boolean appointmentTime(AppointmentTimeRequest request); + + /** + * 修改面试时间 + * @param request + * @return + */ + Boolean modifyAppointmentTime(AppointmentTimeRequest request); + + /** + * 修改面审官 + * @param request + * @return + */ + Boolean modifyInterviewer(ModifyInterviewerRequest request); + + /** + * 获取分页 + * @param request + * @return + */ + PageInfo getInterviewerPage(LineInterviewPageRequest request); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineInterviewServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineInterviewServiceImpl.java index 9a1acef1c..3f0790daa 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineInterviewServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineInterviewServiceImpl.java @@ -1,8 +1,8 @@ package com.cool.store.service.impl; -import com.cool.store.dao.LineCalendarsEventDAO; -import com.cool.store.dao.LineInfoDAO; -import com.cool.store.dao.LineInterviewDAO; +import com.cool.store.dao.*; +import com.cool.store.dto.interview.LineInterviewPageDTO; +import com.cool.store.entity.HyOpenAreaInfoDO; import com.cool.store.entity.LineCalendarsEventDO; import com.cool.store.entity.LineInfoDO; import com.cool.store.entity.LineInterviewDO; @@ -10,10 +10,17 @@ import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.InterviewTypeEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.AppointmentTimeRequest; +import com.cool.store.request.LineInterviewPageRequest; +import com.cool.store.request.ModifyInterviewerRequest; +import com.cool.store.service.LabelService; import com.cool.store.service.LineInterviewService; import com.cool.store.utils.UUIDUtils; import com.cool.store.utils.poi.DateUtils; import com.cool.store.vo.interview.AppointmentTimeVO; +import com.cool.store.vo.interview.LineInterviewPageVO; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageInfo; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; import org.springframework.stereotype.Service; @@ -21,7 +28,10 @@ import javax.annotation.Resource; import java.time.LocalDate; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @author zhangchenbiao @@ -38,6 +48,12 @@ public class LineInterviewServiceImpl implements LineInterviewService { private LineInterviewDAO lineInterviewDAO; @Resource private LineCalendarsEventDAO lineCalendarsEventDAO; + @Resource + private LabelService labelService; + @Resource + private EnterpriseUserDAO enterpriseUserDAO; + @Resource + private HyOpenAreaInfoDAO hyOpenAreaInfoDAO; @Override public List getAppointmentTime(Long lineId, Integer interviewType, LocalDate appointmentDate) { @@ -80,12 +96,13 @@ public class LineInterviewServiceImpl implements LineInterviewService { calendarsEvent.setPartnerId(lineInfo.getPartnerId()); calendarsEvent.setEventTitle(lineInfo.getUsername() + " " + (InterviewTypeEnum.MEET.equals(interviewType) ? "面谈" :"面审")); calendarsEvent.setInterviewType(request.getInterviewType()); + calendarsEvent.setInterviewDate(startTime); calendarsEvent.setStartTime(startTime); calendarsEvent.setEndTime(endTime); calendarsEvent.setInterviewer(interviewer); Long eventId = lineCalendarsEventDAO.addCalendarsEvent(calendarsEvent); //跟新线索状态为已预约 - lineInfoDAO.updateLineStage(request.getLineId()); + lineInfoDAO.updateLineInfo(lineInfo); LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfo(lineInfo.getId(), interviewType); if(Objects.isNull(interviewInfo)){ LineInterviewDO addInterview = new LineInterviewDO(); @@ -109,4 +126,68 @@ public class LineInterviewServiceImpl implements LineInterviewService { lineInterviewDAO.updateInterviewInfo(interviewInfo); return Boolean.TRUE; } + + @Override + public Boolean modifyAppointmentTime(AppointmentTimeRequest request) { + InterviewTypeEnum interviewType = InterviewTypeEnum.match(request.getInterviewType()); + LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfo(request.getLineId(), interviewType); + if(Objects.isNull(interviewInfo)){ + throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST); + } + Date startTime = DateUtils.strToDate(request.getStartTime(), DateUtils.YYYY_MM_DD_HH_MM_SS); + Date endTime = DateUtils.strToDate(request.getEndTime(), DateUtils.YYYY_MM_DD_HH_MM_SS); + interviewInfo.setInterviewDate(startTime); + interviewInfo.setStartTime(startTime); + interviewInfo.setEndTime(endTime); + lineInterviewDAO.updateInterviewInfo(interviewInfo); + LineCalendarsEventDO update = new LineCalendarsEventDO(); + update.setId(interviewInfo.getCalendarsEventId()); + update.setStartTime(startTime); + update.setEndTime(endTime); + update.setInterviewDate(startTime); + lineCalendarsEventDAO.updateCalendarsEvent(update); + return true; + } + + @Override + public Boolean modifyInterviewer(ModifyInterviewerRequest request) { + InterviewTypeEnum interviewType = InterviewTypeEnum.match(request.getInterviewType()); + LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfo(request.getLineId(), interviewType); + if(Objects.isNull(interviewInfo)){ + throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST); + } + interviewInfo.setInterviewer(request.getInterviewer()); + lineInterviewDAO.updateInterviewInfo(interviewInfo); + LineCalendarsEventDO update = new LineCalendarsEventDO(); + update.setId(interviewInfo.getCalendarsEventId()); + update.setInterviewer(request.getInterviewer()); + lineCalendarsEventDAO.updateCalendarsEvent(update); + LineInfoDO lineInfo = new LineInfoDO(); + lineInfo.setId(request.getLineId()); + if(InterviewTypeEnum.INTERVIEW.equals(interviewType)){ + lineInfo.setFirstInterviewer(request.getInterviewer()); + } + if(InterviewTypeEnum.SECOND_INTERVIEW.equals(interviewType)){ + lineInfo.setSecondInterviewer(request.getInterviewer()); + } + lineInfoDAO.updateLineInfo(lineInfo); + return true; + } + + @Override + public PageInfo getInterviewerPage(LineInterviewPageRequest request) { + Page pageInfo = lineInterviewDAO.getInterviewerPage(request); + List userPortraitList = pageInfo.stream().filter(x -> StringUtils.isNotEmpty(x.getUserPortrait() )).map(LineInterviewPageDTO::getUserPortrait).collect(Collectors.toList()); + List investmentManagerUserIds = pageInfo.stream().filter(x -> StringUtils.isNotEmpty(x.getInvestmentManager() )).map(LineInterviewPageDTO::getInvestmentManager).collect(Collectors.toList()); + List interviewerIds = pageInfo.stream().filter(x -> StringUtils.isNotEmpty(x.getInterviewer() )).map(LineInterviewPageDTO::getInterviewer).collect(Collectors.toList()); + List wantShopAreaIds = pageInfo.stream().filter(x -> Objects.nonNull(x.getWantShopAreaId() )).map(LineInterviewPageDTO::getWantShopAreaId).collect(Collectors.toList()); + Map cityNameMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIds); + List userIds = Stream.concat(investmentManagerUserIds.stream(), interviewerIds.stream()).distinct().collect(Collectors.toList()); + Map userNameMap = enterpriseUserDAO.getUserNameMap(userIds); + Map userPortraitMap = labelService.getUserPortraitMap(userPortraitList); + List resultList = LineInterviewPageVO.convertList(pageInfo, userPortraitMap, userNameMap, cityNameMap); + PageInfo resultPage = new PageInfo(pageInfo); + resultPage.setList(resultList); + return resultPage; + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LineInterviewController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LineInterviewController.java index 48e3d1341..17eb6a27d 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LineInterviewController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LineInterviewController.java @@ -1,9 +1,13 @@ package com.cool.store.controller.webc; import com.cool.store.request.AppointmentTimeRequest; +import com.cool.store.request.LineInterviewPageRequest; +import com.cool.store.request.ModifyInterviewerRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.LineInterviewService; import com.cool.store.vo.interview.AppointmentTimeVO; +import com.cool.store.vo.interview.LineInterviewPageVO; +import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -52,4 +56,22 @@ public class LineInterviewController { return ResponseResult.success(lineInterviewService.appointmentTime(request)); } + + @ApiOperation("修改面审时间") + @PostMapping("/appointment/time/modify") + public ResponseResult modifyAppointmentTime(@RequestBody @Validated AppointmentTimeRequest request) { + return ResponseResult.success(lineInterviewService.modifyAppointmentTime(request)); + } + + @ApiOperation("修改面试官") + @PostMapping("/interviewer/modify") + public ResponseResult modifyInterviewer(@RequestBody @Validated ModifyInterviewerRequest request) { + return ResponseResult.success(lineInterviewService.modifyInterviewer(request)); + } + + @ApiOperation("面试列表") + @PostMapping("/interviewer/page") + public ResponseResult> getInterviewerPage(@RequestBody LineInterviewPageRequest request) { + return ResponseResult.success(lineInterviewService.getInterviewerPage(request)); + } }