项目整合完成

master
bynt 6 months ago
parent 75e758f17b
commit e269fa19ec

@ -5,7 +5,7 @@
<parent>
<artifactId>marketing-platform</artifactId>
<groupId>com.baiye</groupId>
<version>1.1.0</version>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -20,19 +20,20 @@
<dependency>
<groupId>com.baiye</groupId>
<artifactId>security-oauth2-authorization-server</artifactId>
<version>1.1.0</version>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.baiye</groupId>
<artifactId>admin-websocket</artifactId>
<version>1.1.0</version>
<artifactId>marketing-platform-starter-websocket</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.baiye</groupId>
<artifactId>admin-core</artifactId>
<version>1.1.0</version>
<version>${revision}</version>
</dependency>
<dependency>
@ -42,12 +43,12 @@
<dependency>
<groupId>com.baiye</groupId>
<artifactId>marketing-platform-starter-job</artifactId>
<version>1.1.0</version>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.baiye</groupId>
<artifactId>common-redis</artifactId>
<version>1.1.0</version>
<version>${revision}</version>
</dependency>
<!--mysql驱动-->
@ -62,6 +63,7 @@
<!-- <artifactId>ballcat-extend-openapi</artifactId>-->
<!-- </dependency>-->
<!-- springdoc swagger-ui -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
@ -70,6 +72,7 @@
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-security</artifactId>
</dependency>
<!-- swagger 增强版 ui -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
@ -131,7 +134,7 @@
<dependency>
<groupId>com.baiye</groupId>
<artifactId>marketing-platform-starter-easyexcel</artifactId>
<version>1.1.0</version>
<version>${revision}</version>
</dependency>
<dependency>

@ -1,29 +0,0 @@
package com.baiye.easyexcel.dto;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ClueListenerDto {
@ExcelProperty(value = "手机号")
private String nid;
@ExcelProperty(value = "渠道来源")
private String originName;
@ExcelProperty(value = "备注")
private String remark;
@ExcelProperty(value = "日期(****/**/** 00:00:00)")
private Date clueTime;
}

@ -1,104 +0,0 @@
package com.baiye.easyexcel.listener;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.baiye.constant.UploadTemplateHeadConstant;
import com.baiye.modules.distribute.entity.ClueEntity;
import com.baiye.modules.distribute.entity.ClueRecordEntity;
import com.baiye.modules.distribute.service.ClueService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
@Slf4j
public class ClueListener extends AnalysisEventListener<Map<Integer, String>> {
public final List<ClueEntity> rows = new ArrayList<>();
public final LinkedList<String> headInfo = new LinkedList<>();
/**
* springservice
*/
private static ClueService clueService;
private static ClueRecordEntity clueRecordEntity;
public ClueListener(ClueService clueService, ClueRecordEntity clueRecordEntity) {
this.clueService = clueService;
this.clueRecordEntity = clueRecordEntity;
}
/**
* 3000
*/
@Override
public void invoke(Map<Integer, String> data, AnalysisContext context) {
ClueEntity clueEntity = new ClueEntity();
Map<String, Object> map = new HashMap<>();
// 动态解析excel列
for (int i = 0; i < headInfo.size(); i++) {
String param = data.get(i);
switch (headInfo.get(i)) {
case UploadTemplateHeadConstant.HEAD_NID:
clueEntity.setNid(param);
break;
case UploadTemplateHeadConstant.HEAD_ORIGIN:
clueEntity.setOriginName(param);
break;
case UploadTemplateHeadConstant.HEAD_REMARK:
clueEntity.setRemark(param);
break;
case UploadTemplateHeadConstant.HEAD_DATE:
clueEntity.setClueTime(param);
break;
default:
if (StringUtils.isEmpty(param))
param = "";
map.put(headInfo.get(i), param);
}
}
clueEntity.setOtherClue(JSONUtil.toJsonStr(map));
rows.add(clueEntity);
// 保存
if (rows.size() >= 3000) {
saveData();
rows.clear();
}
}
/**
*
*/
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
if (CollUtil.isNotEmpty(rows))
saveData();
rows.clear();
headInfo.clear();
}
/**
*
*/
@Override
public void invokeHead(Map<Integer, ReadCellData<?>> headMap, AnalysisContext context) {
headMap.values().forEach(vs -> headInfo.add(vs.getStringValue()));
}
/**
*
*/
private void saveData() {
for (ClueEntity row : rows) {
row.setClueRecordId(clueRecordEntity.getClueRecordId());
row.setCreateBy(clueRecordEntity.getCreateBy());
}
clueService.clueFileUploadSaveAll(rows);
}
}

@ -1,70 +0,0 @@
package com.baiye.easyexcel.listener;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.baiye.constant.UploadTemplateHeadConstant;
import com.baiye.modules.distribute.dto.CustomDTO;
import com.baiye.modules.distribute.dto.ReadFileDTO;
import com.baiye.modules.distribute.entity.ClueRecordEntity;
import com.baiye.modules.distribute.entity.CustomEntity;
import com.baiye.modules.distribute.service.CustomService;
import lombok.extern.slf4j.Slf4j;
import java.util.*;
@Slf4j
public class CustomListener extends AnalysisEventListener<Map<Integer, String>> {
public final List<CustomEntity> rows = new ArrayList<>();
public final LinkedList<String> headInfo = new LinkedList<>();
public Integer index = 0;
/**
* springservice
*/
private static CustomService customService;
private static ClueRecordEntity clueRecordEntity;
private static ReadFileDTO readFileDTO;
public CustomListener(CustomService customService, ClueRecordEntity clueRecordEntity, ReadFileDTO readFileDTO) {
this.customService = customService;
this.clueRecordEntity = clueRecordEntity;
this.readFileDTO = readFileDTO;
}
@Override
public void invoke(Map<Integer, String> data, AnalysisContext context) {
List<Long> userIdList = readFileDTO.getDistributorsUserIdList();
CustomDTO customDTO = new CustomDTO();
// 动态解析excel列
for (int i = 0; i < headInfo.size(); i++) {
String str = headInfo.get(i);
String param = data.get(i);
if (str.equals(UploadTemplateHeadConstant.HEAD_NID)) customDTO.setCustomNid(param);
else if (str.equals(UploadTemplateHeadConstant.HEAD_REMARK)) customDTO.setRemark(param);
else return;
}
customDTO.setDistributorId(userIdList.get(index));
customDTO.setCreateBy(clueRecordEntity.getCreateBy());
customDTO.setChannelType(2);
customDTO.setChannelName(readFileDTO.getChannelName());
customService.createByFileType(customDTO);
index = (index < userIdList.size() - 1) ? index + 1 : 0;
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
/**
*
*/
@Override
public void invokeHead(Map<Integer, ReadCellData<?>> headMap, AnalysisContext context) {
headMap.values().forEach(vs -> headInfo.add(vs.getStringValue()));
}
}

@ -1,74 +0,0 @@
package com.baiye.event.system;
import cn.hutool.core.collection.CollUtil;
import com.baiye.modules.distribute.entity.*;
import com.baiye.modules.distribute.mapper.ClueMapper;
import com.baiye.modules.distribute.mapper.ClueStageMapper;
import com.baiye.modules.distribute.mapper.LabelMapper;
import com.baiye.modules.distribute.mapper.LabelOrganizeMapper;
import com.baiye.modules.distribute.service.ClueRecordService;
import com.baiye.modules.distribute.service.DistributeTaskService;
import com.baiye.security.util.SecurityUtils;
import com.baiye.system.event.UserCreatedEvent;
import com.baiye.system.event.UserDelEvent;
import com.baiye.system.model.entity.SysUser;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* ApplicationEventPublisher使
*/
@Component
@Slf4j
@RequiredArgsConstructor
public class UserEventListener {
private final ClueRecordService clueRecordService;
private final DistributeTaskService distributeTaskService;
private final LabelMapper labelMapper;
private final LabelOrganizeMapper labelOrganizeMapper;
private final ClueStageMapper clueStageMapper;
private final ClueMapper clueMapper;
@EventListener(UserCreatedEvent.class)
public void createUser(UserCreatedEvent userCreatedEvent) {
log.info("==========创建用户 监听方法执行==========");
SysUser sysUser = userCreatedEvent.getSysUser();
if (SecurityUtils.getCurrentUserId() == 1 && sysUser != null) {
// 创建默认的文件记录
ClueRecordEntity entity = clueRecordService.addDefaultRecordService(sysUser.getUserId(), "资源推送", "资源推送");
// 创建默认的执行任务
distributeTaskService.addDefaultTask("资源推送", null, entity.getClueRecordId().toString(), sysUser.getUserId(), null);
}
}
@EventListener(UserDelEvent.class)
public void delUser(UserDelEvent userDelEvent) {
log.info("==========删除用户 监听方法执行==========");
List<Long> delUserIdList = userDelEvent.getUserIdList();
if (CollUtil.isNotEmpty(delUserIdList)) {
//1、删除资源
clueMapper.delete(new LambdaQueryWrapper<ClueEntity>().in(ClueEntity::getAssignedBy, delUserIdList));
//2、删除用户的任务和上传记录
BaseMapper<DistributeTaskEntity> taskMapper = distributeTaskService.getBaseMapper();
taskMapper.delete(new LambdaQueryWrapper<DistributeTaskEntity>().eq(DistributeTaskEntity::getCreateBy, delUserIdList));
BaseMapper<ClueRecordEntity> clueRecordMapper = clueRecordService.getBaseMapper();
clueRecordMapper.delete(new LambdaQueryWrapper<ClueRecordEntity>().eq(ClueRecordEntity::getCreateBy, delUserIdList));
//3、 删除用户标签和标签组 - 阶段信息
labelMapper.delete(new LambdaQueryWrapper<LabelEntity>().eq(LabelEntity::getCreateBy, delUserIdList));
labelOrganizeMapper.delete(new LambdaQueryWrapper<LabelOrganizeEntity>().eq(LabelOrganizeEntity::getCreateBy, delUserIdList));
clueStageMapper.delete(new LambdaQueryWrapper<ClueStageEntity>().eq(ClueStageEntity::getCreateBy, delUserIdList));
}
}
}

@ -1,32 +0,0 @@
package com.baiye.job;
import cn.hutool.core.date.DateUtil;
import com.baiye.modules.distribute.service.DistributeReportService;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.example.jobInstance.ElasticSimpleJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* @author wjt
* @date 2023/8/14 0/5 * * * * ?
*/
@Component
@Slf4j
@ElasticSimpleJob(jobName = "DistributeRecordReportJob", cron = "0 30 23 * * ?")
public class DistributeRecordReportJob implements SimpleJob {
@Resource
private DistributeReportService distributeReportService;
@Override
public void execute(ShardingContext shardingContext) {
log.info("流量分布定时任务开始-----{}", DateUtil.date());
distributeReportService.distributeReport();
log.info("流量分布定时任务结束-----{}", DateUtil.date());
}
}

@ -1,57 +0,0 @@
package com.baiye.job;
import cn.hutool.core.collection.CollUtil;
import com.baiye.constant.PrefixKeyConstant;
import com.baiye.modules.distribute.entity.DistributeTaskEntity;
import com.baiye.modules.distribute.mapper.DistributeTaskMapper;
import com.baiye.utils.DateTimeToCronUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.example.entity.Job;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
/**
* zookeeper
*/
@Component
@Slf4j
public class JobApplicationRunner implements ApplicationRunner {
@Resource
private DistributeTaskMapper distributeTaskMapper;
@Resource
private MyJobService jobService;
@Override
public void run(ApplicationArguments args) {
log.info("==============项目启动,自动添加业务中定时任务==============");
List<DistributeTaskEntity> distributeTaskEntities = distributeTaskMapper.selectList(
new LambdaQueryWrapper<DistributeTaskEntity>().eq(DistributeTaskEntity::getDistributeTaskType, 1)
.eq(DistributeTaskEntity::getTimeStatus, 1)
.ne(DistributeTaskEntity::getExecuteStatus, 0));
if (CollUtil.isNotEmpty(distributeTaskEntities)) {
for (DistributeTaskEntity distributeTaskEntity : distributeTaskEntities) {
if (distributeTaskEntity != null && distributeTaskEntity.getStartTime() != null) {
Job job = new Job();
job.setJobName(PrefixKeyConstant.JOB_KEY + distributeTaskEntity.getDistributeTaskId());
String cron = DateTimeToCronUtils.getCron(distributeTaskEntity.getStartTime(),
DateTimeToCronUtils.EVERYDAY);
job.setCron(cron);
job.setJobClass("com.baiye.job.LinkWatchJob");
jobService.addJob(job);
// 暂停
if (distributeTaskEntity.getExecuteStatus() == 3)
jobService.pauseJob(job.getJobName());
}
}
}
}
}

@ -1,35 +0,0 @@
package com.baiye.job;
import com.baiye.modules.distribute.entity.DistributeTaskEntity;
import com.baiye.modules.distribute.service.DistributeTaskService;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
*
*/
@Slf4j
@Component
public class LinkWatchJob implements SimpleJob {
@Resource
private DistributeTaskService distributeTaskService;
@Override
public void execute(ShardingContext shardingContext) {
log.info("==============定时任务开始任务名称ID{}================", shardingContext.getJobName());
String jobName = shardingContext.getJobName();
String str = jobName.substring(jobName.lastIndexOf("_") + 1);
log.info("==============定时任务开始ID{}================", str);
DistributeTaskEntity entity = distributeTaskService.getById(Long.parseLong(str));
if (entity != null) {
distributeTaskService.execute(entity);
}
}
}

@ -1,13 +0,0 @@
package com.baiye.job;
import com.example.serive.impl.JobServiceImpl;
import org.springframework.stereotype.Service;
/**
* @Author YQY
* @Date 2023/8/17
*/
@Service
public class MyJobService extends JobServiceImpl {
}

@ -1,33 +0,0 @@
package com.baiye.job;
import cn.hutool.core.date.DateUtil;
import com.baiye.modules.distribute.service.OceanEngineClueService;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.example.jobInstance.ElasticSimpleJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Date;
/**
* @author wjt
* @date 2023/11/3
*/
@Component
@Slf4j
@ElasticSimpleJob(jobName = "OceanEngineClueJob", cron = "0 0/15 * * * ?")
public class OceanEngineClueJob implements SimpleJob {
@Resource
private OceanEngineClueService oceanEngineClueService;
@Override
public void execute(ShardingContext shardingContext) {
Date currentTime = DateUtil.date();
Date startTime = DateUtil.beginOfMinute(DateUtil.offsetMinute(currentTime, -15));
Date endTime = DateUtil.endOfMinute(DateUtil.offsetMinute(currentTime, -1));
oceanEngineClueService.getFeiYuSource(startTime, endTime);
}
}

@ -1,20 +0,0 @@
package com.baiye.modules.auth;
import lombok.Getter;
import lombok.Setter;
/**
* @author Enzo
*/
@Getter
@Setter
public class AccessTokenRequest extends BaseModel {
private String appId;
private String secret;
private String grantType;
private String authCode;
}

@ -1,38 +0,0 @@
package com.baiye.modules.auth;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @author Enzo
*/
@Getter
@Setter
public class AccessTokenResponse extends OceanEngineResponse<AccessTokenResponse.Data> {
@lombok.Data
public static class Data {
@JsonProperty("access_token")
private String accessToken;
@JsonProperty("expires_in")
private Long expiresIn;
@JsonProperty("refresh_token")
private String refreshToken;
@JsonProperty("advertiser_id")
private Long advertiserId;
@JsonProperty("advertiser_ids")
private List<String> advertiserIds;
@JsonProperty("refresh_token_expires_in")
private Long refreshTokenExpiresIn;
}
}

@ -1,18 +0,0 @@
package com.baiye.modules.auth;
import lombok.Getter;
import lombok.Setter;
/**
* @author Enzo
*/
@Getter
@Setter
public class AuthAdvertiserRequest extends BaseModel {
private String accessToken;
private String appId;
private String secret;
}

@ -1,37 +0,0 @@
package com.baiye.modules.auth;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @author Enzo
*/
@Getter
@Setter
public class AuthAdvertiserResponse extends OceanEngineResponse<AuthAdvertiserResponse.Data> {
@lombok.Data
public static class Data {
List<AuthAdvertiserInfo> list;
}
@lombok.Data
public static class AuthAdvertiserInfo {
@JsonProperty("advertiser_id")
private Long advertiserId;
@JsonProperty("advertiserName")
private String advertiserName;
@JsonProperty("account_role")
private String accountRole;
@JsonProperty("advertiser_role")
private Integer advertiserRole;
@JsonProperty("is_valid")
private Boolean isValid;
}
}

@ -1,30 +0,0 @@
package com.baiye.modules.auth;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
/**
* @author Enzo
* @date 2022-9-14
*/
public class BaseModel {
/**
* Returns a JSON string corresponding to object state
*
* @return JSON representation
*/
public String toJson() {
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
Gson gson = gsonBuilder.create();
return gson.toJson(this);
}
@Override
public String toString() {
return toJson();
}
}

@ -1,25 +0,0 @@
package com.baiye.modules.auth;
import cn.hutool.core.text.CharSequenceUtil;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @author Enzo
*/
@Getter
@Setter
public class OceanEngineResponse<T> {
private T data;
@JsonProperty("code")
private int code;
@JsonProperty("message")
private String message;
@JsonProperty("request_id")
private String requestId = CharSequenceUtil.EMPTY;
}

@ -1,20 +0,0 @@
package com.baiye.modules.auth;
import lombok.Getter;
import lombok.Setter;
/**
* @author Enzo
*/
@Getter
@Setter
public class RefreshTokenRequest extends BaseModel {
private String appId;
private String secret;
private String grantType;
private String refreshToken;
}

@ -1,29 +0,0 @@
package com.baiye.modules.auth;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @author Enzo
*/
@Getter
@Setter
public class RefreshTokenResponse extends OceanEngineResponse<RefreshTokenResponse.Data> {
@lombok.Data
public static class Data {
@JsonProperty("access_token")
private String accessToken;
@JsonProperty("expires_in")
private Long expiresIn;
@JsonProperty("refresh_token")
private String refreshToken;
@JsonProperty("refresh_token_expires_in")
private Long refreshTokenExpiresIn;
}
}

@ -1,25 +0,0 @@
package com.baiye.modules.auth;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
/**
* @author Enzo
* @date : 2024/3/4
*/
@Data
public class SendClueResponse {
@SerializedName("code")
@JsonProperty("code")
private int code;
@SerializedName("is_exist")
@JsonProperty("is_exist")
private Boolean isExist;
@SerializedName("message")
@JsonProperty("message")
private String message;
}

@ -1,96 +0,0 @@
package com.baiye.modules.distribute.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baiye.common.excel.annotation.ResponseExcel;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.modules.distribute.dto.ClueDTO;
import com.baiye.modules.distribute.entity.ClueEntity;
import com.baiye.modules.distribute.qo.ClueQo;
import com.baiye.modules.distribute.service.ClueService;
import com.baiye.modules.distribute.vo.ClueVO;
import com.baiye.notify.event.UserAnnouncementReadEvent;
import com.baiye.result.BaseResultCode;
import com.baiye.result.R;
import com.baiye.security.util.SecurityUtils;
import com.baiye.validation.group.UpdateGroup;
import com.google.common.collect.Lists;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.context.ApplicationContext;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RequiredArgsConstructor
@RestController
@Tag(name = "资源管理")
@RequestMapping("/clue")
public class ClueController {
private final ClueService clueService;
private final ApplicationContext publisher;
@GetMapping("/page")
@Operation(summary = "分页查询资源")
public R<PageResult<ClueVO>> getClueRecordPage(@Validated PageParam pageParam, ClueQo qo) {
setQueryQo(qo);
return R.ok(clueService.queryPage(pageParam, qo));
}
@PostMapping("/update")
@Operation(summary = "修改资源详细信息", description = "修改资源详细信息")
public R<Object> update(@Validated({UpdateGroup.class}) @RequestBody ClueDTO clueEntity) {
publisher.publishEvent(new UserAnnouncementReadEvent(clueEntity.getClueId(), SecurityUtils.getCurrentUserId()));
return clueService.update(clueEntity) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "修改失败");
}
@PostMapping("/updateClue")
@Operation(summary = "修改资源", description = "修改资源")
public R<Object> updateClue(@Validated({UpdateGroup.class}) @RequestBody ClueEntity clueEntity) {
clueEntity.setIsNewClue(Boolean.FALSE);
publisher.publishEvent(new UserAnnouncementReadEvent(clueEntity.getClueId(), SecurityUtils.getCurrentUserId()));
return clueService.updateById(clueEntity) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "修改失败");
}
@GetMapping("/details/{id}")
@Operation(summary = "ID查询详情")
public R<ClueVO> getClueDetails(@PathVariable("id") Long clueId, ClueQo qo) {
return R.ok(clueService.details(clueId, qo));
}
@Operation(summary = "修改是否有效")
@GetMapping("/changeIsEffective")
public R<Object> update(Long id, Integer effective) {
clueService.changeEffective(id, effective);
return R.ok();
}
@ResponseExcel(name = "线索表单")
@GetMapping("/export")
public List<ClueVO> exportClueData(ClueQo qo) {
setQueryQo(qo);
List<ClueVO> list = clueService.queryList(qo);
return CollUtil.isEmpty(list) ? Lists.newArrayList(new ClueVO()) : list;
}
private void setQueryQo(ClueQo qo) {
if (ObjectUtil.isNotNull(qo.getSalesmanType())) {
if (qo.getSalesmanType() == DefaultNumberConstants.FOUR_NUMBER) {
qo.setAssignedBy(SecurityUtils.getCurrentUserId());
}
if (qo.getSalesmanType() == DefaultNumberConstants.ZERO_NUMBER) {
qo.setCompanyId(SecurityUtils.getCurrentUserId());
}
}
}
}

@ -1,63 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.alibaba.excel.EasyExcel;
import com.baiye.exception.BadRequestException;
import com.baiye.modules.distribute.dto.ReadFileDTO;
import com.baiye.modules.distribute.service.ClueFileService;
import com.baiye.result.R;
import com.baiye.validation.group.CreateGroup;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Map;
@RequiredArgsConstructor
@RestController
@Tag(name = "资源文件管理")
@RequestMapping("/clueFile")
public class ClueFileController {
private final ClueFileService clueFileService;
@PostMapping("/detection")
@Operation(summary = "校验表头信息")
public R<Map<String, Object>> detection(@RequestParam("file") MultipartFile file) {
return R.ok(clueFileService.detection(file));
}
@PostMapping("/readFile")
@Operation(summary = "读取文件信息")
public R<Object> readFile(@Validated({CreateGroup.class}) @RequestBody ReadFileDTO readFileDTO) {
clueFileService.readFile(readFileDTO);
return R.ok();
}
@GetMapping("/export")
@Operation(summary = "导出模板")
public void exportExcelTemplate(HttpServletResponse response) {
try (InputStream inputStream = getClass().getResourceAsStream("/file/template.xlsx")) {
String fileName = URLEncoder.encode("template.xlsx", "UTF-8");
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName);
EasyExcel.write(response.getOutputStream()).withTemplate(inputStream).sheet().doWrite(new ArrayList<>());
}catch (IOException e) {
throw new BadRequestException("导出失败,请联系管理员");
}
}
@GetMapping("/generate")
@Operation(summary = "生成秘钥")
public R<Map<String, Object>> generateSecretKey() {
return R.ok(clueFileService.generateSecretKey());
}
}

@ -1,51 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.domain.SelectData;
import com.baiye.modules.distribute.service.ClueRecordService;
import com.baiye.modules.distribute.vo.ClueRecordVO;
import com.baiye.modules.distribute.qo.ClueRecordQo;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.result.BaseResultCode;
import com.baiye.result.R;
import com.baiye.security.util.SecurityUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RequiredArgsConstructor
@RestController
@Tag(name = "文件上传记录API")
@RequestMapping("/clueRecord")
public class ClueRecordController {
private final ClueRecordService clueRecordService;
@GetMapping("/page")
@Operation(summary = "分页查询导入记录")
public R<PageResult<ClueRecordVO>> getClueRecordPage(@Validated PageParam pageParam, ClueRecordQo qo) {
return R.ok(clueRecordService.queryPage(pageParam, qo));
}
@DeleteMapping("/{id}")
@Operation(summary = "ID删除记录并删除本地文件")
public R<Void> deleteByUserId(@PathVariable("id") Long clueRecordId) {
return clueRecordService.deleteByUserId(clueRecordId) ? R.ok()
: R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "删除文件失败");
}
@GetMapping("/select")
@Operation(summary = "下拉列表数据")
public R<List<SelectData<Void>>> listSelectData(ClueRecordQo qo) {
qo.setCreateBy(SecurityUtils.getCurrentUserId());
qo.setAllocationStatus(0);
qo.setDistributeStatus(0);
qo.setRecordType(0);
return R.ok(clueRecordService.listSelectData(qo));
}
}

@ -1,58 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.modules.distribute.entity.ClueStageEntity;
import com.baiye.modules.distribute.service.ClueStageService;
import com.baiye.result.BaseResultCode;
import com.baiye.result.R;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
@RequiredArgsConstructor
@RestController
@Tag(name = "资源阶段API")
@RequestMapping("/clueStage")
public class ClueStageController {
private final ClueStageService clueStageService;
@GetMapping("/list")
@Operation(summary = "列表")
public R<Object> list() {
return R.ok(clueStageService.listData());
}
@PostMapping("/add")
@Operation(summary = "新增线索阶段", description = "新增线索阶段")
public R<Object> save(@Validated({ CreateGroup.class }) @RequestBody ClueStageEntity clueStageEntity) {
return clueStageService.save(clueStageEntity) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "添加失败");
}
@PostMapping("/addList")
@Operation(summary = "批量新增线索阶段", description = "批量新增线索阶段")
public R<Object> addList(@Valid @RequestBody List<ClueStageEntity> clueStageEntity) {
return clueStageService.saveBatch(clueStageEntity) ? R.ok()
: R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "添加失败");
}
@PostMapping("/update")
@Operation(summary = "修改线索阶段", description = "修改线索阶段")
public R<Object> update(@Validated({ UpdateGroup.class }) @RequestBody ClueStageEntity clueStageEntity) {
return clueStageService.updateById(clueStageEntity) ? R.ok()
: R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "修改失败");
}
@DeleteMapping("/{id}")
@Operation(summary = "ID删除线索阶段")
public R<Void> deleteByUserId(@PathVariable("id") Long id) {
return clueStageService.removeById(id) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "删除失败");
}
}

@ -1,154 +0,0 @@
package com.baiye.modules.distribute.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baiye.common.excel.annotation.ResponseExcel;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.modules.distribute.converter.CustomConverter;
import com.baiye.modules.distribute.dto.ChangeCustomDTO;
import com.baiye.modules.distribute.dto.CreateCustomDTO;
import com.baiye.modules.distribute.dto.CustomDTO;
import com.baiye.modules.distribute.entity.CustomEntity;
import com.baiye.modules.distribute.qo.CustomQo;
import com.baiye.modules.distribute.service.CustomService;
import com.baiye.modules.distribute.vo.CustomVO;
import com.baiye.operation.annotation.DeleteOperationLogging;
import com.baiye.result.BaseResultCode;
import com.baiye.result.R;
import com.baiye.security.util.SecurityUtils;
import com.baiye.system.checker.AdminUserChecker;
import com.baiye.system.service.SysUserService;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.SubmitGroup;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@RequiredArgsConstructor
@RestController
@Tag(name = "客户管理")
@RequestMapping("/custom")
public class CustomController {
private final CustomService customService;
private final SysUserService sysUserService;
private final AdminUserChecker adminUserChecker;
@GetMapping("/page")
@Operation(summary = "分页查询客户信息")
public R<PageResult<CustomVO>> queryPage(@Validated PageParam pageParam, CustomQo qo) {
setQueryQo(qo);
return R.ok(customService.queryPage(pageParam, qo));
}
@PostMapping("/add")
@Operation(summary = "新增客户", description = "新增客户")
public R<Object> save(@Validated({CreateGroup.class}) @RequestBody CustomDTO customDTO) {
return customService.add(customDTO) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "添加失败");
}
@PostMapping("/manual/create")
@Operation(summary = "手动创建线索", description = "新增客户")
public R<Object> manualCreate(@Validated({CreateGroup.class}) @RequestBody CreateCustomDTO createCustomDTO) {
return Boolean.TRUE.equals(customService.createByType(createCustomDTO)) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "添加失败");
}
@PostMapping("/update")
@Operation(summary = "修改客户", description = "修改客户")
public R<Object> update(@Validated({UpdateGroup.class}) @RequestBody CustomDTO customDTO) {
return customService.update(customDTO) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "修改失败");
}
@GetMapping("/details")
@Operation(summary = "ID查询详情")
public R<CustomVO> getClueDetails(@RequestParam("id") Long id) {
return R.ok(customService.details(id));
}
@DeleteMapping("/{id}")
@DeleteOperationLogging(msg = "删除表单信息")
@Operation(summary = "通过id删除系统角色", description = "通过id删除系统角色")
public R<Boolean> removeById(@PathVariable("id") Long id) {
Boolean result = customService.deleteApprovalFormById(id);
return Boolean.TRUE.equals(result) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "删除表单失败");
}
@PostMapping("/audit")
@Operation(summary = "审核表单")
public R<String> audit(@Validated({SubmitGroup.class}) @RequestBody ChangeCustomDTO dto) {
Boolean result = customService.auditFormById(dto);
return Boolean.TRUE.equals(result) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "审核失败");
}
@ResponseExcel(name = "客户表单")
@GetMapping("/export")
public List<CustomVO> exportI18nData(CustomQo customQo) {
setQueryQo(customQo);
List<CustomEntity> list = customService.queryList(customQo);
if (CollUtil.isEmpty(list)) {
return new ArrayList<>();
}
// 转换为 excel vo 对象
return list.stream().map(CustomConverter.INSTANCE::poToExcelVo).collect(Collectors.toList());
}
@PostMapping("/reAudit")
@Operation(summary = "表单重审")
public R<Boolean> reAudit(@Validated({UpdateGroup.class}) @RequestBody ChangeCustomDTO dto) {
Boolean result = customService.reAuditFormById(dto);
return Boolean.TRUE.equals(result) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "审核失败");
}
private void setQueryQo(CustomQo customQo) {
Integer salesmanType = customQo.getSalesmanType();
// 查询属于自己的信息
if (!adminUserChecker.isAdminUser(sysUserService.findById
(SecurityUtils.getCurrentUserId()))) {
customQo.setCompanyId(SecurityUtils.getWhichUserId());
}
if (ObjectUtil.isNotNull(salesmanType)) {
if (salesmanType == DefaultNumberConstants.ONE_NUMBER) {
// 查询当前用户自己的
customQo.setCreateBy(SecurityUtils.getCurrentUserId());
}
if (salesmanType == DefaultNumberConstants.TWO_NUMBER) {
// 查询分发员
customQo.setDistributorId(SecurityUtils.getCurrentUserId());
customQo.setType(2);
}
if (salesmanType == DefaultNumberConstants.THREE_NUMBER) {
// 只查询复审员
customQo.setReviewUserId(SecurityUtils.getCurrentUserId());
customQo.setType(3);
}
}
}
@GetMapping("/recallForm")
@Operation(summary = "表单撤回")
public R<Boolean> recallForm(Long id) {
Boolean result = customService.recallFormById(id);
return Boolean.TRUE.equals(result) ? R.ok() : R.failed(BaseResultCode.LOGIC_CHECK_ERROR, "表单撤回失败");
}
}

@ -1,44 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.modules.distribute.entity.DirectClueUserEntity;
import com.baiye.modules.distribute.qo.DirectClueQo;
import com.baiye.modules.distribute.service.DirectClueService;
import com.baiye.modules.distribute.vo.DirectClueVO;
import com.baiye.result.R;
import com.baiye.security.util.SecurityUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
@RequiredArgsConstructor
@RestController
@Tag(name = "直达线索")
@RequestMapping("/directClue")
public class DirectClueController {
private final DirectClueService directClueService;
@GetMapping("/page")
@Operation(summary = "分页查询资源")
public R<PageResult<DirectClueVO>> getClueRecordPage(@Validated PageParam pageParam, DirectClueQo qo) {
Long salesmanUserId = qo.getSalesmanUserId();
Long distributeUserId = qo.getDistributeUserId();
if (salesmanUserId == null && distributeUserId == null) qo.setCreateBy(SecurityUtils.getCurrentUserId());
else qo.setCreateBy(SecurityUtils.getWhichUserId());
return R.ok(directClueService.queryPage(pageParam, qo));
}
@PostMapping("/distribute")
@Operation(summary = "分发员分发")
public R<Object> distribute(@Valid @RequestBody List<DirectClueUserEntity> directClueUserList) {
return R.ok(directClueService.distribute(directClueUserList));
}
}

@ -1,38 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.modules.distribute.service.DistributeReportService;
import com.baiye.result.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* @author wjt
* @date 2023/8/11
*/
@RequiredArgsConstructor
@RestController
@Tag(name = "分配信息统计")
@RequestMapping("/report")
public class DistributeReportController {
private final DistributeReportService distributeReportService;
@GetMapping("/report")
public void distributeReport() {
distributeReportService.distributeReport();
}
@GetMapping("/flow")
@Operation(summary = "流量分布统计")
public R<Object> reportFlow(@RequestParam(value = "userId", required = false) Long userId,
@RequestParam(value = "channel", required = false) String channel,
@RequestParam(value = "type", required = true) Integer type) {
return R.ok(distributeReportService.reportFlow(userId, channel, type));
}
}

@ -1,77 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.modules.distribute.dto.DistributeTaskDTO;
import com.baiye.modules.distribute.entity.DistributeTaskEntity;
import com.baiye.modules.distribute.qo.DistributeTaskQo;
import com.baiye.modules.distribute.service.DistributeTaskService;
import com.baiye.modules.distribute.vo.DistributeTaskVO;
import com.baiye.result.BaseResultCode;
import com.baiye.result.R;
import com.baiye.security.util.SecurityUtils;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@RequiredArgsConstructor
@RestController
@Tag(name = "分发任务管理")
@RequestMapping("/distributeTask")
public class DistributeTaskController {
private final DistributeTaskService distributeTaskService;
@PostMapping("/add")
@Operation(summary = "新增分发任务", description = "新增分发任务")
public R<Object> save(@Validated({ CreateGroup.class }) @RequestBody DistributeTaskDTO distributeTaskDTO) {
return distributeTaskService.add(distributeTaskDTO) ? R.ok()
: R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "添加失败");
}
@GetMapping("/page")
@Operation(summary = "分页查询分配任务")
public R<PageResult<DistributeTaskVO>> getClueRecordPage(@Validated PageParam pageParam, DistributeTaskQo qo) {
qo.setCreateBy(SecurityUtils.getCurrentUserId());
return R.ok(distributeTaskService.queryPage(pageParam, qo));
}
@GetMapping("/details")
@Operation(summary = "ID查询详情")
public R<DistributeTaskVO> getClueRecordPage(@RequestParam("id") Long id) {
return R.ok(distributeTaskService.details(id));
}
@PostMapping("/update")
@Operation(summary = "修改分发任务", description = "修改分发任务")
public R<Object> update(@Validated({ UpdateGroup.class }) @RequestBody DistributeTaskDTO distributeTaskDTO) {
return distributeTaskService.update(distributeTaskDTO) ? R.ok()
: R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "修改失败");
}
@PostMapping("/updateData")
@Operation(summary = "修改", description = "修改")
public R<Object> updateData(
@Validated({ UpdateGroup.class }) @RequestBody DistributeTaskEntity distributeTaskEntity) {
return distributeTaskService.updateData(distributeTaskEntity) ? R.ok()
: R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "修改失败");
}
@DeleteMapping("/{id}")
@Operation(summary = "ID删除任务")
public R<Void> deleteByUserId(@PathVariable("id") Long taskId) {
return distributeTaskService.del(taskId) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "删除失败");
}
@GetMapping("/executeTask")
@Operation(summary = "执行任务")
public R<Boolean> executeTask(@RequestParam("id") Long taskId) {
return distributeTaskService.executeTask(taskId) ? R.ok()
: R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "执行失败");
}
}

@ -1,62 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.modules.distribute.qo.FileContrastQo;
import com.baiye.modules.distribute.service.FileContrastService;
import com.baiye.modules.distribute.vo.FileContrastVO;
import com.baiye.result.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* @author Enzo
* @date 2024-3-13
*/
@RestController
@Tag(name = "文件对比")
@RequestMapping("/api/file/contrast")
@RequiredArgsConstructor
public class FileContrastController {
private final FileContrastService fileContrastService;
@GetMapping("/page")
@Operation(summary = "分页查询", description = "分页查询")
public R<PageResult<FileContrastVO>> getSysConfigPage(@Validated PageParam pageParam, FileContrastQo fileContrastQo) {
return R.ok(fileContrastService.queryPage(pageParam, fileContrastQo));
}
@Operation(summary = "创建任务")
@PostMapping("/create")
public R<Object> createTask(@RequestParam("files") List<MultipartFile> files,
@RequestParam(value = "taskName") String taskName) {
return Boolean.TRUE.equals(fileContrastService.createTask(files, taskName)) ? R.ok() : R.failed("上传失败");
}
@Operation(summary = "追加任务资源")
@PostMapping("/addition")
public R<Object> additionTaskSource(@RequestParam("files") List<MultipartFile> files,
@RequestParam(value = "taskId") Long taskId) {
return Boolean.TRUE.equals(fileContrastService.additionTaskSource(files, taskId)) ? R.ok() : R.failed("上传失败");
}
@Operation(summary = "任务对比")
@PostMapping("/build")
public R<Object> createTask(@RequestParam("files") List<MultipartFile> files,
@RequestParam(value = "taskId") Long taskId) {
return Boolean.TRUE.equals(fileContrastService.buildContrast(files, taskId)) ? R.ok() : R.failed("上传失败");
}
}

@ -1,36 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.modules.distribute.qo.FileContrastQo;
import com.baiye.modules.distribute.service.FileContrastRecordService;
import com.baiye.modules.distribute.vo.FileContrastRecordVO;
import com.baiye.result.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author Enzo
* @date 2024-3-13
*/
@RestController
@Tag(name = "文件对比")
@RequestMapping("/api/file/contrast/record")
@RequiredArgsConstructor
public class FileContrastRecordController {
private final FileContrastRecordService fileContrastRecordService;
@GetMapping("/page")
@Operation(summary = "分页查询", description = "分页查询")
public R<PageResult<FileContrastRecordVO>> getSysConfigPage(@Validated PageParam pageParam, FileContrastQo fileContrastQo) {
return R.ok(fileContrastRecordService.queryPage(pageParam, fileContrastQo));
}
}

@ -1,63 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.modules.distribute.qo.HomePageQo;
import com.baiye.modules.distribute.service.HomepageService;
import com.baiye.result.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
/**
* @author wjt
* @date 2023/12/6
*
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/homePage")
public class HomepageController {
private final HomepageService homepageService;
@GetMapping("/base")
@Operation(description = "今日实时")
public R<Object> baseCount() {
return R.ok(homepageService.baseCount());
}
@PostMapping("/enter")
@Operation(description = "渠道录入--管理员")
public R<Object> channelEnterClue(@RequestBody HomePageQo homePageQo) {
return R.ok(homepageService.channelEnterClue(homePageQo));
}
@PostMapping("/assigned")
@Operation(description = "渠道分发--管理员")
public R<Object> channelAssignedClue(@RequestBody HomePageQo homePageQo) {
return R.ok(homepageService.channelAssignedClue(homePageQo));
}
@PostMapping("/export")
@Operation(summary = "导出")
public void channelClueExport(HttpServletResponse response, @RequestBody HomePageQo homePageQo) {
homepageService.channelClueExport(response, homePageQo);
}
@PostMapping("/distributors")
@Operation(summary = "分发员")
public R<Object> distributorsEnterClue(@RequestBody HomePageQo homePageQo) {
return R.ok(homepageService.distributorsEnterClue(homePageQo));
}
@PostMapping("/salesman")
@Operation(summary = "业务员")
public R<Object> salesmanEnterClue(@RequestBody HomePageQo homePageQo) {
return R.ok(homepageService.salesmanEnterClue(homePageQo));
}
}

@ -1,63 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.domain.PageParam;
import com.baiye.modules.distribute.entity.LabelOrganizeEntity;
import com.baiye.modules.distribute.service.LabelOrganizeService;
import com.baiye.modules.distribute.qo.LabelOrganizeQo;
import com.baiye.result.BaseResultCode;
import com.baiye.result.R;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Set;
/**
* @author YQY
* @date 2021-12-10
*/
@Tag(name = "标签组管理")
@RestController
@RequestMapping("/labelOrganize")
@RequiredArgsConstructor
public class LabelOrganizeController {
private final LabelOrganizeService labelOrganizeService;
@PostMapping("/add")
@Operation(summary = "新增标签组和标签", description = "新增标签组和标签")
public R<Object> save(@Validated({ CreateGroup.class }) @RequestBody LabelOrganizeEntity labelOrganizeEntity) {
labelOrganizeService.add(labelOrganizeEntity);
return R.ok();
}
@PostMapping("/update")
@Operation(summary = "修改标签组", description = "修改标签组")
public R<Object> update(@Validated({ UpdateGroup.class }) @RequestBody LabelOrganizeEntity labelOrganizeEntity) {
return labelOrganizeService.update(labelOrganizeEntity) ? R.ok()
: R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "修改标签组失败");
}
@DeleteMapping("/del")
@Operation(summary = "删除标签组", description = "删除标签组")
public R<Object> del(@RequestBody Set<Long> ids) {
return labelOrganizeService.del(ids) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "删除标签组失败");
}
@GetMapping("/list")
@Operation(summary = "查询标签组列表", description = "查询标签组列表")
public R<Object> listLabelOrganize(LabelOrganizeQo labelOrganizeQo) {
return R.ok(labelOrganizeService.listLabelOrganize(labelOrganizeQo));
}
@GetMapping("/page")
@Operation(summary = "分页查询标签组", description = "分页查询标签组")
public R<Object> queryAll(@Validated PageParam pageParam, LabelOrganizeQo labelOrganizeQo) {
return R.ok(labelOrganizeService.queryPage(pageParam, labelOrganizeQo));
}
}

@ -1,42 +0,0 @@
package com.baiye.modules.distribute.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONUtil;
import com.baiye.modules.auth.SendClueResponse;
import com.baiye.modules.distribute.dto.PushClueDTO;
import com.baiye.modules.distribute.service.BuildModelService;
import com.baiye.modules.distribute.service.TripartiteService;
import com.baiye.result.R;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
/**
* @author Enzo
* @date 2023-12-6
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/v1/build")
public class ModelCallbackController {
private final BuildModelService buildModelService;
/**
*
*/
@PostMapping("/model/callback")
public SendClueResponse pushClue( @RequestBody String body) {
SendClueResponse response = new SendClueResponse();
// PushClueDTO clueDTO = BeanUtil.toBean(body, PushClueDTO.class);
// return Boolean.TRUE.equals(buildModelService.callbackByNid(clueDTO)) ? R.ok("success") : R.failed("message callback failed");
log.info("=============== the body {} ==============", JSONUtil.toJsonStr(body));
response.setIsExist(Boolean.FALSE);
response.setCode(200);
return response;
}
}

@ -1,75 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.modules.distribute.dto.OceanEngineTokenDto;
import com.baiye.modules.distribute.qo.OceanEnginQo;
import com.baiye.modules.distribute.service.OceanEngineClueService;
import com.baiye.modules.distribute.service.OceanEngineService;
import com.baiye.modules.distribute.vo.OceanEnginVO;
import com.baiye.result.R;
import com.baiye.security.util.SecurityUtils;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 广
*
* @author Enzo
* @date : 2022/9/14
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/oceanEngine")
public class OceanEngineController {
private final OceanEngineService oceanEngineService;
@GetMapping(value = "/url")
public R<String> query(String authorizeName) {
return R.ok(oceanEngineService.buildAuthorizationUrl(SecurityUtils.getCurrentUserId(), authorizeName));
}
@GetMapping("/page")
@Operation(summary = "分页查询", description = "分页查询")
public R<PageResult<OceanEnginVO>> getSysConfigPage(@Validated PageParam pageParam, OceanEnginQo oceanEnginQo) {
return R.ok(oceanEngineService.queryPage(pageParam, oceanEnginQo));
}
@PostMapping("/add")
public ResponseEntity<Object> save(@Validated @RequestBody OceanEngineTokenDto oceanEngineTokenDto) {
oceanEngineTokenDto.setUserId(SecurityUtils.getCurrentUserId());
String url = oceanEngineService.save(oceanEngineTokenDto);
return new ResponseEntity<>(url, HttpStatus.OK);
}
@GetMapping("update")
public ResponseEntity<Object> update(Integer status, Long id) {
oceanEngineService.updateAuthorizationStatus(status, id);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@GetMapping(value = "/callback")
public ResponseEntity<Void> callback(@RequestParam("state") String state, @RequestParam("auth_code") String authCode,
HttpServletResponse response) throws IOException {
log.info("================== the state as {},authCode as {} ================", state, authCode);
oceanEngineService.processRequest(state, authCode);
response.sendRedirect("https://byffp.top/dashboard");
return new ResponseEntity<>(HttpStatus.OK);
}
}

@ -1,37 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.modules.distribute.dto.DBPushClueDTO;
import com.baiye.modules.distribute.dto.ReceivePushLeadsDTO;
import com.baiye.modules.distribute.service.OutsideReqService;
import com.baiye.result.BaseResultCode;
import com.baiye.result.R;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
@RequiredArgsConstructor
@RestController
@RequestMapping("/outside")
public class OutsideReqController {
private final OutsideReqService outsideReqService;
/**
*
*/
@PostMapping("/pushClue/{appKey}")
public R<Object> pushClue(@PathVariable("appKey") String appKey, @RequestBody DBPushClueDTO DBPushClueDTO) {
outsideReqService.pushClue(appKey, DBPushClueDTO);
return R.ok();
}
/**
*
* @return
*/
@PostMapping("/pushLeads")
public R<Object> externalPushClue(@RequestBody ReceivePushLeadsDTO receivePushLeadsDTO) {
return outsideReqService.externalPushClue(receivePushLeadsDTO) ? R.ok()
: R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "删除文件失败");
}
}

@ -1,62 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.modules.distribute.entity.PushConfigEntity;
import com.baiye.modules.distribute.qo.SendClueQo;
import com.baiye.modules.distribute.service.PushClueService;
import com.baiye.modules.distribute.service.PushConfigService;
import com.baiye.modules.distribute.vo.PushClueInfoVo;
import com.baiye.result.R;
import com.baiye.security.util.SecurityUtils;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* @author Enzo
* @date 2023-12-6
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/push/clue")
public class PushClueController {
private final PushConfigService pushConfigService;
private final PushClueService pushClueService;
@PostMapping("/config/add")
@Operation(summary = "新增配置")
public R<Object> addConfig(@RequestBody PushConfigEntity pushConfigEntity) {
pushConfigService.addConfig(pushConfigEntity);
return R.ok();
}
@GetMapping("/config/query")
@Operation(summary = "新增配置")
public R<Object> queryConfig() {
return R.ok(pushConfigService.queryByUserId(SecurityUtils.getCurrentUserId()));
}
@PostMapping("/config/update")
@Operation(summary = "修改配置信息")
public R<Object> updateConfig(@RequestBody PushConfigEntity pushConfigEntity) {
pushConfigService.updateConfig(pushConfigEntity);
return R.ok();
}
@GetMapping("/page")
@Operation(summary = "分页查询资源")
public R<PageResult<PushClueInfoVo>> getClueRecordPage(@Validated PageParam pageParam, SendClueQo qo) {
qo.setAssignedBy(SecurityUtils.getCurrentUserId());
return R.ok(pushClueService.queryPage(pageParam, qo));
}
}

@ -1,55 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.modules.distribute.dto.PushLinkDTO;
import com.baiye.modules.distribute.qo.PushLinkQo;
import com.baiye.modules.distribute.service.PushLinkService;
import com.baiye.modules.distribute.vo.PushLinkVO;
import com.baiye.result.BaseResultCode;
import com.baiye.result.R;
import com.baiye.security.util.SecurityUtils;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@RequiredArgsConstructor
@RestController
@Tag(name = "推送配置")
@RequestMapping("/pushLink")
public class PushLinkController {
private final PushLinkService pushLinkService;
@GetMapping("/page")
@Operation(summary = "分页查询")
public R<PageResult<PushLinkVO>> getClueRecordPage(@Validated PageParam pageParam, PushLinkQo qo) {
qo.setCreateBy(SecurityUtils.getCurrentUserId());
return R.ok(pushLinkService.queryPage(pageParam, qo));
}
@PostMapping("/add")
@Operation(summary = "新增(生成)链接", description = "新增(生成)链接")
public R<String> save(@Validated({ CreateGroup.class }) @RequestBody PushLinkDTO pushLinkDTO) {
return R.ok(pushLinkService.add(pushLinkDTO));
}
@GetMapping("/detail")
@Operation(summary = "链接详情", description = "链接详情")
public R<PushLinkVO> detail(Long id) {
return R.ok(pushLinkService.pushDetail(id));
}
@PostMapping("/update")
@Operation(summary = "修改链接", description = "修改链接")
public R<Object> update(@Validated({UpdateGroup.class}) @RequestBody PushLinkDTO pushLinkDTO) {
return pushLinkService.update(pushLinkDTO) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "修改失败");
}
}

@ -1,94 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.modules.distribute.dto.StoreDTO;
import com.baiye.modules.distribute.entity.StoreEntity;
import com.baiye.modules.distribute.qo.StoreQo;
import com.baiye.modules.distribute.service.StoreService;
import com.baiye.modules.distribute.vo.StoreVO;
import com.baiye.result.R;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
* @author wjt
* @date 2023/9/5
*/
@RequiredArgsConstructor
@RestController
@Tag(name = "门店管理")
@RequestMapping("/store")
public class StoreController {
private final StoreService storeService;
@GetMapping("/queryPage")
@Operation(summary = "分页查询门店")
public R<PageResult<StoreVO>> queryStorePage(@Validated PageParam pageParam, StoreQo storeQo) {
return R.ok(storeService.queryStorePage(pageParam, storeQo));
}
@GetMapping("/queryAll")
@Operation(summary = "不分页查询门店")
public R<List<StoreVO>> queryStore(StoreQo storeQo) {
return R.ok(storeService.queryStore(storeQo));
}
@GetMapping("/queryRange")
@Operation(summary = "查询范围内所有的门店")
public R<List<StoreDTO>> queryRangeStore(@RequestParam("longitude") Double longitude,
@RequestParam("latitude") Double latitude,
@RequestParam("distance") Double distance) {
return R.ok(storeService.queryRangeStore(longitude, latitude, distance));
}
@PostMapping("/add")
@Operation(summary = "新增门店信息")
public R<Object> addStore(@Validated({CreateGroup.class}) @RequestBody StoreEntity storeEntity) {
storeService.addStore(storeEntity);
return R.ok();
}
@PostMapping("/update")
@Operation(summary = "修改门店信息")
public R<Object> updateStore(@Validated({UpdateGroup.class}) @RequestBody StoreEntity storeEntity) {
storeService.updateStore(storeEntity);
return R.ok();
}
@DeleteMapping("/{id}")
@Operation(summary = "删除门店信息")
public R<Object> deleteStore(@PathVariable("id") Long storeId) {
storeService.deleteStore(storeId);
return R.ok();
}
@GetMapping("/reservation")
@Operation(summary = "门店预约")
public R<LinkedList<Map<String, Object>>> queryStoreReservation(@RequestParam(value = "startTime", required = false) String startTime,
@RequestParam(value = "endTime", required = false) String endTime,
@RequestParam("storeId") Long storeId) {
return R.ok(storeService.queryStoreReservation(startTime, endTime, storeId));
}
@GetMapping("/export")
@Operation(summary = "门店预约详情导出")
public void exportStoreDetails(HttpServletResponse response,
@RequestParam(value = "startTime", required = false) String startTime,
@RequestParam(value = "endTime", required = false) String endTime,
@RequestParam("storeId") Long storeId) throws IOException {
storeService.exportStoreDetails(response, startTime, endTime, storeId);
}
}

@ -1,31 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.modules.distribute.service.StoreUserService;
import com.baiye.result.R;
import com.baiye.system.model.dto.SysUserNameRoleDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author wjt
* @date 2023/9/15
*/
@RequiredArgsConstructor
@RestController
@Tag(name = "门店用户管理")
@RequestMapping("/storeUser")
public class StoreUserController {
private final StoreUserService storeUserService;
@GetMapping("/queryAll")
@Operation(summary = "查询门店业务员角色")
public R<List<SysUserNameRoleDTO>> queryStore() {
return R.ok(storeUserService.listByRoleCode());
}
}

@ -1,44 +0,0 @@
package com.baiye.modules.distribute.controller;
import com.baiye.modules.distribute.entity.TagEntity;
import com.baiye.modules.distribute.service.TagService;
import com.baiye.result.R;
import com.baiye.validation.group.CreateGroup;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author Enzo
* @date 2023-12-6
*/
@RestController
@Tag(name = "标签管理")
@RequestMapping("/api/tag")
@RequiredArgsConstructor
public class TagController {
private final TagService tagService;
@PostMapping("/add")
public R<Object> add(@Validated({CreateGroup.class}) @RequestBody TagEntity entity) {
tagService.create(entity);
return R.ok();
}
@PostMapping("/update")
public R<Object> update(@RequestBody List<TagEntity> list) {
tagService.update(list);
return R.ok();
}
@GetMapping("/list")
public R<List<TagEntity>> list(@RequestParam(value = "routeStatus", required = false) Integer routeStatus,
@RequestParam(value = "isSalesman", required = false) Boolean isSalesman) {
return R.ok(tagService.selectList(routeStatus, isSalesman));
}
}

@ -1,33 +0,0 @@
package com.baiye.modules.distribute.controller;
import cn.hutool.json.JSONUtil;
import com.baiye.modules.distribute.dto.PushClueDTO;
import com.baiye.modules.distribute.service.TripartiteService;
import com.baiye.result.R;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
/**
* @author Enzo
* @date 2023-12-6
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/v1/tripartite")
public class TripartiteController {
private final TripartiteService tripartiteService;
/**
*
*/
@PostMapping("/push/clue/{appKey}")
public R<String> pushClue(@PathVariable("appKey") String appKey, @RequestBody PushClueDTO dto) {
log.info("=============== the push appKey {},body {} ==============", appKey, JSONUtil.toJsonStr(dto));
return Boolean.TRUE.equals(tripartiteService.callbackByAppKeyAndNid
(appKey, dto)) ? R.ok("success") : R.failed("message callback failed");
}
}

@ -1,29 +0,0 @@
package com.baiye.modules.distribute.converter;
import com.baiye.modules.distribute.dto.ClueDTO;
import com.baiye.modules.distribute.entity.ClueEntity;
import com.baiye.modules.distribute.vo.ClueVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@Mapper
public interface ClueConverter {
ClueConverter INSTANCE = Mappers.getMapper(ClueConverter.class);
/**
* DTO PO
* @param dto DTO
* @return ClueEntity PO
*/
ClueEntity dtoToPo(ClueDTO dto);
/**
* vo
* @param entity
* @return
*/
ClueVO poToExcelVo(ClueEntity entity);
}

@ -1,37 +0,0 @@
package com.baiye.modules.distribute.converter;
import com.baiye.modules.distribute.dto.CreateCustomDTO;
import com.baiye.modules.distribute.dto.CustomDTO;
import com.baiye.modules.distribute.entity.CustomEntity;
import com.baiye.modules.distribute.vo.CustomVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@Mapper
public interface CustomConverter {
CustomConverter INSTANCE = Mappers.getMapper(CustomConverter.class);
/**
* DTO PO
* @param dto DTO
* @return ClueEntity PO
*/
CustomEntity dtoToPo(CustomDTO dto);
/**
* DTO PO
* @param dto DTO
* @return ClueEntity PO
*/
CustomEntity dtoToPo(CreateCustomDTO dto);
/**
* vo
* @param entity
* @return
*/
CustomVO poToExcelVo(CustomEntity entity);
}

@ -1,20 +0,0 @@
package com.baiye.modules.distribute.converter;
import com.baiye.modules.distribute.dto.DirectClueDTO;
import com.baiye.modules.distribute.entity.DirectClueEntity;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@Mapper
public interface DirectClueConverter {
DirectClueConverter INSTANCE = Mappers.getMapper(DirectClueConverter.class);
/**
* DTO PO
* @param dto DTO
* @return ClueEntity PO
*/
DirectClueEntity dtoToPo(DirectClueDTO dto);
}

@ -1,26 +0,0 @@
package com.baiye.modules.distribute.converter;
import com.baiye.modules.distribute.entity.FileContrastRecordEntity;
import com.baiye.modules.distribute.entity.FileContrastSourceEntity;
import com.baiye.modules.distribute.vo.FileContrastRecordVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
/**
* @author Enzo
* @date 2024-3-13
*/
@Mapper
public interface FileContrasRecordConverter {
FileContrasRecordConverter INSTANCE = Mappers.getMapper(FileContrasRecordConverter.class);
/**
* vo
*
* @param entity
* @return
*/
FileContrastRecordVO entityToVo(FileContrastRecordEntity entity);
}

@ -1,26 +0,0 @@
package com.baiye.modules.distribute.converter;
import com.baiye.modules.distribute.entity.FileContrastEntity;
import com.baiye.modules.distribute.vo.FileContrastVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
/**
* @author Enzo
* @date 2024-3-13
*/
@Mapper
public interface FileContrastConverter {
FileContrastConverter INSTANCE = Mappers.getMapper(FileContrastConverter.class);
/**
* vo
*
* @param entity
* @return
*/
FileContrastVO entityToVo(FileContrastEntity entity);
}

@ -1,24 +0,0 @@
package com.baiye.modules.distribute.converter;
import com.baiye.modules.distribute.entity.OceanEngineToken;
import com.baiye.modules.distribute.vo.OceanEnginVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
/**
* @author Enzo
* @date 2023-11-6
*/
@Mapper
public interface OceanEngineConverter {
OceanEngineConverter INSTANCE = Mappers.getMapper(OceanEngineConverter.class);
/**
* Vo
* @param token
* @return
*/
OceanEnginVO entityToVo(OceanEngineToken token);
}

@ -1,20 +0,0 @@
package com.baiye.modules.distribute.converter;
import com.baiye.modules.distribute.entity.PushClueInfoEntity;
import com.baiye.modules.distribute.vo.PushClueInfoVo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@Mapper
public interface PushClueConverter {
PushClueConverter INSTANCE = Mappers.getMapper(PushClueConverter.class);
/**
*
* @param clueInfo
* @return
*/
PushClueInfoVo poToPageVo(PushClueInfoEntity clueInfo);
}

@ -1,28 +0,0 @@
package com.baiye.modules.distribute.converter;
import com.baiye.modules.distribute.dto.PushLinkDTO;
import com.baiye.modules.distribute.entity.PushLinkEntity;
import com.baiye.modules.distribute.vo.PushLinkVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@Mapper
public interface PushLinkConverter {
PushLinkConverter INSTANCE = Mappers.getMapper(PushLinkConverter.class);
/**
* DTO PO
* @param dto DTO
* @return ClueEntity PO
*/
PushLinkEntity dtoToPo(PushLinkDTO dto);
/**
* vo
* @param entity
* @return
*/
PushLinkVO entityToVo(PushLinkEntity entity);
}

@ -1,40 +0,0 @@
package com.baiye.modules.distribute.dto;
import lombok.Builder;
import lombok.Data;
import java.util.List;
/**
* @author Enzo
* @date : 2023/12/7
*/
@Data
@Builder
public class CallbackCustomDTO {
private Integer sex;
private String remark;
private Long companyId;
private String enterName;
private String customName;
private Integer customType;
private String customNid;
private Integer channelType;
private Long reportUserId;
private Long distributeId;
private String channelName;
private List<String> identifying;
}

@ -1,33 +0,0 @@
package com.baiye.modules.distribute.dto;
import com.baiye.validation.group.SubmitGroup;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class ChangeCustomDTO {
/**
* ID
*/
@NotNull(message = "ID不能为空", groups = { SubmitGroup.class })
private Long customId;
/**
* : 0- 1- 2-
*/
@NotNull(message = "状态不能为空", groups = { SubmitGroup.class })
private Integer status;
/**
* ID
*/
private Long reviewUserId;
/**
* ID
*/
private List<Long> salesmanUserId;
}

@ -1,103 +0,0 @@
package com.baiye.modules.distribute.dto;
import com.baiye.modules.distribute.entity.LabelEntity;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ClueDTO {
@Schema(title = "线索ID")
@NotNull(message = "分发ID不能为空", groups = { UpdateGroup.class })
private Long clueId;
@Schema(title = "线索来源")
private String originName;
@Schema(title = "手机号")
private String nid;
@Schema(title = "线索时间")
private String clueTime;
@Schema(title = "线索备注")
private String remark;
@Schema(title = "记录ID")
private Long clueRecordId;
private String otherClue;
@Schema(title = "分配人用户ID")
private Long assignedBy;
@Schema(title = "资源标签")
private String clueLabel;
@Schema(title = "资源标签名称")
private String clueLabelName;
@Schema(title = "分配人用户名")
private String assignedName;
@Schema(title = "资源线索ID")
private Long clueStageId;
@Schema(title = "资源线索名称")
private String clueStageName;
@Schema(title = "创建者")
private Long createBy;
@Schema(title = "资源线索ID")
private Boolean isNewClue;
@Schema(title = "资源标签集合")
private List<LabelEntity> clueLabelList;
@Schema(title = "公司管理员用户ID")
private Long companyId;
@Schema(title = "性别(0-男1-女)")
private Integer sex;
@Schema(title = "客户资料")
private String customInformation;
@Schema(title = "渠道标识")
private List<String> channelIdentifying;
@Schema(title = "渠道类型渠道类型(1 手动创建 2文件上传 3飞鱼回传 4话单回传 5 api回传)")
private Integer channelType;
@Schema(title = "客户ID")
private Long customId;
public ClueDTO(Long clueId, String originName, String nid, String remark, String otherClue, Long assignedBy, String assignedName, Long createBy, Boolean isNewClue, Long companyId, Integer sex, String customInformation, List<String> channelIdentifying, Integer channelType, Long customId) {
this.clueId = clueId;
this.originName = originName;
this.nid = nid;
this.remark = remark;
this.otherClue = otherClue;
this.assignedBy = assignedBy;
this.assignedName = assignedName;
this.createBy = createBy;
this.isNewClue = isNewClue;
this.companyId = companyId;
this.sex = sex;
this.customInformation = customInformation;
this.channelIdentifying = channelIdentifying;
this.channelType = channelType;
this.customId = customId;
}
}

@ -1,29 +0,0 @@
package com.baiye.modules.distribute.dto;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @Author YQY
* @Date 2023/8/15
*/
@Data
public class ClueStageDTO {
@Schema(title = "ID")
@NotNull(message = "ID不能为空", groups = { UpdateGroup.class })
private Long clueStageId;
@Schema(title = "线索阶段名称")
@NotNull(message = "线索阶段名称不能为空", groups = { CreateGroup.class })
private String name;
@Schema(title = "线索阶段排序")
@NotNull(message = "线索阶段排序不能为空", groups = { CreateGroup.class })
private Integer sort;
}

@ -1,21 +0,0 @@
package com.baiye.modules.distribute.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springdoc.api.annotations.ParameterObject;
/**
* @author Enzo
* @date 2023-10-20
*/
@Data
@Schema(title = "对比dto")
@ParameterObject
public class ContrastDTO {
private String nid;
private String remark;
private String isRepeat;
}

@ -1,37 +0,0 @@
package com.baiye.modules.distribute.dto;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author Enzo
* @date 2023-12-6
*/
@Data
public class CreateCustomDTO {
public CreateCustomDTO() {
}
@Schema(title = "客户名称")
private String customName;
@Schema(title = "客户联系方式")
@NotBlank(message = "客户联系方式不能为空", groups = {CreateGroup.class, UpdateGroup.class})
private String customNid;
@Schema(title = "备注")
private String remark;
@Schema(title = "渠道类型")
private Integer channelType;
}

@ -1,83 +0,0 @@
package com.baiye.modules.distribute.dto;
import com.baiye.modules.distribute.entity.CustomStoreEntity;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class CustomDTO {
@Schema(title = "ID")
@NotNull(message = "ID不能为空", groups = { UpdateGroup.class })
private Long customId;
@Schema(title = "客户名称")
@NotBlank(message = "客户名称不能为空", groups = { CreateGroup.class, UpdateGroup.class })
private String customName;
@Schema(title = "客户联系方式")
@NotBlank(message = "客户联系方式不能为空", groups = { CreateGroup.class, UpdateGroup.class })
private String customNid;
@Schema(title = "省")
private String economize;
@Schema(title = "市")
private String market;
@Schema(title = "区")
private String distinguish;
@Schema(title = "详细地址")
private String detailAddress;
@Schema(title = "其它地址信息-定位使用")
private String otherAddressesInfo;
@Schema(title = "半径")
private String radius;
@Schema(title = "报名状态 0:待提交 1:已报名")
@NotNull(message = "状态不能为空", groups = { CreateGroup.class })
private Integer enrollStatus;
@Schema(title = "备注")
private String remark;
@Schema(description = "审核类型 2初审 3复审")
private Integer type;
@Schema(title = "客户类型 0:地理 1:基本")
@NotNull(message = "客户类型不能为空", groups = { CreateGroup.class })
private Integer customType;
@Schema(title = "门店信息")
private List<CustomStoreEntity> customStoreEntities;
@Schema(title = "创建人")
private Long createBy;
@Schema(title = "渠道类型(1 手动创建 2文件上传 3飞鱼回传 4话单回传 5 api回传)")
private Integer channelType;
@Schema(title = "渠道名称")
private String channelName;
@Schema(title = "分发员id")
private Long distributorId;
@Schema(title = "业务员ID集合")
private List<String> salesmanUserId;
@Schema(title = "客户资料")
private String customInformation;
@Schema(title = "性别(0-男1-女)")
private Integer sex;
}

