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

# Conflicts:
#	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
This commit is contained in:
pserimal
2023-06-13 18:55:38 +08:00
73 changed files with 2832 additions and 119 deletions

View File

@@ -0,0 +1,24 @@
package com.cool.store.dto.buser;
import lombok.Data;
/**
* @author zhangchenbiao
* @FileName: UserEventDTO
* @Description:
* @date 2023-06-09 13:53
*/
@Data
public class UserEventDTO {
private String corpId;
private String eventType;
private String userId;
private String openId;
private String unionId;
}

View File

@@ -93,7 +93,7 @@ public class EnterpriseUserDTO implements Serializable {
private String openUserid;
@ApiModelProperty("")
@ApiModelProperty("用户所属部门")
private List<String> departmentLists;
@@ -141,4 +141,39 @@ public class EnterpriseUserDTO implements Serializable {
return resultList;
}
public static EnterpriseUserDO transUserDtoToDo(EnterpriseUserDTO user, Map<String, String> regionPathMap, Multimap<String, String> leaderDeptMap) {
EnterpriseUserDO enterpriseUserDO = new EnterpriseUserDO();
enterpriseUserDO.setId(UUIDUtils.get32UUID());
enterpriseUserDO.setUserId(user.getUserId());
enterpriseUserDO.setName(user.getName());
enterpriseUserDO.setRemark(user.getRemark());
enterpriseUserDO.setMobile(user.getMobile());
enterpriseUserDO.setEmail(user.getEmail());
enterpriseUserDO.setOrgEmail(user.getOrgEmail());
enterpriseUserDO.setMainAdmin(user.getMainAdmin());
enterpriseUserDO.setIsAdmin(user.getIsAdmin());
enterpriseUserDO.setUnionid(user.getUnionid());
enterpriseUserDO.setAvatar(user.getAvatar());
enterpriseUserDO.setJobnumber(user.getJobnumber());
enterpriseUserDO.setUserStatus(UserStatusEnum.NORMAL.getCode());
enterpriseUserDO.setIsLeader(Boolean.FALSE);
List<String> departmentLists = user.getDepartmentLists();
List<String> regionPaths = new ArrayList<>();
if(CollectionUtils.isNotEmpty(departmentLists)){
for (String departmentId : departmentLists) {
regionPaths.add(regionPathMap.get(departmentId));
}
}
Collection<String> deptIds = leaderDeptMap.get(user.getUserId());
if(CollectionUtils.isNotEmpty(deptIds)){
enterpriseUserDO.setIsLeader(Boolean.TRUE);
enterpriseUserDO.setLeaderDeptIds(JSONObject.toJSONString(deptIds));
}
enterpriseUserDO.setUserRegionIds(JSONObject.toJSONString(regionPaths));
enterpriseUserDO.setDeleted(Boolean.FALSE);
enterpriseUserDO.setCreateTime(new Date());
return enterpriseUserDO;
}
}

View File

