Merge remote-tracking branch 'xfsg/cc_partner_init' into cc_partner_init

# Conflicts:
#	coolstore-partner-dao/src/main/java/com/cool/store/mapper/LineInfoMapper.java
#	coolstore-partner-service/src/main/java/com/cool/store/service/impl/JoinIntentionServiceImpl.java
This commit is contained in:
苏竹红
2024-03-27 15:55:29 +08:00
61 changed files with 2278 additions and 98 deletions

View File

@@ -0,0 +1,97 @@
package com.cool.store.dto.message;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
@Data
public class SendMessageDTO {
/**
* 钉钉的企业唯一ID
*/
private String corpId;
/**
* 标题
*/
private String title;
/**
* 内容
*/
private String content;
/**
* 发送的人员ID集合
*/
private String userIds;
/**
* PC链接的参数
*/
private String pcParam;
/**
* 移动链接的参数
*/
private String mobileParam;
/**
* oa消息的钉钉图片ID
*/
private String picUrl;
/**
* 是否侧边栏打开消息(钉钉PC端)
* 默认为false
*/
private Boolean isSideOpen = false;
/**
* 是否外跳浏览器打开消息
* 默认为false
*/
private Boolean isJumpOpen = false;
/**
* 是否包含PC端链接(如果不包含则PC端打开消息时弹出二维码用于移动端扫描)
* 默认为false
*/
private Boolean containPcUrl = false;
/**
* 是否是静态链接(直接发送此链接可以是H5的固定页面一般用于推送运营页面)
* 默认为false
*/
private Boolean isStaticUrl = false;
/**
* 静态链接地址
*/
private String staticUrl;
/**
* 发送消息业务id标识
*/
private String outBusinessId;
/**
* 微应用:micro_app; E应用-e_app; 钉钉:DINGDING; 企业微信:qw
*/
private String appType;
private JSONObject oaJson;
private String messageType;
public SendMessageDTO() {
}
@Override
public String toString() {
return "JmsSendMessageVo{" +
"corpId='" + corpId + '\'' +
", title='" + title + '\'' +
", content='" + content + '\'' +
", userIds=" + userIds +
", pcParam='" + pcParam + '\'' +
", mobileParam='" + mobileParam + '\'' +
", picUrl='" + picUrl + '\'' +
", isSideOpen=" + isSideOpen +
", isJumpOpen=" + isJumpOpen +
", containPcUrl=" + containPcUrl +
", isStaticUrl=" + isStaticUrl +
", staticUrl='" + staticUrl + '\'' +
'}';
}
}

View File

@@ -0,0 +1,93 @@
package com.cool.store.entity;
import lombok.Data;
import java.util.Date;
import javax.persistence.*;
@Data
@Table(name = "xfsg_line_follow_log")
public class LineFollowLogDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* hy_partner_user_info.partner_id
*/
@Column(name = "partner_id")
private String partnerId;
/**
* hy_partner_line_info.id
*/
@Column(name = "line_id")
private Long lineId;
/**
* 操作人id
*/
@Column(name = "operate_user_id")
private String operateUserId;
/**
* 操作人姓名
*/
@Column(name = "operate_username")
private String operateUsername;
/**
* 流程阶段:1意向加盟;2新店进展;
*/
@Column(name = "workflow_stage")
private Integer workflowStage;
/**
* 流程子阶段
*/
@Column(name = "workflow_sub_stage")
private Integer workflowSubStage;
/**
* 流程子阶段状态
*/
@Column(name = "workflow_sub_stage_status")
private Integer workflowSubStageStatus;
/**
* 备注
*/
private String message;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 删除标识
*/
private Boolean deleted;
public LineFollowLogDO() {
}
public LineFollowLogDO(String partnerId, Long lineId, String operateUserId, String operateUsername, Integer workflowStage, Integer workflowSubStage, Integer workflowSubStageStatus, String message) {
this.partnerId = partnerId;
this.lineId = lineId;
this.operateUserId = operateUserId;
this.operateUsername = operateUsername;
this.workflowStage = workflowStage;
this.workflowSubStage = workflowSubStage;
this.workflowSubStageStatus = workflowSubStageStatus;
this.message = message;
this.createTime= new Date();
}
}