@ -1,33 +0,0 @@
package com.baiye.modules.distribute.dto;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
@Data
public class CustomStoreDTO {
@Schema(title = "ID")
@NotNull(message = "ID不能为空", groups = { UpdateGroup.class })
private Long customStoreId;
@Schema(title = "门店ID")
@NotNull(message = "门店ID不能为空", groups = { CreateGroup.class })
private Long storeId;
@Schema(title = "客户ID")
@NotNull(message = "客户ID不能为空", groups = { CreateGroup.class })
private Long customId;
@Schema(title = "门店名称")
@NotNull(message = "门店名称不能为空", groups = { CreateGroup.class })
private String storeName;
@Schema(title = "预约时间")
@NotNull(message = "预约时间不能为空", groups = { CreateGroup.class })
private String reservationTime;
}

@ -1,32 +0,0 @@
package com.baiye.modules.distribute.dto;
import lombok.Data;
@Data
public class DBPushClueDTO {
/**
*
*/
private String mobile;
/**
*
*/
private String empClientTypeName;
/**
*
*/
private String remark;
/**
* , mobile
*/
private String called;
/**
* 线ID
*/
private Long variable;
}

@ -1,22 +0,0 @@
package com.baiye.modules.distribute.dto;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class DirectClueDTO {
@Schema(title = "ID")
@NotNull(message = "ID不能为空", groups = { UpdateGroup.class })
private Long directClueId;
@Schema(title = "有效状态 0:有效 1:无效")
private Integer effectiveStatus;
@Schema(title = "标签")
private List<String> clueLabel;
}

@ -1,27 +0,0 @@
package com.baiye.modules.distribute.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.List;
@Data
public class DistributeDTO implements Serializable {
private static final long serialVersionUID = 6275518278441151400L;
@NotEmpty(message = "部门不能为空")
private List<Long> deptIds;
@NotEmpty(message = "资源不能为空")
private List<Long> resourceList;
@Schema(title = "是否权重分配")
private Boolean isWeight;
@Schema(title = "权重")
private List<Double> weights;
}

@ -1,20 +0,0 @@
package com.baiye.modules.distribute.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class DistributeResponseDTO implements Serializable {
private static final long serialVersionUID = 2772000439619817023L;
@Schema(title = "部门id集合")
private Long deptId;
@Schema(title = "分配资源")
private List<Long> responseList;
}

@ -1,68 +0,0 @@
package com.baiye.modules.distribute.dto;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springdoc.api.annotations.ParameterObject;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;
import static cn.hutool.core.date.DatePattern.NORM_DATETIME_PATTERN;
/**
* @Author YQY
* @Date 2023/8/11
*/
@Data
@Schema(title = "分发任务查询对象")
@ParameterObject
public class DistributeTaskDTO {
@Schema(title = "分发任务ID")
@NotNull(message = "分发ID不能为空", groups = { UpdateGroup.class })
private Long distributeTaskId;
@Schema(title = "分发类型 0:手动分发 1:自动分发")
@NotNull(message = "分发类型不能为空", groups = { CreateGroup.class })
private Integer distributeTaskType;
@Schema(title = "任务名称")
@NotBlank(message = "任务名称不能为空", groups = { CreateGroup.class })
private String taskName;
@Schema(title = "分发规则 0:平均 1:权重")
@NotNull(message = "请选择分发规则", groups = { CreateGroup.class })
private Integer ruleStatus;
@Schema(title = "分发时间 0:实时 1:定时")
private Integer timeStatus;
@Schema(title = "定时开始时间")
@DateTimeFormat(pattern = NORM_DATETIME_PATTERN)
@JsonFormat(pattern = NORM_DATETIME_PATTERN)
private LocalDateTime startTime;
@Schema(title = "文件规则前缀")
private String fileRulePrefix;
@Schema(title = "上传文件记录ID “,”相隔")
private List<Long> fileRecordIdList;
@Schema(title = "分发任务人员和权重")
@NotEmpty(message = "分发任务人员不能为空", groups = { CreateGroup.class })
private List<DistributeTaskUserDTO> users;
@Schema(title = "执行状态 0:未执行 1:执行中 2:已执行 3:暂停")
private Integer executeStatus;
@Schema(title = "任务默认类型 0:默认 1:非默认")
private Integer defaultType;
}

@ -1,19 +0,0 @@
package com.baiye.modules.distribute.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @Author YQY
* @Date 2023/8/11
*/
@Data
public class DistributeTaskUserDTO {
@Schema(title = "用户id")
private Long userId;
@Schema(title = "权重值")
private Integer weight;
}

@ -1,29 +0,0 @@
package com.baiye.modules.distribute.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springdoc.api.annotations.ParameterObject;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* @author wjt
* @date 2023/9/13
*/
@Data
@Schema(title = "门店管理dto")
@ParameterObject
public class FileContrastDTO {
private MultipartFile[] files;
@NotEmpty(message = "用户id不能为空")
private List<Long> userIds;
@NotBlank(message = "任务名称不能为空")
private String taskName;
}

@ -1,23 +0,0 @@
package com.baiye.modules.distribute.dto;
import lombok.Data;
/**
* @author wjt
* @date 2023/12/6
*/
@Data
public class HomePageDTO {
private String createTime;
private Long assignedBy;
private String assignedName;
private Long createBy;
private String enterName;
private Integer num;
}

@ -1,23 +0,0 @@
package com.baiye.modules.distribute.dto;
import cn.hutool.core.text.CharSequenceUtil;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
* @author wjt
* @date 2023/11/10
*/
@Data
public class OceanEngineResponseDTO {
private Object data;
@JsonProperty("code")
private Integer code;
@JsonProperty("message")
private String message;
@JsonProperty("request_id")
private String requestId = CharSequenceUtil.EMPTY;
}

@ -1,35 +0,0 @@
package com.baiye.modules.distribute.dto;
import cn.hutool.core.date.DatePattern;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
/**
* @author Enzo
* @date 2023-11-2
*/
@Data
public class OceanEngineTokenDto implements Serializable {
private static final long serialVersionUID = -7107014280197393381L;
private Long userId;
private Long expiresIn;
private Long companyId;
private Integer status;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
private Date authorizeTime;
@NotBlank
private String authorizeName;
private Long refreshTokenExpiresIn;
}

@ -1,46 +0,0 @@
package com.baiye.modules.distribute.dto;
import lombok.Data;
import java.util.Map;
/**
* @author Enzo
* @date 2023-12-6
*/
@Data
public class PushClueDTO {
private String remark;
/**
* , mobile
*/
private String called;
/**
* id
*/
private String recId;
/**
* 线ID
*/
private Long variable;
/**
* nid
*/
private String mobile;
private String empClientTypeName;
private Map<String, String> clientVariables;
}

@ -1,45 +0,0 @@
package com.baiye.modules.distribute.dto;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class PushLinkDTO {
@Schema(title = "ID")
@NotNull(message = "ID不能为空", groups = { UpdateGroup.class })
private Long id;
@Schema(title = "业务名")
@NotNull(message = "业务名不能为空", groups = { CreateGroup.class })
private String name;
@Schema(title = "appKey标识")
private String appKey;
@Schema(title = "业务方、公司 用户ID")
private Long companyId;
@Schema(title = "渠道标识")
private List<String> channelIdentifyingList;
@Schema(title = "渠道链接")
private String channelUrl;
@Schema(title = "渠道类型(0-大坝1-飞鱼2-第三方)")
@NotNull(message = "请选择渠道类型", groups = { CreateGroup.class })
private Integer channelType;
@Schema(title = "状态(1-启用接收,0-拒绝接收)")
private Integer status;
@Schema(title = "创建人")
private Long createBy;
}

@ -1,24 +0,0 @@
package com.baiye.modules.distribute.dto;
import com.baiye.validation.group.CreateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Data
public class ReadFileDTO {
@Schema(title = "记录ID")
private Long recordId;
@Schema(title = "渠道名称")
@NotBlank(message = "渠道名称不能为空", groups = {CreateGroup.class})
private String channelName;
@Schema(title = "分发人用户ID集合")
@NotEmpty(message = "用户不能为空", groups = {CreateGroup.class})
private List<Long> distributorsUserIdList;
}

@ -1,18 +0,0 @@
package com.baiye.modules.distribute.dto;
import lombok.Data;
import java.util.List;
/**
* @Author YQY
* @Date 2023/8/10
*/
@Data
public class ReceivePushLeadsDTO {
private String appKey;
private List<String> clueList;
}

@ -1,41 +0,0 @@
package com.baiye.modules.distribute.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springdoc.api.annotations.ParameterObject;
import java.math.BigDecimal;
/**
* @author wjt
* @date 2023/9/13
*/
@Data
@Schema(title = "门店管理dto")
@ParameterObject
public class StoreDTO {
@Schema(description = "门店名称")
private String storeName;
@Schema(description = "门店id")
private Long id;
@Schema(description = "纬度")
private BigDecimal latitude;
@Schema(description = "经度")
private BigDecimal longitude;
@Schema(description = "联系方式")
private String nid;
@Schema(description = "门店地址")
private String address;
@Schema(description = "距离/米")
private Double distance;
@Schema(description = "序号")
private Integer index;
@Schema(description = "区")
private String county;
@Schema(description = "详情")
private String detail;
@Schema(description = "营业开始时间")
private String tradeStartTime;
@Schema(description = "营业结束时间")
private String tradeEndTime;
}

@ -1,23 +0,0 @@
package com.baiye.modules.distribute.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springdoc.api.annotations.ParameterObject;
/**
* @author Enzo
* @date 2023-10-20
*/
@Data
@Schema(title = "门店管理dto")
@ParameterObject
public class StoreUserDTO {
@Schema(description = "门店名称")
private String storeName;
@Schema(description = "用户id")
private Long userId;
@Schema(description = "用户id")
private Long storeId;
}

@ -1,27 +0,0 @@
package com.baiye.modules.distribute.dto;
import com.google.gson.annotations.SerializedName;
import lombok.Builder;
import lombok.Data;
/**
* @author Enzo
* @date : 2024/3/4
*/
@Data
@Builder
public class TripartiteDTO {
@SerializedName("timestamp")
private Long timestamp;
@SerializedName("request_id")
private String requestId;
@SerializedName("nid")
private String nid;
@SerializedName("other_info")
private String otherInfo;
}

@ -1,61 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baiye.entity.BaseEntity;
import com.baiye.extend.mybatis.plus.alias.TableAlias;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
/**
* @Author YQY
* @Date 2023/8/1
*/
@Getter
@Setter
@TableName("tb_clue_record")
@Schema(title = "线索上传文件记录")
@TableAlias("cr")
public class ClueRecordEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId
@Schema(title = "线索上传文件记录ID")
private Long clueRecordId;
@Schema(title = "上传状态 0:上传中 1:上传失败 2:上传成功")
private Integer status = 0;
@Schema(title = "上传文件名")
private String oldFileName;
@Schema(title = "存入路径")
private String url;
@Schema(title = "备注")
private String remark;
@Schema(title = "渠道类型")
private String channelType;
@Schema(title = "渠道标识")
private String channelIdentifying;
@Schema(title = "成功条数")
private Integer successNum = 0;
@Schema(title = "失败条数")
private Integer failNum = 0;
@Schema(title = "分配状态: 0:未分配 1:已分配")
private Integer allocationStatus = 0;
@Schema(title = "记录类型 0:文件上传 1:资源推送")
private Integer recordType = 0;
@Schema(title = "分发状态 0:未分发 1:已分发")
private Integer distributeStatus = 0;
}

@ -1,39 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull;
@Getter
@Setter
@ToString
@TableName("tb_clue_stage")
@Schema(title = "线索阶段表")
@Validated
public class ClueStageEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId
@Schema(title = "ID")
@NotNull(message = "ID不能为空", groups = { UpdateGroup.class })
private Long clueStageId;
@Schema(title = "线索阶段名称")
@NotNull(message = "线索阶段名称不能为空", groups = { CreateGroup.class })
private String name;
@Schema(title = "线索阶段排序")
@NotNull(message = "线索阶段排序不能为空", groups = { CreateGroup.class })
private Integer sort;
}