@@ -217,7 +217,7 @@ public class SysDepartmentDTO {
Collections.reverse(pathIds);
String regionPath = CommonConstants.PATH_SPILT + String.join(CommonConstants.PATH_SPILT, pathIds) + CommonConstants.PATH_SPILT;
region.setRegionPath(regionPath);
region.setDeleted(Boolean.TRUE);
region.setDeleted(Boolean.FALSE);
if(CollectionUtils.isNotEmpty(dept.getDeptManagerUseridList())){
for (String leader : dept.getDeptManagerUseridList()) {
leaderDeptMap.put(leader, dept.getId());

View File

@@ -0,0 +1,31 @@
package com.cool.store.dto.partner;
import lombok.Data;
import java.util.Date;
/**
* @Author suzhuhong
* @Date 2023/6/13 10:26
* @Version 1.0
*/
@Data
public class PartnerBlackListDTO {
private Long lineId;
private String partnerId;
private String mobile;
private String partnerUserName;
private Date createTime;
private String closeUserId;
private Date closeTime;
private String joinBlackReason;
}

View File

@@ -0,0 +1,49 @@
package com.cool.store.dto.partner;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author suzhuhong
* @Date 2023/6/9 15:37
* @Version 1.0
*/
@Data
public class PartnerIntentApplyInfoDTO {
@ApiModelProperty("")
private Long id;
@ApiModelProperty("加盟商用户名称")
private String partnerUserName;
@ApiModelProperty("hy_partner_user_info.partner_id")
private String partnerId;
@ApiModelProperty("hy_partner_line_info.id")
private Long partnerLineId;
@ApiModelProperty("常驻区域")
private String liveArea;
@ApiModelProperty("意向开店区域")
private String wantShopArea;
@ApiModelProperty("0不接受调剂、1全国调剂、2省内调剂、3市内调剂")
private Integer acceptAdjustType;
@ApiModelProperty("截止时间")
private Date deadline;
@ApiModelProperty("阶段提交时间")
private Date partnerSubmitTime;
@ApiModelProperty("所属阶段")
private String workflowStage;
@ApiModelProperty("子流程状态")
private String workflowStatus;
}

View File

@@ -0,0 +1,64 @@
package com.cool.store.dto.partner;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author suzhuhong
* @Date 2023/6/9 19:40
* @Version 1.0
*/
@Data
public class PartnerInterviewInfoDTO {
@ApiModelProperty("hy_partner_interview.id")
private Long interviewId;
@ApiModelProperty("hy_partner_interview_plan.id")
private Long id;
@ApiModelProperty("加盟商用户名称")
private String partnerUserName;
@ApiModelProperty("预约状态 0 待预约;1待面试;2已开始;3待审核;4审批中;5审批通过;6拒绝")
private Integer status;
@ApiModelProperty("hy_partner_line_info.id")
private Long partnerLineId;
@ApiModelProperty("加盟商用户ID")
private String partnerId;
@ApiModelProperty("截止时间")
private Date deadline;
@ApiModelProperty("审批发起时间")
private Date approveTime;
@ApiModelProperty("意向合同号")
private String authCode;
@ApiModelProperty("面试开始时间")
private Date startTime;
@ApiModelProperty("面试结束时间")
private Date endTime;
@ApiModelProperty("面试官ID")
private String interviewer;
@ApiModelProperty("面试官名称")
private String interviewerName;
@ApiModelProperty("预约时间")
private Date createTime;
@ApiModelProperty("房间号")
private String roomId;
@ApiModelProperty("过程信息")
private String processInfo;
}

View File

@@ -0,0 +1,44 @@
package com.cool.store.dto.partner;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2023/6/12 16:05
* @Version 1.0
*/
@Data
public class PartnerLineInfoAndBaseInfoDTO {
@ApiModelProperty("线索ID")
private Long id;
@ApiModelProperty("hy_partner_user_info.partner_id")
private String partnerId;
@ApiModelProperty("流程阶段:1意向申请审核;2预约面试时间;3加盟资格面试;4分配选址开发经理;5商圈点位评估;6上传店铺租赁信息;7完善加盟签约信息;8支付加盟费用;9签订加盟合同")
private String workflowStage;
@ApiModelProperty("流程子状态")
private String workflowStatus;
@ApiModelProperty("加盟商用户ID")
private String partnerUserId;
@ApiModelProperty("加盟商用户名称")
private String partnerUserName;
@ApiModelProperty("加盟商用户手机号")
private String partnerUserPhone;
@ApiModelProperty("手机号归属地")
private String phoneAddress;
@ApiModelProperty("招商经理")
private String investmentManager;
@ApiModelProperty("招商经理手机号")
private String investmentManagerPhone;
@ApiModelProperty("用户画像")
private String userPortrait;
}

View File

@@ -0,0 +1,17 @@
package com.cool.store.dto.partner;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2023/6/8 16:38
* @Version 1.0
*/
@Data
public class SpecialDateRangeInterviewCountDTO {
private Integer currentDayInterviewCount;
private Integer lastSevenDayInterviewCount;
}

View File

@@ -0,0 +1,38 @@
package com.cool.store.dto.partner;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2023/6/9 10:16
* @Version 1.0
*/
@Data
public class StageCountDTO {
/**
* 意向申请待处理或者待跟进数量
*/
private Integer intentApplyApproveCount;
/**
* 预约面试阶段 待跟进数量
*/
private Integer reservationInterviewCount;
/**
* 合格资格面试 待处理或者待跟进数量
*/
private Integer qualifiedInterviewCount;
public StageCountDTO(Integer intentApplyApproveCount, Integer reservationInterviewCount, Integer qualifiedInterviewCount) {
this.intentApplyApproveCount = intentApplyApproveCount;
this.reservationInterviewCount = reservationInterviewCount;
this.qualifiedInterviewCount = qualifiedInterviewCount;
}
public StageCountDTO(Integer intentApplyApproveCount, Integer qualifiedInterviewCount) {
this.intentApplyApproveCount = intentApplyApproveCount;
this.qualifiedInterviewCount = qualifiedInterviewCount;
}
public StageCountDTO() {
}
}

View File

@@ -1,5 +1,6 @@
package com.cool.store.entity;
import com.cool.store.enums.DataSourceEnum;
import com.google.common.collect.Lists;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
@@ -32,6 +33,9 @@ public class EnterpriseUserRoleDO implements Serializable {
@ApiModelProperty("用户id")
private String userId;
@ApiModelProperty("type")
private Integer type;
@ApiModelProperty("删除标识")
private Boolean deleted;
@@ -41,7 +45,7 @@ public class EnterpriseUserRoleDO implements Serializable {
@ApiModelProperty("更新时间")
private Date updateTime;
public static List<EnterpriseUserRoleDO> convertDO(String roleId, List<String> userIds){
public static List<EnterpriseUserRoleDO> convertSyncDO(String roleId, List<String> userIds){
if(CollectionUtils.isEmpty(userIds)){
return Lists.newArrayList();
}
@@ -50,6 +54,7 @@ public class EnterpriseUserRoleDO implements Serializable {
EnterpriseUserRoleDO userRole = new EnterpriseUserRoleDO();
userRole.setRoleId(roleId);
userRole.setUserId(userId);
userRole.setType(DataSourceEnum.SYNC.getCode());
userRole.setDeleted(Boolean.FALSE);
userRole.setCreateTime(new Date());
userRole.setUpdateTime(new Date());

View File

@@ -71,4 +71,10 @@ public class HyPartnerLineInfoDO implements Serializable {
@ApiModelProperty("结束跟进人员ID")
private String closeUserId;
@ApiModelProperty("加入黑名单原因")
private String joinBlackReason;
@ApiModelProperty("移除黑名单原因")
private String removeBlackReason;
}

View File

@@ -14,6 +14,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
/**
*
@@ -69,4 +70,22 @@ public class UserRegionMappingDO implements Serializable {
}
return resultList;
}
public static List<UserRegionMappingDO> convertSyncDO(List<String> regionIds, String userId){
if(CollectionUtils.isEmpty(regionIds) || StringUtils.isBlank(userId)){
return Lists.newArrayList();
}
List<UserRegionMappingDO> resultList = new ArrayList<>();
for (String regionId : regionIds) {
UserRegionMappingDO userRegion = new UserRegionMappingDO();
userRegion.setRegionId(regionId);
userRegion.setUserId(userId);
userRegion.setType(DataSourceEnum.SYNC.getCode());
userRegion.setCreateTime(System.currentTimeMillis());
userRegion.setUpdateTime(System.currentTimeMillis());
userRegion.setDeleted(Boolean.FALSE);
resultList.add(userRegion);
}
return resultList;
}
}

View File

@@ -14,7 +14,7 @@ import java.util.Date;
*/
@Data
@ApiModel
public class LineRequest {
public class LineRequest extends PageInfoRequest{
@ApiModelProperty("关键字")

View File

@@ -0,0 +1,21 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2023/5/30 21:22
* @Version 1.0
*/
@Data
@ApiModel
public class TransferInvestmentManagerRequest {
private Long lineId;
private String userId;
}

View File

@@ -18,15 +18,6 @@ public class BlackListVO {
@ApiModelProperty("线索ID")
private Long id;
@ApiModelProperty("hy_partner_user_info.partner_id")
private String partnerId;
@ApiModelProperty("流程阶段:1意向申请审核;2预约面试时间;3加盟资格面试;4分配选址开发经理;5商圈点位评估;6上传店铺租赁信息;7完善加盟签约信息;8支付加盟费用;9签订加盟合同")
private String workflowStage;
@ApiModelProperty("流程子状态")
private String workflowStatus;
@ApiModelProperty("加盟商用户ID")
private String partnerUserId;
@@ -54,14 +45,8 @@ public class BlackListVO {
@ApiModelProperty("结束人员手机号")
private String closeUserPhone;
@ApiModelProperty("结束人员手机号归属地")
private String closeUserPhoneAddress;
@ApiModelProperty("加入黑名单原因")
private String joinBlackReason;
}

View File

@@ -19,7 +19,7 @@ public class IntentAreaSettingVO {
private String zoneName;
private List<orgVO> orgVOS;
private List<OrganizationVO> orgVOS;
private Date updateTime;

View File

@@ -0,0 +1,27 @@
package com.cool.store.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author suzhuhong
* @Date 2023/6/8 16:12
* @Version 1.0
*/
@Data
@ApiModel
public class InterviewDetailInfoVO {
@ApiModelProperty("面试者ID")
private String userId;
@ApiModelProperty("面试者名称")
private String userName;
@ApiModelProperty("面试者手机号")
private String userPhone;
@ApiModelProperty("线索ID")
private Long lineId;
@ApiModelProperty("面试开始时间")
private Date startTime;
}

View File

@@ -0,0 +1,20 @@
package com.cool.store.vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2023/6/8 14:39
* @Version 1.0
*/
@Data
@ApiModel
public class InterviewPlanVO {
private Boolean hasInterview;
private Boolean hasAdventLine;
}

View File

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @Author suzhuhong
@@ -19,15 +20,7 @@ public class InterviewScheduleInfoVO {
private Integer currentDayInterviewCount;
@ApiModelProperty("当前日期后七天面试数量")
private Integer lastSevenDayInterviewCount;
@ApiModelProperty("面试者ID")
private String userId;
@ApiModelProperty("面试者名称")
private String userName;
@ApiModelProperty("面试者手机号")
private String userPhone;
@ApiModelProperty("线索ID")
private Long lineId;
@ApiModelProperty("面试开始时间")
private Date startTime;
@ApiModelProperty("面试日程列表")
private List<InterviewDetailInfoVO> interviewDetailInfoVOS;
}

View File

@@ -11,7 +11,7 @@ import lombok.Data;
*/
@Data
@ApiModel
public class orgVO {
public class OrganizationVO {
@ApiModelProperty("id")
private Long id;

View File

@@ -6,6 +6,7 @@ import lombok.Data;
import java.util.Date;
/**
* @Author suzhuhong
* @Date 2023/5/30 20:11
@@ -22,6 +23,9 @@ public class PartnerIntentApplyInfoVO {
@ApiModelProperty("加盟商用户名称")
private String partnerUserName;
@ApiModelProperty("加盟商手机号码")
private String partnerUserPhone;
@ApiModelProperty("hy_partner_user_info.partner_id")
private String partnerId;
@@ -34,6 +38,9 @@ public class PartnerIntentApplyInfoVO {
@ApiModelProperty("意向开店区域")
private String wantShopArea;
@ApiModelProperty("意向开店区域")
private String wantShopAreaName;
@ApiModelProperty("0不接受调剂、1全国调剂、2省内调剂、3市内调剂")
private Integer acceptAdjustType;
@@ -43,7 +50,4 @@ public class PartnerIntentApplyInfoVO {
@ApiModelProperty("阶段提交时间")
private Date partnerSubmitTime;
}

View File

@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author suzhuhong
* @Date 2023/5/30 20:28
@@ -14,7 +16,7 @@ import lombok.Data;
public class PartnerInterviewInfoVO {
@ApiModelProperty("会议id")
private String interviewId;
private Long interviewId;
@ApiModelProperty("预约状态 0 待预约;1待面试;2已开始;3待审核;4审批中;5审批通过;6拒绝")
private Integer status;
@@ -40,4 +42,9 @@ public class PartnerInterviewInfoVO {
@ApiModelProperty("面试官名称")
private String interviewerName;
@ApiModelProperty("预约时间")
private String createTime;
@ApiModelProperty("过程信息")
private String processInfo;
}

View File

@@ -13,14 +13,11 @@ import java.util.List;
*/
@Data
@ApiModel
public class PartnerLineDetailVO {
public class PartnerLineInfoAndBaseInfoVO {
@ApiModelProperty("线索ID")
private Long id;
@ApiModelProperty("hy_partner_user_info.partner_id")
private String partnerId;
@ApiModelProperty("流程阶段:1意向申请审核;2预约面试时间;3加盟资格面试;4分配选址开发经理;5商圈点位评估;6上传店铺租赁信息;7完善加盟签约信息;8支付加盟费用;9签订加盟合同")
private String workflowStage;
@@ -42,13 +39,11 @@ public class PartnerLineDetailVO {
@ApiModelProperty("招商经理")
private String investmentManager;
@ApiModelProperty("招商经理")
private String investmentManagerName;
@ApiModelProperty("招商经理手机号")
private String investmentManagerPhone;
@ApiModelProperty("用户画像")
private String userPortrait;
}

View File

@@ -0,0 +1,33 @@
package com.cool.store.vo;
import lombok.Data;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2023/6/13 15:27
* @Version 1.0
*/
@Data
public class ZoneVO {
private Long id;
private String zoneName;
private String updateTime;
private String updateUserId;
private String updateUserName;
private List<OrganizationVO> orgVos;
private List<OpenAreaVO> openAreaVOS;
}

View File

@@ -0,0 +1,75 @@
package com.cool.store.vo.region;
import com.cool.store.constants.CommonConstants;
import com.cool.store.entity.RegionDO;
import com.google.common.collect.Lists;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @author zhangchenbiao
* @FileName: RegionBaseInfoVO
* @Description:
* @date 2023-06-12 16:08
*/
@Data
public class RegionBaseInfoVO {
@ApiModelProperty("区域id")
private String regionId;
@ApiModelProperty("区域名称")
private String name;
@ApiModelProperty("子区域")
private List<RegionBaseInfoVO> subRegionList;
public RegionBaseInfoVO(String regionId, String name) {
this.regionId = regionId;
this.name = name;
}
/**
* 转换成树
* @param regionList
* @return
*/
public static RegionBaseInfoVO convertTree(List<RegionDO> regionList){
Map<String, List<RegionDO>> parentMap = regionList.stream().collect(Collectors.groupingBy(k -> k.getParentId()));
RegionDO rootRegion = regionList.stream().filter(o -> CommonConstants.ZERO_STR.equals(o.getParentId())).findFirst().get();
RegionBaseInfoVO result = new RegionBaseInfoVO(rootRegion.getRegionId(), rootRegion.getName());
result.setSubRegionList(getSubRegion(rootRegion.getRegionId(), parentMap));
return result;
}
/**
* 获取子区域
* @param regionId
* @param parentMap
* @return
*/
public static List<RegionBaseInfoVO> getSubRegion(String regionId, Map<String, List<RegionDO>> parentMap){
List<RegionBaseInfoVO> resultList = new ArrayList<>();
if(Objects.isNull(parentMap) || StringUtils.isBlank(regionId)){
return resultList;
}
List<RegionDO> subRegion = parentMap.get(regionId);
if(CollectionUtils.isNotEmpty(subRegion)){
for (RegionDO region : subRegion) {
RegionBaseInfoVO regionBaseInfo = new RegionBaseInfoVO(region.getRegionId(), region.getName());
regionBaseInfo.setSubRegionList(getSubRegion(region.getRegionId(), parentMap));
resultList.add(regionBaseInfo);
}
}
return resultList;
}
}