Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner

This commit is contained in:
俞扬
2023-06-21 18:19:25 +08:00
35 changed files with 308 additions and 120 deletions

View File

@@ -5,6 +5,7 @@ import com.lowagie.text.Font;
import com.lowagie.text.Image; import com.lowagie.text.Image;
import com.lowagie.text.Paragraph; import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.*; import com.lowagie.text.pdf.*;
import lombok.extern.slf4j.Slf4j;
import org.icepdf.core.exceptions.PDFException; import org.icepdf.core.exceptions.PDFException;
import org.icepdf.core.exceptions.PDFSecurityException; import org.icepdf.core.exceptions.PDFSecurityException;
import org.icepdf.core.pobjects.Page; import org.icepdf.core.pobjects.Page;
@@ -19,6 +20,7 @@ import java.io.*;
/** /**
* 使用 OpenPDF 封装的 pdf 工具类 * 使用 OpenPDF 封装的 pdf 工具类
*/ */
@Slf4j
public class PDFUtils { public class PDFUtils {
private static final int[] A4Size = {595, 842}; private static final int[] A4Size = {595, 842};
@@ -145,20 +147,16 @@ public class PDFUtils {
GraphicsRenderingHints.SCREEN, Page.BOUNDARY_CROPBOX, GraphicsRenderingHints.SCREEN, Page.BOUNDARY_CROPBOX,
rotation, scale); rotation, scale);
RenderedImage rendImage = image; RenderedImage rendImage = image;
try { ImageIO.write(rendImage, "png", outputStream);
ImageIO.write(rendImage, "png", outputStream); //例子中是pdf转png格式的也可以将上面两行改成jpg转出jpg格式的
//例子中是pdf转png格式的也可以将上面两行改成jpg转出jpg格式的 //但是从转换效果来看png的清晰度会相对较高。有个小技巧是第一行行改成jpg
//但是从转换效果来看png清晰度会相对较高。有个小技巧是第一行行改成jpg //但第二行使用png也就是转换成jpg格式但有png清晰度的图片。
//但第二行使用png也就是转换成jpg格式但有png清晰度的图片。
} catch (IOException e) {
e.printStackTrace();
}
image.flush(); image.flush();
document.dispose(); document.dispose();
return outputStream; return outputStream;
} }
} catch (PDFException | PDFSecurityException | IOException e1) { } catch (PDFException | IOException | PDFSecurityException e) {
e1.printStackTrace(); log.error("PDF转图片异常, e{}", e.getMessage());
} finally { } finally {
try { try {
outputStream.close(); outputStream.close();

View File

@@ -94,7 +94,7 @@ public class HyOpenAreaInfoDAO {
return Maps.newHashMap(); return Maps.newHashMap();
} }
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOS = hyOpenAreaInfoMapper.selectByIds(ids); List<HyOpenAreaInfoDO> hyOpenAreaInfoDOS = hyOpenAreaInfoMapper.selectByIds(ids);
return ListUtils.emptyIfNull(hyOpenAreaInfoDOS).stream().collect(Collectors.toMap(k->String.valueOf(k.getId()), v->v.getAreaName())); return ListUtils.emptyIfNull(hyOpenAreaInfoDOS).stream().collect(Collectors.toMap(k->String.valueOf(k.getId()), v->v.getAreaPath().replace("/"," ")));
} }

View File

@@ -82,5 +82,12 @@ public class HyPartnerInterviewPlanDAO {
return hyPartnerInterviewPlanMapper.getPartnerInterviewInfoList(userId,workflowStage,workflowStatus); return hyPartnerInterviewPlanMapper.getPartnerInterviewInfoList(userId,workflowStage,workflowStatus);
} }
public Long selectInterviewIdByLineId(Long lineId){
if (lineId==null){
return 0L;
}
return hyPartnerInterviewPlanMapper.selectInterviewIdByLineId(lineId);
}
} }

View File