@ -1,118 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baiye.extend.mybatis.plus.alias.TableAlias;
import com.baiye.extend.mybatis.plus.converter.JsonStringArrayTypeHandler;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
* @author Enzo
*/
@Getter
@Setter
@TableName(value = "tb_custom", autoResultMap = true)
@TableAlias("cm")
@Validated
@Schema(title = "客户表")
public class CustomEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
@Schema(description = "编号")
private String batchNo;
@TableId
@Schema(title = "ID")
@NotNull(message = "ID不能为空", groups = { UpdateGroup.class })
private Long customId;
@Schema(title = "客户名称")
@NotNull(message = "客户名称不能为空", groups = { CreateGroup.class })
private String customName;
@Schema(title = "客户联系方式")
@NotNull(message = "客户联系方式不能为空", groups = { CreateGroup.class })
private String customNid;
@Schema(title = "省")
@NotNull(message = "地址不能为空", groups = { CreateGroup.class })
private String economize;
@Schema(title = "市")
@NotNull(message = "地址不能为空", groups = { CreateGroup.class })
private String market;
@Schema(title = "区")
private String distinguish;
@Schema(title = "详细地址")
@NotNull(message = "详细地址不能为空", groups = { CreateGroup.class })
private String detailAddress;
@Schema(title = "其它地址信息-定位使用")
private String otherAddressesInfo;
@Schema(title = "半径")
@NotNull(message = "半径不能为空", groups = { CreateGroup.class })
private String radius;
@Schema(title = "报名状态 0:待提交 1:已报名 2 审核通过")
@NotNull(message = "状态不能为空", groups = { CreateGroup.class })
private Integer enrollStatus;
@Schema(description = "审核类型 2初审 3复审")
private Integer type;
@Schema(description = "公司id")
private Long companyId;
@Schema(description = "录入员姓名")
private String enterName;
@Schema(description = "分发时间")
private Date distributeTime;
@Schema(title = "备注")
private String remark;
@Schema(title = "客户类型 0:地理 1:基础")
private Integer customType;
@Schema(title = "复审员id")
private Long reviewUserId;
@Schema(title = "分发员id")
private Long distributorId;
@Schema(title = "渠道类型渠道类型(1 手动创建 2文件上传 3飞鱼回传 4话单回传 5 api回传)")
private Integer channelType;
@Schema(title = "性别(0-男1-女)")
private Integer sex;
@Schema(title = "客户资料")
private String customInformation;
@Schema(title = "渠道名称")
private String channelName;
@TableField(value = "channel_identifying", typeHandler = JsonStringArrayTypeHandler.class)
@Schema(title = "渠道标识")
private List<String> channelIdentifying;
@TableField(value = "salesman_user_id", typeHandler = JsonStringArrayTypeHandler.class)
@Schema(title = "业务员ID集合")
private List<String> salesmanUserId;
}

@ -1,46 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baiye.validation.group.UpdateGroup;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
@Getter
@Setter
@TableName("tb_custom_store")
@Validated
@Schema(title = "客户表门店关联表")
public class CustomStoreEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId
@Schema(title = "ID")
@NotNull(message = "ID不能为空", groups = { UpdateGroup.class })
private Long customStoreId;
@Schema(title = "门店ID")
@NotNull(message = "门店不能为空")
private Long storeId;
@Schema(title = "客户ID")
private Long customId;
@Schema(title = "门店名称")
@NotBlank(message = "门店名称不能为空")
private String storeName;
@Schema(title = "预约日期")
private LocalDateTime reservationDate;
@Schema(title = "预约时间")
private String reservationTime;
}

@ -1,65 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baiye.extend.mybatis.plus.alias.TableAlias;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.time.LocalDateTime;
@Getter
@Setter
@TableName("tb_direct_clue")
@TableAlias("dc")
@Schema(title = "直达线索表")
@AllArgsConstructor
@NoArgsConstructor
public class DirectClueEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId
@Schema(title = "直达线索ID")
private Long directClueId;
@Schema(title = "编号")
private String batchNo;
@Schema(title = "客户名称")
private String customName;
@Schema(title = "nid")
private String nid;
@Schema(title = "来源 0:巨量")
private Integer originType;
@Schema(title = "有效状态 0:有效 1:无效")
private Integer effectiveStatus;
@Schema(title = "资源标签")
private String clueLabelName;
@Schema(title = "分发状态 0:未分发 1:已分发")
private Integer distributeType;
@Schema(title = "分发日期")
private LocalDateTime distributeDate;
@Schema(title = "资源分发的分发员用户ID")
private Long distributeUserId;
@Schema(title = "其它线索信息")
private String otherClue;
public DirectClueEntity(String customName, String nid, String otherClue) {
this.customName = customName;
this.nid = nid;
this.otherClue = otherClue;
}
}

@ -1,34 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.validation.group.CreateGroup;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
@Getter
@Setter
@TableName("tb_direct_clue_user")
@Schema(title = "直达线索表")
public class DirectClueUserEntity {
private static final long serialVersionUID = 1L;
@TableId
@Schema(title = "直达线索用户关联表ID")
private Long id;
@Schema(title = "线索ID")
@NotNull(message = "线索不能为空", groups = CreateGroup.class)
private Long clueId;
@Schema(title = "用户ID")
@NotNull(message = "用户不能为空", groups = CreateGroup.class)
private Long userId;
@Schema(title = "用户名")
private String userName;
}

@ -1,70 +0,0 @@
package com.baiye.modules.distribute.entity;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
import java.util.Date;
/**
* @author wjt
* @date 2023/8/11
*/
@Getter
@Setter
@ToString
@TableName("tb_distribute_report_channel")
@Schema(title = "导入线索分配统计-渠道")
public class DistributeReportChannelEntity implements Serializable {
@TableId
@Schema(title = "ID")
private Long id;
@Schema(title = "用户id")
private Long userId;
@Schema(title = "用户名")
private String username;
@Schema(title = "渠道")
private String channel;
@Schema(title = "当日量")
private Integer todayNum = 0;
@Schema(title = "总量")
private Integer totalNum = 0;
@Schema(title = "分配量")
private Integer distributeNum = 0;
@Schema(title = "占比")
private double ratio;
@Schema(title = "日环比")
private double ratioDay;
@Schema(title = "统计日期")
private Date createTime;
public DistributeReportChannelEntity createDistributeReportChannel(Long userId, String username, String channel,
Integer todayNum, Integer totalNum, Integer distributeNum, Double ratio, Double ratioDay) {
this.setUserId(userId);
this.setUsername(username);
this.setChannel(channel);
this.setTodayNum(todayNum);
this.setTotalNum(totalNum);
this.setDistributeNum(distributeNum);
this.setRatio(ratio);
this.setRatioDay(ratioDay);
this.setCreateTime(DateUtil.date());
return this;
}
}

@ -1,62 +0,0 @@
package com.baiye.modules.distribute.entity;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
import java.util.Date;
/**
* @author wjt
* @date 2023/8/11
*/
@Getter
@Setter
@ToString
@TableName("tb_distribute_report")
@Schema(title = "导入线索分配统计")
public class DistributeReportEntity implements Serializable {
@TableId
@Schema(title = "ID")
private Long id;
@Schema(title = "用户id")
private Long userId;
@Schema(title = "用户名")
private String username;
@Schema(title = "渠道")
private String channel;
@Schema(title = "总量")
private Integer todayNum = 0;
@Schema(title = "占比")
private double ratio;
@Schema(title = "日环比")
private double ratioDay;
@Schema(title = "统计日期")
private Date createTime;
public DistributeReportEntity createDistributeReport(Long userId, String username, String channel, Integer todayNum,
Double ratio, Double ratioDay) {
this.setUserId(userId);
this.setUsername(username);
this.setChannel(channel);
this.setTodayNum(todayNum);
this.setRatio(ratio);
this.setRatioDay(ratioDay);
this.setCreateTime(DateUtil.date());
return this;
}
}

@ -1,66 +0,0 @@
package com.baiye.modules.distribute.entity;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
import java.util.Date;
/**
* @author wjt
* @date 2023/8/11
*/
@Getter
@Setter
@ToString
@TableName("tb_distribute_report_user")
@Schema(title = "导入线索分配统计-用户")
public class DistributeReportUserEntity implements Serializable {
@TableId
@Schema(title = "ID")
private Long id;
@Schema(title = "用户id")
private Long userId;
@Schema(title = "用户名")
private String username;
@Schema(title = "当日量")
private Integer todayNum = 0;
@Schema(title = "总量")
private Integer totalNum = 0;
@Schema(title = "分配量")
private Integer distributeNum = 0;
@Schema(title = "占比")
private double ratio;
@Schema(title = "日环比")
private double ratioDay;
@Schema(title = "统计日期")
private Date createTime;
public DistributeReportUserEntity createDistributeReportUser(Long userId, String username, Integer todayNum,
Integer totalNum, Integer distributeNum, Double ratio, Double ratioDay) {
this.setUserId(userId);
this.setUsername(username);
this.setTodayNum(todayNum);
this.setTotalNum(totalNum);
this.setDistributeNum(distributeNum);
this.setRatio(ratio);
this.setRatioDay(ratioDay);
this.setCreateTime(DateUtil.date());
return this;
}
}

@ -1,62 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baiye.extend.mybatis.plus.alias.TableAlias;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.time.LocalDateTime;
/**
* @Author YQY
* @Date 2023/8/11
*/
@Getter
@Setter
@ToString
@TableName("tb_distribute_task")
@Schema(title = "分发任务")
@TableAlias("dt")
public class DistributeTaskEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId
@Schema(title = "分发任务ID")
private Long distributeTaskId;
@Schema(title = "分发类型 0:手动分发 1:自动分发")
private Integer distributeTaskType;
@Schema(title = "任务名称")
private String taskName;
@Schema(title = "分发规则 0:平均 1:权重")
private Integer ruleStatus;
@Schema(title = "分发时间 0:实时 1:定时")
private Integer timeStatus;
@Schema(title = "定时开始时间")
private LocalDateTime startTime;
@Schema(title = "文件规则前缀")
private String fileRulePrefix;
@Schema(title = "上传文件记录ID “,”相隔")
private String fileRecordId;
@Schema(title = "执行状态 0:未执行 1:执行中 2:已执行 3:暂停")
private Integer executeStatus;
@Schema(title = "任务默认类型 0:默认 1:非默认")
private Integer defaultType;
@Schema(title = "任务执行次数")
private Integer executeNum;
}

@ -1,37 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* @Author YQY
* @Date 2023/8/11
*/
@Getter
@Setter
@ToString
@TableName("tb_distribute_task_user")
@Schema(title = "分发任务用户权重表")
public class DistributeTaskUserEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId
@Schema(title = "ID")
private Long id;
@Schema(title = "分发任务ID")
private Long distributeTaskId;
@Schema(title = "用户ID")
private Long userId;
@Schema(title = "权重值")
private Integer weight;
}

@ -1,43 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baiye.extend.mybatis.plus.alias.TableAlias;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @author Enzo
* @date : 2024-3-13
*/
@Getter
@Setter
@TableAlias("fl")
@Schema(title = "文件上传对比")
@TableName(value = "tb_file_contrast_task" ,autoResultMap = true)
public class FileContrastEntity extends BaseEntity {
private static final long serialVersionUID = 7079254193191231031L;
@TableId
@Schema(title = "ID")
private Long id;
@Schema(title = "任务名称")
private String taskName;
@Schema(title = "对比状态")
private Integer status;
@Schema(title = "对比数量")
private Integer contrastNum;
}

@ -1,45 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baiye.extend.mybatis.plus.alias.TableAlias;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
/**
* @author Enzo
* @date : 2024-3-13
*/
@Getter
@Setter
@TableAlias("fs")
@Schema(title = "文件上传对比")
@TableName(value = "tb_file_contrast_record", autoResultMap = true)
public class FileContrastRecordEntity extends BaseEntity {
private static final long serialVersionUID = 1272925960799071730L;
@TableId
@Schema(title = "ID")
private Long id;
@Schema(title = "任务id")
private Long taskId;
@Schema(title = "对比数量")
private Integer contrastNum;
@Schema(title = "对比状态")
private Integer status;
@Schema(title = "文件地址")
private String filePath;
@Schema(title = "下载地址")
private String downPath;
}

@ -1,40 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baiye.extend.mybatis.plus.alias.TableAlias;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
/**
* @author Enzo
* @date : 2024-3-13
*/
@Getter
@Setter
@TableAlias("fs")
@Schema(title = "文件上传对比")
@TableName(value = "tb_file_contrast_source" ,autoResultMap = true)
public class FileContrastSourceEntity extends BaseEntity {
private static final long serialVersionUID = -2751989800003535012L;
@TableId
@Schema(title = "ID")
private Long id;
@Schema(title = "任务id")
private Long taskId;
@Schema(title = "nid")
private String nid;
@Schema(title = "备注")
private String remark;
}

@ -1,33 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@TableName("tb_label")
@Schema(title = "标签管理")
public class LabelEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId
@Schema(title = "ID")
private Long id;
@Schema(title = "标签名称")
private String labelName;
@Schema(title = "标签类型")
private Integer type;
@Schema(title = "所属标签组ID")
private Long labelOrganizeId;
}

@ -1,51 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baiye.extend.mybatis.plus.alias.TableAlias;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Set;
@Getter
@Setter
@ToString
@TableName("tb_label_organize")
@Schema(title = "标签组管理")
@TableAlias("lo")
public class LabelOrganizeEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId
@Schema(title = "ID")
@NotNull(message = "组ID不能为空", groups = { UpdateGroup.class })
private Long id;
@Schema(title = "标签组名称")
@NotNull(message = "标签组名称不能为空", groups = { CreateGroup.class })
private String name;
@Schema(title = "是否启用标签组 0:不启用 1:启用")
@NotNull(message = "请选择是否启用标签组", groups = { CreateGroup.class })
private Integer isEnable = 1;
@TableField(exist = false)
private List<String> labelList;
@TableField(exist = false)
private List<LabelEntity> labelEntityList;
@TableField(exist = false)
private Set<Long> delLabelId;
}

@ -1,30 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* @author wjt
* @date 2023/11/2
*/
@Getter
@Setter
@ToString
@TableName(value = "tb_ocean_engine_source", autoResultMap = true)
public class OceanEngineSourceEntity extends BaseEntity {
@TableId
@Schema(title = "id")
private Long id;
@Schema(title = "user_id")
private Long userId;
@Schema(title = "content")
private String content;
}

