From f1eb6bd72a28e37ac6491cacffb52d3afb8f237c Mon Sep 17 00:00:00 2001 From: yqy Date: Mon, 19 Dec 2022 14:34:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=90=88=E5=B9=B6(=E6=9C=AA?= =?UTF-8?q?=E6=B5=8B=E8=AF=95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/config/application-dev.yml | 2 +- .../main/resources/config/application-dev.yml | 2 +- .../resources/config/application-prod.yml | 2 +- .../baiye/model/dto/ClueQueryCriteria.java | 3 + .../module/dao/ClueBackupsRepository.java | 10 +++ .../java/com/baiye/module/dao/ClueJpa.java | 20 +++--- .../com/baiye/module/entity/ClueBackups.java | 62 +++++++++++++++++++ .../module/service/impl/ClueServiceImpl.java | 5 +- .../java/com/baiye/task/ClueBackupsTask.java | 41 ++++++++++++ .../com/baiye/task/PublicCluePoolSync.java | 4 +- .../src/main/resources/application.yml | 2 +- 11 files changed, 135 insertions(+), 18 deletions(-) create mode 100644 ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/dao/ClueBackupsRepository.java create mode 100644 ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/ClueBackups.java create mode 100644 ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/ClueBackupsTask.java diff --git a/ad-platform-auth/src/main/resources/config/application-dev.yml b/ad-platform-auth/src/main/resources/config/application-dev.yml index dc884f1f..fa898a8c 100644 --- a/ad-platform-auth/src/main/resources/config/application-dev.yml +++ b/ad-platform-auth/src/main/resources/config/application-dev.yml @@ -19,7 +19,7 @@ spring: cloud: nacos: server-addr: 127.0.0.1:8848 -# server-addr: 101.35.109.129:8848 +# server-addr: 8.130.96.163:8848 config: server-addr: ${spring.cloud.nacos.server-addr} file-extension: yml diff --git a/ad-platform-gateway/src/main/resources/config/application-dev.yml b/ad-platform-gateway/src/main/resources/config/application-dev.yml index fabf61cc..817ee2f2 100644 --- a/ad-platform-gateway/src/main/resources/config/application-dev.yml +++ b/ad-platform-gateway/src/main/resources/config/application-dev.yml @@ -13,7 +13,7 @@ spring: cloud: nacos: server-addr: 127.0.0.1:8848 - # server-addr: 101.35.109.129 + # server-addr: 8.130.96.163 config: server-addr: ${spring.cloud.nacos.server-addr} file-extension: yml diff --git a/ad-platform-gateway/src/main/resources/config/application-prod.yml b/ad-platform-gateway/src/main/resources/config/application-prod.yml index ec152ca3..66903d58 100644 --- a/ad-platform-gateway/src/main/resources/config/application-prod.yml +++ b/ad-platform-gateway/src/main/resources/config/application-prod.yml @@ -19,7 +19,7 @@ spring: lower-case-service-id: true # admin-service ADMIN-SERVICE /admin-service/** -> 微服务 (ADMIN-SERVICE) 自动转发,忽略大小写 nacos: server-addr: 172.16.69.134:8848 - # server-addr: 101.35.109.129:8848 + # server-addr: 8.130.96.163:8848 config: server-addr: ${spring.cloud.nacos.server-addr} file-extension: yml diff --git a/ad-platform-pojo/src/main/java/com/baiye/model/dto/ClueQueryCriteria.java b/ad-platform-pojo/src/main/java/com/baiye/model/dto/ClueQueryCriteria.java index b9be1045..3cf10b34 100644 --- a/ad-platform-pojo/src/main/java/com/baiye/model/dto/ClueQueryCriteria.java +++ b/ad-platform-pojo/src/main/java/com/baiye/model/dto/ClueQueryCriteria.java @@ -78,6 +78,9 @@ public class ClueQueryCriteria { private List clueTypes; + @ApiModelProperty(value = "是否移入到公海,0-否 1-是") + private Integer publicPoolStatus; + @ApiModelProperty(value = "是否是业务管理员查询, 判断是否加密字段") private Boolean isAdmin = false; } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/dao/ClueBackupsRepository.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/dao/ClueBackupsRepository.java new file mode 100644 index 00000000..617c22d4 --- /dev/null +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/dao/ClueBackupsRepository.java @@ -0,0 +1,10 @@ +package com.baiye.module.dao; + +import com.baiye.module.entity.ClueBackups; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.stereotype.Repository; + +@Repository +public interface ClueBackupsRepository extends JpaRepository, JpaSpecificationExecutor { +} diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/dao/ClueJpa.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/dao/ClueJpa.java index a25b9561..aaeb7aa5 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/dao/ClueJpa.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/dao/ClueJpa.java @@ -122,6 +122,7 @@ public class ClueJpa { List clueTypes = clueQueryCriteria.getClueTypes(); Integer memberStatus = clueQueryCriteria.getMemberStatus(); Boolean isAdmin = clueQueryCriteria.getIsAdmin(); + Integer publicPoolStatus = clueQueryCriteria.getPublicPoolStatus(); List newestCallTimeList = clueQueryCriteria.getNewestCallTime(); List createTime = clueQueryCriteria.getCreateTime(); @@ -176,12 +177,15 @@ public class ClueJpa { if (clueType != null) { sql.append("AND cm.clue_type = :clueType "); } - if (CollUtil.isNotEmpty(clueTypes)){ + if (CollUtil.isNotEmpty(clueTypes)) { sql.append("AND cm.clue_type in :clueTypes "); } if (CollUtil.isNotEmpty(clueQueryCriteria.getTaskIds())) { sql.append("and cm.task_id in :taskIds "); } + if (publicPoolStatus != null) { + sql.append("and cm.public_pool_status = :publicPoolStatus "); + } //拼接最后加入时间排序,没加id排序出现数据重复问题(注意空格) sql.append("ORDER BY c.create_time desc ,c.id "); @@ -239,12 +243,15 @@ public class ClueJpa { if (clueType != null) { query.setParameter("clueType", clueType); } - if (CollUtil.isNotEmpty(clueTypes)){ + if (CollUtil.isNotEmpty(clueTypes)) { query.setParameter("clueTypes", clueTypes); } if (CollUtil.isNotEmpty(clueQueryCriteria.getTaskIds())) { query.setParameter("taskIds", clueQueryCriteria.getTaskIds()); } + if (publicPoolStatus != null) { + query.setParameter("publicPoolStatus", publicPoolStatus); + } query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); return query.getResultList(); } @@ -308,13 +315,9 @@ public class ClueJpa { clueDto.setOrigin((Integer) row.get("origin")); clueDto.setCollectTime((Date) row.get("collectTime")); BigInteger organizeId = (BigInteger) row.get("organizeId"); - if (organizeId != null) { - clueDto.setOrganizeId(organizeId.longValue()); - } + if (organizeId != null) clueDto.setOrganizeId(organizeId.longValue()); BigInteger memberId = (BigInteger) row.get("memberId"); - if (memberId != null){ - clueDto.setMemberId(memberId.longValue()); - } + if (memberId != null) clueDto.setMemberId(memberId.longValue()); clueDto.setOptimisticVersion((Integer) row.get("optimisticVersion")); clueDto.setClueStage((Integer) row.get("clueStage")); clueDto.setClueCallStatus((Integer) row.get("clueCallStatus")); @@ -365,6 +368,7 @@ public class ClueJpa { } //===========================================tb_public_clue_pool表查询======================================================== + /** * 分页查询,不分页传null */ diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/ClueBackups.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/ClueBackups.java new file mode 100644 index 00000000..3e589ce0 --- /dev/null +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/ClueBackups.java @@ -0,0 +1,62 @@ +package com.baiye.module.entity; + +import com.baiye.util.JpaConverterAes; +import com.baiye.util.JpaConverterListJson; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.hibernate.annotations.CreationTimestamp; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * 删除资源备份表 + * + * @author yqy + * @date 2022-11-24 + */ +@Setter +@Getter +@Entity +@Table(name = "tb_clue_backups") +@EntityListeners(AuditingEntityListener.class) +public class ClueBackups implements Serializable { + + private static final long serialVersionUID = 1271571231859316736L; + + @Id + @Column(name = "id", nullable = false) + private Long id; + + @ApiModelProperty(value = "姓名") + @Column(name = "name") + private String name; + + @ApiModelProperty(value = "nid") + @Column(name = "nid") + @Convert(converter = JpaConverterAes.class) + private String nid; + + @ApiModelProperty(value = "数据来源 0:自定义模板 1:UC 2:快手 3:抖音 4:百度 5:动态任务表单 6:拓客") + @Column(name = "origin") + private Integer origin; + + @ApiModelProperty(value = "线索阶段:0:新线索 1:待沟通 2:有意向 3:已加微信 4:无意向 5:邀约中 6:到场7:已成交") + @Column(name = "clue_stage") + private Integer clueStage; + + @Convert(converter = JpaConverterListJson.class) + private List sourceLabel; + + @ApiModelProperty(value = "创建时间") + @Column(name = "create_time") + @CreationTimestamp + private Date createTime; +} diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/ClueServiceImpl.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/ClueServiceImpl.java index 14a1db13..b5c71fea 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/ClueServiceImpl.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/ClueServiceImpl.java @@ -569,6 +569,7 @@ public class ClueServiceImpl implements ClueService { public Map queryCluePool(ClueQueryCriteria clueQueryCriteria, Pageable pageable) { if (clueQueryCriteria.getMemberId() != null) { clueQueryCriteria.setUserId(clueQueryCriteria.getMemberId()); + clueQueryCriteria.setPublicPoolStatus(DefaultNumberConstants.ZERO_NUMBER); TaskQueryCriteria taskQueryCriteria = new TaskQueryCriteria(); taskQueryCriteria.setCreateBy(clueQueryCriteria.getMemberId()); taskQueryCriteria.setTaskType(DefaultNumberConstants.ONE_NUMBER); @@ -585,10 +586,6 @@ public class ClueServiceImpl implements ClueService { } Set taskIds = findTaskId(taskQueryCriteria); clueQueryCriteria.setTaskIds(taskIds); - taskIds = findTaskId(taskQueryCriteria); - if (clueQueryCriteria.getTaskName() != null && CollUtil.isEmpty(taskIds)) { - return PageUtil.toPage(DefaultNumberConstants.ZERO_NUMBER, DefaultNumberConstants.ZERO_NUMBER); - } return findClueList(clueQueryCriteria, pageable); } else { log.info("========================用户id为空============================"); diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/ClueBackupsTask.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/ClueBackupsTask.java new file mode 100644 index 00000000..5a00dede --- /dev/null +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/ClueBackupsTask.java @@ -0,0 +1,41 @@ +package com.baiye.task; + +import cn.hutool.core.collection.CollUtil; +import com.baiye.model.dto.ClueDto; +import com.baiye.module.dao.ClueBackupsRepository; +import com.baiye.module.entity.Clue; +import com.baiye.module.entity.ClueBackups; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +/** + * 备份资源异步任务 + */ +@Component +@Slf4j +@RequiredArgsConstructor +public class ClueBackupsTask { + + private final ClueBackupsRepository clueBackupsRepository; + + @Transactional(rollbackFor = Exception.class) + @Async(value = "SendBigDataTaskExecutor") + public void clueBackups(List clueAll) { + if (CollUtil.isNotEmpty(clueAll)) { + List list = new ArrayList<>(); + for (ClueDto clue : clueAll) { + ClueBackups clueBackups = new ClueBackups(); + BeanUtils.copyProperties(clue, clueBackups,"createTime"); + list.add(clueBackups); + } + clueBackupsRepository.saveAll(list); + } + } +} diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/PublicCluePoolSync.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/PublicCluePoolSync.java index abf7fec0..6a1271a4 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/PublicCluePoolSync.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/PublicCluePoolSync.java @@ -1,9 +1,9 @@ package com.baiye.task; - import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import com.baiye.constant.DefaultNumberConstants; import com.baiye.enums.ClueStageEnum; import com.baiye.feign.UserClient; import com.baiye.module.dao.ClueMiddleRepository; @@ -23,7 +23,6 @@ import org.springframework.transaction.annotation.Transactional; import java.util.*; import java.util.stream.Collectors; - /** * @author wjt * @date 2022/08/05 @@ -149,6 +148,7 @@ public class PublicCluePoolSync { clueMiddle.setMemberId(null); clueMiddle.setOrganizeId(null); clueMiddle.setPublicPoolStatus(1); + clueMiddle.setMemberStatus(DefaultNumberConstants.ZERO_NUMBER); clueMiddle.setOptimisticVersion(clueMiddle.getOptimisticVersion() + 1); clueMiddleRepository.save(clueMiddle); } diff --git a/ad-platform-services/ad-platform-source/src/main/resources/application.yml b/ad-platform-services/ad-platform-source/src/main/resources/application.yml index df5ff2e9..e7dc4f62 100644 --- a/ad-platform-services/ad-platform-source/src/main/resources/application.yml +++ b/ad-platform-services/ad-platform-source/src/main/resources/application.yml @@ -10,7 +10,7 @@ spring: freemarker: check-template-location: false profiles: - active: test + active: dev application: name: @artifactId@ jackson: