Merge branch 'hxd/feat/partner1.5' into dev/feat/partner1.5_20231106

# Conflicts:
#	coolstore-partner-service/src/main/java/com/cool/store/service/FollowTaskService.java
#	coolstore-partner-service/src/main/java/com/cool/store/service/impl/FollowTaskServiceImpl.java
#	coolstore-partner-webb/src/main/java/com/cool/store/controller/FollowTaskController.java
This commit is contained in:
xiaodong.hu
2023-10-26 19:04:09 +08:00
21 changed files with 866 additions and 49 deletions

View File

@@ -1,5 +1,6 @@
package com.cool.store.service;
import com.cool.store.entity.HyPartnerEcTrackLogDO;
import com.cool.store.request.CustomerInfoRequest;
import com.cool.store.request.GetTagRequest;
@@ -12,4 +13,10 @@ public interface EcSyncService {
Boolean labelInfo(List<GetTagRequest> getTagRequestList);
String getLastCrmCreateTime();
Boolean historyLine(List<CustomerInfoRequest> resultCustomerInfoList);
Integer historyLineTrajectory(List<HyPartnerEcTrackLogDO> resultTrajectoryList);
}

View File

@@ -1,6 +1,7 @@
package com.cool.store.service;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.entity.HyPartnerEcTrackLogDO;
import com.cool.store.exception.ApiException;
import com.cool.store.request.follow.AddFollowLogRequest;
import com.cool.store.request.follow.AddFollowTaskRequest;
@@ -89,4 +90,7 @@ public interface FollowTaskService {
* @return
*/
void followTaskDailyRemind() throws ApiException;
PageInfo<HyPartnerEcTrackLogDO> getEcFollowLogPage(Integer pageNum, Integer pageSize, String partnerId);
}

View File

@@ -9,4 +9,6 @@ public interface LineHighSeasService {
Boolean addLine(AddLineRequest request);
ResponseResult importLine(MultipartFile file);
Boolean addCheckout(String mobile);
}

View File

