Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner
This commit is contained in:
@@ -74,4 +74,26 @@ public class RegionDAO {
|
|||||||
return regionMapper.getRegionInfoByRegionId(regionId);
|
return regionMapper.getRegionInfoByRegionId(regionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断一个节点是否是叶子节点
|
||||||
|
* @param regionId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean isLeafNode(String regionId){
|
||||||
|
Integer subCount = regionMapper.getSubNodeCountByRegionId(regionId);
|
||||||
|
return subCount <= CommonConstants.ZERO;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除区域
|
||||||
|
* @param regionId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public Integer deleteRegionByRegionId(String regionId){
|
||||||
|
if(StringUtils.isBlank(regionId)){
|
||||||
|
return CommonConstants.ZERO;
|
||||||
|
}
|
||||||
|
return regionMapper.deleteRegionByRegionId(regionId);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,4 +58,17 @@ public interface RegionMapper {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
RegionDO getRegionInfoByRegionId(@Param("regionId") String regionId);
|
RegionDO getRegionInfoByRegionId(@Param("regionId") String regionId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取区域的子节点个数
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer getSubNodeCountByRegionId(@Param("regionId") String regionId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除区域
|
||||||
|
* @param regionId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Integer deleteRegionByRegionId(@Param("regionId") String regionId);
|
||||||
}
|
}
|
||||||
@@ -208,10 +208,10 @@
|
|||||||
update hy_partner_base_info
|
update hy_partner_base_info
|
||||||
<set>
|
<set>
|
||||||
<if test="userName != null and userName!=''">
|
<if test="userName != null and userName!=''">
|
||||||
username = #{record.username},
|
username = #{userName},
|
||||||
</if>
|
</if>
|
||||||
<if test="mobile != null and mobile!=''">
|
<if test="mobile != null and mobile!=''">
|
||||||
mobile = #{record.mobile},
|
mobile = #{mobile},
|
||||||
</if>
|
</if>
|
||||||
where partner_id = #{partnerId}
|
where partner_id = #{partnerId}
|
||||||
</set>
|
</set>
|
||||||
|
|||||||
@@ -246,7 +246,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getInterviewList" resultType="com.cool.store.vo.interview.InterviewVO">
|
<select id="getInterviewList" resultType="com.cool.store.vo.interview.InterviewVO">
|
||||||
select hpip.id as interviewId,
|
select hpip.id as interviewPlanId,
|
||||||
hpui.username as partnerName,
|
hpui.username as partnerName,
|
||||||
hpui.mobile as partnerMobile,
|
hpui.mobile as partnerMobile,
|
||||||
hpip.room_id as roomId,
|
hpip.room_id as roomId,
|
||||||
|
|||||||
@@ -196,4 +196,12 @@
|
|||||||
where
|
where
|
||||||
deleted = 0 and region_id= #{regionId}
|
deleted = 0 and region_id= #{regionId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getSubNodeCountByRegionId" resultType="integer">
|
||||||
|
select count(1) from region where deleted = 0 and parent_id = #{regionId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<update id="deleteRegionByRegionId">
|
||||||
|
update region set deleted = 1 where region_id = #{regionId}
|
||||||
|
</update>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -15,12 +15,18 @@ public class CreateQualifyVerifyReq {
|
|||||||
@ApiModelProperty(value = "线索id", required = true)
|
@ApiModelProperty(value = "线索id", required = true)
|
||||||
private String lineId;
|
private String lineId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "会议安排id", required = true)
|
||||||
|
private String interviewPlanId;
|
||||||
|
|
||||||
@ApiModelProperty(value = "会议id", required = true)
|
@ApiModelProperty(value = "会议id", required = true)
|
||||||
private String interviewId;
|
private String interviewId;
|
||||||
|
|
||||||
@ApiModelProperty(value = "加盟商id", required = true)
|
@ApiModelProperty(value = "加盟商id", required = true)
|
||||||
private String partnerId;
|
private String partnerId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "开发主管用户id", required = true)
|
||||||
|
private String devtDirectorId;
|
||||||
|
|
||||||
@ApiModelProperty(value = "面试表现记录", required = true)
|
@ApiModelProperty(value = "面试表现记录", required = true)
|
||||||
private String summary;
|
private String summary;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package com.cool.store.request;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: young.yu
|
||||||
|
* @Date: 2023-06-19 15:31
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ApiModel(description = "重新面试")
|
||||||
|
public class ReInterviewReq {
|
||||||
|
@ApiModelProperty(value = "会议安排ID", required = true, example = "12345")
|
||||||
|
private String interviewPlanId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "重新面试原因", required = true, example = "候选人前次面试未通过")
|
||||||
|
private String reason;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "证明文件地址(多个文件英文逗号隔开)", example = "https://example.com/file1.pdf,https://example.com/file2.pdf")
|
||||||
|
private String certifyFile;
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.cool.store.request;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ApiModel(description = "拒绝面试")
|
||||||
|
public class RejectInterviewReq {
|
||||||
|
@ApiModelProperty(value = "会议安排ID", required = true, example = "12345")
|
||||||
|
private String interviewPlanId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "线索ID", required = true, example = "67890")
|
||||||
|
private String lineId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "会议ID", required = true, example = "54321")
|
||||||
|
private String interviewId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "公开拒绝原因", required = true, example = "候选人不符合岗位要求")
|
||||||
|
private String rejectPublicReason;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "真实拒绝原因", required = true, example = "候选人技术能力不足")
|
||||||
|
private String rejectRealReason;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "证明文件地址(多个文件英文逗号隔开)", example = "https://example.com/file1.pdf,https://example.com/file2.pdf")
|
||||||
|
private String certifyFile;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
|
|||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: young.yu
|
* @Author: young.yu
|
||||||
* @Date: 2023-06-08 16:26
|
* @Date: 2023-06-08 16:26
|
||||||
@@ -22,6 +24,9 @@ public class InterviewVO {
|
|||||||
@ApiModelProperty("资质审核流程id")
|
@ApiModelProperty("资质审核流程id")
|
||||||
private String qualifyVerifyId;
|
private String qualifyVerifyId;
|
||||||
|
|
||||||
|
@ApiModelProperty("意向合同编号")
|
||||||
|
private String intentionContractNo;
|
||||||
|
|
||||||
@ApiModelProperty("审核通过时间")
|
@ApiModelProperty("审核通过时间")
|
||||||
private String passTime;
|
private String passTime;
|
||||||
|
|
||||||
@@ -76,7 +81,10 @@ public class InterviewVO {
|
|||||||
@ApiModelProperty(value = "预约状态 0 待预约;1待面试;2已开始;3待审核;4审批中;5审批通过;6拒绝", required = true)
|
@ApiModelProperty(value = "预约状态 0 待预约;1待面试;2已开始;3待审核;4审批中;5审批通过;6拒绝", required = true)
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@ApiModelProperty(value = "面试过程信息", required = false)
|
@ApiModelProperty(value = "面试过程信息视频URL数组", required = true)
|
||||||
|
private List<String> processInfoList;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "面试过程信息未解析String", required = false)
|
||||||
private String processInfo;
|
private String processInfo;
|
||||||
|
|
||||||
@ApiModelProperty("授权码")
|
@ApiModelProperty("授权码")
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
|
<component name="FacetManager">
|
||||||
|
<facet type="Spring" name="Spring">
|
||||||
|
<configuration />
|
||||||
|
</facet>
|
||||||
|
<facet type="web" name="Web">
|
||||||
|
<configuration>
|
||||||
|
<webroots />
|
||||||
|
<sourceRoots>
|
||||||
|
<root url="file://$MODULE_DIR$/src/main/java" />
|
||||||
|
<root url="file://$MODULE_DIR$/src/main/resources" />
|
||||||
|
</sourceRoots>
|
||||||
|
</configuration>
|
||||||
|
</facet>
|
||||||
|
</component>
|
||||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
||||||
<output url="file://$MODULE_DIR$/target/classes" />
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
@@ -81,6 +95,11 @@
|
|||||||
<orderEntry type="library" name="Maven: org.json:json:20180130" level="project" />
|
<orderEntry type="library" name="Maven: org.json:json:20180130" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.librepdf:openpdf:1.3.30" level="project" />
|
<orderEntry type="library" name="Maven: com.github.librepdf:openpdf:1.3.30" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
|
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.icepdf.os:icepdf-core:6.1.2" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.54" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-ext-jdk15on:1.54" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.54" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: javax.media:jai-core:1.1.3" level="project" />
|
||||||
<orderEntry type="module" module-name="coolstore-partner-dao" />
|
<orderEntry type="module" module-name="coolstore-partner-dao" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:3.0.2" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:3.0.2" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.2" level="project" />
|
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.2" level="project" />
|
||||||
@@ -123,8 +142,6 @@
|
|||||||
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.aliyun:openapiutil:0.1.9" level="project" />
|
<orderEntry type="library" name="Maven: com.aliyun:openapiutil:0.1.9" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.65" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.65" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.aliyun:tea:1.2.7" level="project" />
|
<orderEntry type="library" name="Maven: com.aliyun:tea:1.2.7" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.14.7" level="project" />
|
<orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.14.7" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.squareup.okio:okio:1.17.2" level="project" />
|
<orderEntry type="library" name="Maven: com.squareup.okio:okio:1.17.2" level="project" />
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package com.cool.store.http;
|
package com.cool.store.http;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.cool.store.dto.response.ResultDTO;
|
|
||||||
import com.cool.store.dto.wx.CodeSessionDTO;
|
import com.cool.store.dto.wx.CodeSessionDTO;
|
||||||
import com.cool.store.dto.wx.PhoneInfoDTO;
|
import com.cool.store.dto.wx.PhoneInfoDTO;
|
||||||
import com.cool.store.enums.ErrorCodeEnum;
|
import com.cool.store.enums.ErrorCodeEnum;
|
||||||
@@ -15,7 +13,6 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zhangchenbiao
|
* @author zhangchenbiao
|
||||||
@@ -44,18 +41,22 @@ public class WechatRest {
|
|||||||
|
|
||||||
|
|
||||||
public CodeSessionDTO miniProgramJsCodeSession(String appId, String secret, String jsCode){
|
public CodeSessionDTO miniProgramJsCodeSession(String appId, String secret, String jsCode){
|
||||||
|
log.info("WechatRest#miniProgramJsCodeSession, jsCode:{}", jsCode);
|
||||||
String url = "https://api.weixin.qq.com/sns/jscode2session";
|
String url = "https://api.weixin.qq.com/sns/jscode2session";
|
||||||
HashMap requestMap = new HashMap();
|
HashMap requestMap = new HashMap();
|
||||||
requestMap.put("appid", appId);
|
requestMap.put("appid", appId);
|
||||||
requestMap.put("secret", secret);
|
requestMap.put("secret", secret);
|
||||||
requestMap.put("js_code", jsCode);
|
requestMap.put("js_code", jsCode);
|
||||||
requestMap.put("grant_type","authorization_code");
|
requestMap.put("grant_type","authorization_code");
|
||||||
CodeSessionDTO codeSessionDTO = null;
|
|
||||||
try {
|
try {
|
||||||
codeSessionDTO = httpRestTemplateService.getForObject(url, CodeSessionDTO.class, requestMap);
|
String responseStr = httpRestTemplateService.getForObject(url, String.class ,requestMap);
|
||||||
log.info("WechatRest#miniProgramJsCodeSession, url:{}, response:{}", url, JSONObject.toJSONString(codeSessionDTO));
|
log.info("WechatRest#miniProgramJsCodeSession, url:{}, response:{}", url, responseStr);
|
||||||
|
if(StringUtils.isNotBlank(responseStr)){
|
||||||
|
return JSONObject.parseObject(responseStr, CodeSessionDTO.class);
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("调用微信服务异常", e);
|
log.info("调用微信服务异常{}", e);
|
||||||
|
throw new ServiceException(ErrorCodeEnum.WX_SERVICE_ERROR);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -69,13 +70,12 @@ public class WechatRest {
|
|||||||
String reqUrl = String.format(ACCESS_TOKEN, appId, secret);
|
String reqUrl = String.format(ACCESS_TOKEN, appId, secret);
|
||||||
JSONObject jsonObject = null;
|
JSONObject jsonObject = null;
|
||||||
try {
|
try {
|
||||||
jsonObject = httpRestTemplateService.getForObject(reqUrl, JSONObject.class, null);
|
jsonObject = httpRestTemplateService.getForObject(reqUrl, JSONObject.class, new HashMap());
|
||||||
log.info("WechatRest#getAccessToken, reqUrl:{}, response:{}", reqUrl, JSONObject.toJSONString(jsonObject));
|
log.info("WechatRest#getAccessToken, reqUrl:{}, response:{}", reqUrl, JSONObject.toJSONString(jsonObject));
|
||||||
String token = jsonObject.getString("access_token");
|
String token = jsonObject.getString("access_token");
|
||||||
if (StringUtils.isBlank(token)) {
|
if (StringUtils.isBlank(token)) {
|
||||||
throw new ServiceException(ErrorCodeEnum.GET_ACCESSTOKEN_ERROR);
|
throw new ServiceException(ErrorCodeEnum.GET_ACCESSTOKEN_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
redisUtilPool.setString(cacheAccessToken, token, 7000);
|
redisUtilPool.setString(cacheAccessToken, token, 7000);
|
||||||
accessToken = token;
|
accessToken = token;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -89,14 +89,17 @@ public class WechatRest {
|
|||||||
String reqUrl = String.format(GET_USERPHONENUMBER, accessToken);
|
String reqUrl = String.format(GET_USERPHONENUMBER, accessToken);
|
||||||
HashMap requestMap = new HashMap();
|
HashMap requestMap = new HashMap();
|
||||||
requestMap.put("code", code);
|
requestMap.put("code", code);
|
||||||
PhoneInfoDTO phoneInfoDTO = null;
|
String responseStr = null;
|
||||||
try {
|
try {
|
||||||
phoneInfoDTO = httpRestTemplateService.postForObject(reqUrl, requestMap, PhoneInfoDTO.class);
|
responseStr = httpRestTemplateService.postForObject(reqUrl, requestMap, String.class);
|
||||||
log.info("WechatRest#getUserPhoneNumber, reqUrl:{}, response:{}", reqUrl, JSONObject.toJSONString(phoneInfoDTO));
|
log.info("WechatRest#getUserPhoneNumber, reqUrl:{}, response:{}", reqUrl, responseStr);
|
||||||
|
if(StringUtils.isNotBlank(responseStr)){
|
||||||
|
return JSONObject.parseObject(responseStr, PhoneInfoDTO.class);
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("获取手机号异常", e);
|
log.error("获取手机号异常", e);
|
||||||
}
|
}
|
||||||
return phoneInfoDTO;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ import com.cool.store.dto.dept.DepartmentEventDTO;
|
|||||||
*/
|
*/
|
||||||
public interface EnterpriseSyncService {
|
public interface EnterpriseSyncService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 全量同步
|
||||||
|
*/
|
||||||
void syncAll();
|
void syncAll();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ public interface InterviewService {
|
|||||||
List<InterviewVO> getInterviewList(GetInterviewListReq request);
|
List<InterviewVO> getInterviewList(GetInterviewListReq request);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据面试会议id查询面试信息
|
* 根据面试会议计划id查询面试信息
|
||||||
* @param interviewId
|
* @param interviewPlanId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
InterviewVO getInterviewInfo(String interviewPlanId);
|
InterviewVO getInterviewInfo(String interviewPlanId);
|
||||||
@@ -62,4 +62,6 @@ public interface InterviewService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
void approveAppointment(ApproveAppointmentReq request) throws ApiException;
|
void approveAppointment(ApproveAppointmentReq request) throws ApiException;
|
||||||
|
void reInterview(ReInterviewReq request) throws ApiException;
|
||||||
|
void rejectInterview(RejectInterviewReq request) throws ApiException;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,7 +85,10 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步组织架构
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
private Pair<List<RegionDO>, Multimap<String, String>> syncRegion(){
|
private Pair<List<RegionDO>, Multimap<String, String>> syncRegion(){
|
||||||
//同步部门
|
//同步部门
|
||||||
List<SysDepartmentDTO> departments = isvHttpRequest.getSubDepartments(CommonConstants.ROOT_DEPT_ID_STR, true);
|
List<SysDepartmentDTO> departments = isvHttpRequest.getSubDepartments(CommonConstants.ROOT_DEPT_ID_STR, true);
|
||||||
@@ -239,13 +242,23 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
|
|||||||
dealUserLeaderDept(updateLeaderDeptMap);
|
dealUserLeaderDept(updateLeaderDeptMap);
|
||||||
break;
|
break;
|
||||||
case DEPARTMENT_DELETED:
|
case DEPARTMENT_DELETED:
|
||||||
syncAll();
|
boolean leafNode = regionDAO.isLeafNode(departmentDetail.getId());
|
||||||
|
if(leafNode){
|
||||||
|
//叶子节点的时候会删除部门
|
||||||
|
regionDAO.deleteRegionByRegionId(departmentDetail.getId());
|
||||||
|
}else{
|
||||||
|
syncAll();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理用户负责部门信息
|
||||||
|
* @param leaderDeptMap
|
||||||
|
*/
|
||||||
public void dealUserLeaderDept(Multimap<String, String> leaderDeptMap){
|
public void dealUserLeaderDept(Multimap<String, String> leaderDeptMap){
|
||||||
if(leaderDeptMap.isEmpty()){
|
if(leaderDeptMap.isEmpty()){
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -97,14 +97,11 @@ public class FeiShuServiceImpl implements FeiShuService {
|
|||||||
|
|
||||||
for (UserFreeBusyInfoDTO userFreeBusyInfoDTO : UserFreeBusyInfoList) {
|
for (UserFreeBusyInfoDTO userFreeBusyInfoDTO : UserFreeBusyInfoList) {
|
||||||
//如果查询结果中的开始时间和结束时间在时间段内,则设置为忙碌
|
//如果查询结果中的开始时间和结束时间在时间段内,则设置为忙碌
|
||||||
if ((startTimeLong > userFreeBusyInfoDTO.getStartTime() && startTimeLong < userFreeBusyInfoDTO.getStartTime())
|
if (( userFreeBusyInfoDTO.getStartTime()>startTimeLong && userFreeBusyInfoDTO.getStartTime() < endTimeLong)
|
||||||
|| (endTimeLong > userFreeBusyInfoDTO.getStartTime() && endTimeLong < userFreeBusyInfoDTO.getStartTime())) {
|
|| (userFreeBusyInfoDTO.getEndTime() > startTimeLong && userFreeBusyInfoDTO.getEndTime() < endTimeLong)) {
|
||||||
freeBusyInfo.setFree(false);
|
freeBusyInfo.setFree(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (endTimeLong <= userFreeBusyInfoDTO.getStartTime()) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,6 +73,10 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
@Override
|
@Override
|
||||||
public InterviewVO getInterviewInfo(String interviewPlanId) {
|
public InterviewVO getInterviewInfo(String interviewPlanId) {
|
||||||
InterviewVO vo = hyPartnerInterviewPlanMapper.getInterviewInfo(interviewPlanId);
|
InterviewVO vo = hyPartnerInterviewPlanMapper.getInterviewInfo(interviewPlanId);
|
||||||
|
//将 processInfo 解析为 List
|
||||||
|
List<String> split = Arrays.asList(vo.getProcessInfo().split(","));
|
||||||
|
vo.setProcessInfoList(split);
|
||||||
|
vo.setProcessInfo("");
|
||||||
//查询面试官和记录人信息
|
//查询面试官和记录人信息
|
||||||
EnterpriseUserBaseInfoVO interviewerInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getInterviewerId());
|
EnterpriseUserBaseInfoVO interviewerInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getInterviewerId());
|
||||||
vo.setInterviewerName(interviewerInfo.getName());
|
vo.setInterviewerName(interviewerInfo.getName());
|
||||||
@@ -279,6 +283,16 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void reInterview(ReInterviewReq request) throws ApiException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void rejectInterview(RejectInterviewReq request) throws ApiException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public String generateFeiShuInterviewMsg(String partnerName, String partnerMobile, String interviewTime){
|
public String generateFeiShuInterviewMsg(String partnerName, String partnerMobile, String interviewTime){
|
||||||
//"您有一个【面试预约申请】待处理,预约人【姓名】手机号【13xxxxxxxxx】,预约面试时间【YYYY年MM月DD日 hh:mm】,请及时处理】"
|
//"您有一个【面试预约申请】待处理,预约人【姓名】手机号【13xxxxxxxxx】,预约面试时间【YYYY年MM月DD日 hh:mm】,请及时处理】"
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuffer sb = new StringBuffer();
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.cool.store.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
|
import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
|
||||||
import com.cool.store.constants.CommonConstants;
|
import com.cool.store.constants.CommonConstants;
|
||||||
import com.cool.store.dao.HyPartnerLineInfoDAO;
|
import com.cool.store.dao.HyPartnerLineInfoDAO;
|
||||||
@@ -62,6 +63,7 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PartnerUserInfoVO miniProgramLogin(MiniProgramLoginDTO param) {
|
public PartnerUserInfoVO miniProgramLogin(MiniProgramLoginDTO param) {
|
||||||
|
log.info("miniProgramLogin #param {}", JSONObject.toJSONString(param));
|
||||||
PartnerUserInfoVO userInfoVO = new PartnerUserInfoVO();
|
PartnerUserInfoVO userInfoVO = new PartnerUserInfoVO();
|
||||||
String jsCode = param.getJsCode();
|
String jsCode = param.getJsCode();
|
||||||
String lockKey = "codeSession:" + wxAppId + CommonConstants.MOSAICS + jsCode;
|
String lockKey = "codeSession:" + wxAppId + CommonConstants.MOSAICS + jsCode;
|
||||||
@@ -76,12 +78,12 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
|
|||||||
String unionId = codeSession.getUnionId();
|
String unionId = codeSession.getUnionId();
|
||||||
log.info("小程序登录:{}", unionId);
|
log.info("小程序登录:{}", unionId);
|
||||||
log.info("sessionKey {}", codeSession.getSessionKey());
|
log.info("sessionKey {}", codeSession.getSessionKey());
|
||||||
String decryptUser = AesUtil.decryptWechat(codeSession.getSessionKey(), param.getEncryptedData(), param.getIvStr());
|
/* String decryptUser = AesUtil.decryptWechat(codeSession.getSessionKey(), param.getEncryptedData(), param.getIvStr());
|
||||||
log.info("解密用户信息:{}", decryptUser);
|
log.info("解密用户信息:{}", decryptUser);
|
||||||
MiniProgramUserVO miniProgramUser = JSON.parseObject(decryptUser, MiniProgramUserVO.class);
|
MiniProgramUserVO miniProgramUser = JSON.parseObject(decryptUser, MiniProgramUserVO.class);
|
||||||
if (Objects.isNull(miniProgramUser)) {
|
if (Objects.isNull(miniProgramUser)) {
|
||||||
throw new ServiceException(ErrorCodeEnum.GET_WECHAT_USER_INFO_FAIL);
|
throw new ServiceException(ErrorCodeEnum.GET_WECHAT_USER_INFO_FAIL);
|
||||||
}
|
}*/
|
||||||
// 获取小程序token
|
// 获取小程序token
|
||||||
String accessToken = wechatRest.getAccessToken(wxAppId, wxAppSecret);
|
String accessToken = wechatRest.getAccessToken(wxAppId, wxAppSecret);
|
||||||
// 获取手机号码
|
// 获取手机号码
|
||||||
@@ -91,8 +93,10 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
|
|||||||
if(hyPartnerUserInfoDO == null){
|
if(hyPartnerUserInfoDO == null){
|
||||||
hyPartnerUserInfoDO = new HyPartnerUserInfoDO();
|
hyPartnerUserInfoDO = new HyPartnerUserInfoDO();
|
||||||
hyPartnerUserInfoDO.setMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber());
|
hyPartnerUserInfoDO.setMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber());
|
||||||
hyPartnerUserInfoDO.setUsername(miniProgramUser.getNickName());
|
// hyPartnerUserInfoDO.setUsername(phoneInfoDTO.getPhoneInfo().getPhoneNumber());
|
||||||
hyPartnerUserInfoDO.setPartnerId(UUIDUtils.get32UUID());
|
hyPartnerUserInfoDO.setPartnerId(UUIDUtils.get32UUID());
|
||||||
|
hyPartnerUserInfoDO.setAcceptAdjustType(0);
|
||||||
|
hyPartnerUserInfoDO.setIsWritePartnerKnow(0);
|
||||||
hyPartnerUserInfoDAO.insertSelective(hyPartnerUserInfoDO);
|
hyPartnerUserInfoDAO.insertSelective(hyPartnerUserInfoDO);
|
||||||
// 生成一条线索 也可在提交加盟信息时插入
|
// 生成一条线索 也可在提交加盟信息时插入
|
||||||
HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO();
|
HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO();
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.cool.store.request.CreateQualifyVerifyReq;
|
|||||||
import com.cool.store.request.FinishInterviewReq;
|
import com.cool.store.request.FinishInterviewReq;
|
||||||
import com.cool.store.response.ResponseResult;
|
import com.cool.store.response.ResponseResult;
|
||||||
import com.cool.store.service.FlowService;
|
import com.cool.store.service.FlowService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
@@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
* @Date: 2023-06-14 13:47
|
* @Date: 2023-06-14 13:47
|
||||||
* @Description: 流程相关
|
* @Description: 流程相关
|
||||||
*/
|
*/
|
||||||
|
@Api(tags = "流程相关接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping({"/flow"})
|
@RequestMapping({"/flow"})
|
||||||
public class FlowController {
|
public class FlowController {
|
||||||
@@ -29,4 +31,11 @@ public class FlowController {
|
|||||||
flowService.createQualifyVerify(request);
|
flowService.createQualifyVerify(request);
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/qualificationReview/callback")
|
||||||
|
@ApiOperation("流程信息回调接口")
|
||||||
|
public ResponseResult qualificationCallback() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public class InterviewController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/finish")
|
@PostMapping("/finish")
|
||||||
@ApiOperation("修改面试时间")
|
@ApiOperation("结束面试")
|
||||||
public ResponseResult finishInterview(@RequestBody FinishInterviewReq request) {
|
public ResponseResult finishInterview(@RequestBody FinishInterviewReq request) {
|
||||||
interviewService.finishInterview(request);
|
interviewService.finishInterview(request);
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
@@ -80,4 +80,18 @@ public class InterviewController {
|
|||||||
interviewService.approveAppointment(request);
|
interviewService.approveAppointment(request);
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/reInterview")
|
||||||
|
@ApiOperation("重新面试")
|
||||||
|
public ResponseResult reInterview(@RequestBody ReInterviewReq request) throws ApiException {
|
||||||
|
interviewService.reInterview(request);
|
||||||
|
return ResponseResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/reject")
|
||||||
|
@ApiOperation("拒绝面试")
|
||||||
|
public ResponseResult reInterview(@RequestBody RejectInterviewReq request) throws ApiException {
|
||||||
|
interviewService.rejectInterview(request);
|
||||||
|
return ResponseResult.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ public class SignValidateFilter implements Filter {
|
|||||||
|
|
||||||
private static List<String> patternList =
|
private static List<String> patternList =
|
||||||
Lists.newArrayList("/web/check/ok","/check/ok",
|
Lists.newArrayList("/web/check/ok","/check/ok",
|
||||||
"/partner/mini/program/v1/partnerManage/miniProgram/login",
|
|
||||||
"/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**",
|
"/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**",
|
||||||
"/partner/mini/program/oss/getUploadFileConfig",
|
"/partner/mini/program/oss/getUploadFileConfig",
|
||||||
"/partner/mini/program/v1/partnerManage/partner/getIdentityCardInfo",
|
"/partner/mini/program/v1/partnerManage/partner/getIdentityCardInfo",
|
||||||
@@ -87,7 +86,7 @@ public class SignValidateFilter implements Filter {
|
|||||||
String userStr = "";
|
String userStr = "";
|
||||||
boolean isInWhiteList = excludePath(uri);
|
boolean isInWhiteList = excludePath(uri);
|
||||||
log.info("url:{}", uri);
|
log.info("url:{}", uri);
|
||||||
if ( !isInWhiteList && !method.equals("OPTIONS")) {
|
/* if ( !isInWhiteList && !method.equals("OPTIONS")) {
|
||||||
Map<String, String[]> parameterMap = request.getParameterMap();
|
Map<String, String[]> parameterMap = request.getParameterMap();
|
||||||
String jsonStr = JSONObject.toJSONString(parameterMap);
|
String jsonStr = JSONObject.toJSONString(parameterMap);
|
||||||
JSONObject obj = JSONObject.parseObject(jsonStr);
|
JSONObject obj = JSONObject.parseObject(jsonStr);
|
||||||
@@ -116,7 +115,7 @@ public class SignValidateFilter implements Filter {
|
|||||||
userStr = JSONObject.toJSONString(partnerUserInfoVO);
|
userStr = JSONObject.toJSONString(partnerUserInfoVO);
|
||||||
log.info("url:{}, userStr:{}", uri, userStr);
|
log.info("url:{}, userStr:{}", uri, userStr);
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
try {
|
try {
|
||||||
PartnerUserHolder.setUser(userStr);
|
PartnerUserHolder.setUser(userStr);
|
||||||
filterChain.doFilter(servletRequest, servletResponse);
|
filterChain.doFilter(servletRequest, servletResponse);
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ cdn.url=https://testhsaypic.coolstore.cn
|
|||||||
trtc.sdkAppId=1400811820
|
trtc.sdkAppId=1400811820
|
||||||
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
||||||
|
|
||||||
weixin.appId=wx6f984e535e571818
|
weixin.appId=wxb2a0addf956ad4b7
|
||||||
weixin.appSecret=245a483747e6e9f8762d3e8539cf0318
|
weixin.appSecret=77abdcae754add92889566b543e5ad79
|
||||||
|
|
||||||
signKey=77fea013c3a6459685b83c21a2fc3411
|
signKey=77fea013c3a6459685b83c21a2fc3411
|
||||||
@@ -53,7 +53,7 @@ corp.id = 171cddee76471740
|
|||||||
trtc.sdkAppId=1400811820
|
trtc.sdkAppId=1400811820
|
||||||
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
||||||
|
|
||||||
weixin.appId=wx6f984e535e571818
|
weixin.appId=wxb2a0addf956ad4b7
|
||||||
weixin.appSecret=245a483747e6e9f8762d3e8539cf0318
|
weixin.appSecret=77abdcae754add92889566b543e5ad79
|
||||||
|
|
||||||
signKey=77fea013c3a6459685b83c21a2fc3411
|
signKey=77fea013c3a6459685b83c21a2fc3411
|
||||||
@@ -51,7 +51,7 @@ corp.id = 171cddee76471740
|
|||||||
trtc.sdkAppId=1400811820
|
trtc.sdkAppId=1400811820
|
||||||
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
||||||
|
|
||||||
weixin.appId=wx6f984e535e571818
|
weixin.appId=wxb2a0addf956ad4b7
|
||||||
weixin.appSecret=245a483747e6e9f8762d3e8539cf0318
|
weixin.appSecret=77abdcae754add92889566b543e5ad79
|
||||||
|
|
||||||
signKey=d851f2a9ac90474abecdc2fbb148d4d7
|
signKey=d851f2a9ac90474abecdc2fbb148d4d7
|
||||||
@@ -60,7 +60,7 @@ cdn.url=https://testhsaypic.coolstore.cn
|
|||||||
trtc.sdkAppId=1400811820
|
trtc.sdkAppId=1400811820
|
||||||
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
||||||
|
|
||||||
weixin.appId=wx6f984e535e571818
|
weixin.appId=wxb2a0addf956ad4b7
|
||||||
weixin.appSecret=245a483747e6e9f8762d3e8539cf0318
|
weixin.appSecret=77abdcae754add92889566b543e5ad79
|
||||||
|
|
||||||
signKey=77fea013c3a6459685b83c21a2fc3411
|
signKey=77fea013c3a6459685b83c21a2fc3411
|
||||||
@@ -51,7 +51,7 @@ corp.id = 171cddee76471740
|
|||||||
trtc.sdkAppId=1400811820
|
trtc.sdkAppId=1400811820
|
||||||
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
||||||
|
|
||||||
weixin.appId=wx6f984e535e571818
|
weixin.appId=wxb2a0addf956ad4b7
|
||||||
weixin.appSecret=245a483747e6e9f8762d3e8539cf0318
|
weixin.appSecret=77abdcae754add92889566b543e5ad79
|
||||||
|
|
||||||
signKey=d851f2a9ac90474abecdc2fbb148d4d7
|
signKey=d851f2a9ac90474abecdc2fbb148d4d7
|
||||||
@@ -51,7 +51,7 @@ corp.id = 171cddee76471740
|
|||||||
trtc.sdkAppId=1400811820
|
trtc.sdkAppId=1400811820
|
||||||
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
||||||
|
|
||||||
weixin.appId=wx6f984e535e571818
|
weixin.appId=wxb2a0addf956ad4b7
|
||||||
weixin.appSecret=245a483747e6e9f8762d3e8539cf0318
|
weixin.appSecret=77abdcae754add92889566b543e5ad79
|
||||||
|
|
||||||
signKey=d851f2a9ac90474abecdc2fbb148d4d7
|
signKey=d851f2a9ac90474abecdc2fbb148d4d7
|
||||||
@@ -51,7 +51,7 @@ corp.id = 171cddee76471740
|
|||||||
trtc.sdkAppId=1400811820
|
trtc.sdkAppId=1400811820
|
||||||
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219
|
||||||
|
|
||||||
weixin.appId=wx6f984e535e571818
|
weixin.appId=wxb2a0addf956ad4b7
|
||||||
weixin.appSecret=245a483747e6e9f8762d3e8539cf0318
|
weixin.appSecret=77abdcae754add92889566b543e5ad79
|
||||||
|
|
||||||
signKey=77fea013c3a6459685b83c21a2fc3411
|
signKey=77fea013c3a6459685b83c21a2fc3411
|
||||||
Binary file not shown.
Reference in New Issue
Block a user