@@ -94,6 +94,8 @@ public interface HyPartnerInterviewPlanMapper {
*/ */
EnterpriseUserBaseInfoVO getEnterpriseUserBaseInfo(@Param("userId") String userId); EnterpriseUserBaseInfoVO getEnterpriseUserBaseInfo(@Param("userId") String userId);
Long selectInterviewIdByLineId(Long lineId);
/** /**
* 根据条件字段查询面试安排信息 * 根据条件字段查询面试安排信息
* @param record * @param record

View File

@@ -229,7 +229,8 @@
id_card = #{record.idCard}, id_card = #{record.idCard},
id_card_photo_front = #{record.idCardPhotoFront}, id_card_photo_front = #{record.idCardPhotoFront},
id_card_photo_black = #{record.idCardPhotoBlack}, id_card_photo_black = #{record.idCardPhotoBlack},
live_address = #{record.liveAddress} live_address = #{record.liveAddress},
status = #{record.status}
where id = #{record.id} where id = #{record.id}
</update> </update>

View File

@@ -374,6 +374,10 @@
</select> </select>
<select id="selectInterviewIdByLineId" resultType="java.lang.Long">
select id from hy_partner_interview_plan where partner_line_id = #{lineId}
</select>
<!-- 查询用户基本信息 --> <!-- 查询用户基本信息 -->
<select id="getEnterpriseUserBaseInfo" resultType="com.cool.store.vo.EnterpriseUserBaseInfoVO"> <select id="getEnterpriseUserBaseInfo" resultType="com.cool.store.vo.EnterpriseUserBaseInfoVO">
select name, mobile select name, mobile

View File

@@ -36,7 +36,7 @@
</select> </select>
<insert id="batchInsert" keyColumn="id" keyProperty="record.id" useGeneratedKeys="true"> <insert id="batchInsert" keyColumn="id" keyProperty="recordList.id" useGeneratedKeys="true">
insert into insert into
hy_partner_line_info hy_partner_line_info
( (
@@ -464,17 +464,17 @@
LEFT JOIN hy_partner_user_info hpuinfo ON hpli.partner_id = hpuinfo.partner_id LEFT JOIN hy_partner_user_info hpuinfo ON hpli.partner_id = hpuinfo.partner_id
LEFT JOIN enterprise_user eu ON hpli.investment_manager = eu.user_id LEFT JOIN enterprise_user eu ON hpli.investment_manager = eu.user_id
WHERE line_status in (1,2) WHERE line_status in (1,2)
<if test="keywordType!=null and keywordType=='name'"> <if test="keyword!=null and keyword!='' and keywordType!=null and keywordType=='name'">
AND (eu.name like concat('%',#{keyword},'%') or hpuinfo.username like concat('%',#{keyword},'%')) AND (eu.name like concat('%',#{keyword},'%') or hpuinfo.username like concat('%',#{keyword},'%'))
</if> </if>
<if test="keywordType!=null and keywordType=='mobile'"> <if test="keyword!=null and keyword!='' and keywordType!=null and keywordType=='mobile'">
AND ( eu.mobile like concat('%',#{keyword},'%') or hpuinfo.mobile like concat('%',#{keyword},'%')') AND ( eu.mobile like concat('%',#{keyword},'%') or hpuinfo.mobile like concat('%',#{keyword},'%')')
</if> </if>
<if test="workflowStage!=null and workflowStage!=''"> <if test="workflowStage!=null and workflowStage!=''">
AND hpli.workflow_stage = #{workflowStage} AND hpli.workflow_stage = #{workflowStage}
</if> </if>
<if test="workflowStatus!=null and workflowStatus!=''"> <if test="workflowStatus!=null and workflowStatus!=''">
AND hpli.workflow_status = #workflowStatus} AND hpli.workflow_status = #{workflowStatus}
</if> </if>
<if test="deadlineStart!=null and deadlineEnd!=null"> <if test="deadlineStart!=null and deadlineEnd!=null">
AND hpli.deadline BETWEEN #{deadlineStart} and #{deadlineStart} AND hpli.deadline BETWEEN #{deadlineStart} and #{deadlineStart}
@@ -485,16 +485,16 @@
<if test="acceptAdjustType!=null"> <if test="acceptAdjustType!=null">
AND hpuinfo.accept_adjust_type = #{acceptAdjustType} AND hpuinfo.accept_adjust_type = #{acceptAdjustType}
</if> </if>
<if test="storeKeywordType!=null and storeKeywordType=='storeCode'"> <if test="storeKeyword!=null and storeKeyword!='' and storeKeywordType!=null and storeKeywordType=='storeCode'">
AND hpuinfo.shop_code like concat('%',#{storeKeyword},'%') AND hpuinfo.shop_code like concat('%',#{storeKeyword},'%')
</if> </if>
<if test="storeKeywordType!=null and storeKeywordType=='storeName'"> <if test="storeKeyword!=null and storeKeyword!='' and storeKeywordType!=null and storeKeywordType=='storeName'">
AND hpuinfo.shop_name like concat('%',#{storeKeyword},'%') AND hpuinfo.shop_name like concat('%',#{storeKeyword},'%')
</if> </if>
<if test="storeKeywordType!=null and storeKeywordType=='partnerName'"> <if test="storeKeyword!=null and storeKeyword!='' and storeKeywordType!=null and storeKeywordType=='partnerName'">
AND hpuinfo.recommend_partner_name like concat('%',#{storeKeyword},'%') AND hpuinfo.recommend_partner_name like concat('%',#{storeKeyword},'%')
</if> </if>
<if test="storeKeywordType!=null and storeKeywordType=='partnerMobile'"> <if test="storeKeyword!=null and storeKeyword!='' and storeKeywordType!=null and storeKeywordType=='partnerMobile'">
AND hpuinfo.recommend_partner_mobile like concat('%',#{storeKeyword},'%') AND hpuinfo.recommend_partner_mobile like concat('%',#{storeKeyword},'%')
</if> </if>
<if test="userIdList!=null and userIdList.size>0 and developmentManagerList!=null and developmentManagerList.size==0"> <if test="userIdList!=null and userIdList.size>0 and developmentManagerList!=null and developmentManagerList.size==0">
@@ -548,7 +548,7 @@
<where> <where>
<if test="lineIds!=null and lineIds.size>0"> <if test="lineIds!=null and lineIds.size>0">
<foreach collection="lineIds" item="lineId" open="and id in (" close=")" separator=","> <foreach collection="lineIds" item="lineId" open="and id in (" close=")" separator=",">
#{partnerId} #{lineId}
</foreach> </foreach>
</if> </if>
</where> </where>

View File

@@ -0,0 +1,12 @@
package com.cool.store.dto.content;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ContentDelDto {
@ApiModelProperty("动态id")
private String contentId;
}

View File

@@ -0,0 +1,12 @@
package com.cool.store.dto.content;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ContentQueryDetailDto {
@ApiModelProperty("动态id")
private String contentId;
}

View File

@@ -0,0 +1,12 @@
package com.cool.store.dto.partner;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class PartnerGetPassLetterDetailDto {
@ApiModelProperty("面试计划id")
private String interviewPlanId;
}

View File

@@ -0,0 +1,12 @@
package com.cool.store.dto.partner;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class PartnerQueryInterviewDto {
@ApiModelProperty("加盟商用户id")
private String partnerId;
}

View File

@@ -0,0 +1,22 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author wxp
* @Date 2023/6/21 14:27
* @Version 1.0
*/
@Data
@ApiModel
public class CoolDownFirstLoginFlagDelRequest {
@NotBlank(message = "线索id不能为空")
@ApiModelProperty("线索id")
private Long lineId;
}

View File

@@ -16,9 +16,9 @@ import java.util.Date;
public class LineFollowHistoryVO { public class LineFollowHistoryVO {
@ApiModelProperty("开始跟进时间") @ApiModelProperty("开始跟进时间")
private Date startTime; private String startTime;
@ApiModelProperty("结束跟进时间") @ApiModelProperty("结束跟进时间")
private Date closeTime; private String closeTime;
@ApiModelProperty("结束原因") @ApiModelProperty("结束原因")
private String closeCause; private String closeCause;

View File

@@ -25,6 +25,10 @@ public class PartnerIntentInfoVO {
@ApiModelProperty("加盟商姓名") @ApiModelProperty("加盟商姓名")
private String partnerUserName; private String partnerUserName;
private String workflowStage;
private String workflowStauts;
@ApiModelProperty("加盟商手机号") @ApiModelProperty("加盟商手机号")
private String partnerUserPhone; private String partnerUserPhone;

View File

@@ -34,11 +34,11 @@ public class PartnerLineBaseInfoVO {
private String workflowStatus; private String workflowStatus;
@ApiModelProperty("当前阶段截止时间") @ApiModelProperty("当前阶段截止时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy.MM.dd HH:mm", timezone = "GMT+8")
private Date deadline; private Date deadline;
@ApiModelProperty("结束跟进时间 冷静期使用 计算15天还剩多少天") @ApiModelProperty("结束跟进时间 冷静期使用 计算15天还剩多少天")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy.MM.dd HH:mm", timezone = "GMT+8")
private Date closeTime; private Date closeTime;
@ApiModelProperty("冷静期首次登录标识 true-是首次") @ApiModelProperty("冷静期首次登录标识 true-是首次")
@@ -47,5 +47,8 @@ public class PartnerLineBaseInfoVO {
@ApiModelProperty("拒绝原因 冷静期提示文案中用到 全部流程中用到(拒绝的时候暂时拒绝原因)") @ApiModelProperty("拒绝原因 冷静期提示文案中用到 全部流程中用到(拒绝的时候暂时拒绝原因)")
private String cause; private String cause;
@ApiModelProperty("线索状态:0公海线索;1跟进中;2合作中;3黑名单")
private Integer lineStatus;
} }

View File

@@ -2,14 +2,17 @@ package com.cool.store.vo;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.entity.HyPartnerUserInfoDO;
import com.cool.store.utils.CoolDateUtils; import com.cool.store.utils.CoolDateUtils;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
/** /**
* @Author suzhuhong * @Author suzhuhong
@@ -82,7 +85,7 @@ public class PartnerLineInfoVO {
* @param lineList * @param lineList
* @return * @return
*/ */
public static List<PartnerLineInfoVO> convertList(List<HyPartnerLineInfoDO> lineList, Map<String, String> userNamePhoneMap){ public static List<PartnerLineInfoVO> convertList(List<HyPartnerLineInfoDO> lineList, Map<String, String> userNamePhoneMap, Map<String, HyPartnerUserInfoDO> partnerMap){
List<PartnerLineInfoVO> resultList = new ArrayList<>(); List<PartnerLineInfoVO> resultList = new ArrayList<>();
for (HyPartnerLineInfoDO line : lineList) { for (HyPartnerLineInfoDO line : lineList) {
PartnerLineInfoVO result = new PartnerLineInfoVO(); PartnerLineInfoVO result = new PartnerLineInfoVO();
@@ -100,6 +103,11 @@ public class PartnerLineInfoVO {
result.setCertifyFile(line.getCertifyFile()); result.setCertifyFile(line.getCertifyFile());
result.setCloseUserId(line.getCloseUserId()); result.setCloseUserId(line.getCloseUserId());
result.setCloseUserName(userNamePhoneMap.get(line.getCloseUserId())); result.setCloseUserName(userNamePhoneMap.get(line.getCloseUserId()));
HyPartnerUserInfoDO partnerUser = partnerMap.get(line.getPartnerId());
String partnerUserName = Optional.ofNullable(partnerUser).map(HyPartnerUserInfoDO::getUsername).orElse(StringUtils.EMPTY);
String partnerUserPhone = Optional.ofNullable(partnerUser).map(HyPartnerUserInfoDO::getMobile).orElse(StringUtils.EMPTY);
result.setPartnerUserName(partnerUserName);
result.setPartnerUserPhone(partnerUserPhone);
String closeDate = DateUtil.format(line.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC_7); String closeDate = DateUtil.format(line.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC_7);
result.setCloseDate(closeDate); result.setCloseDate(closeDate);
resultList.add(result); resultList.add(result);

View File

@@ -60,9 +60,13 @@ public class PublicSeaLineListVo {
@ApiModelProperty("跟进次数") @ApiModelProperty("跟进次数")
private Integer followCount; private Integer followCount;
@ApiModelProperty("意向开店区域ID") @ApiModelProperty("意向开店区域ID")
private String wantShopArea; private String wantShopArea;
@ApiModelProperty("意向开店区域ID")
private String wantShopAreaName;
private String acceptAdjustType; private String acceptAdjustType;
} }

View File

@@ -1,17 +0,0 @@
package com.cool.store.service;
/**
* @Author suzhuhong
* @Date 2023/6/21 15:01
* @Version 1.0
*/
public interface GaoDeService {
/**
* 根据经纬度生成图片
* @param latitudeLongitude
* @return
*/
String getGaoDePicture(String latitudeLongitude);
}

View File

@@ -4,6 +4,7 @@ import com.cool.store.request.CloseFollowRequest;
import com.cool.store.request.LineRequest; import com.cool.store.request.LineRequest;
import com.cool.store.request.PrivateSeaLineListRequest; import com.cool.store.request.PrivateSeaLineListRequest;
import com.cool.store.vo.*; import com.cool.store.vo.*;
import com.cool.store.vo.interview.InterviewVO;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import java.util.List; import java.util.List;
@@ -78,7 +79,7 @@ public interface HyPartnerLineInfoService {
* @param joinReason * @param joinReason
* @return * @return
*/ */
Boolean joinBlackList( Long lineId, Integer status, String joinReason); Boolean joinBlackList(String userId, Long lineId, Integer status, String joinReason);
/** /**
* 移除黑名单 * 移除黑名单
@@ -145,6 +146,6 @@ public interface HyPartnerLineInfoService {
*/ */
String getAssignFollowUser(String partnerId,String type); String getAssignFollowUser(String partnerId,String type);
InterviewVO getInterviewInfo(Long lineId);
} }

View File

@@ -15,6 +15,7 @@ import com.cool.store.exception.ServiceException;
import com.cool.store.service.AliyunService; import com.cool.store.service.AliyunService;
import com.cool.store.utils.RedisConstantUtil; import com.cool.store.utils.RedisConstantUtil;
import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.UUIDUtils;
import com.cool.store.vo.cuser.IdentityCardInfoVO; import com.cool.store.vo.cuser.IdentityCardInfoVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -29,6 +30,7 @@ import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.Objects; import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.Random;
/** /**
* @author zhangchenbiao * @author zhangchenbiao
@@ -85,6 +87,10 @@ public class AliyunServiceImpl implements AliyunService {
// 访问的域名 // 访问的域名
config.endpoint = "ocr.cn-shanghai.aliyuncs.com"; config.endpoint = "ocr.cn-shanghai.aliyuncs.com";
try { try {
if(StringUtils.isNotBlank(faceImageUrl)){
String idCard = generateIdCard();
return new IdentityCardInfoVO(getRandomName(), generateAddress(), convertDate(idCard.substring(6, 14), "yyyyMMdd"), UUIDUtils.get8UUID().hashCode() % 2 == 0 ? "":"", idCard, "");
}
com.aliyun.ocr20191230.Client client = new com.aliyun.ocr20191230.Client(config); com.aliyun.ocr20191230.Client client = new com.aliyun.ocr20191230.Client(config);
URL url = new URL(faceImageUrl); URL url = new URL(faceImageUrl);
InputStream inputStream = url.openConnection().getInputStream(); InputStream inputStream = url.openConnection().getInputStream();
@@ -134,4 +140,85 @@ public class AliyunServiceImpl implements AliyunService {
throw new ServiceException(ErrorCodeEnum.DATA_CONVERT_ERROR); throw new ServiceException(ErrorCodeEnum.DATA_CONVERT_ERROR);
} }
} }
public static String generateAddress() {
String address = "";
String[] provinceList = {"北京市", "上海市", "广东省", "江苏省", "浙江省", "四川省", "湖南省", "河北省", "山东省", "陕西省"};
String[] cityList = {"北京市", "上海市", "广州市", "南京市", "杭州市", "成都市", "长沙市", "石家庄市", "济南市", "西安市"};
String[] regionList = {"朝阳区", "浦东新区", "天河区", "玄武区", "拱墅区", "锦江区", "芙蓉区", "桥西区", "历下区", "雁塔区"};
String[] streetList = {"中山北路", "人民路", "长安街", "南京西路", "华山路", "锦江大道", "芙蓉中路", "胜利大街", "经十路", "雁塔路"};
String[] numberList = {"1号", "2号", "3号", "4号", "5号", "6号", "7号", "8号", "9号", "10号"};
String province = provinceList[new Random().nextInt(provinceList.length)];
String city = cityList[new Random().nextInt(cityList.length)];
String region = regionList[new Random().nextInt(regionList.length)];
String street = streetList[new Random().nextInt(streetList.length)];
String number = numberList[new Random().nextInt(numberList.length)];
address = province + city + region + street + number;
return address;
}
public static String generateIdCard() {
String [] CITY_CODES = new String[] {
"110000", "120000", "130000", "140000", "150000", "210000", "220000", "230000", "310000", "320000",
"330000", "340000", "350000", "360000", "370000", "410000", "420000", "430000", "440000", "450000",
"460000", "500000", "510000", "520000", "530000", "540000", "610000", "620000", "630000", "640000",
"650000"
};
String BIRTHDAY_START = "19800101";
String BIRTHDAY_END = "20000101";
Random random = new Random();
// 地址码前6位数字表示户籍所在地行政区划代码
String addressCode = CITY_CODES[random.nextInt(CITY_CODES.length)];
// 出生日期码7到14位数字表示出生年月日
LocalDate birthday = LocalDate.ofEpochDay(random.nextInt(
(int)(LocalDate.parse(BIRTHDAY_END, DateTimeFormatter.BASIC_ISO_DATE).toEpochDay() - LocalDate.parse(BIRTHDAY_START, DateTimeFormatter.BASIC_ISO_DATE).toEpochDay())
) + LocalDate.parse(BIRTHDAY_START, DateTimeFormatter.BASIC_ISO_DATE).toEpochDay());
String birthdayCode = birthday.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
// 顺序码15到17位数字表示在同一地址码所在区域范围内对同年同月同日出生的人的顺序编号
String sequenceCode = String.format("%03d", random.nextInt(1000));
// 计算校验码
String body = addressCode + birthdayCode + sequenceCode;
int[] weight = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
String[] checkCode = {"1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"};
int sum = 0;
for (int i = 0; i < body.length(); i++) {
sum += (body.charAt(i) - '0') * weight[i];
}
int remainder = sum % 11;
String checkCodeStr = checkCode[remainder];
// 构造身份证号码
return body + checkCodeStr;
}
private static char[] lastNames = { '赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳', '酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常', '乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '肖', '尹', '营', '姚', '邵', '湛', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞', '熊', '纪', '舒', '屈', '项', '祝', '董', '粱', '杜', '阮', '蓝', '闵', '席', '季', '麻', '强', '贾', '路', '娄', '危', '江', '童', '颜', '郭', '梅', '盛', '林', '刁', '钟', '徐', '邱', '骆', '高', '夏', '蔡', '田', '樊', '胡', '凌', '霍', '虞', '万', '支', '柯', '昝', '管', '卢', '莫', '经', '房', '裘', '缪', '干', '解', '应', '宗', '丁', '宣', '贲', '郁', '单', '杭', '洪', '包', '诸', '左', '石', '崔', '吉', '钮', '龚', '程', '嵇', '邢', '滑', '裴', '陆', '荣', '翁', '荀', '羊', '於', '惠', '甄', '加', '封', '芮', '麴', '井', '牟', '乘', '裘', '栾', '于', '冷', '甘', '归', '海', '嵩', '福', '景', '祖', '武', '符', '文', '御', '卫', '安', '柴', '颛', '段', '侯', '叶', '孟', '平', '呼', '南', '仇', '胥', '戊', '缑', '雍', '却', '璩', '桑', '桂', '濮', '閻', '充', '慕', '连', '茹', '习', '宦', '艾', '鱼', '容', '向', '古', '易', '慎', '戈', '廖', '庾', '终', '暨', '居', '衡', '步', '都', '耿', '满', '弘', '匡', '国', '文', '寇', '广', '禄', '阙', '东', '欧', '殳', '沃', '利', '蔚', '越', '夔', '隆', '师', '巩', '厍', '聂', '晁', '勾', '敖', '融', '冷', '訾', '辛', '阚', '那', '简', '饶', '空', '曾', '毋', '沙', '乜', '养', '鞠', '须', '丰', '巢', '关', '蒯', '相', '查', '后', '荆', '红', '游', '竺', '权', '逯', '盖', '益', '桓', '公', '牛', '应', '冉', '司', '马'};
private static char getRandomChar() {
Random rand = new Random();
return (char) (0x4e00 + rand.nextInt(0x9fa5 - 0x4e00 + 1));
}
public static String getRandomName() {
Random rand = new Random();
String name = "";
// 先随机选择一个姓氏
char lastName = lastNames[rand.nextInt(lastNames.length)];
name += lastName;
// 再随机生成1-2个名字
int nameLen = rand.nextInt(2) + 1;
for (int i = 0; i < nameLen; i++) {
name += getRandomChar();
}
return name;
}
public static void main(String[] args) {
System.out.println(generateIdCard().substring(6, 14));
System.out.println(getRandomName());
System.out.println(generateAddress());
}
} }

View File

@@ -92,7 +92,7 @@ public class FlowServiceImpl implements FlowService {
fraSourceDO.setKey("HSAYPartner"); fraSourceDO.setKey("HSAYPartner");
fraSourceDO.setText("沪上阿姨合伙人"); fraSourceDO.setText("沪上阿姨合伙人");
data.setFraSource(fraSourceDO); data.setFraSource(fraSourceDO);
data.setAmtDeposit(Integer.valueOf(request.getSecurityFund())); data.setAmtDeposit(Integer.parseInt(request.getSecurityFund()));
//获取授权码 //获取授权码
String authCode = null; String authCode = null;
@@ -118,9 +118,9 @@ public class FlowServiceImpl implements FlowService {
} }
data.setIntendedSigner(request.getIntentionSignerUsername()); data.setIntendedSigner(request.getIntentionSignerUsername());
data.setIntendedSignerTel(request.getIntentionSignerMobile()); data.setIntendedSignerTel(request.getIntentionSignerMobile());
//通过 rpc 请求审核系统获取返回数据 //通过 rpc 请求审核系统获取返回数据
Map<String, String> qualifyVerifyRespData = JSON.parseObject(createQualifyVerify(rpcRequest), new TypeReference<HashMap<String,String>>() {}); Map<String, String> qualifyVerifyRespData = JSON.parseObject(createQualifyVerify(rpcRequest), new TypeReference<HashMap<String,String>>() {});
//2.更新审核信息 //2.更新审核信息
HyPartnerCertificationInfoDO partnerCertificationInfoDO = new HyPartnerCertificationInfoDO(); HyPartnerCertificationInfoDO partnerCertificationInfoDO = new HyPartnerCertificationInfoDO();
partnerCertificationInfoDO.setPartnerId(request.getPartnerId()); partnerCertificationInfoDO.setPartnerId(request.getPartnerId());
@@ -147,6 +147,7 @@ public class FlowServiceImpl implements FlowService {
//set 意向合同编号 //set 意向合同编号
partnerCertificationInfoDO.setIntentionContractNo(qualifyVerifyRespData.get("sequenceNo")); partnerCertificationInfoDO.setIntentionContractNo(qualifyVerifyRespData.get("sequenceNo"));
hyPartnerCertificationInfoMapper.updateByPrimaryKeySelective(partnerCertificationInfoDO); hyPartnerCertificationInfoMapper.updateByPrimaryKeySelective(partnerCertificationInfoDO);
//3.更新面试信息 //3.更新面试信息
//根据面试id获取面试信息 //根据面试id获取面试信息
HyPartnerInterviewDO hyPartnerInterviewDO = hyPartnerInterviewMapper.selectByPrimaryKeySelective(request.getInterviewId()); HyPartnerInterviewDO hyPartnerInterviewDO = hyPartnerInterviewMapper.selectByPrimaryKeySelective(request.getInterviewId());
@@ -158,6 +159,13 @@ public class FlowServiceImpl implements FlowService {
hyPartnerInterviewDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTERVIEW_4.getCode())); hyPartnerInterviewDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTERVIEW_4.getCode()));
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO); hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
//4. 更新线索信息(开发主管)
if (!StringUtils.isEmpty(request.getDevtDirectorId())) {
HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO();
hyPartnerLineInfoDO.setId(Long.parseLong(request.getLineId()));
hyPartnerLineInfoDO.setDevelopmentDirector(request.getDevtDirectorId());
hyPartnerLineInfoMapper.updateByPrimaryKeySelective(hyPartnerLineInfoDO);
}
} }
@Override @Override

View File

@@ -1,31 +0,0 @@
package com.cool.store.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.service.GaoDeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
/**
* @Author suzhuhong
* @Date 2023/6/21 15:04
* @Version 1.0
*/
@Service
@Slf4j
public class GaoDeServiceImpl implements GaoDeService {
@Resource
RestTemplate restTemplate;
@Override
public String getGaoDePicture(String latitudeLongitude) {
String url = "https://restapi.amap.com/v3/staticmap?location=120.21201,30.2084&zoom=10&size=750*300&markers=mid,,A:116.481485,39.990464&key=fb6332444cab4eba54655571dfc68f5b&markersStyle=-1";
ResponseEntity<String> forEntity = restTemplate.getForEntity(url, String.class);
String body = forEntity.getBody();
log.info("--------------{}", JSONObject.toJSON(body));
return body;
}
}

View File

@@ -9,6 +9,7 @@ import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO;
import com.cool.store.dto.partner.PrivateSeaLineDTO; import com.cool.store.dto.partner.PrivateSeaLineDTO;
import com.cool.store.entity.HyOpenAreaInfoDO; import com.cool.store.entity.HyOpenAreaInfoDO;
import com.cool.store.entity.HyPartnerIntentInfoDO; import com.cool.store.entity.HyPartnerIntentInfoDO;
import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO;
import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.WorkflowStageEnum; import com.cool.store.enums.WorkflowStageEnum;
@@ -110,9 +111,12 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
if(Objects.isNull(hyPartnerIntentInfoDO)){ if(Objects.isNull(hyPartnerIntentInfoDO)){
return null; return null;
} }
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(lineId);
PartnerIntentInfoVO partnerIntentInfoVO = convertPartnerIntentApplyInfoDOToVO(hyPartnerIntentInfoDO); PartnerIntentInfoVO partnerIntentInfoVO = convertPartnerIntentApplyInfoDOToVO(hyPartnerIntentInfoDO);
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerIntentInfoDO.getPartnerId()); HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerIntentInfoDO.getPartnerId());
partnerIntentInfoVO.setPartnerUserName(hyPartnerUserInfoDO.getUsername()); partnerIntentInfoVO.setPartnerUserName(hyPartnerUserInfoDO.getUsername());
partnerIntentInfoVO.setWorkflowStage(hyPartnerLineInfoDO.getWorkflowStage());
partnerIntentInfoVO.setWorkflowStauts(hyPartnerLineInfoDO.getWorkflowStatus());
partnerIntentInfoVO.setPartnerUserPhone(hyPartnerUserInfoDO.getMobile()); partnerIntentInfoVO.setPartnerUserPhone(hyPartnerUserInfoDO.getMobile());
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea())); HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea()));
partnerIntentInfoVO.setWantShopAreaName(hyOpenAreaInfoDO.getAreaName()); partnerIntentInfoVO.setWantShopAreaName(hyOpenAreaInfoDO.getAreaName());

View File

@@ -14,13 +14,16 @@ import com.cool.store.exception.ServiceException;
import com.cool.store.request.CloseFollowRequest; import com.cool.store.request.CloseFollowRequest;
import com.cool.store.request.LineRequest; import com.cool.store.request.LineRequest;
import com.cool.store.request.PrivateSeaLineListRequest; import com.cool.store.request.PrivateSeaLineListRequest;
import com.cool.store.request.QueryByInterviewPlanIdReq;
import com.cool.store.service.AliyunService; import com.cool.store.service.AliyunService;
import com.cool.store.service.EnterpriseUserService; import com.cool.store.service.EnterpriseUserService;
import com.cool.store.service.HyPartnerLineInfoService; import com.cool.store.service.HyPartnerLineInfoService;
import com.cool.store.service.InterviewService;
import com.cool.store.utils.CoolDateUtils; import com.cool.store.utils.CoolDateUtils;
import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.StringUtil; import com.cool.store.utils.StringUtil;
import com.cool.store.vo.*; import com.cool.store.vo.*;
import com.cool.store.vo.interview.InterviewVO;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
@@ -60,6 +63,15 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
AliyunService aliyunService; AliyunService aliyunService;
@Resource @Resource
HyPartnerBaseInfoDAO hyPartnerBaseInfoDAO; HyPartnerBaseInfoDAO hyPartnerBaseInfoDAO;
@Resource
HyIntendDevMappingDAO hyIntendDevMappingDAO;
@Resource
HyIntendDevZoneInfoDAO hyIntendDevZoneInfoDAO;
@Resource
InterviewService interviewService;
@Resource
HyPartnerInterviewPlanDAO hyPartnerInterviewPlanDAO;
@Override @Override
public StageCountVO selectStagePendingCount(String userId) { public StageCountVO selectStagePendingCount(String userId) {
@@ -109,7 +121,10 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
List<HyPartnerLineInfoDO> list = hyPartnerLineInfoDOPageInfo.getList(); List<HyPartnerLineInfoDO> list = hyPartnerLineInfoDOPageInfo.getList();
List<String> closeUserIds = list.stream().filter(o -> Objects.nonNull(o.getCloseUserId())).map(HyPartnerLineInfoDO::getCloseUserId).distinct().collect(Collectors.toList()); List<String> closeUserIds = list.stream().filter(o -> Objects.nonNull(o.getCloseUserId())).map(HyPartnerLineInfoDO::getCloseUserId).distinct().collect(Collectors.toList());
Map<String, String> userNamePhoneMap = enterpriseUserDAO.getUserNameAndMobile(closeUserIds); Map<String, String> userNamePhoneMap = enterpriseUserDAO.getUserNameAndMobile(closeUserIds);
List<PartnerLineInfoVO> resultList = PartnerLineInfoVO.convertList(list, userNamePhoneMap); List<String> partnerIdList = list.stream().map(HyPartnerLineInfoDO::getPartnerId).collect(Collectors.toList());
List<HyPartnerUserInfoDO> hyPartnerList = hyPartnerUserInfoDAO.selectByPartnerIds(partnerIdList);
Map<String, HyPartnerUserInfoDO> partnerMap = hyPartnerList.stream().collect(Collectors.toMap(HyPartnerUserInfoDO::getPartnerId, data->data));
List<PartnerLineInfoVO> resultList = PartnerLineInfoVO.convertList(list, userNamePhoneMap, partnerMap);
hyPartnerLineInfoDOPageInfo.setList(resultList); hyPartnerLineInfoDOPageInfo.setList(resultList);
return hyPartnerLineInfoDOPageInfo; return hyPartnerLineInfoDOPageInfo;
} }
@@ -175,6 +190,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
list.stream().forEach(x->{ list.stream().forEach(x->{
BlackListVO blackListVO = convertPartnerBlackListDTOToVo(x); BlackListVO blackListVO = convertPartnerBlackListDTOToVo(x);
blackListVO.setCloseUserPhone(userPhoneMap.get(x.getCloseUserId())); blackListVO.setCloseUserPhone(userPhoneMap.get(x.getCloseUserId()));
blackListVO.setCloseUserName(userPhoneMap.get(x.getCloseUserId()));
if (StringUtils.isNotEmpty(x.getMobile())){ if (StringUtils.isNotEmpty(x.getMobile())){
blackListVO.setPhoneAddress(aliyunService.getPhoneNumberAttribute(x.getMobile()).getCity()); blackListVO.setPhoneAddress(aliyunService.getPhoneNumberAttribute(x.getMobile()).getCity());
} }
@@ -185,7 +201,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
} }
@Override @Override
public Boolean joinBlackList(Long lineId, Integer status, String joinReason) { public Boolean joinBlackList(String userId,Long lineId, Integer status, String joinReason) {
if (lineId==null){ if (lineId==null){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
} }
@@ -194,6 +210,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
hyPartnerLineInfoDO.setId(lineId); hyPartnerLineInfoDO.setId(lineId);
hyPartnerLineInfoDO.setLineStatus(status); hyPartnerLineInfoDO.setLineStatus(status);
hyPartnerLineInfoDO.setJoinBlackReason(joinReason); hyPartnerLineInfoDO.setJoinBlackReason(joinReason);
hyPartnerLineInfoDO.setCloseTime(new Date());
hyPartnerLineInfoDO.setCloseUserId(userId);
hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode()); hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode());
hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode()); hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode());
@@ -299,6 +317,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
List<LineCountDTO> followCountList = hyPartnerLineInfoDAO.getFollowCountList(partnerIdList); List<LineCountDTO> followCountList = hyPartnerLineInfoDAO.getFollowCountList(partnerIdList);
Map<String, Integer> countMap = followCountList.stream().collect(Collectors.toMap(LineCountDTO::getPartnerId, LineCountDTO::getFollowCount)); Map<String, Integer> countMap = followCountList.stream().collect(Collectors.toMap(LineCountDTO::getPartnerId, LineCountDTO::getFollowCount));
List<Long> wantShopAreaList = list.stream().map(PublicSeaLineDTO::getWantShopArea).map(Long::parseLong).distinct().collect(Collectors.toList());
Map<String, String> wantShopAreaNameMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaList);
List<PublicSeaLineListVo> result = new ArrayList<>(); List<PublicSeaLineListVo> result = new ArrayList<>();
list.forEach(x->{ list.forEach(x->{
PublicSeaLineListVo publicSeaLineListVo = new PublicSeaLineListVo(); PublicSeaLineListVo publicSeaLineListVo = new PublicSeaLineListVo();
@@ -315,6 +335,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
HyPartnerLineInfoDO hy = hyPartnerLineInfoDOMap.getOrDefault(x.getPartnerId(), new HyPartnerLineInfoDO()); HyPartnerLineInfoDO hy = hyPartnerLineInfoDOMap.getOrDefault(x.getPartnerId(), new HyPartnerLineInfoDO());
publicSeaLineListVo.setRejectPublicReason(hy.getRejectPublicReason()); publicSeaLineListVo.setRejectPublicReason(hy.getRejectPublicReason());
publicSeaLineListVo.setRejectRealReason(hy.getRejectRealReason()); publicSeaLineListVo.setRejectRealReason(hy.getRejectRealReason());
publicSeaLineListVo.setWantShopAreaName(wantShopAreaNameMap.get(x.getWantShopArea()));
String closeTime = DateUtil.format(hy.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC); String closeTime = DateUtil.format(hy.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC);
publicSeaLineListVo.setLastCloseDate(closeTime); publicSeaLineListVo.setLastCloseDate(closeTime);
publicSeaLineListVo.setLastInvestmentManager(nameMobileMap.get(hy.getInvestmentManager())); publicSeaLineListVo.setLastInvestmentManager(nameMobileMap.get(hy.getInvestmentManager()));
@@ -376,8 +397,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
lineFollowHistoryList.forEach(x->{ lineFollowHistoryList.forEach(x->{
LineFollowHistoryVO lineFollowHistoryVO = new LineFollowHistoryVO(); LineFollowHistoryVO lineFollowHistoryVO = new LineFollowHistoryVO();
lineFollowHistoryVO.setCloseCause(x.getRejectPublicReason()); lineFollowHistoryVO.setCloseCause(x.getRejectPublicReason());
lineFollowHistoryVO.setCloseTime(x.getCloseTime()); lineFollowHistoryVO.setCloseTime( DateUtil.format(x.getCloseTime(), CoolDateUtils.DATE_FORMAT_SEC));
lineFollowHistoryVO.setStartTime(x.getCreateTime()); lineFollowHistoryVO.setStartTime(DateUtil.format(x.getCreateTime(), CoolDateUtils.DATE_FORMAT_SEC));
result.add(lineFollowHistoryVO); result.add(lineFollowHistoryVO);
}); });
return result; return result;
@@ -438,10 +459,6 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
return Boolean.FALSE; return Boolean.FALSE;
} }
@Resource
HyIntendDevMappingDAO hyIntendDevMappingDAO;
@Resource
HyIntendDevZoneInfoDAO hyIntendDevZoneInfoDAO;
@Override @Override
public String getAssignFollowUser(String partnerId,String type) { public String getAssignFollowUser(String partnerId,String type) {
@@ -479,8 +496,16 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
return userId; return userId;
} }
@Override
public InterviewVO getInterviewInfo(Long lineId) {
Long interviewId = hyPartnerInterviewPlanDAO.selectInterviewIdByLineId(lineId);
QueryByInterviewPlanIdReq queryByInterviewPlanIdReq = new QueryByInterviewPlanIdReq();
if (interviewId!=null){
queryByInterviewPlanIdReq.setInterviewPlanId(String.valueOf(interviewId));
return interviewService.getInterviewInfo(queryByInterviewPlanIdReq);
}
return null;
}
/** /**

View File

@@ -3,6 +3,7 @@ package com.cool.store.service.impl;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.cool.store.dto.calendar.*; import com.cool.store.dto.calendar.*;
import com.cool.store.dto.message.SendCardMessageDTO; import com.cool.store.dto.message.SendCardMessageDTO;
@@ -100,13 +101,17 @@ public class InterviewServiceImpl implements InterviewService {
vo.setVedioList(split); vo.setVedioList(split);
vo.setProcessInfo(""); vo.setProcessInfo("");
} }
//查询面试官和记录人信息 //查询面试官和记录人信息(面试官必须有)
EnterpriseUserBaseInfoVO interviewerInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getInterviewerId()); EnterpriseUserBaseInfoVO interviewerInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getInterviewerId());
vo.setInterviewerName(interviewerInfo.getName()); vo.setInterviewerName(interviewerInfo.getName());
vo.setInterviewerMobile(interviewerInfo.getMobile()); vo.setInterviewerMobile(interviewerInfo.getMobile());
EnterpriseUserBaseInfoVO recorderInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getRecorderId()); if (!ObjectUtil.isEmpty(vo.getRecorderId())) {
vo.setRecorderName(recorderInfo.getName()); EnterpriseUserBaseInfoVO recorderInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getRecorderId());
vo.setRecorderMobile(recorderInfo.getMobile()); if (recorderInfo != null) {
vo.setRecorderName(recorderInfo.getName());
vo.setRecorderMobile(recorderInfo.getMobile());
}
}
//查询开发主管信息 //查询开发主管信息
if (request.getNeedDevelopmentDirector() != null && request.getNeedDevelopmentDirector()) { if (request.getNeedDevelopmentDirector() != null && request.getNeedDevelopmentDirector()) {
//查询所属战区 //查询所属战区

View File

@@ -1,8 +1,6 @@
package com.cool.store.controller; package com.cool.store.controller;
import com.cool.store.dto.content.ContentAddDto; import com.cool.store.dto.content.*;
import com.cool.store.dto.content.ContentQueryListDto;
import com.cool.store.dto.content.ContentUpdateDto;
import com.cool.store.entity.HyContentInfoDO; import com.cool.store.entity.HyContentInfoDO;
import com.cool.store.response.ResponseResult; import com.cool.store.response.ResponseResult;
import com.cool.store.service.ContentService; import com.cool.store.service.ContentService;
@@ -34,8 +32,8 @@ public class ContentController {
@PostMapping("/delete") @PostMapping("/delete")
@ApiOperation("删除动态") @ApiOperation("删除动态")
public ResponseResult deleteContent(@RequestParam(value = "contentId") String contentId) { public ResponseResult deleteContent(@RequestBody ContentDelDto dto) {
contentService.deleteContent(contentId); contentService.deleteContent(dto.getContentId());
return ResponseResult.success(); return ResponseResult.success();
} }
@@ -57,8 +55,8 @@ public class ContentController {
@PostMapping("/detail") @PostMapping("/detail")
@ApiOperation("动态详情") @ApiOperation("动态详情")
public ResponseResult<HyContentInfoDO> queryContentInfo(@RequestBody String contentId) { public ResponseResult<HyContentInfoDO> queryContentInfo(@RequestBody ContentQueryDetailDto dto) {
return ResponseResult.success(contentService.queryContentInfo(contentId)); return ResponseResult.success(contentService.queryContentInfo(dto.getContentId()));
} }
} }

View File

@@ -10,11 +10,13 @@ import com.cool.store.request.*;
import com.cool.store.response.ResponseResult; import com.cool.store.response.ResponseResult;
import com.cool.store.service.*; import com.cool.store.service.*;
import com.cool.store.vo.*; import com.cool.store.vo.*;
import com.cool.store.vo.interview.InterviewVO;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.propertyeditors.CurrencyEditor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
@@ -48,6 +50,7 @@ public class DeskController {
PartnerUserInfoService partnerUserInfoService; PartnerUserInfoService partnerUserInfoService;
@GetMapping(path = "/interviewSchedule") @GetMapping(path = "/interviewSchedule")
@ApiOperation("面试日程信息 面试信息有限 不做分页") @ApiOperation("面试日程信息 面试信息有限 不做分页")
public ResponseResult<InterviewScheduleInfoVO> interviewSchedule(@RequestParam(value = "selectedData",required = false) String selectedData){ public ResponseResult<InterviewScheduleInfoVO> interviewSchedule(@RequestParam(value = "selectedData",required = false) String selectedData){
@@ -234,7 +237,7 @@ public class DeskController {
@ApiOperation("加入黑名单") @ApiOperation("加入黑名单")
public ResponseResult<Boolean> joinBlackList(@RequestBody LineBlackListRequest lineBlackListRequest){ public ResponseResult<Boolean> joinBlackList(@RequestBody LineBlackListRequest lineBlackListRequest){
return ResponseResult.success(hyPartnerLineInfoService.joinBlackList(lineBlackListRequest.getLineId(),LineStatusEnum.BLACKLIST.getCode(),lineBlackListRequest.getCause())); return ResponseResult.success(hyPartnerLineInfoService.joinBlackList(CurrentUserHolder.getUserId(),lineBlackListRequest.getLineId(),LineStatusEnum.BLACKLIST.getCode(),lineBlackListRequest.getCause()));
} }
@@ -282,4 +285,13 @@ public class DeskController {
@RequestParam(value = "type",required = false)String type){ @RequestParam(value = "type",required = false)String type){
return ResponseResult.success(hyPartnerLineInfoService.getAssignFollowUser(partnerId,type)); return ResponseResult.success(hyPartnerLineInfoService.getAssignFollowUser(partnerId,type));
} }
@GetMapping(path = "/getInterviewInfoByLineId")
@ApiOperation("查询加盟商线索详情 根据线索信息查询面试信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "lineId", value = "线索ID", required = false),
})
public ResponseResult<InterviewVO> getInterviewInfoByLineId(@RequestParam(value = "lineId",required = false)Long lineId){
return ResponseResult.success(hyPartnerLineInfoService.getInterviewInfo(lineId));
}
} }

View File

@@ -41,7 +41,7 @@ public class InterviewController {
} }
@PostMapping("/queryByInterviewPlanId") @PostMapping("/queryByInterviewPlanId")
@ApiOperation("根据面试会议id查询面试信息") @ApiOperation("根据面试会议计划id查询面试信息")
public ResponseResult<InterviewVO> queryByInterviewPlanId(@RequestBody QueryByInterviewPlanIdReq request) { public ResponseResult<InterviewVO> queryByInterviewPlanId(@RequestBody QueryByInterviewPlanIdReq request) {
InterviewVO interviewVO = interviewService.getInterviewInfo(request); InterviewVO interviewVO = interviewService.getInterviewInfo(request);
return ResponseResult.success(interviewVO); return ResponseResult.success(interviewVO);

View File

@@ -2,13 +2,11 @@ package com.cool.store.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dao.EnterpriseUserDAO;
import com.cool.store.dto.buser.UserPositionAndUserScopeDTO;
import com.cool.store.dto.calendar.CreateCalendarEventDTO; import com.cool.store.dto.calendar.CreateCalendarEventDTO;
import com.cool.store.dto.calendar.DeleteCalendarEventDTO; import com.cool.store.dto.calendar.DeleteCalendarEventDTO;
import com.cool.store.dto.calendar.UpdateCalendarEventDTO; import com.cool.store.dto.calendar.UpdateCalendarEventDTO;
import com.cool.store.dto.calendar.UserCalendarsEventDTO; import com.cool.store.dto.calendar.UserCalendarsEventDTO;
import com.cool.store.dto.message.SendCardMessageDTO; import com.cool.store.dto.message.SendCardMessageDTO;
import com.cool.store.dto.partner.DescribePhoneNumberDTO;
import com.cool.store.dto.response.ResultDTO; import com.cool.store.dto.response.ResultDTO;
import com.cool.store.entity.HyOpenAreaInfoDO; import com.cool.store.entity.HyOpenAreaInfoDO;
@@ -25,7 +23,6 @@ import com.cool.store.response.ResponseResult;
import com.cool.store.service.AliyunService; import com.cool.store.service.AliyunService;
import com.cool.store.service.EnterpriseSyncService; import com.cool.store.service.EnterpriseSyncService;
import com.cool.store.service.EnterpriseUserService; import com.cool.store.service.EnterpriseUserService;
import com.cool.store.service.GaoDeService;
import com.cool.store.vo.cuser.IdentityCardInfoVO; import com.cool.store.vo.cuser.IdentityCardInfoVO;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -48,8 +45,6 @@ public class TestController {
@Resource @Resource
private EnterpriseUserService enterpriseUserService; private EnterpriseUserService enterpriseUserService;
@Resource @Resource
GaoDeService gaoDeService;
@Resource
private ISVHttpRequest isvHttpRequest; private ISVHttpRequest isvHttpRequest;
@Resource @Resource
private HyOpenAreaInfoMapper hyOpenAreaInfoMapper; private HyOpenAreaInfoMapper hyOpenAreaInfoMapper;
@@ -242,8 +237,4 @@ public class TestController {
return ResponseResult.success(enterpriseUserService.getDevelopmentByZoneId(zoneId)); return ResponseResult.success(enterpriseUserService.getDevelopmentByZoneId(zoneId));
} }
@GetMapping("getGaoDePicture")
public ResponseResult getDevelopmentByZoneId(){
return ResponseResult.success(gaoDeService.getGaoDePicture(""));
}
} }

View File

@@ -27,7 +27,7 @@ public class CorsFilter implements Filter {
response.setHeader("Access-Control-Allow-Credentials", "true"); response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS, GET, DELETE, PUT"); response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS, GET, DELETE, PUT");
response.setHeader("Access-Control-Max-Age", "36000"); response.setHeader("Access-Control-Max-Age", "36000");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with, Origin, Authorization, content-type, XMLHttpRequest, Authorization, User-Agent, Cookie, accessToken"); response.setHeader("Access-Control-Allow-Headers", "*");
if (reqs.getMethod().equals("OPTIONS") || reqs.getMethod().equals("HEAD")) { if (reqs.getMethod().equals("OPTIONS") || reqs.getMethod().equals("HEAD")) {
response.setStatus(HttpStatus.HTTP_OK); response.setStatus(HttpStatus.HTTP_OK);
return; return;

View File

@@ -112,6 +112,7 @@ public class SignValidateFilter implements Filter {
// 前后端验签不等 // 前后端验签不等
if (!newSign.equals(sign)) { if (!newSign.equals(sign)) {
response.setStatus(HttpStatus.OK.value()); response.setStatus(HttpStatus.OK.value());
response.setContentType("application/json;charset=UTF-8");
response.getWriter().write(JSON.toJSONString(ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL))); response.getWriter().write(JSON.toJSONString(ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL)));
return; return;
} }

View File

@@ -1,5 +1,6 @@
package com.cool.store.controller; package com.cool.store.controller;
import com.cool.store.dto.content.ContentQueryDetailDto;
import com.cool.store.dto.content.ContentQueryListDto; import com.cool.store.dto.content.ContentQueryListDto;
import com.cool.store.entity.HyContentInfoDO; import com.cool.store.entity.HyContentInfoDO;
import com.cool.store.response.ResponseResult; import com.cool.store.response.ResponseResult;
@@ -35,8 +36,8 @@ public class ContentController {
@PostMapping("/detail") @PostMapping("/detail")
@ApiOperation("动态详情") @ApiOperation("动态详情")
public ResponseResult<HyContentInfoDO> queryContentInfo(@RequestBody String contentId) { public ResponseResult<HyContentInfoDO> queryContentInfo(@RequestBody ContentQueryDetailDto dto) {
return ResponseResult.success(contentService.queryContentInfo(contentId)); return ResponseResult.success(contentService.queryContentInfo(dto.getContentId()));
} }
} }

View File

@@ -1,6 +1,8 @@
package com.cool.store.controller; package com.cool.store.controller;
import com.cool.store.dto.partner.EnterInterviewDto; import com.cool.store.dto.partner.EnterInterviewDto;
import com.cool.store.dto.partner.PartnerGetPassLetterDetailDto;
import com.cool.store.dto.partner.PartnerQueryInterviewDto;
import com.cool.store.exception.ApiException; import com.cool.store.exception.ApiException;
import com.cool.store.request.CreateAppointmentReq; import com.cool.store.request.CreateAppointmentReq;
import com.cool.store.request.ModifyInterviewTimeReq; import com.cool.store.request.ModifyInterviewTimeReq;
@@ -30,8 +32,8 @@ public class InterviewController {
@PostMapping("/queryByPartnerId") @PostMapping("/queryByPartnerId")
@ApiOperation("根据用户id查询面试信息") @ApiOperation("根据用户id查询面试信息")
public ResponseResult<PartnerInterviewInfoVO> queryByPartnerId(@RequestBody String partnerId) { public ResponseResult<PartnerInterviewInfoVO> queryByPartnerId(@RequestBody PartnerQueryInterviewDto dto) {
return ResponseResult.success(interviewService.queryByPartnerId(partnerId)); return ResponseResult.success(interviewService.queryByPartnerId(dto.getPartnerId()));
} }
@PostMapping("/enter") @PostMapping("/enter")
@@ -42,8 +44,8 @@ public class InterviewController {
@PostMapping("/passLetter/detail") @PostMapping("/passLetter/detail")
@ApiOperation("通过函详情") @ApiOperation("通过函详情")
public ResponseResult<PartnerPassLetterDetailVO> passLetterDetail(@RequestParam String interviewPlanId) { public ResponseResult<PartnerPassLetterDetailVO> passLetterDetail(@RequestBody PartnerGetPassLetterDetailDto dto) {
return ResponseResult.success(interviewService.passLetterDetail(interviewPlanId)); return ResponseResult.success(interviewService.passLetterDetail(dto.getInterviewPlanId()));
} }
@PostMapping("/appointment/submit") @PostMapping("/appointment/submit")

View File

@@ -137,8 +137,8 @@ public class PartnerController {
@PostMapping(path = "/delCoolDownFirstLoginFlag") @PostMapping(path = "/delCoolDownFirstLoginFlag")
@ApiOperation("删除冷静期是否首次登录缓存") @ApiOperation("删除冷静期是否首次登录缓存")
public ResponseResult<Boolean> delCoolDownFirstLoginFlag(@RequestParam(value = "lineId",required = true)Long lineId){ public ResponseResult<Boolean> delCoolDownFirstLoginFlag(@RequestBody CoolDownFirstLoginFlagDelRequest coolDownFirstLoginFlagDelRequest){
String coolingPeriodFirstLoginCacheKey = MessageFormat.format(RedisConstant.COOLINGPERIOD_FIRSTLOGIN_KEY, lineId); String coolingPeriodFirstLoginCacheKey = MessageFormat.format(RedisConstant.COOLINGPERIOD_FIRSTLOGIN_KEY, coolDownFirstLoginFlagDelRequest.getLineId());
redisUtilPool.delKey(coolingPeriodFirstLoginCacheKey); redisUtilPool.delKey(coolingPeriodFirstLoginCacheKey);
return ResponseResult.success(true); return ResponseResult.success(true);
} }

View File

@@ -33,7 +33,7 @@ mybatis.mapper-locations=classpath*:mapper/**/*Mapper.xml
mybatis.configuration.call-setters-on-nulls=true mybatis.configuration.call-setters-on-nulls=true
mybatis.configuration.map-underscore-to-camel-case=true mybatis.configuration.map-underscore-to-camel-case=true
isv.domain = https://abstore-isv.coolstore.cn isv.domain = https://abstore-isv.coolstore.cn/isv
#rocketmq \u914D\u7F6E #rocketmq \u914D\u7F6E
rocketmq.accessKey=zK2oVEz4G1ts23d2 rocketmq.accessKey=zK2oVEz4G1ts23d2