@@ -1,6 +1,8 @@
package com.cool.store.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
@@ -16,8 +18,7 @@ import com.cool.store.enums.WorkflowStageEnum;
import com.cool.store.enums.WorkflowStatusEnum;
import com.cool.store.exception.ApiException;
import com.cool.store.http.UserSourceResponse;
import com.cool.store.mapper.HyPartnerLabelGroupMapper;
import com.cool.store.mapper.HyPartnerLabelMapper;
import com.cool.store.mapper.HyPartnerEcTrackLogMapper;
import com.cool.store.mapper.HyPartnerUserChannelMapper;
import com.cool.store.request.CustomerInfoRequest;
import com.cool.store.request.GetTagRequest;
@@ -31,9 +32,11 @@ import com.cool.store.sdk.ec.response.UpdateCustomerResponse;
import com.cool.store.service.EcSyncService;
import com.cool.store.service.LabelGroupService;
import com.cool.store.service.LabelService;
import com.cool.store.utils.MybatisBatchUtils;
import com.cool.store.utils.Post;
import com.cool.store.utils.StringUtil;
import com.cool.store.utils.UUIDUtils;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
@@ -56,7 +59,6 @@ public class EcSyncServiceImpl implements EcSyncService {
@Value("${ec.baseUrl:null}")
private String baseUrl;
@Resource
private HyPartnerLineInfoDAO hyPartnerLineInfoDAO;
@@ -70,6 +72,9 @@ public class EcSyncServiceImpl implements EcSyncService {
private EnterpriseUserDAO enterpriseUserDAO;
@Resource
private MybatisBatchUtils mybatisBatchUtils;
@Resource
private HyPartnerUserChannelMapper hyPartnerUserChannelMapper;
@@ -79,15 +84,14 @@ public class EcSyncServiceImpl implements EcSyncService {
@Resource
private LabelService labelService;
@Override
public boolean ecToApplet(List<CustomerInfoRequest> queryListData) {
for (CustomerInfoRequest customerInfoItem : queryListData) {
try {
insertSelectiveSync(customerInfoItem);
} catch (Exception e) {
log.error("ec同步至招商小程序报错"+JSONObject.toJSONString(e));
sendFeiShuRobotMessage("推送:"+JSONObject.toJSONString(e),"27243d49-97ca-4981-8aec-7c3bf84eb660");
log.error("ec同步至招商小程序报错" + JSONObject.toJSONString(e));
sendFeiShuRobotMessage("推送:" + JSONObject.toJSONString(e), "27243d49-97ca-4981-8aec-7c3bf84eb660");
}
}
return false;
@@ -135,6 +139,33 @@ public class EcSyncServiceImpl implements EcSyncService {
return Boolean.TRUE;
}
@Override
public String getLastCrmCreateTime() {
return hyPartnerUserInfoDAO.selectLastCrmCreateTime();
}
@SneakyThrows
@Override
public Boolean historyLine(List<CustomerInfoRequest> resultCustomerInfoList) {
for (CustomerInfoRequest customerInfoRequest : resultCustomerInfoList) {
customerInfoRequest.setUpdateTime(DateUtil.parse(customerInfoRequest.getCrmCreateTime(), DatePattern.NORM_DATETIME_PATTERN));
insertSelectiveSync(customerInfoRequest);
}
return Boolean.TRUE;
}
@Override
public Integer historyLineTrajectory(List<HyPartnerEcTrackLogDO> resultTrajectoryList) {
for (HyPartnerEcTrackLogDO hyPartnerEcTrackLogDO : resultTrajectoryList) {
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByMobile(hyPartnerEcTrackLogDO.getMobile());
if (ObjectUtil.isNotNull(hyPartnerUserInfoDO)) {
hyPartnerEcTrackLogDO.setPartnerId(hyPartnerUserInfoDO.getPartnerId());
}
}
return mybatisBatchUtils.batchInsertOrUpdate(resultTrajectoryList, HyPartnerEcTrackLogMapper.class, (record, mapper) -> mapper.insertSelective(record)) ;
}
/**
* 同步ec数据到表中 同时将部分数据同步到ec
*
@@ -157,8 +188,17 @@ public class EcSyncServiceImpl implements EcSyncService {
channelId = channelDO.getChannelId();
}
String newPartnerId = UUIDUtils.get32UUID();
HyPartnerBaseInfoDO resultBase = new HyPartnerBaseInfoDO();
HyPartnerUserInfoDO resultUser = new HyPartnerUserInfoDO();
resultUser.setUsername(customerInfoItem.getName()).setMobile(customerInfoItem.getMobile()).setUserChannelId(Convert.toInt(channelId)).setEcWantShopArea(customerInfoItem.getEcWantShopArea());
Date time = new Date();
if (ObjectUtil.isNotNull(customerInfoItem.getUpdateTime())) {
time = customerInfoItem.getUpdateTime();
resultUser.setCrmCreateTime(time);
if (StringUtil.isNotEmpty(customerInfoItem.getLabelIds())) {
resultBase.setUserPortrait(","+customerInfoItem.getLabelIds()+",");
}
}
HyPartnerLineInfoDO resultLine = new HyPartnerLineInfoDO();
String followUserName = customerInfoItem.getFollowUserName();
String followUserMobile = customerInfoItem.getFollowUserMobile();
@@ -175,7 +215,7 @@ public class EcSyncServiceImpl implements EcSyncService {
resultLine.setWorkflowStage(WorkflowStageEnum.INTENT.getCode())
.setLineStatus(StringUtil.isEmpty(customerInfoItem.getFollowUserName()) ? LineStatusEnum.PUBLIC_SEAS.getCode() : LineStatusEnum.PRIVATE_SEAS.getCode());
HyPartnerBaseInfoDO resultBase = new HyPartnerBaseInfoDO();
resultBase.setUsername(customerInfoItem.getName()).setMobile(customerInfoItem.getMobile());
HyPartnerUserInfoDO newUserInfo = hyPartnerUserInfoDAO.selectByMobile(resultUser.getMobile());
@@ -183,7 +223,7 @@ public class EcSyncServiceImpl implements EcSyncService {
//有就更新ec没有就插入
if (newUserInfo != null) {
//招商客户姓名为空
if (ObjectUtil.isNull(newUserInfo.getUsername())||StringUtil.isEmpty(newUserInfo.getUsername())) {
if (ObjectUtil.isNull(newUserInfo.getUsername()) || StringUtil.isEmpty(newUserInfo.getUsername())) {
newUserInfo.setUsername(resultUser.getUsername());
hyPartnerUserInfoDAO.updateByPrimaryKeySelective(newUserInfo);
}
@@ -201,7 +241,7 @@ public class EcSyncServiceImpl implements EcSyncService {
if (partnerLine != null) {
// EC与沪姨合伙人同时存在的线索用户但存在不同的跟进人将沪姨合伙人跟进人信息同步至EC覆盖原EC跟进人信息
if (StringUtil.isEmpty(partnerLine.getInvestmentManager())) {
if (StringUtil.isNotEmpty(resultLine.getInvestmentManager())&&!getFollowLineStatus(partnerLine)) {
if (StringUtil.isNotEmpty(resultLine.getInvestmentManager()) && !getFollowLineStatus(partnerLine)) {
resultLine.setId(partnerLine.getId()).setUpdateTime(new Date());
//沪姨合伙人线索存在黑名单EC该线索分配跟进人同步到沪姨合伙人但线索状态不变还存在黑名单中
resultLine.setLineStatus(partnerLine.getLineStatus().intValue() == LineStatusEnum.BLACKLIST.getCode().intValue()
@@ -237,48 +277,49 @@ public class EcSyncServiceImpl implements EcSyncService {
HyPartnerBaseInfoDO partnerIdAndLine = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(partnerLine.getPartnerId(), partnerLine.getId());
if (partnerIdAndLine == null) {
resultBase.setPartnerId(newPartnerId).setPartnerLineId(partnerLine.getId()).setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode())).
setCreateTime(new Date());
setCreateTime(time).setUpdateTime(time);
hyPartnerBaseInfoDAO.insertSelective(resultBase);
}
} else {
resultLine.setPartnerId(newPartnerId).setCreateTime(new Date());
resultLine.setPartnerId(newPartnerId).setCreateTime(time).setUpdateTime(time);
hyPartnerLineInfoDAO.insertSelective(resultLine);
resultBase.setPartnerId(newPartnerId).setPartnerLineId(resultLine.getId()).setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode())).
setCreateTime(new Date());
setCreateTime(time).setUpdateTime(time);
hyPartnerBaseInfoDAO.insertSelective(resultBase);
}
newUserInfo.setEcWantShopArea(resultUser.getEcWantShopArea());
//添加ec意向区域同步
hyPartnerUserInfoDAO.updateByPrimaryKeySelective(newUserInfo);
} else {
resultUser.setPartnerId(newPartnerId).setCreateTime(new Date());
resultUser.setPartnerId(newPartnerId).setCreateTime(time).setUpdateTime(time);
hyPartnerUserInfoDAO.insertSelective(resultUser);
resultLine.setPartnerId(newPartnerId).setCreateTime(new Date());
resultLine.setPartnerId(newPartnerId).setCreateTime(time).setUpdateTime(time);
hyPartnerLineInfoDAO.insertSelective(resultLine);
resultBase.setPartnerId(newPartnerId).setPartnerLineId(resultLine.getId()).setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode())).
setCreateTime(new Date());
setCreateTime(time).setUpdateTime(time);
hyPartnerBaseInfoDAO.insertSelective(resultBase);
}
}
/**
*招商公海内跟进次数大于等于1的用户EC同步该用户进去公海,假若跟进次数为0的同步到EC跟进人就是唐佑玉
* @param partnerLine
* 招商公海内跟进次数大于等于1的用户EC同步该用户进去公海,假若跟进次数为0的同步到EC跟进人就是唐佑玉
*
* @param partnerLine
* @return true为公海 false:私海
*/
public Boolean getFollowLineStatus(HyPartnerLineInfoDO partnerLine){
if(partnerLine.getLineStatus()!=0){
public Boolean getFollowLineStatus(HyPartnerLineInfoDO partnerLine) {
if (partnerLine.getLineStatus() != 0) {
return Boolean.FALSE;
}
ArrayList<String> list = new ArrayList<>();
list.add(partnerLine.getPartnerId());
List<LineCountDTO> followCountList = hyPartnerLineInfoDAO.getFollowCountList(list);
if (!CollectionUtils.isEmpty(followCountList)) {
return followCountList.get(0).getFollowCount()>0;
return followCountList.get(0).getFollowCount() > 0;
}
return Boolean.FALSE;
}

View File

@@ -1,5 +1,6 @@
package com.cool.store.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
@@ -10,19 +11,14 @@ import com.cool.store.dao.HyFollowTaskDAO;
import com.cool.store.dao.HyPartnerLineInfoDAO;
import com.cool.store.dao.HyPartnerTaskInfoLogDAO;
import com.cool.store.dto.follow.FollowTaskNumDTO;
import com.cool.store.dto.log.LineLogInfo;
import com.cool.store.dto.log.LogFieldDTO;
import com.cool.store.dto.message.SendCardMessageDTO;
import com.cool.store.dto.partner.PartnerSimpleInfoDTO;
import com.cool.store.entity.CallRecordDO;
import com.cool.store.entity.HyFollowTaskDO;
import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.entity.HyPartnerTaskInfoLogDO;
import com.cool.store.entity.*;
import com.cool.store.enums.*;
import com.cool.store.exception.ApiException;
import com.cool.store.exception.ServiceException;
import com.cool.store.http.EventCenterHttpRequest;
import com.cool.store.http.ISVHttpRequest;
import com.cool.store.mapper.HyPartnerEcTrackLogMapper;
import com.cool.store.request.follow.AddFollowLogRequest;
import com.cool.store.request.follow.AddFollowTaskRequest;
import com.cool.store.request.follow.FollowTaskIdRequest;
@@ -35,6 +31,7 @@ import com.cool.store.utils.RedisUtilPool;
import com.cool.store.vo.follow.FollowTaskLogVO;
import com.cool.store.vo.follow.FollowTaskPageVO;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@@ -76,6 +73,10 @@ public class FollowTaskServiceImpl implements FollowTaskService {
private NoticeService noticeService;
@Resource
private EventCenterHttpRequest eventCenterHttpRequest;
@Resource
private HyPartnerEcTrackLogMapper hyPartnerEcTrackLogMapper;
@Value("${feishu.notice.link.url}")
private String linkUrl;
@@ -257,6 +258,19 @@ public class FollowTaskServiceImpl implements FollowTaskService {
}
}
@Override
public PageInfo<HyPartnerEcTrackLogDO> getEcFollowLogPage(Integer pageNum, Integer pageSize, String partnerId) {
if(Objects.isNull(partnerId)){
return new PageInfo<>();
}
PageHelper.startPage(pageNum, pageSize);
Page<HyPartnerEcTrackLogDO> logPage = hyPartnerEcTrackLogMapper.getEcLogPageByPartnerId(partnerId);
for (HyPartnerEcTrackLogDO hyPartnerEcTrackLogDO : logPage) {
hyPartnerEcTrackLogDO.setDetailContent(HyPartnerEcTrackLogDO.getDetailContentJoint(hyPartnerEcTrackLogDO));
}
return new PageInfo(logPage);
}
/**
* 线索校验
* @param partnerLineId

View File

@@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.cool.store.constants.ExcelErrorConstants;
import com.cool.store.context.CurrentUserHolder;
import com.cool.store.dao.*;
import com.cool.store.dto.partner.MobileCheckDTO;
import com.cool.store.entity.*;
import com.cool.store.enums.*;
import com.cool.store.exception.ServiceException;
@@ -30,6 +31,7 @@ import javax.annotation.Resource;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.text.MessageFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -79,7 +81,7 @@ public class LineHighSeasServiceImpl implements LineHighSeasService {
if (ObjectUtil.isNotNull(hyPartnerUserInfoDO)) {
throw new ServiceException(ErrorCodeEnum.PARTNER_MOBILE_EXIST);
}
return add(request,"add");
return add(request, "add");
}
@@ -88,8 +90,8 @@ public class LineHighSeasServiceImpl implements LineHighSeasService {
*
* @param request
*/
public boolean add(AddLineRequest request,String type) {
Boolean flag =false;
public boolean add(AddLineRequest request, String type) {
Boolean flag = false;
String partnerId = UUIDUtils.get32UUID();
HyPartnerUserInfoDO resultUser = new HyPartnerUserInfoDO();
resultUser.setUsername(request.getPartnerName()).setMobile(request.getMobile()).setPartnerId(partnerId).setCreateTime(new Date()).setAcceptAdjustType(request.getAcceptAdjustType())
@@ -104,10 +106,10 @@ public class LineHighSeasServiceImpl implements LineHighSeasService {
//判断招商经理是否为空
if (StringUtil.isNotEmpty(request.getInvestmentManager())) {
resultLine.setInvestmentManager(request.getInvestmentManager()).setLineStatus(LineStatusEnum.PRIVATE_SEAS.getCode());
flag=true;
flag = true;
} else {
//是否分配跟进人
flag = hyPartnerLineInfoService.assignFollowUser(partnerId, request.getWantShopArea(), request.getAcceptAdjustType(), Boolean.TRUE);
flag = hyPartnerLineInfoService.assignFollowUser(partnerId, request.getWantShopArea(), request.getAcceptAdjustType(), Boolean.TRUE);
if (flag) {
//查询跟进人
String investmentManager = hyPartnerLineInfoService.getAssignFollowUser(partnerId, "intent");
@@ -136,18 +138,18 @@ public class LineHighSeasServiceImpl implements LineHighSeasService {
Map<Integer, Map<Integer, List<String>>> styleCells = new HashMap<>(4);
if (lineDOList.size() > excelMaxSize) {
//超出五百条的excel都标红
for (int i = excelMaxSize; i < lineDOList.size() ; i++) {
for (int i = excelMaxSize; i < lineDOList.size(); i++) {
lineDOList.get(i).setErrorInfo(ExcelErrorConstants.COUNT_MORE);
styleCells.put(i,new HashMap<>(4));
styleCells.put(i, new HashMap<>(4));
}
ExcelUtil.setRowStyle(styleCells,ExcelUtil.FONT_RED,7);
ExcelUtil.setRowStyle(styleCells, ExcelUtil.FONT_RED, 7);
util.exportExcel(outputStream, lineDOList, "", styleCells);
InputStream stream = new ByteArrayInputStream(outputStream.toByteArray());
String fileStr = ossServer.uploadFileServer(stream, dir + getExcelName());
return new ResponseResult(500, "共上传" + lineDOList.size() + "条线索,其中" + styleCells.size() + "条存在异常", new ErrorExcelResponse(lineDOList.size(), styleCells.size(), fileStr));
}
//获取重复手机号集合
List<String> uniqueList = lineDOList.stream().filter(item->StringUtil.isNotEmpty(item.getMobile())).collect(Collectors.groupingBy(HyPartnerLineDO::getMobile, Collectors.counting()))
List<String> uniqueList = lineDOList.stream().filter(item -> StringUtil.isNotEmpty(item.getMobile())).collect(Collectors.groupingBy(HyPartnerLineDO::getMobile, Collectors.counting()))
.entrySet().stream().filter(e -> e.getValue() > 1)
.map(Map.Entry::getKey).collect(Collectors.toList());
for (int i = 0; i < lineDOList.size(); i++) {
@@ -156,8 +158,8 @@ public class LineHighSeasServiceImpl implements LineHighSeasService {
if (StringUtil.isEmpty(partnerName)) {
hyPartnerLineDO.setErrorInfo(StringUtil.isEmpty(hyPartnerLineDO.getErrorInfo()) ? ExcelErrorConstants.NAME_LOSE : hyPartnerLineDO.getErrorInfo().concat(Constants.SEMICOLON).concat(ExcelErrorConstants.NAME_LOSE));
ExcelUtil.setStyleMap(styleCells, i, 0, new String[]{ExcelUtil.FONT_RED});
}else {
if (partnerName.length()>10) {
} else {
if (partnerName.length() > 10) {
hyPartnerLineDO.setErrorInfo(StringUtil.isEmpty(hyPartnerLineDO.getErrorInfo()) ? ExcelErrorConstants.NAME_OVER_LENGTH : hyPartnerLineDO.getErrorInfo().concat(Constants.SEMICOLON).concat(ExcelErrorConstants.NAME_OVER_LENGTH));
ExcelUtil.setStyleMap(styleCells, i, 0, new String[]{ExcelUtil.FONT_RED});
}
@@ -219,7 +221,7 @@ public class LineHighSeasServiceImpl implements LineHighSeasService {
if (StringUtil.isEmpty(acceptAdjustType)) {
hyPartnerLineDO.setErrorInfo(StringUtil.isEmpty(hyPartnerLineDO.getErrorInfo()) ? ExcelErrorConstants.ACCEPT_ADJUST_TYPE_LOSE : hyPartnerLineDO.getErrorInfo().concat(Constants.SEMICOLON).concat(ExcelErrorConstants.ACCEPT_ADJUST_TYPE_LOSE));
ExcelUtil.setStyleMap(styleCells, i, 4, new String[]{ExcelUtil.FONT_RED});
}else {
} else {
Integer enumByName = AcceptAdjustTypeEnum.findEnumByName(acceptAdjustType);
if (ObjectUtil.isNull(enumByName)) {
hyPartnerLineDO.setErrorInfo(StringUtil.isEmpty(hyPartnerLineDO.getErrorInfo()) ? ExcelErrorConstants.ACCEPT_ADJUST_TYPE_LOSE : hyPartnerLineDO.getErrorInfo().concat(Constants.SEMICOLON).concat(ExcelErrorConstants.ACCEPT_ADJUST_TYPE_LOSE));
@@ -251,16 +253,32 @@ public class LineHighSeasServiceImpl implements LineHighSeasService {
AddLineRequest addLineRequest = new AddLineRequest();
BeanUtil.copyProperties(hyPartnerLineDO, addLineRequest);
addLineRequest.setWantShopArea(hyPartnerLineDO.getWantShopArea().toString());
add(addLineRequest,"import");
add(addLineRequest, "import");
}
return new ResponseResult(ResponseCodeEnum.SUCCESS.getCode(), "共上传" + lineDOList.size() + "条线索", new ErrorExcelResponse(lineDOList.size(), styleCells.size(), fileStr));
}
@Override
public Boolean addCheckout(String mobile) {
if (!isPhone(mobile)) {
throw new ServiceException(ErrorCodeEnum.PARTNER_MOBILE_INCORRECT);
}
MobileCheckDTO mobileCheckDTO = hyPartnerUserInfoDAO.selectByCheckMobile(mobile);
if (ObjectUtil.isNotNull(mobileCheckDTO)) {
if (mobileCheckDTO.getLineStatus().equals(LineStatusEnum.PUBLIC_SEAS.getCode())) {
throw new ServiceException(ErrorCodeEnum.PUBLIC_LINE_NOT_FOLLOW);
} else {
throw new ServiceException(MessageFormat.format(ErrorCodeEnum.LINE_EXIST_FOLLOW.getMessage(),mobileCheckDTO.getInvestmentManager()));
}
}
return Boolean.TRUE;
}
/**
* @param phone 字符串类型的手机号
* 传入手机号,判断后返回
* true为手机号,false相反
* */
* 传入手机号,判断后返回
* true为手机号,false相反
*/
public static boolean isPhone(String phone) {
String regex = "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$";
if (phone.length() != 11) {
@@ -277,7 +295,7 @@ public class LineHighSeasServiceImpl implements LineHighSeasService {
*
* @return
*/
private String getExcelName() {
private String getExcelName() {
String format = DateUtil.format(new Date(), "yyyyMMdd").concat(Constants.D_LINE).concat(IdUtil.simpleUUID().substring(0, 10));
return format.concat(Constants.POMINT).concat(Constants.EXCEL_XLSX);
}