diff --git a/coolstore-partner-common/pom.xml b/coolstore-partner-common/pom.xml index 2242999e3..0961b14dd 100644 --- a/coolstore-partner-common/pom.xml +++ b/coolstore-partner-common/pom.xml @@ -86,6 +86,18 @@ org.springframework.boot spring-boot-starter-data-redis + + + com.github.tencentyun + tls-sig-api-v2 + 2.0 + + + + com.github.librepdf + openpdf + 1.3.30 + \ No newline at end of file diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index 471ca6cd7..af6104e6a 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -52,6 +52,10 @@ public enum ErrorCodeEnum { LINE_ID_IS_NOT_EXIST(500001, "线索ID不存在!", null), + WORK_FLOW_STAGE_PASS_ERROR(500002, "通过错误,非对应阶段!", null), + PARTNER_USER_NOT_EXIST(500002, "加盟商用户信息不存在!", null), + + INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null), ; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/InteviewStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/InteviewStatusEnum.java new file mode 100644 index 000000000..011bad5fd --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/InteviewStatusEnum.java @@ -0,0 +1,35 @@ +package com.cool.store.enums; + +/** + * @Author: young.yu + * @Date: 2023-06-13 20:22 + * @Description: 面试状态枚举 + */ +public enum InteviewStatusEnum { + WAIT_APPOINTMENT(0, "待预约"), + + WAIT_APPOINTMENT_TIME_CONFIRM(1, "面试时间待审核"), + WAIT_INTERVIEW(2, "待面试"), + INTERVIEWING(3, "已开始"), + WAIT_AUDIT(4, "待审核"), + AUDITING(5, "审批中"), + AUDIT_PASS(6, "审批通过"), + REFUSE(7, "拒绝"); + + private Integer code; + + private String message; + + InteviewStatusEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java index 042ffded3..79217d723 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java @@ -1,5 +1,7 @@ package com.cool.store.enums; +import java.util.HashMap; + /** * @Author suzhuhong * @Date 2023/6/9 16:17 @@ -21,6 +23,18 @@ public enum WorkflowStageEnum { this.message = message; } + /** + * 每个大节点对应的子节点最后一个流程 + * @return + */ + public static final HashMap getWorkflowStageMap(){ + HashMap result = new HashMap<>(); + result.put(INTENT.getCode(),WorkflowStatusEnum.INTENT_3.getCode()); + result.put(RESERVATION.getCode(),WorkflowStatusEnum.RESERVATION_6.getCode()); + result.put(INTERVIEW.getCode(),WorkflowStatusEnum.INTERVIEW_6.getCode()); + return result; + } + public String getCode() { return code; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java index a73252778..b835d270f 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java @@ -1,5 +1,7 @@ package com.cool.store.utils; +import java.time.*; +import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Date; @@ -32,4 +34,22 @@ public class CoolDateUtils { now.set(Calendar.DATE, now.get(Calendar.DATE) + day); return now.getTime(); } + + + /** + * n天后 的最大时间 20230613 2天后最大时间---->2023-06-15 23:59:59 + * @param day + * @return + */ + public static Date getDateFormatDay(int day){ + LocalDate today = LocalDate.now(); + LocalDate thirdDay = today.plusDays(day); + LocalDateTime thirdDayMidnight = LocalDateTime.of(thirdDay, LocalTime.MIDNIGHT); + LocalDateTime thirdDay235959 = thirdDayMidnight.with(LocalTime.MAX); + ZonedDateTime zonedDateTime = ZonedDateTime.of(thirdDay235959, ZoneId.systemDefault()); + return Date.from(zonedDateTime.toInstant()); + } + + + } diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java new file mode 100644 index 000000000..b12b8b33b --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java @@ -0,0 +1,117 @@ +package com.cool.store.utils; + +import com.lowagie.text.Document; +import com.lowagie.text.Font; +import com.lowagie.text.Image; +import com.lowagie.text.Paragraph; +import com.lowagie.text.pdf.*; + +import java.awt.*; +import java.io.IOException; +import java.io.OutputStream; + +/** + * 使用 OpenPDF 封装的 pdf 工具类 + */ +public class PDFUtils { + + private static final int[] A4Size = {595, 842}; + + /** + * 设置 pdf 背景图片(A4) + * 每页都需要单独设置 + */ + public static void setBackgroundImgA4(Document document, Image image) { + //图片顶格 + image.setAbsolutePosition(0, 0); + //填满 A4 大小的页面 + image.scaleAbsolute(A4Size[0], A4Size[1]); + document.add(image); + } + + /** + * 设置 pdf 背景图片 + * 每页都需要单独设置 + */ + public static void setBackgroundImg(Document document, Image image, int width, int height) { + //图片顶格 + image.setAbsolutePosition(0, 0); + image.scaleAbsolute(width, height); + document.add(image); + } + + /** + * 将文本放在 pdf 的绝对位置上来抠模板(不指定字体,默认为 OpenPDF 自带的 STSong-Light Normal) + * @param reader PdfReader 流 + * @param outputStream 输出流 + * @param x 左边距 + * @param y 下边距 + * @param content 要插入的文本 + * @param fontSize 字体大小 + * @param color 文本颜色 + */ + public static void putParagraphAbsolutely(PdfReader reader, OutputStream outputStream, float x, float y, String content, float fontSize, Color color) { + try { + BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); + addContent(reader, outputStream, content, x, y, baseFont, fontSize, 0, color); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + /** + * 指定字体的文本绝对位置插入方法 + * @param reader PdfReader 流 + * @param outputStream 输出流 + * @param x 左边距 + * @param y 下边距 + * @param content 要插入的文本 + * @param baseFont 字体设置(如果不使用 OpenPDF 自带的字体,就需要将字体文件放在项目路径下) + * 自定义字体方式 + * ttf 字体 + * 1. BaseFont baseFont = BaseFont.createFont("arial.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); + * ttc 字体(包含了两种字体,所以需要选择 0 或 1) + * 2. BaseFont baseFont = BaseFont.createFont("simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); + * @param fontSize 字体大小 + * @param fontStyle 字体风格() + * NORMAL = 0; BOLD = 1; ITALIC = 2; UNDERLINE = 4; STRIKETHRU = 8; BOLDITALIC = BOLD | ITALIC; + * @param color 字体颜色 + */ + public static void putParagraphAbsolutely(PdfReader reader, OutputStream outputStream, float x, float y, String content, BaseFont baseFont, float fontSize, int fontStyle, Color color) { + addContent(reader, outputStream, content, x, y, baseFont, fontSize, fontStyle, color); + } + + /** + * 插入文本的 raw 方法 + * @param reader PDF 读取流 + * @param outputStream 输出流 + * @param content 插入文本 + * @param x 左边距 + * @param y 下边距 + * @param baseFont 字体和编码设置 + * @param fontSize 字体大小 + * @param fontStyle 字体风格 + * @param color 字体颜色 + */ + private static void addContent(PdfReader reader, OutputStream outputStream, String content, float x, float y, BaseFont baseFont, float fontSize, int fontStyle, Color color) { + try { + //生成 paragraph 并放在正确位置 + //抠模板 + PdfStamper stamper = new PdfStamper(reader, outputStream); + PdfContentByte over = stamper.getOverContent(1); + Font font = new Font(baseFont, fontSize, fontStyle, color); + Paragraph insertContent = new Paragraph(content, font); + + ColumnText columnText = new ColumnText(over); + // llx 和 urx 最小的值决定离左边的距离. lly 和 ury 最大的值决定离下边的距离 + columnText.setSimpleColumn(x, y, Float.MAX_VALUE, Float.MIN_VALUE); + columnText.addElement(insertContent); + columnText.go(); + stamper.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + } + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java new file mode 100644 index 000000000..af3da67ef --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java @@ -0,0 +1,68 @@ +package com.cool.store.utils; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; +import com.lowagie.text.Document; +import com.lowagie.text.Image; +import com.lowagie.text.pdf.PdfReader; +import com.lowagie.text.pdf.PdfWriter; + +import java.awt.*; +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; + +//生成资格面试通过函的工具 +public class PassLetterUtils { + + /** + * 生成通过函的方法 + * 返回通过函编码 + * @param partnerName 加盟商姓名 + * @param verifyCity 审批城市 + * @param passTime 审批通过时间 + */ + public static String genPassLetter(String partnerName, String passCode, String verifyCity, DateTime passTime) { + String randomNum = RandomUtil.randomNumbers(5); + if (ObjectUtil.isEmpty(passCode)) { + passCode = "HSAY" + DateUtil.format(passTime, "yyMMdd") + "-" + randomNum; + } + String passTimeStr = DateUtil.format(passTime, "yyyy年MM月dd日"); + Document document = new Document(); + try { + //1. 创建 pdf document +// ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + FileOutputStream outputStream = new FileOutputStream("passLetter.pdf"); + PdfWriter.getInstance(document, outputStream); + document.open(); + + //2. 添加背景图片 + Image img = Image.getInstance(PassLetterUtils.class.getResource("/static/passLetterBg.jpg").toString()); + PDFUtils.setBackgroundImgA4(document, img); + document.close(); + + //3. 填写通过函模板信息 + addContentToPdf(partnerName + " 先生/女士", 122, 640); + addContentToPdf(passCode, 122, 558); + addContentToPdf(verifyCity, 155, 494); + addContentToPdf("60天", 135, 450); + addContentToPdf(passTimeStr, 393, 152); + return passCode; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private static void addContentToPdf(String content, float x, float y) { + try { + PdfReader pdfReader = new PdfReader(Files.newInputStream(Paths.get("passLetter.pdf"))); + OutputStream outputStream = Files.newOutputStream(Paths.get("passLetter.pdf")); + PDFUtils.putParagraphAbsolutely(pdfReader, outputStream, x, y, content, 20, new Color(255, 82,25)); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/TRTCUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/TRTCUtils.java new file mode 100644 index 000000000..f22afb627 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/TRTCUtils.java @@ -0,0 +1,29 @@ +package com.cool.store.utils; + +import com.tencentyun.TLSSigAPIv2; + +/** + * 腾讯实时音视频TRTC工具类 + */ +public class TRTCUtils { + + /** + * 默认过期时间 30 s + */ + private static final Long expired = 30L; + + /** + * 生成 userSig 用于进入会议 + * 详见 https://cloud.tencent.com/document/product/647/17275#.E8.B0.83.E8.AF.95.E8.B7.91.E9.80.9A.E9.98.B6.E6.AE.B5.E5.A6.82.E4.BD.95.E8.AE.A1.E7.AE.97-UserSig.EF.BC.9F + */ + public static String genUserSig(Long sdkAppId, String key, String userId) { + TLSSigAPIv2 tlsSigAPIv2 = new TLSSigAPIv2(sdkAppId, key); + return tlsSigAPIv2.genUserSig(userId, expired); + } + + public static String genUserSig(Long sdkAppId, String key, String userId, Long expiredTime) { + TLSSigAPIv2 tlsSigAPIv2 = new TLSSigAPIv2(sdkAppId, key); + return tlsSigAPIv2.genUserSig(userId, expiredTime); + } + +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ContentDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ContentDAO.java index 4dd47cf76..999948580 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ContentDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ContentDAO.java @@ -6,6 +6,7 @@ import com.cool.store.dto.content.ContentQueryListDto; import com.cool.store.dto.content.ContentUpdateDto; import com.cool.store.entity.HyContentInfoDO; import com.cool.store.mapper.HyContentInfoMapper; +import com.cool.store.vo.HyContentInfoVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @@ -36,7 +37,7 @@ public class ContentDAO { contentInfoMapper.updateByPrimaryKeySelective(hyContentInfoDO); } - public List queryContentList(ContentQueryListDto dto) { + public List queryContentList(ContentQueryListDto dto) { return contentInfoMapper.queryContentList(dto); } 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 cb37b6900..c983f7c46 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 @@ -28,11 +28,11 @@ public class HyOpenAreaInfoDAO { return hyOpenAreaInfoMapper.queryKeyOpenArea(); } - public List queryByKeyword(String keyword){ + public List queryByKeyword(String keyword,Boolean filterData){ if (StringUtils.isEmpty(keyword)){ return new ArrayList<>(); } - return hyOpenAreaInfoMapper.queryByKeyword(keyword); + return hyOpenAreaInfoMapper.queryByKeyword(keyword,filterData); } public List queryFirstLevel(){ diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerBaseInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerBaseInfoDAO.java new file mode 100644 index 000000000..edcd63f67 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerBaseInfoDAO.java @@ -0,0 +1,41 @@ +package com.cool.store.dao; + +import com.cool.store.entity.HyPartnerBaseInfoDO; +import com.cool.store.mapper.HyPartnerBaseInfoMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; + +/** + * @Author suzhuhong + * @Date 2023/6/13 20:25 + * @Version 1.0 + */ +@Repository +public class HyPartnerBaseInfoDAO { + + + @Resource + HyPartnerBaseInfoMapper hyPartnerBaseInfoMapper; + + + + public int insertSelective( HyPartnerBaseInfoDO record){ + return hyPartnerBaseInfoMapper.insertSelective(record); + } + + /** + * + * 默认更新方法,根据主键更新,不会把null值更新到数据库,避免覆盖之前有值的 + * dateTime:2023-05-29 03:51 + */ + public int updateByPrimaryKeySelective(HyPartnerBaseInfoDO record){ + return hyPartnerBaseInfoMapper.updateByPrimaryKeySelective(record); + } + + public int updateByPartnerId(String userName,String mobile,String partnerId){ + return hyPartnerBaseInfoMapper.updateByPartnerId(userName,mobile,partnerId); + } + +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java index 429e10245..471c5ad53 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java @@ -125,4 +125,7 @@ public class HyPartnerLineInfoDAO { return hyPartnerLineInfoMapper.joinAndRemoveBlack(lineId,status,joinReason,removeReason); } + + + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java index 04aee62d5..21fe496d5 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java @@ -24,6 +24,11 @@ public class HyPartnerUserInfoDAO { HyPartnerUserInfoMapper hyPartnerUserInfoMapper; + public int updateByPrimaryKeySelective(HyPartnerUserInfoDO hyPartnerUserInfoDO){ + return hyPartnerUserInfoMapper.updateByPrimaryKeySelective(hyPartnerUserInfoDO); + } + + /** * 根据PartnerId查询用户 * @param partnerId diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyContentInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyContentInfoMapper.java index 97486acbc..f466fe5c9 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyContentInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyContentInfoMapper.java @@ -2,6 +2,7 @@ package com.cool.store.mapper; import com.cool.store.dto.content.ContentQueryListDto; import com.cool.store.entity.HyContentInfoDO; +import com.cool.store.vo.HyContentInfoVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -36,7 +37,7 @@ public interface HyContentInfoMapper { * 分页查询动态列表 * 根据传入参数匹配 */ - List queryContentList(ContentQueryListDto dto); + List queryContentList(ContentQueryListDto dto); /** * 根据contentId查询动态详情 diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyOpenAreaInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyOpenAreaInfoMapper.java index 090036d31..f3467e480 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyOpenAreaInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyOpenAreaInfoMapper.java @@ -39,7 +39,7 @@ public interface HyOpenAreaInfoMapper { * 查询所有 * @return */ - List queryByKeyword(@Param("keyword") String keyword); + List queryByKeyword(@Param("keyword") String keyword, @Param("filterData") Boolean filterData); /** * 查询所有一级城市 (所有省份+直辖市) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerBaseInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerBaseInfoMapper.java index 7b2ebbcf4..a2acbe68b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerBaseInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerBaseInfoMapper.java @@ -22,4 +22,15 @@ public interface HyPartnerBaseInfoMapper { * dateTime:2023-05-29 03:51 */ int updateByPrimaryKeySelective(@Param("record") HyPartnerBaseInfoDO record); + + /** + * 根据加盟商ID修改用户名称与手机号 + * @param userName + * @param mobile + * @param partnerId + * @return + */ + int updateByPartnerId(@Param("userName") String userName, + @Param("mobile") String mobile, + @Param("partnerId") String partnerId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java index af6ade214..4e0de1a97 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java @@ -2,6 +2,7 @@ package com.cool.store.mapper; import com.cool.store.entity.HyPartnerInterviewDO; import com.cool.store.vo.PartnerInterviewInfoVO; +import com.cool.store.vo.PartnerPassLetterDetailVO; import org.apache.ibatis.annotations.Param; /** @@ -31,4 +32,40 @@ public interface HyPartnerInterviewMapper { */ PartnerInterviewInfoVO queryByPartnerId(@Param("partnerId") String partnerId); + /** + * 修改面试状态 + * 预约状态 0 待预约;1待面试;2已开始;3待审核;4审批中;5审批通过;6拒绝 + */ + int updateInterviewStatus(@Param("interviewId") String interviewId, @Param("status") Integer status); + + /** + * 修改面试实际开始时间 + * @param dateTime "yyyy-MM-dd HH:mm:ss" + */ + int updateActualStartTime(@Param("interviewId") String interviewId, @Param("dateTime") String dateTime); + + /** + * 修改加盟商或面试官进入面试时间 + * @param userType 1.面试官2.加盟商3.其他 + * @param dateTime "yyyy-MM-dd HH:mm:ss" + * @return + */ + int updateEnterTime(@Param("interviewId") String interviewId, @Param("userType") Integer userType, @Param("dateTime") String dateTime); + + /** + * 将加盟商是否参会修改为参会 + * 0未参加,1参加 + */ + int updateWhetherPartnerEnter(@Param("interviewId") String interviewId); + + /** + * 根据会议 id 查询面试官 id + */ + String getInterviewerByInterviewId(@Param("interviewId") String interviewId); + + /** + * 获取通知函详情 + */ + PartnerPassLetterDetailVO getPassLetterDetail(@Param("interviewId") String interviewId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java index 44fe9cb77..dad3e0347 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java @@ -3,6 +3,8 @@ package com.cool.store.mapper; import com.cool.store.dto.partner.PartnerInterviewInfoDTO; import com.cool.store.dto.partner.SpecialDateRangeInterviewCountDTO; import com.cool.store.entity.HyPartnerInterviewPlanDO; +import com.cool.store.request.GetInterviewListReq; +import com.cool.store.vo.interview.InterviewVO; import com.github.pagehelper.PageInfo; import org.apache.ibatis.annotations.Param; @@ -50,7 +52,6 @@ public interface HyPartnerInterviewPlanMapper { @Param("currentDate") String currentDate, @Param("startTime") String startTime, @Param("endTime") String endTime); - /** * 查询面试列表 * @param userId @@ -70,4 +71,20 @@ public interface HyPartnerInterviewPlanMapper { PageInfo getPartnerInterviewInfoList(@Param("userId") String userId, @Param("workflowStage") String workflowStage , @Param("workflowStatus") String workflowStatus); + + /** + * 查询面试列表 + * + * @param request + * @return + */ + List getInterviewList(@Param("record") GetInterviewListReq request); + + /** + * 查询面试详情 + * + * @param interviewId + * @return + */ + InterviewVO getInterviewInfo(String interviewId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyContentInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyContentInfoMapper.xml index a2b208381..0c8a7bf6f 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyContentInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyContentInfoMapper.xml @@ -17,8 +17,14 @@ + + + + + + - id, content_title, subject, content_type, cover, status, deleted, create_time, update_time, + id, content_title, subject, content_type, cover, content, status, deleted, create_time, update_time, create_user_id, update_user_id @@ -42,9 +48,6 @@ status, - - deleted, - create_time, @@ -143,8 +146,8 @@ where id = #{contentId} - + select , update_user_id updateUserId from hy_content_info where deleted = 0 @@ -156,6 +159,24 @@ and content_type = #{contentType} + + and update_time >= #{startTime} + + + and update_time <= #{endTime} + + + + diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml index 91b0c2fec..db657a9df 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml @@ -133,6 +133,9 @@ select * from hy_open_area_info where area_path like concat('%',#{keyword},'%') + + and province_city_flag = 1 + diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml index 27e2e1876..3fde0213b 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml @@ -202,4 +202,18 @@ where id = #{record.id} + + + + update hy_partner_base_info + + + username = #{record.username}, + + + mobile = #{record.mobile}, + + where partner_id = #{partnerId} + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml index c8229ffec..0fa5d3610 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml @@ -34,6 +34,11 @@ + + + + + id, status, partner_line_id, interview_plan_id, partner_id, deadline, interviewer, recorder, process_info, record_time, summary, auth_code, pass_file_url, expiry_date, @@ -261,4 +266,68 @@ WHERE deleted = 0 AND user_id = #{interview} + + + + UPDATE hy_partner_interview + SET `status` = #{status} + WHERE id = #{interviewId} + + + + + UPDATE hy_partner_interview_plan + SET actual_start_time = IF(actual_start_time IS NULL, #{dateTime}, actual_start_time) + WHERE id = ( + SELECT interview_plan_id + FROM hy_partner_interview + WHERE id = #{interviewId} + ) + + + + + UPDATE hy_partner_interview + + + interviewer_enter_time = IF(interviewer_enter_time IS NULL, #{dateTime}, interviewer_enter_time), + + + partner_enter_time = IF(partner_enter_time IS NULL, #{dateTime}, partner_enter_time) + + + WHERE id = 1 + + + + + UPDATE hy_partner_interview_plan + SET is_partner_interview = 1 + WHERE id = ( + SELECT interview_plan_id + FROM hy_partner_interview + WHERE id = #{interviewId} + ) + + + + + + + + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml index c20826590..bb17f44a3 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml @@ -237,4 +237,65 @@ + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml index 268b8dd2a..9c1866d01 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml @@ -295,7 +295,8 @@ a.workflow_status as workflowStatus, a.partner_id as partnerUserId, a.investment_manager as investmentManager, - b.user_portrait as user_portrait + b.user_portrait as user_portrait, + b.id as partnerBaseInfoId from hy_partner_line_info a inner join hy_partner_base_info b on a.id = b.partner_line_id diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentQueryListDto.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentQueryListDto.java index 9ac3cd8ea..96e23930d 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentQueryListDto.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentQueryListDto.java @@ -18,4 +18,10 @@ public class ContentQueryListDto extends PageBasicInfo { @ApiModelProperty("类型,默认选中全部时不传值") private String contentType; + @ApiModelProperty("筛选开始时间") + private String startTime; + + @ApiModelProperty("筛选结束时间") + private String endTime; + } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/EnterInterviewDto.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/EnterInterviewDto.java new file mode 100644 index 000000000..30015417d --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/EnterInterviewDto.java @@ -0,0 +1,18 @@ +package com.cool.store.dto.partner; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class EnterInterviewDto { + + @ApiModelProperty(value = "会议id", required = true) + private String interviewId; + + @ApiModelProperty(value = "用户id", required = true) + private String userId; + + @ApiModelProperty(value = "1.面试官2.加盟商3.其他", required = true) + private Integer userType; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PartnerLineInfoAndBaseInfoDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PartnerLineInfoAndBaseInfoDTO.java index deba8335e..3895358ef 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PartnerLineInfoAndBaseInfoDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PartnerLineInfoAndBaseInfoDTO.java @@ -13,6 +13,9 @@ public class PartnerLineInfoAndBaseInfoDTO { @ApiModelProperty("线索ID") private Long id; + @ApiModelProperty("加盟申请基本信息 添加tags使用该ID") + private Long partnerBaseInfoId; + @ApiModelProperty("hy_partner_user_info.partner_id") private String partnerId; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyContentInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyContentInfoDO.java index eea4e76cc..39724a0e5 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyContentInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyContentInfoDO.java @@ -40,10 +40,10 @@ public class HyContentInfoDO implements Serializable { private Integer deleted; @ApiModelProperty("创建时间") - private Date createTime; + private String createTime; @ApiModelProperty("更新时间") - private Date updateTime; + private String updateTime; @ApiModelProperty("新建人ID") private String createUserId; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/AddTagsRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/AddTagsRequest.java index 000974300..099cceb28 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/AddTagsRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/AddTagsRequest.java @@ -15,8 +15,8 @@ import java.util.List; @ApiModel public class AddTagsRequest { - @ApiModelProperty("线索ID") - private Long lineId; + @ApiModelProperty("加盟申请基本信息ID") + private Long partnerBaseInfoId; @ApiModelProperty("标签列表") private List Tags; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/BaseUserInfoRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/BaseUserInfoRequest.java index 39baad2ca..b68c820dc 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/BaseUserInfoRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/BaseUserInfoRequest.java @@ -13,8 +13,8 @@ import lombok.Data; @ApiModel public class BaseUserInfoRequest { - @ApiModelProperty("ID") - private Long id; + @ApiModelProperty("partnerId") + private String partnerId; @ApiModelProperty("手机号") private String mobile; @@ -25,11 +25,11 @@ public class BaseUserInfoRequest { @ApiModelProperty("常驻区域") private String liveArea; - @ApiModelProperty("意向开店区域") + @ApiModelProperty("意向开店区域ID") private String wantShopArea; - @ApiModelProperty("意向开店区域ID") - private Long wantShopAreaId; + @ApiModelProperty("意向开店区域Name") + private Long wantShopAreaName; @ApiModelProperty("0不接受调剂、1全国调剂、2省内调剂、3市内调剂") private Integer acceptAdjustType; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/CloseFollowRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/CloseFollowRequest.java index 7ae9e9fe8..940bd072a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/CloseFollowRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/CloseFollowRequest.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Author suzhuhong * @Date 2023/5/31 11:01 @@ -21,7 +23,7 @@ public class CloseFollowRequest { @ApiModelProperty("真实拒绝原因") private String rejectRealReason; @ApiModelProperty("证明文件与凭证") - private String certifyFile; + private List certifyFile; @ApiModelProperty("通过原因") private String passReason; @ApiModelProperty("通过-pass 拒绝-reject") diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/EntrustOthersReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/EntrustOthersReq.java new file mode 100644 index 000000000..750e00461 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/EntrustOthersReq.java @@ -0,0 +1,20 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: young.yu + * @Date: 2023-06-09 15:41 + * @Description: + */ +@Data +@ApiModel +public class EntrustOthersReq { + @ApiModelProperty("会议编号") + private String interviewId; + + @ApiModelProperty("新面试官编号") + private String newInterviewerId; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/FinishInterviewReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/FinishInterviewReq.java new file mode 100644 index 000000000..212d5924e --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/FinishInterviewReq.java @@ -0,0 +1,17 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: young.yu + * @Date: 2023-06-12 17:43 + * @Description: + */ +@Data +@ApiModel +public class FinishInterviewReq { + @ApiModelProperty("会议编号") + private String interviewId; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/GetInterviewListReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/GetInterviewListReq.java new file mode 100644 index 000000000..db594f7ee --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/GetInterviewListReq.java @@ -0,0 +1,32 @@ +package com.cool.store.request; + +import com.cool.store.common.PageBasicInfo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: young.yu + * @Date: 2023-06-06 15:50 + * @Description: + */ +@Data +@ApiModel +public class GetInterviewListReq extends PageBasicInfo { + @ApiModelProperty("加盟商姓名") + private String partnerName; + @ApiModelProperty("加盟商手机号") + private String partnerMobile; + @ApiModelProperty("房间号") + private String roomId; + @ApiModelProperty("面试官姓名") + private String interviewerName; + @ApiModelProperty("面试官手机号") + private String interviewerMobile; + @ApiModelProperty("房间状态:0待开放;1已开放; 2已关闭") + private Integer roomStatus; + @ApiModelProperty("开始时间") + private String startTime; + @ApiModelProperty("结束时间") + private String endTime; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/ModifyInterviewTimeReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/ModifyInterviewTimeReq.java new file mode 100644 index 000000000..35d99652d --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/ModifyInterviewTimeReq.java @@ -0,0 +1,21 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: young.yu + * @Date: 2023-06-12 17:43 + * @Description: + */ +@Data +@ApiModel +public class ModifyInterviewTimeReq { + @ApiModelProperty("会议编号") + private String interviewId; + @ApiModelProperty("新预约开始时间") + private String newStartBookingTime; + @ApiModelProperty("新预约结束时间") + private String newEndBookingTime; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/QueryByInterviewIdReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/QueryByInterviewIdReq.java new file mode 100644 index 000000000..b7b70f4c9 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/QueryByInterviewIdReq.java @@ -0,0 +1,17 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: young.yu + * @Date: 2023-06-09 15:41 + * @Description: + */ +@Data +@ApiModel +public class QueryByInterviewIdReq { + @ApiModelProperty("会议编号") + private String interviewId; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/HyContentInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/HyContentInfoVO.java new file mode 100644 index 000000000..4d412c27d --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/HyContentInfoVO.java @@ -0,0 +1,48 @@ +package com.cool.store.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class HyContentInfoVO { + + @ApiModelProperty("") + private Long id; + + @ApiModelProperty("内容标题") + private String contentTitle; + + @ApiModelProperty("栏目CODE") + private String subject; + + @ApiModelProperty("类型 image-图文 video-视频") + private String contentType; + + @ApiModelProperty("封面URL") + private String cover; + + @ApiModelProperty("状态 0-启用 1-禁用") + private Integer status; + + @ApiModelProperty("创建时间") + private String createTime; + + @ApiModelProperty("更新时间") + private String updateTime; + + @ApiModelProperty("新建人ID") + private String createUserId; + + @ApiModelProperty("更新人ID") + private String updateUserId; + + @ApiModelProperty("更新人姓名") + private String updateUserName; + + @ApiModelProperty("更新人电话") + private String updateUserPhone; + + @ApiModelProperty("图文内容或者视频文件URL") + private String content; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerEnterInterviewVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerEnterInterviewVO.java new file mode 100644 index 000000000..c9a294e2d --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerEnterInterviewVO.java @@ -0,0 +1,15 @@ +package com.cool.store.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PartnerEnterInterviewVO { + + @ApiModelProperty("userSig 进入会议需要的用户签名") + private String userSign; + + @ApiModelProperty("面试官id") + private String interviewerId; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineInfoAndBaseInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineInfoAndBaseInfoVO.java index 9bacd830b..11f2c51ef 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineInfoAndBaseInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineInfoAndBaseInfoVO.java @@ -18,6 +18,8 @@ public class PartnerLineInfoAndBaseInfoVO { @ApiModelProperty("线索ID") private Long id; + private Long partnerBaseInfoId; + @ApiModelProperty("流程阶段:1意向申请审核;2预约面试时间;3加盟资格面试;4分配选址开发经理;5商圈点位评估;6上传店铺租赁信息;7完善加盟签约信息;8支付加盟费用;9签订加盟合同") private String workflowStage; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerPassLetterDetailVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerPassLetterDetailVO.java new file mode 100644 index 000000000..cc83453f9 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerPassLetterDetailVO.java @@ -0,0 +1,27 @@ +package com.cool.store.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PartnerPassLetterDetailVO { + + @ApiModelProperty("加盟商姓名") + private String partnerName; + + @ApiModelProperty("编码") + private String passCode; + + @ApiModelProperty("审核城市") + private String verifyCity; + + @ApiModelProperty("函文件URL") + private String passFileUrl; + + @ApiModelProperty("生成日期:YYYY-MM-DD") + private String createTime; + + @ApiModelProperty("有效期截至") + private String expiryDate; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java new file mode 100644 index 000000000..d4855f309 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java @@ -0,0 +1,145 @@ +package com.cool.store.vo.interview; + +import com.alibaba.fastjson.annotation.JSONField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Author: young.yu + * @Date: 2023-06-08 16:26 + * @Description: + */ +@ApiModel(description = "面试信息") +public class InterviewVO { + @ApiModelProperty(value = "会议id", required = true) + private String interviewId; + + @ApiModelProperty(value = "加盟商用户编号") + private String partnerId; + + @ApiModelProperty(value = "被面试人姓名", required = true) + private String partnerName; + + @ApiModelProperty(value = "被面试人手机号", required = true) + private String partnerMobile; + + @ApiModelProperty(value = "房间号", required = true) + private String roomId; + + @ApiModelProperty(value = "会议计划开始时间", required = true, example = "2023-06-03 10:00") + private String startTime; + + @ApiModelProperty(value = "面试官人员编号") + private String interviewerId; + + @ApiModelProperty(value = "面试官姓名", required = true) + private String interviewerName; + + @ApiModelProperty(value = "面试官手机号", required = true) + private String interviewerMobile; + @ApiModelProperty(value = "房间状态(0待开放;1已开放;2已关闭)", required = true) + private String roomStatus; + + @ApiModelProperty(value = "会议结束时间", required = true, example = "2023-06-03 12:00") + private String endTime; + + @ApiModelProperty(value = "预约状态 0 待预约;1待面试;2已开始;3待审核;4审批中;5审批通过;6拒绝", required = true) + private Integer status; + + + public String getPartnerId() { + return partnerId; + } + + public void setPartnerId(String partnerId) { + this.partnerId = partnerId; + } + + public String getInterviewerId() { + return interviewerId; + } + + public void setInterviewerId(String interviewerId) { + this.interviewerId = interviewerId; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getInterviewId() { + return interviewId; + } + + public void setInterviewId(String interviewId) { + this.interviewId = interviewId; + } + + public String getPartnerName() { + return partnerName; + } + + public void setPartnerName(String partnerName) { + this.partnerName = partnerName; + } + + public String getPartnerMobile() { + return partnerMobile; + } + + public void setPartnerMobile(String partnerMobile) { + this.partnerMobile = partnerMobile; + } + + public String getRoomId() { + return roomId; + } + + public void setRoomId(String roomId) { + this.roomId = roomId; + } + + public String getStartTime() { + return startTime; + } + + public void setStartTime(String startTime) { + this.startTime = startTime; + } + + public String getInterviewerName() { + return interviewerName; + } + + public void setInterviewerName(String interviewerName) { + this.interviewerName = interviewerName; + } + + public String getInterviewerMobile() { + return interviewerMobile; + } + + public void setInterviewerMobile(String interviewerMobile) { + this.interviewerMobile = interviewerMobile; + } + + public String getRoomStatus() { + return roomStatus; + } + + public void setRoomStatus(String roomStatus) { + this.roomStatus = roomStatus; + } + + public String getEndTime() { + return endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ContentService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ContentService.java index 30959d3af..2b3ebb5f3 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ContentService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ContentService.java @@ -4,6 +4,7 @@ import com.cool.store.dto.content.ContentAddDto; import com.cool.store.dto.content.ContentQueryListDto; import com.cool.store.dto.content.ContentUpdateDto; import com.cool.store.entity.HyContentInfoDO; +import com.cool.store.vo.HyContentInfoVO; import java.util.List; @@ -31,7 +32,7 @@ public interface ContentService { /** * 查询动态列表 */ - List queryContentList(ContentQueryListDto dto); + List queryContentList(ContentQueryListDto dto); /** * 查询动态详情 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java new file mode 100644 index 000000000..b101c26a1 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java @@ -0,0 +1,42 @@ +package com.cool.store.service; + +import com.cool.store.request.EntrustOthersReq; +import com.cool.store.request.FinishInterviewReq; +import com.cool.store.request.GetInterviewListReq; +import com.cool.store.request.ModifyInterviewTimeReq; +import com.cool.store.vo.interview.InterviewVO; + +import java.util.List; + +/** + * @Author: young.yu + * @Date: 2023-06-06 15:01 + * @Description :面试service + */ +public interface InterviewService { + List getInterviewList(GetInterviewListReq request); + + /** + * 根据面试会议id查询面试信息 + * @param interviewId + * @return + */ + InterviewVO getInterviewInfo(String interviewId); + + /** + * 委托他人 + * @param request + */ + void entrustOthers(EntrustOthersReq request); + /** + * 修改面试时间 + * @param request + */ + void modifyInterviewTime(ModifyInterviewTimeReq request); + + /** + * 结束面试 + * @param request + */ + void finishInterview(FinishInterviewReq request); +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerInterviewService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerInterviewService.java index 2642ea009..efc740737 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerInterviewService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerInterviewService.java @@ -1,6 +1,9 @@ package com.cool.store.service; +import com.cool.store.dto.partner.EnterInterviewDto; +import com.cool.store.vo.PartnerEnterInterviewVO; import com.cool.store.vo.PartnerInterviewInfoVO; +import com.cool.store.vo.PartnerPassLetterDetailVO; public interface PartnerInterviewService { @@ -11,4 +14,17 @@ public interface PartnerInterviewService { */ PartnerInterviewInfoVO queryByPartnerId(String partnerId); + /** + * 进入面试间的方法 + * 修改一些面试状态 + * 最后返回 userSign 用于进入腾讯云音视频房间 + * @return userSign 进入视频所需签名 + */ + PartnerEnterInterviewVO enterInterviewRoom(EnterInterviewDto dto); + + /** + * 获取通知函详情 + */ + PartnerPassLetterDetailVO passLetterDetail(String interviewId); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ContentServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ContentServiceImpl.java index 6babfd2e8..9be46e56d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ContentServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ContentServiceImpl.java @@ -8,6 +8,7 @@ import com.cool.store.dto.content.ContentUpdateDto; import com.cool.store.entity.HyContentInfoDO; import com.cool.store.mapper.HyContentInfoMapper; import com.cool.store.service.ContentService; +import com.cool.store.vo.HyContentInfoVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -60,7 +61,7 @@ public class ContentServiceImpl implements ContentService { * 查询动态列表 */ @Override - public List queryContentList(ContentQueryListDto dto) { + public List queryContentList(ContentQueryListDto dto) { return contentInfoMapper.queryContentList(dto); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java new file mode 100644 index 000000000..5b7fc8700 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java @@ -0,0 +1,102 @@ +package com.cool.store.service.impl; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUtil; +import com.cool.store.entity.HyPartnerInterviewDO; +import com.cool.store.entity.HyPartnerInterviewPlanDO; +import com.cool.store.mapper.HyPartnerInterviewMapper; +import com.cool.store.mapper.HyPartnerInterviewPlanMapper; +import com.cool.store.request.EntrustOthersReq; +import com.cool.store.request.FinishInterviewReq; +import com.cool.store.request.GetInterviewListReq; +import com.cool.store.request.ModifyInterviewTimeReq; +import com.cool.store.service.InterviewService; +import com.cool.store.vo.interview.InterviewVO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + * @Author: young.yu + * @Date: 2023-06-06 15:19 + * @Description: + */ +@Slf4j +@Service +public class InterviewServiceImpl implements InterviewService { + + @Autowired + private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper; + + @Autowired + private HyPartnerInterviewMapper hyPartnerInterviewMapper; + @Override + public List getInterviewList(GetInterviewListReq request) { + List interviewList = hyPartnerInterviewPlanMapper.getInterviewList(request); + return interviewList; + } + + @Override + public InterviewVO getInterviewInfo(String interviewId) { + return hyPartnerInterviewPlanMapper.getInterviewInfo(interviewId); + } + + @Override + public void entrustOthers(EntrustOthersReq request) { + //TODO 1.原面试官日程删除 + + //TODO 2.新面试官日程新增 + + //TODO 3.面试信息变更 + + HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO(); + record.setId(Long.valueOf(request.getInterviewId())); + record.setInterviewer(request.getInterviewId()); + record.setUpdateTime(new Date()); + hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record); + + + HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO(); + hyPartnerInterviewDO.setInterviewPlanId(Long.valueOf(request.getInterviewId())); + hyPartnerInterviewDO.setInterviewer(request.getNewInterviewerId()); + hyPartnerInterviewDO.setUpdateTime(new Date()); + hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO); + + } + + @Override + public void modifyInterviewTime(ModifyInterviewTimeReq request) { + //TODO 修改面试时间 + + HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO(); + record.setId(Long.valueOf(request.getInterviewId())); + record.setStartTime(Convert.toDate(request.getNewStartBookingTime())); + record.setUpdateTime(new Date()); + hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record); + } + + @Override + public void finishInterview(FinishInterviewReq request) { + //更新面试计划信息 + HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO(); + record.setId(Long.valueOf(request.getInterviewId())); + record.setRoomStatus(0); + record.setUpdateTime(new Date()); + hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record); + + //更新面试信息 + HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO(); + hyPartnerInterviewDO.setInterviewPlanId(Long.valueOf(request.getInterviewId())); + hyPartnerInterviewDO.setStatus(3); + hyPartnerInterviewDO.setUpdateTime(new Date()); + hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO); + + + } + + + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerInterviewServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerInterviewServiceImpl.java index 0da11cb76..3507e4f8b 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerInterviewServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerInterviewServiceImpl.java @@ -1,10 +1,26 @@ package com.cool.store.service.impl; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.RandomUtil; +import com.cool.store.dto.partner.EnterInterviewDto; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; import com.cool.store.mapper.HyPartnerInterviewMapper; import com.cool.store.service.PartnerInterviewService; +import com.cool.store.utils.PDFUtils; +import com.cool.store.utils.PassLetterUtils; +import com.cool.store.utils.TRTCUtils; +import com.cool.store.vo.PartnerEnterInterviewVO; import com.cool.store.vo.PartnerInterviewInfoVO; +import com.cool.store.vo.PartnerPassLetterDetailVO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.ByteArrayOutputStream; +import java.io.OutputStream; @Service public class PartnerInterviewServiceImpl implements PartnerInterviewService { @@ -12,8 +28,15 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService { @Autowired private HyPartnerInterviewMapper interviewMapper; + @Value("${trtc.sdkAppId}") + private Long sdkAppId; + + @Value("${trtc.secretKey}") + private String key; + /** * 加盟商查询面试信息 + * * @param partnerId * @return */ @@ -22,4 +45,70 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService { return interviewMapper.queryByPartnerId(partnerId); } + /** + * 进入面试间的方法 + * 修改一些面试状态 + * 最后返回 userSign 用于进入腾讯云音视频房间 + * + * @return userSign 进入视频所需签名 + */ + @Override + @Transactional + public PartnerEnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) { + try { + //1. 将面试状态改为 --> 2已开始 + interviewMapper.updateInterviewStatus(dto.getInterviewId(), 2); + //3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改 + interviewMapper.updateActualStartTime(dto.getInterviewId(), DateUtil.now()); + //4. 修改加盟商或面试官进入面试时间 + interviewMapper.updateEnterTime(dto.getInterviewId(), dto.getUserType(), DateUtil.now()); + //5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段 + interviewMapper.updateWhetherPartnerEnter(dto.getInterviewId()); + //6. 查询对应的面试官id + String interviewId = interviewMapper.getInterviewerByInterviewId(dto.getInterviewId()); + //生成 userSign + String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId()); + PartnerEnterInterviewVO vo = new PartnerEnterInterviewVO(); + vo.setUserSign(userSig); + vo.setInterviewerId(interviewId); + return vo; + } catch (Exception e) { + throw new ServiceException(ErrorCodeEnum.INTERVIEW_ENTER_FAIL); + } + } + + /** + * 获取通知函详情 + * TODO 暂时将生成通过函文件的功能放在这里方便测试和联调,审批通过的回调方法完成后应该放到该方法中 + */ + @Override + public PartnerPassLetterDetailVO passLetterDetail(String interviewId) { + PartnerPassLetterDetailVO vo = interviewMapper.getPassLetterDetail(interviewId); + //有效期为审批通过次日起第 60 天的 23:59:59,由此倒推 createTime + DateTime expiryDate = DateUtil.parseDate(vo.getExpiryDate()); + DateTime createTime = DateUtil.offsetDay(expiryDate, -61); + vo.setCreateTime(DateUtil.format(createTime, "yyyy-MM-dd")); + //解析意向开店区域为市级行政区 + String verifyCity = vo.getVerifyCity(); + if (verifyCity == null) { + String passCode = PassLetterUtils.genPassLetter(vo.getPartnerName(), verifyCity, vo.getPassCode(), createTime); + vo.setPassCode(passCode); + return vo; + } + String[] split = verifyCity.split("/"); + //根据长度来取市级行政区域 + if (split.length == 2) { + vo.setVerifyCity(split[1]); + } else if (split.length == 3) { + vo.setVerifyCity(split[1]); + } else if (split.length == 4) { + vo.setVerifyCity(split[2]); + } else { + System.out.println("wrong"); + } + String passCode = PassLetterUtils.genPassLetter(vo.getPartnerName(), verifyCity, vo.getPassCode(), createTime); + vo.setPassCode(passCode); + return vo; + } + } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerBaseInfoService.java b/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerBaseInfoService.java new file mode 100644 index 000000000..9a6a870eb --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerBaseInfoService.java @@ -0,0 +1,19 @@ +package com.cool.store.Service; + +import com.cool.store.request.AddTagsRequest; + +/** + * @Author suzhuhong + * @Date 2023/6/13 21:37 + * @Version 1.0 + */ +public interface HyPartnerBaseInfoService { + + + /** + * 添加标签 + * @param addTagsRequest + * @return + */ + Boolean addTags(AddTagsRequest addTagsRequest); +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerIntentInfoService.java b/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerIntentInfoService.java index 1a17a53e1..fcdd9ca82 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerIntentInfoService.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerIntentInfoService.java @@ -1,5 +1,6 @@ package com.cool.store.Service; +import com.cool.store.request.BaseUserInfoRequest; import com.cool.store.vo.PartnerIntentApplyInfoVO; import com.github.pagehelper.PageInfo; @@ -28,4 +29,11 @@ public interface HyPartnerIntentInfoService { */ PartnerIntentApplyInfoVO getPartnerIntentApplyInfo(Long lineId); + /** + * 员工端 修改加盟商意向信息 + * @param baseUserInfoRequest + * @return + */ + Boolean updatePartnerIntentInfo(BaseUserInfoRequest baseUserInfoRequest); + } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerLineInfoService.java b/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerLineInfoService.java index 80f288396..194ef9f71 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerLineInfoService.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerLineInfoService.java @@ -1,5 +1,6 @@ package com.cool.store.Service; +import com.cool.store.request.CloseFollowRequest; import com.cool.store.request.LineRequest; import com.cool.store.vo.BlackListVO; import com.cool.store.vo.PartnerLineInfoAndBaseInfoVO; @@ -90,5 +91,13 @@ public interface HyPartnerLineInfoService { */ Boolean removeBlackList( Long lineId, Integer status, String removeReason); + /** + * 结束或者通过线索 + * @param userId + * @param closeFollowRequest + * @return + */ + Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest); + } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/OpenAreaService.java b/coolstore-partner-webb/src/main/java/com/cool/store/Service/OpenAreaService.java new file mode 100644 index 000000000..8cb36e0fe --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/Service/OpenAreaService.java @@ -0,0 +1,32 @@ +package com.cool.store.Service; + +import com.cool.store.vo.OpenAreaTreeVO; +import com.cool.store.vo.OpenAreaVO; + +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2023/6/13 22:11 + * @Version 1.0 + */ +public interface OpenAreaService { + + + /** + * 根据关键字搜索 + * @param keyword + * @return + */ + List queryByKeyword(String keyword); + + + /** + * 查询字列表 + * @param type + * @param parentId + * @return + */ + List getChildrenList(String type, Long parentId); + +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerBaseInfoServiceImpl.java b/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerBaseInfoServiceImpl.java new file mode 100644 index 000000000..587b0ec83 --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerBaseInfoServiceImpl.java @@ -0,0 +1,33 @@ +package com.cool.store.Service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.cool.store.Service.HyPartnerBaseInfoService; +import com.cool.store.dao.HyPartnerBaseInfoDAO; +import com.cool.store.entity.HyPartnerBaseInfoDO; +import com.cool.store.request.AddTagsRequest; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collection; + +/** + * @Author suzhuhong + * @Date 2023/6/13 21:37 + * @Version 1.0 + */ +@Service +public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService { + + @Resource + HyPartnerBaseInfoDAO hyPartnerBaseInfoDAO; + + @Override + public Boolean addTags(AddTagsRequest addTagsRequest) { + HyPartnerBaseInfoDO hyPartnerBaseInfoDO = new HyPartnerBaseInfoDO(); + hyPartnerBaseInfoDO.setId(addTagsRequest.getPartnerBaseInfoId()); + hyPartnerBaseInfoDO.setUserPortrait(CollectionUtils.isNotEmpty(addTagsRequest.getTags())? JSONObject.toJSONString(addTagsRequest.getTags()):""); + hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(hyPartnerBaseInfoDO); + return Boolean.TRUE; + } +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerIntentInfoServiceImpl.java b/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerIntentInfoServiceImpl.java index 8a947b300..80f35d7ae 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerIntentInfoServiceImpl.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerIntentInfoServiceImpl.java @@ -2,6 +2,7 @@ package com.cool.store.Service.impl; import com.cool.store.Service.HyPartnerIntentInfoService; import com.cool.store.constants.CommonConstants; +import com.cool.store.dao.HyPartnerBaseInfoDAO; import com.cool.store.dao.HyPartnerIntentInfoDAO; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; @@ -13,6 +14,8 @@ import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.WorkflowStageEnum; import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ServiceException; +import com.cool.store.mapper.HyPartnerBaseInfoMapper; +import com.cool.store.request.BaseUserInfoRequest; import com.cool.store.vo.PartnerIntentApplyInfoVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -39,6 +42,8 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic HyPartnerUserInfoDAO hyPartnerUserInfoDAO; @Resource HyPartnerLineInfoDAO hyPartnerLineInfoDAO; + @Resource + HyPartnerBaseInfoDAO hyPartnerBaseInfoDAO; @Override public PageInfo getPartnerIntentApplyList(String userId, String type, Integer pageSize, Integer pageNumber) { @@ -82,6 +87,24 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic return partnerIntentApplyInfoVO; } + @Override + public Boolean updatePartnerIntentInfo(BaseUserInfoRequest baseUserInfoRequest) { + HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(String.valueOf(baseUserInfoRequest.getPartnerId())); + if (hyPartnerUserInfoDO==null){ + throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST); + } + hyPartnerUserInfoDO.setUsername(baseUserInfoRequest.getUsername()); + hyPartnerUserInfoDO.setMobile(baseUserInfoRequest.getMobile()); + hyPartnerUserInfoDO.setLiveArea(baseUserInfoRequest.getLiveArea()); + hyPartnerUserInfoDO.setWantShopArea(baseUserInfoRequest.getWantShopArea()); + hyPartnerUserInfoDO.setAcceptAdjustType(baseUserInfoRequest.getAcceptAdjustType()); + hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO); + + //修改意向申请信息中的加盟商名称与手机号 + hyPartnerBaseInfoDAO.updateByPartnerId(baseUserInfoRequest.getUsername(),baseUserInfoRequest.getMobile(),baseUserInfoRequest.getPartnerId()); + return Boolean.TRUE; + } + /** * partnerIntentApplyInfoDTOToVo * @param partnerIntentApplyInfoDTO diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerLineInfoServiceImpl.java b/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerLineInfoServiceImpl.java index ada49db6d..691775d96 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerLineInfoServiceImpl.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerLineInfoServiceImpl.java @@ -1,6 +1,8 @@ package com.cool.store.Service.impl; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.JSONPObject; import com.cool.store.Service.HyPartnerLineInfoService; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; @@ -14,6 +16,7 @@ import com.cool.store.enums.LineStatusEnum; import com.cool.store.enums.WorkflowStageEnum; import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ServiceException; +import com.cool.store.request.CloseFollowRequest; import com.cool.store.request.LineRequest; import com.cool.store.utils.CoolDateUtils; import com.cool.store.utils.StringUtil; @@ -23,11 +26,16 @@ import com.cool.store.vo.PartnerLineInfoVO; import com.cool.store.vo.StageCountVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.google.gson.JsonObject; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; @@ -188,7 +196,44 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { return Boolean.TRUE; } + @Override + public Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest) { + HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(closeFollowRequest.getLineId()); + if (hyPartnerLineInfoDO==null){ + throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST); + } + if (WorkflowStageEnum.INTENT.getCode().equals(hyPartnerLineInfoDO.getWorkflowStage())){ + throw new ServiceException(ErrorCodeEnum.WORK_FLOW_STAGE_PASS_ERROR); + } + //通过 + if ("pass".equals(closeFollowRequest.getType())){ + hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.RESERVATION.getCode()); + hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.RESERVATION_0.getCode()); + hyPartnerLineInfoDO.setDeadline(CoolDateUtils.getDateFormatDay(2)); + hyPartnerLineInfoDO.setPassReason(closeFollowRequest.getPassReason()); + if (CollectionUtils.isNotEmpty(closeFollowRequest.getCertifyFile())){ + hyPartnerLineInfoDO.setCertifyFile(JSONObject.toJSONString(closeFollowRequest.getCertifyFile())); + } + } + //拒绝 + if ("reject".equals(closeFollowRequest.getType())){ + //当前节点 拒绝的子状态 + String workflowStatus = WorkflowStageEnum.getWorkflowStageMap().get(hyPartnerLineInfoDO.getWorkflowStage()); + hyPartnerLineInfoDO.setWorkflowStatus(workflowStatus); + //15天 冷静期 + // TODO: 2023/6/13 冷静期 + hyPartnerLineInfoDO.setDeadline(CoolDateUtils.getDateBefore(new Date(),15)); + hyPartnerLineInfoDO.setRejectPublicReason(closeFollowRequest.getRejectPublicReason()); + hyPartnerLineInfoDO.setRejectRealReason(closeFollowRequest.getRejectRealReason()); + if (CollectionUtils.isNotEmpty(closeFollowRequest.getCertifyFile())){ + hyPartnerLineInfoDO.setCertifyFile(JSONObject.toJSONString(closeFollowRequest.getCertifyFile())); + } + hyPartnerLineInfoDO.setLineStatus(LineStatusEnum.PUBLIC_SEAS.getCode()); + } + hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO); + return Boolean.TRUE; + } /** * convertPartnerBlackListDTOToVo * @param partnerBlackListDTO @@ -221,6 +266,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { partnerLineInfoAndBaseInfoVO.setPartnerUserId(partnerLineInfoAndBaseInfoDTO.getPartnerId()); partnerLineInfoAndBaseInfoVO.setInvestmentManager(partnerLineInfoAndBaseInfoDTO.getInvestmentManager()); partnerLineInfoAndBaseInfoVO.setUserPortrait(partnerLineInfoAndBaseInfoDTO.getUserPortrait()); + partnerLineInfoAndBaseInfoVO.setPartnerBaseInfoId(partnerLineInfoAndBaseInfoDTO.getPartnerBaseInfoId()); partnerLineInfoAndBaseInfoVO.setWorkflowStage(partnerLineInfoAndBaseInfoDTO.getWorkflowStage()); partnerLineInfoAndBaseInfoVO.setWorkflowStatus(partnerLineInfoAndBaseInfoDTO.getWorkflowStatus()); return partnerLineInfoAndBaseInfoVO; diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/OpenAreaServiceImpl.java b/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/OpenAreaServiceImpl.java new file mode 100644 index 000000000..11a814a60 --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/OpenAreaServiceImpl.java @@ -0,0 +1,137 @@ +package com.cool.store.Service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.cool.store.Service.OpenAreaService; +import com.cool.store.dao.HyOpenAreaInfoDAO; +import com.cool.store.entity.HyOpenAreaInfoDO; +import com.cool.store.vo.OpenAreaTreeVO; +import com.cool.store.vo.OpenAreaVO; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author suzhuhong + * @Date 2023/6/13 22:11 + * @Version 1.0 + */ +@Service +public class OpenAreaServiceImpl implements OpenAreaService { + + @Resource + HyOpenAreaInfoDAO hyOpenAreaInfoDAO; + + + @Override + public List queryByKeyword(String keyword) { + //先查出所有的一级菜单 + List openArea = hyOpenAreaInfoDAO.queryFirstLevel(); + Map longHyOpenAreaInfoDOMap = openArea.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, x -> x)); + + //查询关键字下所有的数据 原始的数据 + List hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryByKeyword(keyword,Boolean.TRUE); + Set longSet = hyOpenAreaInfoDOS.stream().map(HyOpenAreaInfoDO::getId).collect(Collectors.toSet()); + + hyOpenAreaInfoDOS.stream().forEach(x->{ + Long parentId = x.getParentId(); + + if (parentId!=null&&!longSet.contains(parentId)){ + //添加到集合中 + longSet.add(x.getParentId()); + HyOpenAreaInfoDO hyOpenAreaInfoDO = longHyOpenAreaInfoDOMap.get(parentId); + hyOpenAreaInfoDOS.add(hyOpenAreaInfoDO); + } + }); + + JSONArray objects = buildTree(JSONArray.parseArray(JSONObject.toJSONString(hyOpenAreaInfoDOS)), "id", "parentId","childNode" ); + List openAreaTreeVOS = JSONObject.parseArray(objects.toJSONString(), OpenAreaTreeVO.class); + return openAreaTreeVOS; + } + + @Override + public List getChildrenList(String type, Long parentId) { + List childrenList = hyOpenAreaInfoDAO.getChildrenList(type, parentId); + List result = new ArrayList<>(); + childrenList.stream().forEach(x->{ + OpenAreaVO openAreaVO = convertDoToVo(x); + result.add(openAreaVO); + }); + return result; + } + + private OpenAreaVO convertDoToVo(HyOpenAreaInfoDO hyOpenAreaInfoDO){ + OpenAreaVO openAreaVO = new OpenAreaVO(); + openAreaVO.setId(hyOpenAreaInfoDO.getId()); + openAreaVO.setAreaName(hyOpenAreaInfoDO.getAreaName()); + openAreaVO.setParentId(hyOpenAreaInfoDO.getParentId()); + openAreaVO.setAreaPath(hyOpenAreaInfoDO.getAreaPath()); + openAreaVO.setAreaStatus(hyOpenAreaInfoDO.getAreaStatus()); + openAreaVO.setBackgroundBanner(hyOpenAreaInfoDO.getBackgroundBanner()); + openAreaVO.setDetailBanner(hyOpenAreaInfoDO.getDetailBanner()); + return openAreaVO; + } + + + /** + * 构建树 + * @param arr + * @param id + * @param pid + * @param child + * @return + */ + public static JSONArray buildTree(JSONArray arr, String id, String pid, String child) { + //新建一个JSONArray来接收组装成树形结构的返回值 + JSONArray jsonArray = new JSONArray(); + //新建一个JSONObject对象 + JSONObject hash = new JSONObject(); + //将数组转换为object格式 + for (int i = 0; i < arr.size(); i++) { + //获取当前的JSON对象 + JSONObject json = (JSONObject) arr.get(i); + //把当前id作为键,当前JSON对象作为值 put回hash这个Object对象中 + //这里的put方法类似于map的put方法 + hash.put(json.getString(id), json); + } + //遍历结果集 + for (int j = 0; j < arr.size(); j++) { + //单条记录 + JSONObject aVal = (JSONObject) arr.get(j); + //在hash中取出key为单条记录中pid的值 + String pidStr = ""; + //如果父级id不等于null + if (aVal.get(pid) != null) { + pidStr = aVal.get(pid).toString(); + } + //从hash这个对象中获取父级对象 parent + JSONObject hashParent = (JSONObject) hash.get(pidStr); + //如果记录的pid存在,则说明它有父节点,将她添加到孩子节点的集合中 + if (hashParent != null) { + //检查是否有child属性 + if (hashParent.get(child) != null) { + //有子节点 则先将子节点取出 + JSONArray children = (JSONArray) hashParent.get(child); + //然后把当前这个对象放进子节点之中 + children.add(aVal); + //最后把子节点在放回父节点之中 + hashParent.put(child, children); + } else { + //无子节点 则新建一个子节点 + JSONArray children = new JSONArray(); + //然后再把当前对象放进去 + children.add(aVal); + //最后在放回父节点之中 + hashParent.put(child, children); + } + } else { + jsonArray.add(aVal); + } + } + return jsonArray; + + } +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ContentController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ContentController.java index 164f1f48c..a93f954aa 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ContentController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ContentController.java @@ -6,6 +6,7 @@ import com.cool.store.dto.content.ContentUpdateDto; import com.cool.store.entity.HyContentInfoDO; import com.cool.store.response.ResponseResult; import com.cool.store.service.ContentService; +import com.cool.store.vo.HyContentInfoVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import io.swagger.annotations.ApiOperation; @@ -43,10 +44,10 @@ public class ContentController { @PostMapping("/queryContentList") @ApiOperation("查询动态列表") - public ResponseResult> queryContentList(@RequestBody ContentQueryListDto dto) { + public ResponseResult> queryContentList(@RequestBody ContentQueryListDto dto) { PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); - List list = contentService.queryContentList(dto); - PageInfo page = new PageInfo<>(list); + List list = contentService.queryContentList(dto); + PageInfo page = new PageInfo<>(list); return ResponseResult.success(page); } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java index 5221de357..086568d65 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java @@ -1,9 +1,6 @@ package com.cool.store.controller; -import com.cool.store.Service.DeskService; -import com.cool.store.Service.HyPartnerIntentInfoService; -import com.cool.store.Service.HyPartnerInterviewPlanService; -import com.cool.store.Service.HyPartnerLineInfoService; +import com.cool.store.Service.*; import com.cool.store.enums.LineStatusEnum; import com.cool.store.request.*; import com.cool.store.response.ResponseResult; @@ -36,6 +33,10 @@ public class DeskController { HyPartnerInterviewPlanService hyPartnerInterviewPlanService; @Resource HyPartnerLineInfoService hyPartnerLineInfoService; + @Resource + HyPartnerBaseInfoService hyPartnerBaseInfoService; + @Resource + OpenAreaService openAreaService; @GetMapping(path = "/interviewSchedule") @@ -222,25 +223,23 @@ public class DeskController { @PostMapping(path = "/closeOrPassFollow") @ApiOperation("意向申请审核 结束跟进/通过流程") - public ResponseResult closeFollow(@RequestBody CloseFollowRequest closeFollowRequest){ + public ResponseResult closeOrPassFollow(@RequestBody CloseFollowRequest closeFollowRequest){ - - return ResponseResult.success(); + String userId = ""; + return ResponseResult.success(hyPartnerLineInfoService.closeOrPassFollow(userId,closeFollowRequest)); } @PostMapping(path = "/changeIntentInfo") @ApiOperation("员工端变更C端用户意向信息") public ResponseResult changeIntentInfo( @RequestBody BaseUserInfoRequest baseUserInfoRequest){ - - return ResponseResult.success(); + return ResponseResult.success(hyPartnerIntentInfoService.updatePartnerIntentInfo(baseUserInfoRequest)); } @PostMapping(path = "/addTags") @ApiOperation("添加标签接口") public ResponseResult addTags(@RequestBody AddTagsRequest addTagsRequest){ - - return ResponseResult.success(); + return ResponseResult.success(hyPartnerBaseInfoService.addTags(addTagsRequest)); } @@ -258,16 +257,25 @@ public class DeskController { @GetMapping(path = "/getOpenAreaTree") - @ApiOperation("开放城市树") + @ApiOperation("开放城市树-搜索城市") @ApiImplicitParams({ - @ApiImplicitParam(name = "parentId", value = "父区域名称", required = false), - @ApiImplicitParam(name = "type", value = "可预约-reservation 可申请-apply ", required = false), @ApiImplicitParam(name = "keyWord", value = "搜索关键字", required = false) }) - public ResponseResult> getOpenAreaTree(@RequestParam(value = "parentId",required = false)Long parentId, - @RequestParam(value = "type",required = false)String type, - @RequestParam(value = "keyWord",required = false)String keyWord){ - return ResponseResult.success(); + public ResponseResult> getOpenAreaTree(@RequestParam(value = "keyWord",required = false)String keyWord){ + + return ResponseResult.success(openAreaService.queryByKeyword(keyWord)); + } + + + @GetMapping(path = "/getOpenAreaList") + @ApiOperation("开放城市树-子列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "parentId", value = "父区域名称", required = false), + @ApiImplicitParam(name = "type", value = "可预约-reservation 可申请-apply ", required = false) + }) + public ResponseResult> getOpenAreaList(@RequestParam(value = "parentId",required = false)Long parentId, + @RequestParam(value = "type",required = false)String type){ + return ResponseResult.success(openAreaService.getChildrenList(type,parentId)); } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java new file mode 100644 index 000000000..4a4453ae9 --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java @@ -0,0 +1,70 @@ +package com.cool.store.controller; + +import com.cool.store.request.*; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.InterviewService; +import com.cool.store.vo.interview.InterviewVO; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @Author: young.yu + * @Date: 2023-06-06 15:22 + * @Description: + */ +@RestController +@RequestMapping("/interview") +@Api(tags = "面试信息") +public class InterviewController { + + @Autowired + private InterviewService interviewService; + + @PostMapping("/list") + @ApiOperation("获取面试信息列表") + public ResponseResult> getInterviewList(@RequestBody GetInterviewListReq request) { + PageHelper.startPage(request.getPageNum(), request.getPageSize()); + List interviewList = interviewService.getInterviewList(request); + return ResponseResult.success(new PageInfo<>(interviewList)); + } + + @PostMapping("/queryByInterviewId") + @ApiOperation("根据面试会议id查询面试信息") + public ResponseResult queryByInterviewId(@RequestBody QueryByInterviewIdReq request) { + InterviewVO interviewVO = interviewService.getInterviewInfo(request.getInterviewId()); + return ResponseResult.success(interviewVO); + } + + @PostMapping("/entrustOthers") + @ApiOperation("委托他人") + public ResponseResult entrustOthers(@RequestBody EntrustOthersReq request) { + interviewService.entrustOthers(request); + return ResponseResult.success(); + } + + @PostMapping("/modifyInterviewTime") + @ApiOperation("修改面试时间") + public ResponseResult modifyInterviewTime(@RequestBody ModifyInterviewTimeReq request) { + interviewService.modifyInterviewTime(request); + return ResponseResult.success(); + } + + @PostMapping("/finish") + @ApiOperation("修改面试时间") + public ResponseResult finishInterview(@RequestBody FinishInterviewReq request) { + interviewService.finishInterview(request); + return ResponseResult.success(); + } + + + +} diff --git a/coolstore-partner-webb/src/main/resources/application-ab.properties b/coolstore-partner-webb/src/main/resources/application-ab.properties index a26b3471a..be5eb0f6f 100644 --- a/coolstore-partner-webb/src/main/resources/application-ab.properties +++ b/coolstore-partner-webb/src/main/resources/application-ab.properties @@ -48,3 +48,7 @@ oss.accessKeySecret=FFsl8d9batprJ0vXr0k4Y8ada40Wm2 oss.endpoint=oss-cn-hangzhou.aliyuncs.com oss.bucket=cool-store-hsay corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file diff --git a/coolstore-partner-webb/src/main/resources/application-dev.properties b/coolstore-partner-webb/src/main/resources/application-dev.properties index 6413d6b5d..95a66781d 100644 --- a/coolstore-partner-webb/src/main/resources/application-dev.properties +++ b/coolstore-partner-webb/src/main/resources/application-dev.properties @@ -47,4 +47,8 @@ oss.accessKeyId=LTAI5tKSnAbkEbmT6CeBwNN3 oss.accessKeySecret=PbXOzUFwAvZ2K5zIawwa7NAJE2pFXS oss.endpoint=oss-cn-shanghai.aliyuncs.com oss.bucket=vec-coolstore -corp.id = 171cddee76471740 \ No newline at end of file +corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file diff --git a/coolstore-partner-webb/src/main/resources/application-hd.properties b/coolstore-partner-webb/src/main/resources/application-hd.properties index 513c5de3e..4151b74e7 100644 --- a/coolstore-partner-webb/src/main/resources/application-hd.properties +++ b/coolstore-partner-webb/src/main/resources/application-hd.properties @@ -47,4 +47,8 @@ oss.accessKeyId=LTAI5tKSnAbkEbmT6CeBwNN3 oss.accessKeySecret=PbXOzUFwAvZ2K5zIawwa7NAJE2pFXS oss.endpoint=oss-cn-shanghai.aliyuncs.com oss.bucket=vec-coolstore -corp.id = 171cddee76471740 \ No newline at end of file +corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file diff --git a/coolstore-partner-webb/src/main/resources/application-local.properties b/coolstore-partner-webb/src/main/resources/application-local.properties index bd35ff37c..4e09f245b 100644 --- a/coolstore-partner-webb/src/main/resources/application-local.properties +++ b/coolstore-partner-webb/src/main/resources/application-local.properties @@ -49,4 +49,8 @@ oss.accessKeyId=LTAI5tRSXy2MrqaaBJ6gReur oss.accessKeySecret=FFsl8d9batprJ0vXr0k4Y8ada40Wm2 oss.endpoint=oss-cn-hangzhou.aliyuncs.com oss.bucket=vec-coolstore -corp.id = 171cddee76471740 \ No newline at end of file +corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file diff --git a/coolstore-partner-webb/src/main/resources/application-online.properties b/coolstore-partner-webb/src/main/resources/application-online.properties index b5f0f7a18..0da916d40 100644 --- a/coolstore-partner-webb/src/main/resources/application-online.properties +++ b/coolstore-partner-webb/src/main/resources/application-online.properties @@ -47,4 +47,8 @@ oss.accessKeyId=LTAI5tKSnAbkEbmT6CeBwNN3 oss.accessKeySecret=PbXOzUFwAvZ2K5zIawwa7NAJE2pFXS oss.endpoint=oss-cn-shanghai.aliyuncs.com oss.bucket=vec-coolstore -corp.id = 171cddee76471740 \ No newline at end of file +corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file diff --git a/coolstore-partner-webb/src/main/resources/application-pre.properties b/coolstore-partner-webb/src/main/resources/application-pre.properties index b5f0f7a18..0da916d40 100644 --- a/coolstore-partner-webb/src/main/resources/application-pre.properties +++ b/coolstore-partner-webb/src/main/resources/application-pre.properties @@ -47,4 +47,8 @@ oss.accessKeyId=LTAI5tKSnAbkEbmT6CeBwNN3 oss.accessKeySecret=PbXOzUFwAvZ2K5zIawwa7NAJE2pFXS oss.endpoint=oss-cn-shanghai.aliyuncs.com oss.bucket=vec-coolstore -corp.id = 171cddee76471740 \ No newline at end of file +corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file diff --git a/coolstore-partner-webb/src/main/resources/application-test.properties b/coolstore-partner-webb/src/main/resources/application-test.properties index 3f15a128c..6439240e0 100644 --- a/coolstore-partner-webb/src/main/resources/application-test.properties +++ b/coolstore-partner-webb/src/main/resources/application-test.properties @@ -47,4 +47,8 @@ oss.accessKeyId=LTAI5tKSnAbkEbmT6CeBwNN3 oss.accessKeySecret=PbXOzUFwAvZ2K5zIawwa7NAJE2pFXS oss.endpoint=oss-cn-shanghai.aliyuncs.com oss.bucket=vec-coolstore -corp.id = 171cddee76471740 \ No newline at end of file +corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/controller/InterviewController.java b/coolstore-partner-webc/src/main/java/com/cool/store/controller/InterviewController.java index 643af29ca..96c06b465 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/controller/InterviewController.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/controller/InterviewController.java @@ -1,15 +1,26 @@ package com.cool.store.controller; +import com.cool.store.dto.partner.EnterInterviewDto; import com.cool.store.response.ResponseResult; import com.cool.store.service.PartnerInterviewService; +import com.cool.store.utils.PDFUtils; +import com.cool.store.vo.PartnerEnterInterviewVO; import com.cool.store.vo.PartnerInterviewInfoVO; +import com.cool.store.vo.PartnerPassLetterDetailVO; +import com.lowagie.text.Document; +import com.lowagie.text.Image; +import com.lowagie.text.pdf.PdfWriter; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.tomcat.util.http.fileupload.IOUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; @Api(tags = "加盟商资格面试") @RestController @@ -25,4 +36,16 @@ public class InterviewController { return ResponseResult.success(interviewService.queryByPartnerId(partnerId)); } + @PostMapping("/enter") + @ApiOperation("进入面试间") + public ResponseResult enterInterviewRoom(@RequestBody EnterInterviewDto dto) { + return ResponseResult.success(interviewService.enterInterviewRoom(dto)); + } + + @PostMapping("/passLetter/detail") + @ApiOperation("通过函详情") + public ResponseResult passLetterDetail(@RequestParam String interviewId) { + return ResponseResult.success(interviewService.passLetterDetail(interviewId)); + } + } diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/service/Impl/OpenAreaServiceImpl.java b/coolstore-partner-webc/src/main/java/com/cool/store/service/Impl/OpenAreaServiceImpl.java index 81e5ba8e3..22022bdcd 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/service/Impl/OpenAreaServiceImpl.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/service/Impl/OpenAreaServiceImpl.java @@ -74,7 +74,7 @@ public class OpenAreaServiceImpl implements OpenAreaService { Map longHyOpenAreaInfoDOMap = openArea.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, x -> x)); //查询关键字下所有的数据 原始的数据 - List hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryByKeyword(keyword); + List hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryByKeyword(keyword,Boolean.FALSE); Map hyMap = hyOpenAreaInfoDOS.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, x -> x)); diff --git a/coolstore-partner-webc/src/main/resources/application-ab.properties b/coolstore-partner-webc/src/main/resources/application-ab.properties index 88b2838c8..be5eb0f6f 100644 --- a/coolstore-partner-webc/src/main/resources/application-ab.properties +++ b/coolstore-partner-webc/src/main/resources/application-ab.properties @@ -47,4 +47,8 @@ oss.accessKeyId=LTAI5tRSXy2MrqaaBJ6gReur oss.accessKeySecret=FFsl8d9batprJ0vXr0k4Y8ada40Wm2 oss.endpoint=oss-cn-hangzhou.aliyuncs.com oss.bucket=cool-store-hsay -corp.id = 171cddee76471740 \ No newline at end of file +corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/resources/application-dev.properties b/coolstore-partner-webc/src/main/resources/application-dev.properties index 6413d6b5d..95a66781d 100644 --- a/coolstore-partner-webc/src/main/resources/application-dev.properties +++ b/coolstore-partner-webc/src/main/resources/application-dev.properties @@ -47,4 +47,8 @@ oss.accessKeyId=LTAI5tKSnAbkEbmT6CeBwNN3 oss.accessKeySecret=PbXOzUFwAvZ2K5zIawwa7NAJE2pFXS oss.endpoint=oss-cn-shanghai.aliyuncs.com oss.bucket=vec-coolstore -corp.id = 171cddee76471740 \ No newline at end of file +corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/resources/application-hd.properties b/coolstore-partner-webc/src/main/resources/application-hd.properties index b6ae4ad0f..1dda2b926 100644 --- a/coolstore-partner-webc/src/main/resources/application-hd.properties +++ b/coolstore-partner-webc/src/main/resources/application-hd.properties @@ -45,4 +45,8 @@ oss.accessKeyId=LTAI5tKSnAbkEbmT6CeBwNN3 oss.accessKeySecret=PbXOzUFwAvZ2K5zIawwa7NAJE2pFXS oss.endpoint=oss-cn-shanghai.aliyuncs.com oss.bucket=vec-coolstore -corp.id = 171cddee76471740 \ No newline at end of file +corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/resources/application-local.properties b/coolstore-partner-webc/src/main/resources/application-local.properties index f6e8fc512..1051ef908 100644 --- a/coolstore-partner-webc/src/main/resources/application-local.properties +++ b/coolstore-partner-webc/src/main/resources/application-local.properties @@ -51,3 +51,7 @@ oss.accessKeySecret=PbXOzUFwAvZ2K5zIawwa7NAJE2pFXS oss.endpoint=oss-cn-shanghai.aliyuncs.com oss.bucket=vec-coolstore corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 diff --git a/coolstore-partner-webc/src/main/resources/application-online.properties b/coolstore-partner-webc/src/main/resources/application-online.properties index b6ae4ad0f..1dda2b926 100644 --- a/coolstore-partner-webc/src/main/resources/application-online.properties +++ b/coolstore-partner-webc/src/main/resources/application-online.properties @@ -45,4 +45,8 @@ oss.accessKeyId=LTAI5tKSnAbkEbmT6CeBwNN3 oss.accessKeySecret=PbXOzUFwAvZ2K5zIawwa7NAJE2pFXS oss.endpoint=oss-cn-shanghai.aliyuncs.com oss.bucket=vec-coolstore -corp.id = 171cddee76471740 \ No newline at end of file +corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/resources/application-pre.properties b/coolstore-partner-webc/src/main/resources/application-pre.properties index b6ae4ad0f..1dda2b926 100644 --- a/coolstore-partner-webc/src/main/resources/application-pre.properties +++ b/coolstore-partner-webc/src/main/resources/application-pre.properties @@ -45,4 +45,8 @@ oss.accessKeyId=LTAI5tKSnAbkEbmT6CeBwNN3 oss.accessKeySecret=PbXOzUFwAvZ2K5zIawwa7NAJE2pFXS oss.endpoint=oss-cn-shanghai.aliyuncs.com oss.bucket=vec-coolstore -corp.id = 171cddee76471740 \ No newline at end of file +corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/resources/application-test.properties b/coolstore-partner-webc/src/main/resources/application-test.properties index e1f7f66b2..a365a8df7 100644 --- a/coolstore-partner-webc/src/main/resources/application-test.properties +++ b/coolstore-partner-webc/src/main/resources/application-test.properties @@ -45,4 +45,8 @@ oss.accessKeyId=LTAI5tKSnAbkEbmT6CeBwNN3 oss.accessKeySecret=PbXOzUFwAvZ2K5zIawwa7NAJE2pFXS oss.endpoint=oss-cn-shanghai.aliyuncs.com oss.bucket=vec-coolstore -corp.id = 171cddee76471740 \ No newline at end of file +corp.id = 171cddee76471740 + +#TRTC +trtc.sdkAppId=1400811820 +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/resources/static/passLetterBg.jpg b/coolstore-partner-webc/src/main/resources/static/passLetterBg.jpg new file mode 100644 index 000000000..9c2c01786 Binary files /dev/null and b/coolstore-partner-webc/src/main/resources/static/passLetterBg.jpg differ