Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner
This commit is contained in:
@@ -220,4 +220,6 @@ public class RedisConstant {
|
||||
|
||||
public static final String DEVICE_OPEN_TOKEN = "device_open_token:{0}:{1}:{2}";
|
||||
|
||||
public static final String PHONE_NUMBER= "phone_number_";
|
||||
|
||||
}
|
||||
|
||||
@@ -69,6 +69,8 @@ public enum ErrorCodeEnum {
|
||||
CREATE_CALENDAR_EVENT_FAIL(1021109, "创建面试安排失败!", null),
|
||||
FEISHU_UPDATE_SCHEDULE_ERROR(1021110, "修改面试安排失败!", null),
|
||||
INTERVIEW_STATUS_ERROR(1021111, "面试状态错误!", null),
|
||||
INTERVIEW_PLAN_ALREADY_EXIST(1021112, "面试计划已存在,请勿重复申请!", null),
|
||||
INTERVIEW_PLAN_ID_IS_NULL(1021113, "面试计划Id为空!", null),
|
||||
SIGN_FAIL(600000, "验签失败", null),
|
||||
GET_ACCESSTOKEN_ERROR(600001, "获取小程序TOKEN错误!", null),
|
||||
NEW_MOBILE_HAS_EXIST(600002,"加盟商用户信息已存在",null),
|
||||
|
||||
@@ -90,4 +90,9 @@ public class RedisConstantUtil {
|
||||
public String getRegionNameListKey(String eid, String regionId) {
|
||||
return active + "_" + RedisConstant.REGION_ALL_NAME_CACHE + eid + ":" + regionId;
|
||||
}
|
||||
|
||||
public String getPhoneNumber(String phoneNumber) {
|
||||
|
||||
return active + "_" + RedisConstant.PHONE_NUMBER + phoneNumber;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,13 @@ public class HyIntendDevMappingDAO {
|
||||
return hyIntendDevelopementMappingMapper.selectByMappingIdList(idList);
|
||||
}
|
||||
|
||||
public List<ZoneCheckDTO> selectByOpenAreaMappingIdList(List<Long> idList){
|
||||
if (CollectionUtils.isEmpty(idList)){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return hyIntendDevelopementMappingMapper.selectByOpenAreaMappingIdList(idList);
|
||||
}
|
||||
|
||||
|
||||
public int batchInsert(List<HyIntendDevelopementMappingDO> recordList){
|
||||
if (CollectionUtils.isEmpty(recordList)){
|
||||
|
||||
@@ -54,4 +54,6 @@ public interface HyIntendDevelopementMappingMapper {
|
||||
* @return
|
||||
*/
|
||||
List<ZoneCheckDTO> selectByMappingIdList(@Param("mappingIdList") List<Long> mappingIdList);
|
||||
|
||||
List<ZoneCheckDTO> selectByOpenAreaMappingIdList(@Param("openAreaMappingIdList") List<Long> openAreaMappingIdList);
|
||||
}
|
||||
@@ -130,4 +130,19 @@
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectByOpenAreaMappingIdList" resultType="com.cool.store.dto.partner.ZoneCheckDTO">
|
||||
select
|
||||
a.open_area_mapping_id as openAreaMappingId,
|
||||
b.zone_name as zoneName
|
||||
from hy_intend_developement_mapping a inner join hy_intend_dev_zone_info b on a.mapping_id = b.id
|
||||
<where>
|
||||
<if test="openAreaMappingIdList!=null and openAreaMappingIdList.size>0">
|
||||
<foreach collection="openAreaMappingIdList" open="and a.open_area_mapping_id in (" close=")" separator="," item="mappingId">
|
||||
#{mappingId}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -194,6 +194,9 @@
|
||||
<if test="keyword!=null and keyword!=''">
|
||||
and area_path like concat('%',#{keyword},'%')
|
||||
</if>
|
||||
<if test="applyFlag!=null and applyFlag==true">
|
||||
and (area_status = 'open' or area_status = 'keyOpen')
|
||||
</if>
|
||||
<if test="areaStatus!=null and areaStatus!=''">
|
||||
and area_status = #{areaStatus}
|
||||
</if>
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
or id = #{record.id}
|
||||
</if>
|
||||
<if test="record.partnerLineId != null">
|
||||
or partner_id_line_id = #{record.partnerLineId}
|
||||
or partner_line_id = #{record.partnerLineId}
|
||||
</if>
|
||||
</where>
|
||||
</update>
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
<result column="record_time" jdbcType="TIMESTAMP" property="recordTime" />
|
||||
<result column="summary" jdbcType="VARCHAR" property="summary" />
|
||||
<result column="auth_code" jdbcType="VARCHAR" property="authCode" />
|
||||
<result column="qualify_verify_id" jdbcType="VARCHAR" property="qualifyVerifyId" />
|
||||
<result column="pass_file_url" jdbcType="VARCHAR" property="passFileUrl" />
|
||||
<result column="pass_pdf_url" jdbcType="VARCHAR" property="passPdfUrl" />
|
||||
<result column="pass_image_url" jdbcType="VARCHAR" property="passImageUrl" />
|
||||
<result column="expiry_date" jdbcType="TIMESTAMP" property="expiryDate" />
|
||||
<result column="latest_log_message" jdbcType="VARCHAR" property="latestLogMessage" />
|
||||
<result column="pass_reason" jdbcType="VARCHAR" property="passReason" />
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id, status, partner_line_id, interview_plan_id, partner_id, deadline, interviewer,
|
||||
recorder, process_info, record_time, summary, auth_code, qualify_verify_id, pass_file_url, expiry_date,
|
||||
recorder, process_info, record_time, summary, auth_code, pass_pdf_url, pass_image_url, expiry_date,
|
||||
latest_log_message, pass_reason, certify_file, create_time, update_time, approve_time,
|
||||
partner_enter_time, interviewer_enter_time
|
||||
</sql>
|
||||
@@ -87,8 +87,11 @@
|
||||
<if test="record.authCode != null">
|
||||
auth_code,
|
||||
</if>
|
||||
<if test="record.passFileUrl != null">
|
||||
pass_file_url,
|
||||
<if test="record.passPdfUrl != null">
|
||||
pass_pdf_url,
|
||||
</if>
|
||||
<if test="record.passImageUrl != null">
|
||||
pass_image_url,
|
||||
</if>
|
||||
<if test="record.expiryDate != null">
|
||||
expiry_date,
|
||||
@@ -152,8 +155,11 @@
|
||||
<if test="record.authCode != null">
|
||||
#{record.authCode},
|
||||
</if>
|
||||
<if test="record.passFileUrl != null">
|
||||
#{record.passFileUrl},
|
||||
<if test="record.passPdfUrl != null">
|
||||
#{record.passPdfUrl},
|
||||
</if>
|
||||
<if test="record.passImageUrl != null">
|
||||
#{record.passImageUrl},
|
||||
</if>
|
||||
<if test="record.expiryDate != null">
|
||||
#{record.expiryDate},
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
|
||||
<result column="end_time" jdbcType="TIMESTAMP" property="endTime" />
|
||||
<result column="is_partner_interview" jdbcType="TINYINT" property="isPartnerInterview" />
|
||||
<result column="application_approved" jdbcType="TINYINT" property="applicationApproved" />
|
||||
<result column="actual_start_time" jdbcType="TIMESTAMP" property="actualStartTime" />
|
||||
<result column="actual_end_time" jdbcType="TIMESTAMP" property="actualEndTime" />
|
||||
<result column="room_id" jdbcType="VARCHAR" property="roomId" />
|
||||
@@ -74,6 +75,9 @@
|
||||
<if test="record.updateTime != null">
|
||||
update_time,
|
||||
</if>
|
||||
<if test="record.applicationApproved != null">
|
||||
application_approved,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="record.partnerLineId != null">
|
||||
@@ -121,6 +125,9 @@
|
||||
<if test="record.updateTime != null">
|
||||
#{record.updateTime},
|
||||
</if>
|
||||
<if test="record.applicationApproved != null">
|
||||
#{record.applicationApproved},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
<update id="updateByPrimaryKeySelective">
|
||||
|
||||
@@ -320,7 +320,7 @@
|
||||
and investment_manager = #{userId}
|
||||
</if>
|
||||
<if test="lastMonthTodayDate!=null">
|
||||
and close_time > #{lastMonthTodayDate} and close_time <![CDATA[<]]> now
|
||||
and close_time > #{lastMonthTodayDate} and close_time <![CDATA[<]]> now()
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
@@ -401,6 +401,7 @@
|
||||
|
||||
<select id="getPublicSeaLineList" resultType="com.cool.store.dto.partner.PublicSeaLineDTO">
|
||||
select
|
||||
a.id as lineId,
|
||||
a.create_time as createTime,
|
||||
b.partner_id as partner_id,
|
||||
b.mobile as mobile,
|
||||
@@ -408,7 +409,7 @@
|
||||
b.want_shop_area as wantShopArea,
|
||||
b.accept_adjust_type as acceptAdjustType
|
||||
FROM hy_partner_line_info a inner JOIN hy_partner_user_info b on a.partner_id = b.partner_id
|
||||
where a.line_status = 1
|
||||
where a.line_status = 0
|
||||
<if test="userNameKeyword!=null and userNameKeyword!=''">
|
||||
and b.username like concat('%',#{userNameKeyword},'%')
|
||||
</if>
|
||||
@@ -519,7 +520,7 @@
|
||||
</select>
|
||||
|
||||
<select id="getFollowCountList" resultType="com.cool.store.dto.partner.LineCountDTO">
|
||||
SELECT partner_id, COUNT(1) AS num_of_leads
|
||||
SELECT partner_id, IFNULL(COUNT(1), 0) AS followCount
|
||||
FROM hy_partner_line_info
|
||||
GROUP BY partner_id;
|
||||
</select>
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.cool.store.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class FraSourceDO {
|
||||
|
||||
@ApiModelProperty("key")
|
||||
private String key;
|
||||
|
||||
@ApiModelProperty("text")
|
||||
private String text;
|
||||
|
||||
}
|
||||
@@ -66,6 +66,9 @@ public class HyPartnerInterviewPlanDO implements Serializable {
|
||||
@ApiModelProperty("更新时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty("预约是否通过审核:0.未审核1.通过审核")
|
||||
private Integer applicationApproved;
|
||||
|
||||
@ApiModelProperty("飞书日历id")
|
||||
private String feishuCalendarId;
|
||||
|
||||
|
||||
@@ -7,8 +7,7 @@ import io.swagger.annotations.ApiModelProperty;
|
||||
public class CreateAppointmentReq {
|
||||
@ApiModelProperty(value = "加盟商用户ID", required = true)
|
||||
private String partnerId;
|
||||
|
||||
@ApiModelProperty(value = "面试官id", required = true)
|
||||
@ApiModelProperty(value = "面试官id")
|
||||
private String interviewerId;
|
||||
|
||||
@ApiModelProperty(value = "预约开始时间 (YYYY-MM-DD hh:mm:ss)", required = true)
|
||||
@@ -16,7 +15,7 @@ public class CreateAppointmentReq {
|
||||
|
||||
@ApiModelProperty(value = "预约结束时间 (YYYY-MM-DD hh:mm:ss)", required = true)
|
||||
private String endBookingTime;
|
||||
@ApiModelProperty(value = "线索id", required = true)
|
||||
@ApiModelProperty(value = "线索id(如果面试官id,会根据加盟商id和线索id查询面试官)", required = true)
|
||||
private Long partnerLineId;
|
||||
|
||||
public String getPartnerId() {
|
||||
@@ -59,5 +58,4 @@ public class CreateAppointmentReq {
|
||||
this.endBookingTime = endBookingTime;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
package com.cool.store.request;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
/**
|
||||
* @Author: young.yu
|
||||
* @Date: 2023-06-14 15:06
|
||||
* @Description:
|
||||
*/
|
||||
public class RpcCreateQualifyVerfyReq {
|
||||
@ApiModelProperty(value = "意向签约时间", required = true)
|
||||
private String intendedSignDate;
|
||||
|
||||
@ApiModelProperty(value = "请求来源", required = true)
|
||||
private String fraSource;
|
||||
|
||||
@ApiModelProperty(value = "保证金(元)", required = true, example = "5000")
|
||||
private int amtDeposit;
|
||||
|
||||
@ApiModelProperty(value = "授权码", required = true)
|
||||
private String authCode;
|
||||
|
||||
@ApiModelProperty(value = "意向签约人", required = true)
|
||||
private String intendedSigner;
|
||||
|
||||
@ApiModelProperty(value = "手机号", required = true)
|
||||
private String intendedSignerTel;
|
||||
|
||||
@ApiModelProperty(value = "钉钉用户id", required = true)
|
||||
private String dingUserId;
|
||||
|
||||
public String getIntendedSignDate() {
|
||||
return intendedSignDate;
|
||||
}
|
||||
|
||||
public void setIntendedSignDate(String intendedSignDate) {
|
||||
this.intendedSignDate = intendedSignDate;
|
||||
}
|
||||
|
||||
public String getFraSource() {
|
||||
return fraSource;
|
||||
}
|
||||
|
||||
public void setFraSource(String fraSource) {
|
||||
this.fraSource = fraSource;
|
||||
}
|
||||
|
||||
public int getAmtDeposit() {
|
||||
return amtDeposit;
|
||||
}
|
||||
|
||||
public void setAmtDeposit(int amtDeposit) {
|
||||
this.amtDeposit = amtDeposit;
|
||||
}
|
||||
|
||||
public String getAuthCode() {
|
||||
return authCode;
|
||||
}
|
||||
|
||||
public void setAuthCode(String authCode) {
|
||||
this.authCode = authCode;
|
||||
}
|
||||
|
||||
public String getIntendedSigner() {
|
||||
return intendedSigner;
|
||||
}
|
||||
|
||||
public void setIntendedSigner(String intendedSigner) {
|
||||
this.intendedSigner = intendedSigner;
|
||||
}
|
||||
|
||||
public String getIntendedSignerTel() {
|
||||
return intendedSignerTel;
|
||||
}
|
||||
|
||||
public void setIntendedSignerTel(String intendedSignerTel) {
|
||||
this.intendedSignerTel = intendedSignerTel;
|
||||
}
|
||||
|
||||
public String getDingUserId() {
|
||||
return dingUserId;
|
||||
}
|
||||
|
||||
public void setDingUserId(String dingUserId) {
|
||||
this.dingUserId = dingUserId;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.cool.store.request;
|
||||
|
||||
import com.cool.store.entity.FraSourceDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author: young.yu
|
||||
* @Date: 2023-06-14 15:06
|
||||
* @Description:
|
||||
*/
|
||||
@Data
|
||||
public class RpcCreateQualifyVerifyReq {
|
||||
|
||||
@lombok.Data
|
||||
public class Data {
|
||||
@ApiModelProperty(value = "意向签约时间", required = true)
|
||||
private String intendedSignDate;
|
||||
|
||||
@ApiModelProperty(value = "请求来源", required = true)
|
||||
private FraSourceDO fraSource;
|
||||
|
||||
@ApiModelProperty(value = "保证金(元)", required = true, example = "5000")
|
||||
private int amtDeposit;
|
||||
|
||||
@ApiModelProperty(value = "授权码", required = true)
|
||||
private String authCode;
|
||||
|
||||
@ApiModelProperty(value = "意向签约人", required = true)
|
||||
private String intendedSigner;
|
||||
|
||||
@ApiModelProperty(value = "手机号", required = true)
|
||||
private String intendedSignerTel;
|
||||
|
||||
}
|
||||
|
||||
@ApiModelProperty(value = "数据体", required = true)
|
||||
private Data data;
|
||||
|
||||
@ApiModelProperty(value = "钉钉用户id", required = true)
|
||||
private String dingUserId;
|
||||
}
|
||||
@@ -19,7 +19,7 @@ public class BlackListVO {
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("加盟商用户ID")
|
||||
private String partnerUserId;
|
||||
private String partnerId;
|
||||
|
||||
@ApiModelProperty("加盟商用户名称")
|
||||
private String partnerUserName;
|
||||
|
||||
@@ -26,6 +26,9 @@ public class OSSServer {
|
||||
@Value("${corp.id:null}")
|
||||
private String corpId;
|
||||
|
||||
@Value("${cdn.url:null}")
|
||||
private String cdnUrl;
|
||||
|
||||
/**
|
||||
* 服务端上传文件的方法
|
||||
* ObjectName 为文件存放位置 + 名字,不可包含 bucket
|
||||
@@ -38,7 +41,7 @@ public class OSSServer {
|
||||
PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, objectName, inputStream);
|
||||
// 创建PutObject请求。
|
||||
ossClient.putObject(putObjectRequest);
|
||||
return "http://" + bucket + "." + endpoint + "/" + objectName;
|
||||
return cdnUrl + "/partner/" + corpId + "/" + objectName;
|
||||
} catch (OSSException oe) {
|
||||
log.error("Caught an OSSException, which means your request made it to OSS, "
|
||||
+ "but was rejected with an error response for some reason.");
|
||||
|
||||
@@ -28,7 +28,7 @@ public interface DeskService {
|
||||
* @param selectedData
|
||||
* @return
|
||||
*/
|
||||
InterviewScheduleInfoVO interviewSchedule(String userId,Date selectedData);
|
||||
InterviewScheduleInfoVO interviewSchedule(String userId,String selectedData);
|
||||
|
||||
/**
|
||||
* 招商经理 各阶段 待处理 待跟进数量
|
||||
|
||||
@@ -130,6 +130,14 @@ public interface HyPartnerLineInfoService {
|
||||
*/
|
||||
Boolean assignFollowUser(Long lineId);
|
||||
|
||||
/**
|
||||
* 线索状态
|
||||
* @param wantShopAreaId
|
||||
* @param acceptAdjustType
|
||||
* @return
|
||||
*/
|
||||
Boolean getLineStatus(Long wantShopAreaId,Integer acceptAdjustType);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ public interface InterviewService {
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
CreateAppointmentVO createAppointment(CreateAppointmentReq request);
|
||||
CreateAppointmentVO createAppointment(CreateAppointmentReq request) throws ApiException;
|
||||
|
||||
/**
|
||||
* 同意面试预约
|
||||
@@ -64,4 +64,6 @@ public interface InterviewService {
|
||||
void approveAppointment(ApproveAppointmentReq request) throws ApiException;
|
||||
void reInterview(ReInterviewReq request) throws ApiException;
|
||||
void rejectInterview(RejectInterviewReq request) throws ApiException;
|
||||
|
||||
public String getInterviewerByPartner(String partnerId,String lineId)throws ApiException;
|
||||
}
|
||||
|
||||
@@ -13,11 +13,14 @@ import com.cool.store.enums.IDCardSideEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.service.AliyunService;
|
||||
import com.cool.store.utils.RedisConstantUtil;
|
||||
import com.cool.store.utils.RedisUtilPool;
|
||||
import com.cool.store.vo.cuser.IdentityCardInfoVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
@@ -37,9 +40,18 @@ import java.util.Optional;
|
||||
@Service
|
||||
public class AliyunServiceImpl implements AliyunService {
|
||||
|
||||
@Resource
|
||||
RedisUtilPool redisUtilPool;
|
||||
@Resource
|
||||
RedisConstantUtil redisConstantUtil;
|
||||
|
||||
@Override
|
||||
public DescribePhoneNumberDTO getPhoneNumberAttribute(String phoneNumber) {
|
||||
try {
|
||||
String phone = redisUtilPool.getString(redisConstantUtil.getPhoneNumber(phoneNumber));
|
||||
if (StringUtils.isNotEmpty(phone)){
|
||||
return JSONObject.parseObject(phone, DescribePhoneNumberDTO.class);
|
||||
}
|
||||
Config config = new Config();
|
||||
//todo zcb ak sk替换
|
||||
config.accessKeyId = "LTAI5t9RaXvABZbHvoXjDFJ1";
|
||||
@@ -55,6 +67,8 @@ public class AliyunServiceImpl implements AliyunService {
|
||||
log.error("错误信息:" , response.body.message + "");
|
||||
throw new ServiceException(ErrorCodeEnum.GET_PHONENUMBER_INFO_ERROR);
|
||||
}
|
||||
//保存到redis
|
||||
redisUtilPool.setString(redisConstantUtil.getPhoneNumber(phoneNumber),JSONObject.toJSONString(response.body.data));
|
||||
return JSONObject.parseObject(JSONObject.toJSONString(response.body.data), DescribePhoneNumberDTO.class);
|
||||
} catch (Exception e) {
|
||||
log.error("获取手机号异常:", e);
|
||||
|
||||
@@ -16,6 +16,7 @@ import com.cool.store.vo.InterviewPlanVO;
|
||||
import com.cool.store.vo.InterviewScheduleInfoVO;
|
||||
import com.cool.store.vo.StageCountVO;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.http.client.utils.DateUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -53,15 +54,17 @@ public class DeskServiceImpl implements DeskService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public InterviewScheduleInfoVO interviewSchedule(String userId,Date selectedData) {
|
||||
public InterviewScheduleInfoVO interviewSchedule(String userId,String selectedData) {
|
||||
if (StringUtils.isEmpty(userId)||selectedData==null){
|
||||
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
||||
}
|
||||
Date date = DateUtils.parseDate(selectedData);
|
||||
InterviewScheduleInfoVO interviewScheduleInfoVO = new InterviewScheduleInfoVO();
|
||||
//查询面试数量
|
||||
String currentDate = DateUtil.format(selectedData, CoolDateUtils.DATE_FORMAT_DAY);
|
||||
String startTime = DateUtil.format(selectedData, CoolDateUtils.DATE_FORMAT_SEC);
|
||||
String endTime = DateUtil.format(CoolDateUtils.getDateBefore(selectedData, 7), CoolDateUtils.DATE_FORMAT_SEC);
|
||||
|
||||
String currentDate = DateUtil.format(date, CoolDateUtils.DATE_FORMAT_DAY);
|
||||
String startTime = DateUtil.format(date, CoolDateUtils.DATE_FORMAT_SEC);
|
||||
String endTime = DateUtil.format(CoolDateUtils.getDateBefore(date, 7), CoolDateUtils.DATE_FORMAT_SEC);
|
||||
SpecialDateRangeInterviewCountDTO interviewCount = hyPartnerInterviewPlanDAO.getInterviewCount(userId, currentDate, startTime, endTime);
|
||||
|
||||
interviewScheduleInfoVO.setCurrentDayInterviewCount(interviewCount.getCurrentDayInterviewCount());
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
||||
import com.cool.store.mapper.HyPartnerLineInfoMapper;
|
||||
import com.cool.store.request.GetFreeBusyListReq;
|
||||
import com.cool.store.service.FeiShuService;
|
||||
import com.cool.store.service.InterviewService;
|
||||
import com.cool.store.vo.interview.CalendarInfo;
|
||||
import com.cool.store.vo.interview.FreeBusyInfo;
|
||||
import com.cool.store.vo.interview.GetFreeBusyListVO;
|
||||
@@ -39,7 +40,7 @@ public class FeiShuServiceImpl implements FeiShuService {
|
||||
private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerLineInfoMapper hyPartnerLineInfoMapper;
|
||||
private InterviewService interviewService;
|
||||
|
||||
@Override
|
||||
public GetFreeBusyListVO getFreeBusyList(GetFreeBusyListReq request) throws ApiException {
|
||||
@@ -55,17 +56,7 @@ public class FeiShuServiceImpl implements FeiShuService {
|
||||
}
|
||||
//如果加盟商用户ID不为空且面试官ID为空
|
||||
if (StringUtils.isNotEmpty(partnerId) && StringUtils.isNotEmpty(lineId)) {
|
||||
//根据加盟商用户ID查询面试官ID
|
||||
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
||||
hyPartnerInterviewPlanDO.setPartnerId(partnerId);
|
||||
List<HyPartnerInterviewPlanDO> hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
|
||||
//如果查询结果为空,则去线索中获取招商经理,面试官只有两个阶段,一个是在第一次申请时不存在面试安排直接取招商经理,第二个时面试信息中可修改面试官信息,这个时候以面试信息中为准
|
||||
if (CollectionUtils.isEmpty(hyPartnerInterviewPlanDOS)) {
|
||||
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(lineId));
|
||||
interviewerId = hyPartnerLineInfoDO.getInvestmentManager();
|
||||
}else {
|
||||
interviewerId = hyPartnerInterviewPlanDOS.get(0).getInterviewer();
|
||||
}
|
||||
interviewerId = interviewService.getInterviewerByPartner(partnerId, lineId);
|
||||
}
|
||||
long startTime = 0L;
|
||||
long endTime = 0L;
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.cool.store.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.TypeReference;
|
||||
@@ -21,25 +20,23 @@ import com.cool.store.mapper.HyPartnerLineInfoMapper;
|
||||
import com.cool.store.oss.OSSServer;
|
||||
import com.cool.store.request.CreateQualifyVerifyReq;
|
||||
import com.cool.store.request.QualificationCallbackReq;
|
||||
import com.cool.store.request.RpcCreateQualifyVerfyReq;
|
||||
import com.cool.store.request.RpcCreateQualifyVerifyReq;
|
||||
import com.cool.store.request.RpcGetMdmTokenReq;
|
||||
import com.cool.store.service.FlowService;
|
||||
import com.cool.store.utils.PDFUtils;
|
||||
import com.cool.store.utils.PassLetterUtils;
|
||||
import com.cool.store.utils.RedisUtilPool;
|
||||
import com.cool.store.utils.RestTemplateUtil;
|
||||
import com.cool.store.vo.PartnerPassLetterDetailVO;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -54,8 +51,15 @@ import java.util.Objects;
|
||||
@Service
|
||||
public class FlowServiceImpl implements FlowService {
|
||||
|
||||
// @Value("${hs.mdm.baseUrl}")
|
||||
@Value("${hs.mdm.baseUrl}")
|
||||
private String mdmBaseUrl;
|
||||
|
||||
@Value("${hs.mdm.appkey}")
|
||||
private String mdmAppKey;
|
||||
|
||||
@Value("${hs.mdm.appsec}")
|
||||
private String mdmAppSec;
|
||||
|
||||
@Autowired
|
||||
private RedisUtilPool redisUtilPool;
|
||||
|
||||
@@ -81,14 +85,18 @@ public class FlowServiceImpl implements FlowService {
|
||||
@Transactional
|
||||
public void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException {
|
||||
//1.发起加盟商资质审核
|
||||
RpcCreateQualifyVerfyReq rpcRequest = new RpcCreateQualifyVerfyReq();
|
||||
rpcRequest.setIntendedSignDate(request.getWantSignTime());
|
||||
rpcRequest.setFraSource("HSAYPartner");
|
||||
rpcRequest.setAmtDeposit(Integer.valueOf(request.getSecurityFund()));
|
||||
RpcCreateQualifyVerifyReq rpcRequest = new RpcCreateQualifyVerifyReq();
|
||||
RpcCreateQualifyVerifyReq.Data data = new RpcCreateQualifyVerifyReq().new Data();
|
||||
rpcRequest.setData(data);
|
||||
FraSourceDO fraSourceDO = new FraSourceDO();
|
||||
fraSourceDO.setKey("HSAYPartner");
|
||||
fraSourceDO.setText("沪上阿姨合伙人");
|
||||
data.setFraSource(fraSourceDO);
|
||||
data.setAmtDeposit(Integer.valueOf(request.getSecurityFund()));
|
||||
|
||||
//获取授权码
|
||||
String authCode = null;
|
||||
if (StringUtils.isBlank(request.getLineId())) {
|
||||
if (!StringUtils.isBlank(request.getLineId())) {
|
||||
//根据线索id获取线索信息
|
||||
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(request.getLineId()));
|
||||
if (!Objects.isNull(hyPartnerLineInfoDO)) {
|
||||
@@ -103,13 +111,13 @@ public class FlowServiceImpl implements FlowService {
|
||||
}
|
||||
rpcRequest.setDingUserId(dingdingUserDO.getUserid());
|
||||
authCode = generateAuthCode(jobNumber);
|
||||
rpcRequest.setAuthCode(authCode);
|
||||
data.setAuthCode(authCode);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
rpcRequest.setIntendedSigner(request.getIntentionSignerUsername());
|
||||
rpcRequest.setIntendedSignerTel(request.getIntentionSignerMobile());
|
||||
data.setIntendedSigner(request.getIntentionSignerUsername());
|
||||
data.setIntendedSignerTel(request.getIntentionSignerMobile());
|
||||
|
||||
//通过 rpc 请求审核系统获取返回数据
|
||||
Map<String, String> qualifyVerifyRespData = JSON.parseObject(createQualifyVerify(rpcRequest), new TypeReference<HashMap<String,String>>() {});
|
||||
@@ -196,16 +204,17 @@ public class FlowServiceImpl implements FlowService {
|
||||
}
|
||||
|
||||
|
||||
public String createQualifyVerify(RpcCreateQualifyVerfyReq rpcRequest) throws ApiException{
|
||||
public String createQualifyVerify(RpcCreateQualifyVerifyReq rpcRequest) throws ApiException{
|
||||
String url = mdmBaseUrl + "/api/openapi/runtime/form/startFraQualExamWithData";
|
||||
ResponseEntity<MDMResultDTO> responseEntity = null;
|
||||
try {
|
||||
RpcGetMdmTokenReq rpcGetMDMTokenReq = new RpcGetMdmTokenReq();
|
||||
// TODO set appKey 与 appSecret
|
||||
rpcGetMDMTokenReq.setAppKey(mdmAppKey);
|
||||
rpcGetMDMTokenReq.setAppSecret(mdmAppSec);
|
||||
Map<String, String> headers = new HashMap<>();
|
||||
headers.put("Authorization", getMdmAccessToken(rpcGetMDMTokenReq));
|
||||
responseEntity = RestTemplateUtil.post(url, headers, rpcRequest, MDMResultDTO.class);
|
||||
log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity));
|
||||
log.info("url:{}, header:{}, request:{} response:{}", url, JSONObject.toJSONString(headers), JSONObject.toJSONString(rpcRequest), JSONObject.toJSONString(responseEntity));
|
||||
if (Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()) {
|
||||
return JSONObject.toJSONString(responseEntity.getBody().getData());
|
||||
}
|
||||
@@ -260,13 +269,13 @@ public class FlowServiceImpl implements FlowService {
|
||||
ByteArrayOutputStream pdfOut = PassLetterUtils.genPassLetter(partnerName, passCode, verifyCity, passTime);
|
||||
//生成的 pdf 通过函内存输入流
|
||||
ByteArrayInputStream inputStream = new ByteArrayInputStream(pdfOut.toByteArray());
|
||||
String passPdfUrl = ossServer.uploadFileServer(inputStream, "partner/passLetter/" + passCode + ".pdf");
|
||||
String passPdfUrl = ossServer.uploadFileServer(inputStream, "passLetter/" + passCode + ".pdf");
|
||||
//转换为图片
|
||||
inputStream.reset();
|
||||
ByteArrayOutputStream imageOut = PDFUtils.pdf2Img(inputStream, 2.0f);
|
||||
inputStream = new ByteArrayInputStream(imageOut.toByteArray());
|
||||
//上传 OSS
|
||||
String passImageUrl = ossServer.uploadFileServer(inputStream, "partner/passLetter/" + passCode + ".png");
|
||||
String passImageUrl = ossServer.uploadFileServer(inputStream, "passLetter/" + passCode + ".png");
|
||||
//计算有效期截止日期
|
||||
DateTime expiryDate = DateUtil.offsetDay(passTime, 60);
|
||||
HyPartnerInterviewDO interviewDO = new HyPartnerInterviewDO();
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.request.CloseFollowRequest;
|
||||
import com.cool.store.request.LineRequest;
|
||||
import com.cool.store.request.PrivateSeaLineListRequest;
|
||||
import com.cool.store.service.AliyunService;
|
||||
import com.cool.store.service.EnterpriseUserService;
|
||||
import com.cool.store.service.HyPartnerLineInfoService;
|
||||
import com.cool.store.utils.CoolDateUtils;
|
||||
@@ -58,6 +59,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
|
||||
@Resource
|
||||
EnterpriseUserService enterpriseUserService;
|
||||
@Resource
|
||||
AliyunService aliyunService;
|
||||
|
||||
@Override
|
||||
public StageCountVO selectStagePendingCount(String userId) {
|
||||
@@ -247,20 +250,20 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
@Override
|
||||
public PageInfo<PublicSeaLineListVo> publicSeaLineList(String userId, LineRequest lineRequest) {
|
||||
//确认是招商经理还是部门负责人
|
||||
EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId);
|
||||
List<String> userIds = new ArrayList<>();
|
||||
if (userInfo.getIsLeader()){
|
||||
if (StringUtil.isNotEmpty(userInfo.getLeaderDeptIds())){
|
||||
List<String> regionIds = JSONObject.parseArray(userInfo.getLeaderDeptIds(), String.class);
|
||||
List<EnterpriseUserDO> enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(regionIds, null, true);
|
||||
userIds =enterpriseUserDOS.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toList());
|
||||
}
|
||||
}else {
|
||||
userIds = Arrays.asList(userId);
|
||||
}
|
||||
// EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId);
|
||||
// List<String> userIds = new ArrayList<>();
|
||||
// if (userInfo.getIsLeader()){
|
||||
// if (StringUtil.isNotEmpty(userInfo.getLeaderDeptIds())){
|
||||
// List<String> regionIds = JSONObject.parseArray(userInfo.getLeaderDeptIds(), String.class);
|
||||
// List<EnterpriseUserDO> enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(regionIds, null, true);
|
||||
// userIds =enterpriseUserDOS.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toList());
|
||||
// }
|
||||
// }else {
|
||||
// userIds = Arrays.asList(userId);
|
||||
// }
|
||||
PageHelper.startPage(lineRequest.getPageNum(),lineRequest.getPageSize());
|
||||
PageInfo publicSeaLineList = new PageInfo(hyPartnerLineInfoDAO.getPublicSeaLineList(lineRequest.getUserNameKeyword(), lineRequest.getPhoneKeyword(),
|
||||
lineRequest.getIntentArea(), lineRequest.getAcceptAdjustType(), lineRequest.getUpdateStartTime(), lineRequest.getUpdateEndTime(), userIds));
|
||||
lineRequest.getIntentArea(), lineRequest.getAcceptAdjustType(), lineRequest.getUpdateStartTime(), lineRequest.getUpdateEndTime(), null));
|
||||
|
||||
List<PublicSeaLineDTO> list = publicSeaLineList.getList();
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
@@ -286,8 +289,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
publicSeaLineListVo.setCreateTime(x.getCreateTime());
|
||||
publicSeaLineListVo.setPartnerUserName(x.getUserName());
|
||||
publicSeaLineListVo.setPartnerUserPhone(x.getMobile());
|
||||
// TODO: 2023/6/15 手机号归属地
|
||||
publicSeaLineListVo.setPhoneAddress("");
|
||||
DescribePhoneNumberDTO phoneNumberAttribute = aliyunService.getPhoneNumberAttribute(x.getMobile());
|
||||
publicSeaLineListVo.setPhoneAddress(phoneNumberAttribute.getCity());
|
||||
publicSeaLineListVo.setWantShopArea(x.getWantShopArea());
|
||||
publicSeaLineListVo.setId(x.getLineId());
|
||||
publicSeaLineListVo.setAcceptAdjustType(x.getAcceptAdjustType());
|
||||
@@ -395,21 +398,34 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerLineInfoDO.getPartnerId());
|
||||
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea()));
|
||||
|
||||
Boolean lineStatus = getLineStatus(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea()), hyPartnerUserInfoDO.getAcceptAdjustType());
|
||||
return lineStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* 线索状态
|
||||
* @param wantShopAreaId
|
||||
* @param acceptAdjustType
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Boolean getLineStatus(Long wantShopAreaId,Integer acceptAdjustType){
|
||||
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(wantShopAreaId);
|
||||
|
||||
if (AreaStatusEnum.OPEN.getCode().equals(hyOpenAreaInfoDO.getAreaStatus()) || AreaStatusEnum.KEY_OPEN.getCode().equals(hyOpenAreaInfoDO.getAreaStatus())){
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
if (AreaStatusEnum.NOT_OPEN.getCode().equals(hyOpenAreaInfoDO.getAreaStatus()) || AreaStatusEnum.SATURATED.getCode().equals(hyOpenAreaInfoDO.getAreaStatus())){
|
||||
if (AcceptAdjustTypeEnum.NOT_ACCEPT.getCode().equals(hyPartnerUserInfoDO.getAcceptAdjustType())){
|
||||
if (AcceptAdjustTypeEnum.NOT_ACCEPT.getCode().equals(acceptAdjustType)){
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
//全国调剂 默认分配呗 有啥好说的
|
||||
if (AcceptAdjustTypeEnum.NATIONAL_ADJUSTMENT.getCode().equals(hyPartnerUserInfoDO.getAcceptAdjustType())){
|
||||
if (AcceptAdjustTypeEnum.NATIONAL_ADJUSTMENT.getCode().equals(acceptAdjustType)){
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
//省内调剂 有重点或者开放的 分配
|
||||
if (AcceptAdjustTypeEnum.PROVINCIAL_ADJUSTMENT.getCode().equals(hyPartnerUserInfoDO.getAcceptAdjustType())){
|
||||
if (AcceptAdjustTypeEnum.PROVINCIAL_ADJUSTMENT.getCode().equals(acceptAdjustType)){
|
||||
Integer apply = hyOpenAreaInfoDAO.getChildrenCount("apply", hyOpenAreaInfoDO.getId());
|
||||
if (apply>CommonConstants.ZERO){
|
||||
return Boolean.TRUE;
|
||||
@@ -417,7 +433,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
//市内调剂 不分配
|
||||
if (AcceptAdjustTypeEnum.LOCAL_ADJUSTMENT.getCode().equals(hyPartnerUserInfoDO.getAcceptAdjustType())){
|
||||
if (AcceptAdjustTypeEnum.LOCAL_ADJUSTMENT.getCode().equals(acceptAdjustType)){
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
}
|
||||
@@ -432,7 +448,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
public BlackListVO convertPartnerBlackListDTOToVo(PartnerBlackListDTO partnerBlackListDTO){
|
||||
BlackListVO blackListVO = new BlackListVO();
|
||||
blackListVO.setId(partnerBlackListDTO.getLineId());
|
||||
blackListVO.setPartnerUserId(partnerBlackListDTO.getPartnerId());
|
||||
blackListVO.setPartnerId(partnerBlackListDTO.getPartnerId());
|
||||
blackListVO.setPartnerUserName(partnerBlackListDTO.getPartnerUserName());
|
||||
blackListVO.setPartnerUserPhone(partnerBlackListDTO.getMobile());
|
||||
blackListVO.setCreateTime(partnerBlackListDTO.getCreateTime());
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.cool.store.dto.message.SendCardMessageDTO;
|
||||
import com.cool.store.dto.partner.EnterInterviewDto;
|
||||
import com.cool.store.entity.HyPartnerInterviewDO;
|
||||
import com.cool.store.entity.HyPartnerInterviewPlanDO;
|
||||
import com.cool.store.entity.HyPartnerLineInfoDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.enums.MessageTypeEnum;
|
||||
import com.cool.store.enums.RoomStatus;
|
||||
@@ -19,6 +20,7 @@ import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.http.ISVHttpRequest;
|
||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
||||
import com.cool.store.mapper.HyPartnerLineInfoMapper;
|
||||
import com.cool.store.request.*;
|
||||
import com.cool.store.service.InterviewService;
|
||||
import com.cool.store.utils.StringUtil;
|
||||
@@ -28,12 +30,12 @@ import com.cool.store.vo.EnterpriseUserBaseInfoVO;
|
||||
import com.cool.store.vo.interview.CreateAppointmentVO;
|
||||
import com.cool.store.vo.interview.InterviewVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
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 org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
@@ -65,6 +67,9 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
|
||||
@Autowired
|
||||
private ISVHttpRequest isvHttpRequest;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerLineInfoMapper hyPartnerLineInfoMapper;
|
||||
@Override
|
||||
public List<InterviewVO> getInterviewList(GetInterviewListReq request) {
|
||||
List<InterviewVO> interviewList = hyPartnerInterviewPlanMapper.getInterviewList(request);
|
||||
@@ -102,8 +107,7 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
DeleteCalendarEventDTO deleteCalendarEventDTO = new DeleteCalendarEventDTO();
|
||||
deleteCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
|
||||
deleteCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
|
||||
//TODO 这里的userId是原面试官的userId还是新的?
|
||||
deleteCalendarEventDTO.setUserId(request.getNewInterviewerId());
|
||||
deleteCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
|
||||
UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.deleteUserCalendarEvent(deleteCalendarEventDTO);
|
||||
if(userCalendarsEventDTO == null ){
|
||||
throw new ApiException(ErrorCodeEnum.FEISHU_DELETE_SCHEDULE_ERROR);
|
||||
@@ -208,7 +212,20 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public CreateAppointmentVO createAppointment(CreateAppointmentReq request) {
|
||||
public CreateAppointmentVO createAppointment(CreateAppointmentReq request) throws ApiException {
|
||||
if(request.getPartnerLineId() == null || request.getPartnerLineId()<=0){
|
||||
throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_ID_IS_NULL);
|
||||
}
|
||||
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
||||
hyPartnerInterviewPlanDO.setPartnerLineId(request.getPartnerLineId());
|
||||
List<HyPartnerInterviewPlanDO> hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
|
||||
if(CollectionUtils.isNotEmpty(hyPartnerInterviewPlanDOS)&&hyPartnerInterviewPlanDOS.get(0).getId()!=null){
|
||||
throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_ID_IS_NULL);
|
||||
}
|
||||
String interviewrId = request.getInterviewerId();
|
||||
if(StringUtils.isEmpty(interviewrId)){
|
||||
interviewrId = getInterviewerByPartner(request.getPartnerId(),String.valueOf(request.getPartnerLineId()));
|
||||
}
|
||||
CreateAppointmentVO vo = new CreateAppointmentVO();
|
||||
//1.创建面试计划
|
||||
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
|
||||
@@ -221,25 +238,28 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
record.setEndTime(Convert.toDate(request.getEndBookingTime()));
|
||||
record.setPartnerId(request.getPartnerId());
|
||||
record.setPartnerLineId(request.getPartnerLineId());
|
||||
record.setInterviewer(request.getInterviewerId());
|
||||
record.setInterviewer(interviewrId);
|
||||
record.setIsPartnerInterview(0);
|
||||
//生成房间号
|
||||
record.setRoomId(StringUtil.generateRoomId(startBookingTime));
|
||||
record.setRoomStatus(RoomStatus.WAIT_FOR_OPEN.getCode());
|
||||
record.setDeleted(false);
|
||||
record.setApplicationApproved(0);
|
||||
hyPartnerInterviewPlanMapper.insertSelective(record);
|
||||
|
||||
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
||||
hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
|
||||
|
||||
// vo.setInterviewPlanId(String.valueOf(interviewPlanId));
|
||||
List<HyPartnerInterviewPlanDO> interviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
|
||||
if(CollectionUtils.isEmpty(interviewPlanDOS)){
|
||||
throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
|
||||
}
|
||||
Long interviewPlanId = interviewPlanDOS.get(0).getId();
|
||||
vo.setInterviewPlanId(String.valueOf(interviewPlanId));
|
||||
|
||||
//2.创建面试信息
|
||||
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
||||
// hyPartnerInterviewDO.setInterviewPlanId(interviewPlanId);
|
||||
hyPartnerInterviewDO.setInterviewPlanId(interviewPlanId);
|
||||
hyPartnerInterviewDO.setPartnerLineId(request.getPartnerLineId());
|
||||
hyPartnerInterviewDO.setPartnerId(request.getPartnerId());
|
||||
hyPartnerInterviewDO.setInterviewer(request.getInterviewerId());
|
||||
hyPartnerInterviewDO.setInterviewer(interviewrId);
|
||||
hyPartnerInterviewDO.setCreateTime(new Date());
|
||||
hyPartnerInterviewDO.setUpdateTime(new Date());
|
||||
hyPartnerInterviewDO.setStatus(Integer.valueOf(WorkflowStatusEnum.RESERVATION_1.getCode()));
|
||||
@@ -250,6 +270,7 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
|
||||
@Override
|
||||
public void approveAppointment(ApproveAppointmentReq request) throws ApiException {
|
||||
|
||||
//查询面试计划信息
|
||||
InterviewVO interviewVO = hyPartnerInterviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
|
||||
//如果面试计划不存在,抛出异常
|
||||
@@ -312,5 +333,23 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
.append(DateUtil.format(DateUtil.parse(interviewTime), "yyyy年MM月dd日 HH:mm"));
|
||||
return sb.toString();
|
||||
}
|
||||
@Override
|
||||
public String getInterviewerByPartner(String partnerId,String lineId){
|
||||
String interviewerId = null;
|
||||
if (StringUtils.isNotEmpty(partnerId) && StringUtils.isNotEmpty(lineId)) {
|
||||
//根据加盟商用户ID查询面试官ID
|
||||
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
||||
hyPartnerInterviewPlanDO.setPartnerId(partnerId);
|
||||
List<HyPartnerInterviewPlanDO> hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
|
||||
//如果查询结果为空,则去线索中获取招商经理,面试官只有两个阶段,一个是在第一次申请时不存在面试安排直接取招商经理,第二个时面试信息中可修改面试官信息,这个时候以面试信息中为准
|
||||
if (org.springframework.util.CollectionUtils.isEmpty(hyPartnerInterviewPlanDOS)) {
|
||||
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(lineId));
|
||||
interviewerId = hyPartnerLineInfoDO.getInvestmentManager();
|
||||
}else {
|
||||
interviewerId = hyPartnerInterviewPlanDOS.get(0).getInterviewer();
|
||||
}
|
||||
}
|
||||
return interviewerId;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -202,7 +202,7 @@ public class ZoneServiceImpl implements ZoneService {
|
||||
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
||||
}
|
||||
//查询已经绑定战区的 意向区域
|
||||
List<ZoneCheckDTO> list = hyIntendDevMappingDAO.selectByMappingIdList(intentAreaSettingRequest.getOpenAreaIdList());
|
||||
List<ZoneCheckDTO> list = hyIntendDevMappingDAO.selectByOpenAreaMappingIdList(intentAreaSettingRequest.getOpenAreaIdList());
|
||||
List<Long> openAreaIdList = list.stream().map(ZoneCheckDTO::getOpenAreaMappingId).collect(Collectors.toList());
|
||||
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOList = openAreaInfoDAO.selectByIds(openAreaIdList);
|
||||
Map<Long, String> areaNameMap = hyOpenAreaInfoDOList.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, HyOpenAreaInfoDO::getAreaName));
|
||||
|
||||
@@ -50,7 +50,7 @@ public class DeskController {
|
||||
|
||||
@GetMapping(path = "/interviewSchedule")
|
||||
@ApiOperation("面试日程信息 面试信息有限 不做分页")
|
||||
public ResponseResult<InterviewScheduleInfoVO> interviewSchedule(@RequestParam(value = "selectedData",required = false) Date selectedData){
|
||||
public ResponseResult<InterviewScheduleInfoVO> interviewSchedule(@RequestParam(value = "selectedData",required = false) String selectedData){
|
||||
|
||||
String userId = CurrentUserHolder.getUserId();
|
||||
return ResponseResult.success(deskService.interviewSchedule(userId,selectedData));
|
||||
|
||||
@@ -69,3 +69,7 @@ xxl.job.executor.port = 31001
|
||||
xxl.job.executor.logpath = logs/xxl-job/jobhandler
|
||||
xxl.job.executor.logretentiondays = 3
|
||||
xxl.job.accessToken =
|
||||
|
||||
hs.mdm.baseUrl=http://10.56.21.30/
|
||||
hs.mdm.appkey = HSAYPartner
|
||||
hs.mdm.appsec = ab39fedb886fa3587c7f517551976de8b2606f5511fd8f8675266825d74c5cd3
|
||||
|
||||
@@ -58,8 +58,10 @@ weixin.appSecret=245a483747e6e9f8762d3e8539cf0318
|
||||
|
||||
signKey=77fea013c3a6459685b83c21a2fc3411
|
||||
|
||||
#八佰流程配置
|
||||
hs.mdm.baseUrl=http://172.35.37.52:8080
|
||||
#MDM
|
||||
hs.mdm.baseUrl=http://10.56.21.30/
|
||||
hs.mdm.appkey = HSAYPartner
|
||||
hs.mdm.appsec = ab39fedb886fa3587c7f517551976de8b2606f5511fd8f8675266825d74c5cd3
|
||||
|
||||
#xxljob配置
|
||||
xxl.job.admin.addresses = https://djob.coolstore.cn/xxl-job-admin
|
||||
|
||||
@@ -64,6 +64,11 @@ weixin.appSecret=245a483747e6e9f8762d3e8539cf0318
|
||||
|
||||
signKey=77fea013c3a6459685b83c21a2fc3411
|
||||
|
||||
#MDM
|
||||
hs.mdm.baseUrl=http://10.56.21.30/
|
||||
hs.mdm.appkey = HSAYPartner
|
||||
hs.mdm.appsec = ab39fedb886fa3587c7f517551976de8b2606f5511fd8f8675266825d74c5cd3
|
||||
|
||||
xxl.job.admin.addresses =
|
||||
xxl.job.executor.appname = ${spring.application.name}
|
||||
xxl.job.executor.ip =
|
||||
|
||||
@@ -51,7 +51,7 @@ public class SignValidateFilter implements Filter {
|
||||
"/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**",
|
||||
"/partner/mini/program/oss/getUploadFileConfig",
|
||||
"/partner/mini/program/v1/partnerManage/partner/getIdentityCardInfo",
|
||||
"/**/swagger*/**", "/**/webjars/**");
|
||||
"/**/swagger*/**", "/**/webjars/**","/partner/mini/program/v1/partnerManage/openArea/areaApplyQuery");
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@Api(tags = "加盟商资格面试")
|
||||
@RestController
|
||||
@RequestMapping("interview")
|
||||
@RequestMapping("/interview")
|
||||
public class InterviewController {
|
||||
|
||||
@Autowired
|
||||
@@ -47,7 +47,7 @@ public class InterviewController {
|
||||
|
||||
@PostMapping("/appointment/submit")
|
||||
@ApiOperation("预约面试")
|
||||
public ResponseResult<CreateAppointmentVO> createAppointment(@RequestBody CreateAppointmentReq request) {
|
||||
public ResponseResult<CreateAppointmentVO> createAppointment(@RequestBody CreateAppointmentReq request) throws ApiException {
|
||||
return ResponseResult.success(interviewBaseService.createAppointment(request));
|
||||
}
|
||||
|
||||
|
||||
@@ -57,3 +57,8 @@ weixin.appId=wxb2a0addf956ad4b7
|
||||
weixin.appSecret=77abdcae754add92889566b543e5ad79
|
||||
|
||||
signKey=77fea013c3a6459685b83c21a2fc3411
|
||||
|
||||
#MDM
|
||||
hs.mdm.baseUrl=http://10.56.21.30/
|
||||
hs.mdm.appkey = HSAYPartner
|
||||
hs.mdm.appsec = ab39fedb886fa3587c7f517551976de8b2606f5511fd8f8675266825d74c5cd3
|
||||
|
||||
@@ -64,3 +64,8 @@ weixin.appId=wxb2a0addf956ad4b7
|
||||
weixin.appSecret=77abdcae754add92889566b543e5ad79
|
||||
|
||||
signKey=77fea013c3a6459685b83c21a2fc3411
|
||||
|
||||
#MDM
|
||||
hs.mdm.baseUrl=http://10.56.21.30/
|
||||
hs.mdm.appkey = HSAYPartner
|
||||
hs.mdm.appsec = ab39fedb886fa3587c7f517551976de8b2606f5511fd8f8675266825d74c5cd3
|
||||
|
||||
Reference in New Issue
Block a user