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}
-
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}
+ )
+
+
+
+
+ SELECT interviewer
+ FROM hy_partner_interview
+ WHERE id = #{interviewId}
+
+
+
+
+ SELECT pass_code, pass_file_url, expiry_date, partner_id
+ FROM hy_partner_interview
+ WHERE id = #{interviewId}
+
+
+
+ SELECT want_shop_area
+ FROM hy_partner_intent_info
+ WHERE partner_id = #{partner_id}
+
+
\ 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 @@
+
+
+ select hpip.id as interviewId,
+ hpui.username as partnerName,
+ hpui.mobile as partnerMobile,
+ hpip.room_id as roomId,
+ hpip.start_time as startTime,
+ hpui.username as interviewerName,
+ hpui.mobile as interviewerMobile,
+ hpip.room_status as roomStatus,
+ hpip.end_time as endTime
+ from hy_partner_interview_plan hpip
+ left join hy_partner_line_info hpll on hpip.partner_line_id = hpll.id
+ left join hy_partner_user_info hpui on hpui.partner_id = hpip.partner_id
+
+
+ hpui.username like concat('%',#{record.partnerName},'%')
+
+
+ hpui.mobile like concat('%',#{record.partnerMobile},'%')
+
+
+ hpip.room_id = #{record.roomId}
+
+
+ hpui.username like concat('%',#{record.interviewerName},'%')
+
+
+ hpui.mobile like concat('%',#{record.interviewerMobile},'%')
+
+
+ hpip.room_status = #{record.roomStatus}
+
+
+ hpip.start_time <= #{record.startTime}
+
+
+ hpip.end_time >= #{record.endTime}
+
+
+
+
+
+ select hpip.id as interviewId,
+ hpui.username as partnerName,
+ hpui.mobile as partnerMobile,
+ hpip.room_id as roomId,
+ hpip.start_time as startTime,
+ hpui.username as interviewerName,
+ hpui.mobile as interviewerMobile,
+ hpip.room_status as roomStatus,
+ hpip.end_time as endTime,
+ hpip.partner_id as partnerId,
+ hpip.interviewer as interviewerId,
+ hpi.status as status
+ from hy_partner_interview_plan hpip
+ left join hy_partner_line_info hpll on hpip.partner_line_id = hpll.id
+ left join hy_partner_user_info hpui on hpui.partner_id = hpip.partner_id
+ left join hy_partner_interview hpi on hpip.id = hpi.interview_plan_id
+ where hpip.id = #{interviewId}
+
\ 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