@ -1,64 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.extend.mybatis.plus.converter.JsonStringArrayTypeHandler;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.util.Date;
import java.util.List;
/**
* @author Enzo
* @date : 2023-11-2
*/
@Getter
@Setter
@ToString
@TableName(value = "tb_ocean_engine_token", autoResultMap = true)
public class OceanEngineToken {
@TableId
@Schema(title = "id")
private Long id;
@Schema(name = "status")
private Integer status;
@Schema(name = "user_id")
private Long userId;
@Schema(name = "authorize_name")
private String authorizeName;
@Schema(name = "company_id")
private Long companyId;
@Schema(name = "access_token")
private String accessToken;
@Schema(name = "refresh_token")
private String refreshToken;
@TableField(value = "advertiser_ids", typeHandler = JsonStringArrayTypeHandler.class)
@Schema(name = "advertiser_ids")
private List<String> advertiserIds;
@Schema(name = "expires_in")
private Long expiresIn;
@Schema(name = "refresh_token_expires_in")
private Long refreshTokenExpiresIn;
@Schema(name = "authorize_time")
private Date authorizeTime;
}

@ -1,49 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* @author Enzo
* @date : 2024/3/1
*/
@Getter
@Setter
@ToString
@TableName("tb_push_task_user")
@Schema(title = "推送线索表")
public class PushClueInfoEntity extends BaseEntity {
private static final long serialVersionUID = 1087915923814826863L;
@TableId
@Schema(title = "ID")
private Long id;
@Schema(title = "用户id")
private Long userId;
@Schema(title = "线索id")
private Long clueId;
@Schema(title = "请求id")
private String requestId;
@Schema(title = "推送内容")
private String pushInfo;
@Schema(title = "推送状态")
private Integer pushStatus;
@Schema(title = "返回消息")
private String pushResult;
@Schema(title = "推送次数")
private Integer sendNum;
}

@ -1,37 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* @author Enzo
* @date : 2024/3/1
*/
@Getter
@Setter
@ToString
@TableName("tb_push_config")
@Schema(title = "推送配置表")
public class PushConfigEntity extends BaseEntity {
private static final long serialVersionUID = -6950203949409966313L;
@TableId
@Schema(title = "id")
private Long id;
@Schema(title = "用户id")
private Long userId;
@Schema(title = "是否启用")
private Integer status;
@Schema(title = "推送链接")
private String pushUrl;
}

@ -1,56 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baiye.extend.mybatis.plus.alias.TableAlias;
import com.baiye.extend.mybatis.plus.converter.JsonStringArrayTypeHandler;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
@TableName(value = "tb_push_link", autoResultMap = true)
@Schema(title = "推送链接")
@TableAlias("pl")
public class PushLinkEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
@Schema(title = "ID")
private Long id;
@Schema(title = "业务名")
private String name;
@Schema(title = "appKey")
private String appKey;
@Schema(title = "记录ID")
private Long clueRecordId;
@Schema(title = "业务方、公司 用户ID")
private Long companyId;
@Schema(title = "渠道标识")
@TableField(value = "channel_identifying", typeHandler = JsonStringArrayTypeHandler.class)
private List<String> channelIdentifying;
@Schema(title = "渠道链接")
private String channelUrl;
@Schema(title = "渠道类型(0-大坝1-飞鱼2-第三方)")
private Integer channelType;
@Schema(title = "渠道类型(0~2)")
private Integer authType;
@Schema(title = "状态(1-启用接收,0-拒绝接收)")
private Integer status;
}

@ -1,86 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.LogicDeletedBaseEntity;
import com.baiye.extend.mybatis.plus.alias.TableAlias;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* @author wjt
* @date 2023/9/5
*/
@Getter
@Setter
@TableName("tb_store")
@Schema(title = "门店")
@TableAlias("st")
public class StoreEntity extends LogicDeletedBaseEntity {
@TableId
@Schema(description = "ID")
@Parameter(description = "id")
@NotNull(message = "ID不能为空", groups = {UpdateGroup.class})
private Long id;
@Schema(description = "门店名称")
@NotNull(message = "门店名称不能为空", groups = {CreateGroup.class})
private String storeName;
@Schema(description = "门店类型 0-直营店 1-加盟店")
@NotNull(message = "门店类型不能为空", groups = {CreateGroup.class})
private Integer storeType;
@Schema(description = "门店状态 0-正常 1-未营业")
@NotNull(message = "门店状态不能为空", groups = {CreateGroup.class})
private Integer storeStatus;
@Schema(description = "nid")
private String nid;
@Schema(description = "省份")
@NotNull(message = "省份不能为空", groups = {CreateGroup.class})
private String province;
@Schema(description = "城市")
@NotNull(message = "城市不能为空", groups = {CreateGroup.class})
private String city;
@Schema(description = "区县")
@NotNull(message = "区县不能为空", groups = {CreateGroup.class})
private String county;
@Schema(description = "详细地址")
private String detail;
@Schema(description = "营业开始时间")
@NotNull(message = "营业时间不能为空", groups = {CreateGroup.class})
private String tradeStartTime;
@Schema(description = "营业结束时间")
@NotNull(message = "营业时间不能为空", groups = {CreateGroup.class})
private String tradeEndTime;
@TableField(exist = false)
@Schema(description = "地址")
private String address;
@TableField(exist = false)
@Schema(description = "关联的坐席")
private Long userId;
@Schema(description = "经度")
@NotNull(message = "经度不能为空", groups = {CreateGroup.class})
private BigDecimal longitude;
@Schema(description = "玮度")
@NotNull(message = "玮度不能为空", groups = {CreateGroup.class})
private BigDecimal latitude;
}

@ -1,34 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.LogicDeletedBaseEntity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
/**
* @author wjt
* @date 2023/9/15
*/
@Getter
@Setter
@TableName("tb_store_user")
@Schema(title = "门店账号关联")
public class StoreUserEntity extends LogicDeletedBaseEntity {
@TableId
@Schema(description = "ID")
@Parameter(description = "id")
private Long id;
@Schema(description = "门店id")
private Long storeId;
@Schema(description = "用户id")
private Long userId;
}

@ -1,33 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* @author Enzo
* @date : 2023/12/6
*/
@Getter
@Setter
@ToString
@TableName(value = "tb_channel_tag", autoResultMap = true)
public class TagEntity extends BaseEntity {
private static final long serialVersionUID = 8752729281820146291L;
@TableId
@Schema(name = "id")
private Long id;
@Schema(name = "route_name")
private String routeName;
@Schema(name = "route_status")
private Integer routeStatus = 1;
}

@ -1,33 +0,0 @@
package com.baiye.modules.distribute.entity;
import com.baiye.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
/**
* @Author YQY
* @Date 2023/8/9
*/
@Getter
@Setter
@TableName("tb_user_secret_key")
@Schema(title = "用户appKey和秘钥对应表")
public class UserSecretKeyEntity extends BaseEntity {
@TableId
@Schema(title = "ID")
private Long id;
@Schema(title = "appKey")
private String appKey;
@Schema(title = "私钥")
private String privateKey;
@Schema(title = "公钥")
private String publicKey;
}

@ -1,96 +0,0 @@
package com.baiye.modules.distribute.mapper;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.extend.mybatis.plus.conditions.query.LambdaQueryWrapperX;
import com.baiye.extend.mybatis.plus.mapper.ExtendMapper;
import com.baiye.extend.mybatis.plus.toolkit.WrappersX;
import com.baiye.modules.distribute.converter.ClueConverter;
import com.baiye.modules.distribute.dto.HomePageDTO;
import com.baiye.modules.distribute.entity.ClueEntity;
import com.baiye.modules.distribute.qo.ClueQo;
import com.baiye.modules.distribute.qo.HomePageQo;
import com.baiye.modules.distribute.vo.ClueVO;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface ClueMapper extends ExtendMapper<ClueEntity> {
List<Long> findUndistributedClueIds(@Param("list") List<Long> recordIdList);
default PageResult<ClueVO> queryPage(PageParam pageParam, ClueQo qo) {
IPage<ClueEntity> page = this.prodPage(pageParam);
Wrapper<ClueEntity> wrapperX = this.buildQueryWrapper(qo);
this.selectPage(page, wrapperX);
IPage<ClueVO> convert = page.convert(ClueConverter.INSTANCE::poToExcelVo);
return new PageResult<>(convert.getRecords(), convert.getTotal());
}
/**
*
* @param qo
* @return
*/
default List<ClueVO> queryList(ClueQo qo) {
Wrapper<ClueEntity> wrapperX = buildQueryWrapper(qo);
return this.selectListByQo(wrapperX);
}
/**
*
* @param wrapperX
* @return
*/
List<ClueVO> selectListByQo(@Param(Constants.WRAPPER) Wrapper<ClueEntity> wrapperX);
/**
* qo wrapper
* @param qo
* @return LambdaQueryWrapperX
*/
default Wrapper<ClueEntity> buildQueryWrapper(ClueQo qo) {
LambdaQueryWrapperX<ClueEntity> wrapperX = WrappersX.lambdaQueryX(ClueEntity.class);
wrapperX.eqIfPresent(ClueEntity::getDeleted, 0)
.eqIfPresent(ClueEntity::getNid, qo.getNid())
.eqIfPresent(ClueEntity::getClueId, qo.getClueId())
.eqIfPresent(ClueEntity::getCreateBy, qo.getCreateBy())
.likeIfPresent(ClueEntity::getClueLabelName, qo.getClueLabelName())
.eqIfPresent(ClueEntity::getAssignedBy, qo.getAssignedBy())
.eqIfPresent(ClueEntity::getCompanyId, qo.getCompanyId())
.eqIfPresent(ClueEntity::getCustomId, qo.getCustomId())
.inIfPresent(ClueEntity::getAssignedBy, (Object[]) qo.getSalesmanArray())
.orderByDesc(ClueEntity::getCreateTime);
if (StringUtils.isNotBlank(qo.getStartTime()) && StringUtils.isNotBlank(qo.getEndTime())) {
wrapperX.between(ClueEntity::getCreateTime, qo.getStartTime(), qo.getEndTime());
}
return wrapperX;
}
List<HomePageDTO> selectDetailByChannelAndAssigned(@Param("qo") HomePageQo homePageQo);
Integer addCount(@Param("date") String date, @Param("companyId") Long companyId);
List<HomePageDTO> distributorsAssignedClueByTime(@Param("qo") HomePageQo homePageQo);
List<Long> findCustomId(@Param("assignedBy") Long assignedBy, @Param("createBy")Long createBy);
/**
* 线id
*
* @param id
* @param createBy
* @param num
* @return
*/
List<ClueVO> findCustomIdAndCreate(@Param("customId") Long id, @Param("createBy") Long createBy,@Param("num") Integer num);
}

@ -1,51 +0,0 @@
package com.baiye.modules.distribute.mapper;
import com.baiye.domain.SelectData;
import com.baiye.modules.distribute.entity.ClueRecordEntity;
import com.baiye.modules.distribute.vo.ClueRecordVO;
import com.baiye.modules.distribute.qo.ClueRecordQo;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.extend.mybatis.plus.conditions.query.LambdaAliasQueryWrapperX;
import com.baiye.extend.mybatis.plus.mapper.ExtendMapper;
import com.baiye.extend.mybatis.plus.toolkit.WrappersX;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface ClueRecordMapper extends ExtendMapper<ClueRecordEntity> {
default PageResult<ClueRecordVO> queryPage(PageParam pageParam, ClueRecordQo qo) {
IPage<ClueRecordVO> page = this.prodPage(pageParam);
LambdaAliasQueryWrapperX<ClueRecordEntity> wrapperX = WrappersX.lambdaAliasQueryX(ClueRecordEntity.class);
wrapperX.likeIfPresent(ClueRecordEntity::getOldFileName, qo.getOldFileName())
.likeIfPresent(ClueRecordEntity::getChannelType, qo.getChannelType())
.eqIfPresent(ClueRecordEntity::getStatus, qo.getStatus())
.eqIfPresent(ClueRecordEntity::getAllocationStatus, qo.getAllocationStatus())
.eqIfPresent(ClueRecordEntity::getDistributeStatus, qo.getDistributeStatus())
.eqIfPresent(ClueRecordEntity::getCreateBy, qo.getCreateBy())
.orderByDesc(ClueRecordEntity::getCreateTime);
if (StringUtils.isNotBlank(qo.getStartTime()) && StringUtils.isNotBlank(qo.getEndTime())) {
wrapperX.between(ClueRecordEntity::getCreateTime, qo.getStartTime(), qo.getEndTime());
}
this.selectByPage(page, wrapperX);
return new PageResult<>(page.getRecords(), page.getTotal());
}
IPage<ClueRecordVO> selectByPage(IPage<ClueRecordVO> page,
@Param(Constants.WRAPPER) Wrapper<ClueRecordEntity> wrapper);
void updateAllocationStatusAndDistributeStatus(@Param("list") List<Long> recordIdList,
@Param("status") Integer status, @Param("distributeStatus") Integer distributeStatus);
void updateDistributeStatus(@Param("list") List<Long> recordIdList, @Param("status") Integer status);
List<SelectData<Void>> listSelectData(@Param("qo") ClueRecordQo qo);
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save