View File

@@ -0,0 +1,77 @@
package com.cool.store.entity;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
@Data
/**
* 加盟问卷信息
*/
@Table(name = "xfsg_member_question_info")
public class MemberQuestionDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "audit_id")
private Long auditId;
@Column(name = "partner_id", nullable = false)
private String partnerId;
@Column(name = "line_id", nullable = false)
private Long lineId;
@Column(name = "join_type")
private Integer joinType;
@Column(name = "create_time", nullable = false, columnDefinition = "datetime default current_timestamp")
private Date createTime;
@Column(name = "update_time", nullable = false, columnDefinition = "datetime default current_timestamp on update current_timestamp")
private Date updateTime;
@Column(name = "career_status")
private Integer careerStatus;
@Column(name = "education_level")
private Integer educationLevel;
@Column(name = "annual_income")
private String annualIncome;
@Column(name = "has_partner")
private Integer hasPartner;
@Column(name = "capital_source")
private Integer capitalSource;
@Column(name = "business_mode")
private Integer businessMode;
@Column(name = "join_experience")
private Integer joinExperience;
@Column(name = "fruit_industry_experience")
private Integer fruitIndustryExperience;
@Column(name = "store_condition")
private String storeCondition;
@Column(name = "payback_period")
private String paybackPeriod;
@Column(name = "follows_management_standard")
private Integer followsManagementStandard;
@Column(name = "can_training")
private Integer canTraining;
@Column(name = "deleted", nullable = false, columnDefinition = "tinyint default '0'")
private Boolean deleted;
}

View File

@@ -1,5 +1,7 @@
package com.cool.store.request;
import com.cool.store.entity.LineInfoDO;
import com.cool.store.entity.MemberQuestionDO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -9,16 +11,12 @@ import javax.validation.constraints.NotBlank;
@Data
@ApiModel("加盟意向Request")
public class JoinIntentionRequest {
private Long id;
@ApiModelProperty("线索信息表-线索id")
private Long lineId;
@ApiModelProperty("用户信息表partnerId")
@NotBlank(message = "partnerId不能为空")
private String partnerId;
@ApiModelProperty("加盟身份 1个人加盟 2企业加盟")
private Integer joinType;
@ApiModelProperty("姓名")
@@ -35,6 +33,65 @@ public class JoinIntentionRequest {
private String liveArea;
@ApiModelProperty("常驻区域详细地址")
private String liveAddress;
@ApiModelProperty("加盟问卷长json")
private String joiningQuestionnaire;
@ApiModelProperty("线索审核信息id")
private Long auditId;
@ApiModelProperty("职业状态 1在职 2个体 3自己开公司 0待业")
private Integer careerStatus;
@ApiModelProperty("教育程度 1小学 2初中 3高中 4大学及以上")
private Integer educationLevel;
@ApiModelProperty("家庭年收入 110-20万 220-30万 330-50万 450万以上")
private String annualIncome;
@ApiModelProperty("是否有合伙人 1是 0")
private Integer hasPartner;
@ApiModelProperty("资金来源 1自有资金 2合伙资金 3借贷")
private Integer capitalSource;
@ApiModelProperty("经营方式 1自己独立经营 2和家人一起经营 3和合伙人一起经营 4只投资让他人经营")
private Integer businessMode;
@ApiModelProperty("是否有加盟品牌经营的经验 1无 2单店经验 3多店经验 4多店连锁经验")
private Integer joinExperience;
@ApiModelProperty("是否有水果行业经营的经验 1无 2单店经验 3多店经验 4多店连锁经验")
private Integer fruitIndustryExperience;
@ApiModelProperty("店铺情况 1:自有店铺 2自有意向店铺 3无意向店铺" )
private String storeCondition;
@ApiModelProperty("预期回本的最长周期 11年半以上 21年半内 31年内 4半年内")
private String paybackPeriod;
@ApiModelProperty("是否严格遵守管理标准 1是 2")
private Integer followsManagementStandard;
@ApiModelProperty("是否能参加认证培训 1是 2")
private Integer canTraining;
public LineInfoDO toLineInfoDO() {
LineInfoDO lineInfoDO = new LineInfoDO();
lineInfoDO.setPartnerId(this.partnerId);
lineInfoDO.setMobile(this.mobile);
lineInfoDO.setLiveAddress(this.liveAddress);
lineInfoDO.setUsername(this.userName);
lineInfoDO.setSex(String.valueOf(this.sex));
lineInfoDO.setWantShopAreaId(Long.valueOf(this.areaCode));
lineInfoDO.setId(this.lineId);
return lineInfoDO;
}
public MemberQuestionDO toMemberQuestionDO() {
MemberQuestionDO memberQuestionDO = new MemberQuestionDO();
memberQuestionDO.setId(this.id);
memberQuestionDO.setAuditId(this.auditId);
memberQuestionDO.setPartnerId(this.partnerId);
memberQuestionDO.setLineId(this.lineId);
memberQuestionDO.setCareerStatus(this.careerStatus);
memberQuestionDO.setEducationLevel(this.educationLevel);
memberQuestionDO.setAnnualIncome(this.annualIncome);
memberQuestionDO.setHasPartner(this.hasPartner);
memberQuestionDO.setCapitalSource(this.capitalSource);
memberQuestionDO.setBusinessMode(this.businessMode);
memberQuestionDO.setJoinExperience(this.joinExperience);
memberQuestionDO.setFruitIndustryExperience(this.fruitIndustryExperience);
memberQuestionDO.setStoreCondition(this.storeCondition);
memberQuestionDO.setPaybackPeriod(this.paybackPeriod);
memberQuestionDO.setFollowsManagementStandard(this.followsManagementStandard);
memberQuestionDO.setCanTraining(this.canTraining);
memberQuestionDO.setJoinType(this.joinType);
return memberQuestionDO;
}
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author zhangchenbiao
* @FileName: LineFollowLogRequest
* @Description:
* @date 2024-03-27 14:59
*/
@Data
public class LineFollowLogRequest {
@ApiModelProperty("线索id")
private Long lineId;
@ApiModelProperty("日志")
private String message;
}

View File

@@ -44,5 +44,6 @@ public class LineInterviewPageRequest extends PageBasicInfo {
@ApiModelProperty("面试类型:0面谈;1一审;2二审")
private Integer interviewType;
@ApiModelProperty("面试官")
private String interviewerUserId;
}

View File

@@ -0,0 +1,103 @@
package com.cool.store.vo;
import com.cool.store.entity.LineInfoDO;
import com.cool.store.entity.MemberQuestionDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.Objects;
@Data
public class PartnerBaseInfoVO {
private Long id;
private String partnerId;
private Long lineId;
@ApiModelProperty("加盟身份 1个人加盟 2企业加盟")
private Integer joinType;
@ApiModelProperty("姓名")
private String username;
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty("1男 2女")
private Integer sex;
@ApiModelProperty("意向区域编码")
private String areaCode;
@ApiModelProperty("常驻区域详细地址(居住地址)")
private String liveAddress;
@ApiModelProperty("线索审核信息id")
private Long auditId;
@ApiModelProperty("职业状态 1在职 2个体 3自己开公司 0待业")
private Integer careerStatus;
@ApiModelProperty("教育程度 1小学 2初中 3高中 4大学及以上")
private Integer educationLevel;
@ApiModelProperty("家庭年收入 110-20万 220-30万 330-50万 450万以上")
private String annualIncome;
@ApiModelProperty("是否有合伙人 1是 0")
private Integer hasPartner;
@ApiModelProperty("资金来源 1自有资金 2合伙资金 3借贷")
private Integer capitalSource;
@ApiModelProperty("经营方式 1自己独立经营 2和家人一起经营 3和合伙人一起经营 4只投资让他人经营")
private Integer businessMode;
@ApiModelProperty("是否有加盟品牌经营的经验 1无 2单店经验 3多店经验 4多店连锁经验")
private Integer joinExperience;
@ApiModelProperty("是否有水果行业经营的经验 1无 2单店经验 3多店经验 4多店连锁经验")
private Integer fruitIndustryExperience;
@ApiModelProperty("店铺情况 1:自有店铺 2自有意向店铺 3无意向店铺" )
private String storeCondition;
@ApiModelProperty("预期回本的最长周期 11年半以上 21年半内 31年内 4半年内")
private String paybackPeriod;
@ApiModelProperty("是否严格遵守管理标准 1是 2")
private Integer followsManagementStandard;
@ApiModelProperty("是否能参加认证培训 1是 2")
private Integer canTraining;
private Date createTime;
private Date updateTime;
private Integer deleted;
public static PartnerBaseInfoVO from(MemberQuestionDO memberQuestionDO, LineInfoDO lineInfoDO) {
if (Objects.isNull(memberQuestionDO) && Objects.isNull(lineInfoDO)) {
return null;
}
PartnerBaseInfoVO partnerBaseInfoVO = new PartnerBaseInfoVO();
// MemberQuestionDO
partnerBaseInfoVO.setPartnerId(memberQuestionDO.getPartnerId());
partnerBaseInfoVO.setAuditId(memberQuestionDO.getAuditId());
partnerBaseInfoVO.setCareerStatus(memberQuestionDO.getCareerStatus());
partnerBaseInfoVO.setEducationLevel(memberQuestionDO.getEducationLevel());
partnerBaseInfoVO.setAnnualIncome(memberQuestionDO.getAnnualIncome());
partnerBaseInfoVO.setHasPartner(memberQuestionDO.getHasPartner());
partnerBaseInfoVO.setCapitalSource(memberQuestionDO.getCapitalSource());
partnerBaseInfoVO.setBusinessMode(memberQuestionDO.getBusinessMode());
partnerBaseInfoVO.setJoinExperience(memberQuestionDO.getJoinExperience());
partnerBaseInfoVO.setFruitIndustryExperience(memberQuestionDO.getFruitIndustryExperience());
partnerBaseInfoVO.setStoreCondition(memberQuestionDO.getStoreCondition());
partnerBaseInfoVO.setPaybackPeriod(memberQuestionDO.getPaybackPeriod());
partnerBaseInfoVO.setFollowsManagementStandard(memberQuestionDO.getFollowsManagementStandard());
partnerBaseInfoVO.setCanTraining(memberQuestionDO.getCanTraining());
partnerBaseInfoVO.setJoinType(memberQuestionDO.getJoinType());
//LineInfoDO
partnerBaseInfoVO.setId(lineInfoDO.getId());
partnerBaseInfoVO.setPartnerId(lineInfoDO.getPartnerId());
partnerBaseInfoVO.setUsername(lineInfoDO.getUsername());
partnerBaseInfoVO.setMobile(lineInfoDO.getMobile());
partnerBaseInfoVO.setLiveAddress(lineInfoDO.getLiveAddress());
partnerBaseInfoVO.setLineId(lineInfoDO.getId());
partnerBaseInfoVO.setSex(Integer.valueOf(lineInfoDO.getSex()));
partnerBaseInfoVO.setAreaCode(String.valueOf(lineInfoDO.getWantShopAreaId()));
return partnerBaseInfoVO;
}
}

View File

@@ -45,7 +45,7 @@ public class LineInterviewPageVO {
@ApiModelProperty("计划结束时间")
private String endTime;
@ApiModelProperty("面试状态")
@ApiModelProperty("面试状态 1待面试 2待审核 3审批通过 4不通过")
private Integer interviewStatus;
@ApiModelProperty("招商经理")

View File

@@ -0,0 +1,42 @@
package com.cool.store.vo.log;
import com.cool.store.entity.LineFollowLogDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author zhangchenbiao
* @FileName: LineFollowLogVO
* @Description:跟进日志
* @date 2024-03-27 14:50
*/
@Data
public class LineFollowLogVO {
@ApiModelProperty("日志")
private String message;
@ApiModelProperty("创建时间")
private Date createTime;
public LineFollowLogVO(String message, Date createTime) {
this.message = message;
this.createTime = createTime;
}
public static List<LineFollowLogVO> convertList(List<LineFollowLogDO> list){
if (CollectionUtils.isEmpty(list)) {
return null;
}
List<LineFollowLogVO> resultList = new ArrayList<>();
for (LineFollowLogDO followLog : list) {
resultList.add(new LineFollowLogVO(followLog.getMessage(), followLog.getCreateTime()));
}
return resultList;
}
}