抖音代码提交-暂弃需求

master
yqy 2 years ago
parent 55218a0baa
commit cce6c66fb7

@ -17,8 +17,8 @@ spring:
timeout: 5000 timeout: 5000
cloud: cloud:
nacos: nacos:
# server-addr: 8.130.96.163:8848
server-addr: 127.0.0.1:8848 server-addr: 127.0.0.1:8848
# server-addr: 101.35.109.129:8848
config: config:
server-addr: ${spring.cloud.nacos.server-addr} server-addr: ${spring.cloud.nacos.server-addr}
file-extension: yml file-extension: yml

@ -14,7 +14,6 @@ spring:
password: ${MYSQL_PASSWORD:y7z7noq2} password: ${MYSQL_PASSWORD:y7z7noq2}
nacos: nacos:
server-addr: 127.0.0.1:8848 server-addr: 127.0.0.1:8848
# server-addr: 101.35.109.129
config: config:
server-addr: ${spring.cloud.nacos.server-addr} server-addr: ${spring.cloud.nacos.server-addr}
file-extension: yml file-extension: yml

@ -20,6 +20,7 @@
<dependency> <dependency>
<groupId>org.apache.curator</groupId> <groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId> <artifactId>curator-framework</artifactId>
<version>2.12.0</version>
</dependency> </dependency>
<dependency> <dependency>

@ -107,16 +107,23 @@ public class TiktokHotCommentSopController {
@GetMapping("/test") @GetMapping("/test")
@ApiOperation("测试接口") @ApiOperation("测试接口")
public void test(){ public void test(@RequestParam("id") Long id){
QueryWrapper<TiktokHotCommentSopEntity> wrapper = new QueryWrapper<>(); // QueryWrapper<TiktokHotCommentSopEntity> wrapper = new QueryWrapper<>();
wrapper.eq("implement_type", DefaultNumberConstants.ONE_NUMBER); // wrapper.eq("implement_type", DefaultNumberConstants.ONE_NUMBER);
List<TiktokHotCommentSopEntity> sopEntityList = hotCommentSopService.list(wrapper); // List<TiktokHotCommentSopEntity> sopEntityList = hotCommentSopService.list(wrapper);
Date date = new Date(); // Date date = new Date();
// 1、取出要执行的sop // // 1、取出要执行的sop
List<TiktokHotCommentSopEntity> collect = sopEntityList.stream() // List<TiktokHotCommentSopEntity> collect = sopEntityList.stream()
.filter(st -> date.compareTo(st.getBeginTime()) > 0 && date.compareTo(st.getEndTime()) < 0) // .filter(st -> date.compareTo(st.getBeginTime()) > 0 && date.compareTo(st.getEndTime()) < 0)
.collect(Collectors.toList()); // .collect(Collectors.toList());
// 2、执行sop规则 // // 2、执行sop规则
hotCommentSopService.userWorkTask(collect.get(0)); // hotCommentSopService.userWorkTask(collect.get(0));
// TiktokHotCommentSopEntity sopEntity = hotCommentSopService.getById(id);
// hotCommentSopService.userWorkTask(sopEntity);
hotCommentSopService.refreshVideo();
} }
} }

@ -7,6 +7,7 @@ import com.baiye.core.page.PageResult;
import com.baiye.dto.TiktokLabelOrganizeDto; import com.baiye.dto.TiktokLabelOrganizeDto;
import com.baiye.entity.TiktokLabelOrganizeEntity; import com.baiye.entity.TiktokLabelOrganizeEntity;
import com.baiye.service.TiktokLabelOrganizeService; import com.baiye.service.TiktokLabelOrganizeService;
import com.baiye.service.TiktokLabelService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -32,7 +33,27 @@ public class TiktokLabelOrganizeController {
@PostMapping("/save") @PostMapping("/save")
@ApiOperation("标签组新增") @ApiOperation("标签组新增")
public Result<?> add(@Validated({AddGroup.class}) @RequestBody TiktokLabelOrganizeEntity labelOrganizeEntity) { public Result<?> add(@Validated({AddGroup.class}) @RequestBody TiktokLabelOrganizeEntity labelOrganizeEntity) {
labelOrganizeService.save(labelOrganizeEntity); labelOrganizeService.add(labelOrganizeEntity);
return Result.success();
}
/**
*
*/
@PostMapping("/update")
@ApiOperation("标签组信息修改")
public Result<?> update(@Validated({UpdateGroup.class}) @RequestBody TiktokLabelOrganizeEntity labelOrganizeEntity){
labelOrganizeService.updateInfo(labelOrganizeEntity);
return Result.success();
}
/**
*
*/
@GetMapping("/del")
@ApiOperation("标签组删除")
public Result<?> del(@RequestParam("id") Long id){
labelOrganizeService.del(id);
return Result.success(); return Result.success();
} }
@ -64,13 +85,12 @@ public class TiktokLabelOrganizeController {
} }
/** /**
* * sop
*/ */
@PostMapping("/update") @GetMapping("/sopList")
@ApiOperation("标签组信息修改") @ApiOperation("查询未绑定标签组的sop列表")
public Result<?> update(@Validated({UpdateGroup.class}) @RequestBody TiktokLabelOrganizeEntity labelOrganizeEntity ){ public Result<Object> findSop(){
labelOrganizeService.updateById(labelOrganizeEntity); return Result.data(labelOrganizeService.findSop());
return Result.success();
} }
} }

@ -1,4 +1,4 @@
package com.baiye.job.dy_tool_member; package com.baiye.job;
import com.dangdang.ddframe.job.api.ShardingContext; import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob; import com.dangdang.ddframe.job.api.simple.SimpleJob;
@ -8,14 +8,12 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@ElasticSimpleJob(jobName = "DayLastTimeJob", cron = "59 59 23 * * ?", shardingTotalCount = 1, overwrite = true, jobEvent = false) @ElasticSimpleJob(jobName = "DayLastTimeJob1", cron = "59 59 23 * * ?", shardingTotalCount = 1, overwrite = true, jobEvent = false)
@Slf4j @Slf4j
@Component @Component
public class DayLastTimeJob implements SimpleJob { public class DayLastTimeJob implements SimpleJob {
private static DayLastTimeJob dayLastTimeJob; private static DayLastTimeJob dayLastTimeJob;
@PostConstruct @PostConstruct
public void init() { public void init() {
dayLastTimeJob = this; dayLastTimeJob = this;

@ -1,5 +1,6 @@
package com.baiye.job.dy_tool_member; package com.baiye.job;
import com.baiye.service.TiktokEquipmentService;
import com.dangdang.ddframe.job.api.ShardingContext; import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob; import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.example.autoconfig.ElasticSimpleJob; import com.example.autoconfig.ElasticSimpleJob;
@ -7,19 +8,20 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.annotation.Resource;
@ElasticSimpleJob(jobName = "EquipmentJob", cron = "0 0 0/2 * * ? ") @ElasticSimpleJob(jobName = "EquipmentJob1", cron = "0 0 0/2 * * ? ", shardingTotalCount = 1, overwrite = true, jobEvent = false)
//@ElasticSimpleJob(jobName = "EquipmentJob", cron = "0/1 * * * * ? ", shardingTotalCount = 1, overwrite = true, jobEvent = false)
@Slf4j @Slf4j
@Component @Component
public class TiktokEquipmentJob implements SimpleJob { public class TiktokEquipmentJob implements SimpleJob {
private static TiktokEquipmentJob equipmentJob; @Resource
private TiktokEquipmentService equipmentService;
private static TiktokEquipmentJob equipmentJob;
@PostConstruct @PostConstruct
public void init(){ public void init() {
equipmentJob = this; equipmentJob = this;
} }

@ -1,5 +1,6 @@
package com.baiye.job.dy_tool_member; package com.baiye.job;
import com.baiye.service.TiktokHotCommentSopService;
import com.dangdang.ddframe.job.api.ShardingContext; import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob; import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.example.autoconfig.ElasticSimpleJob; import com.example.autoconfig.ElasticSimpleJob;
@ -7,19 +8,20 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.annotation.Resource;
@ElasticSimpleJob(jobName = "TiktokHotCommentSop", cron = "0 0/30 * * * ? ") @ElasticSimpleJob(jobName = "TiktokHotCommentSop1", cron = "0 0/30 * * * ? ", shardingTotalCount = 1, overwrite = true, jobEvent = false)
@Slf4j @Slf4j
@Component @Component
public class TiktokHotCommentSopJob implements SimpleJob { public class TiktokHotCommentSopJob implements SimpleJob {
@Resource
private TiktokHotCommentSopService hotCommentSopService;
private static TiktokHotCommentSopJob hotCommentSopJob; private static TiktokHotCommentSopJob hotCommentSopJob;
@PostConstruct @PostConstruct
public void init(){ public void init() {
hotCommentSopJob = this; hotCommentSopJob = this;
} }

@ -1,5 +1,6 @@
package com.baiye.job.dy_tool_member; package com.baiye.job;
import com.baiye.service.TiktokHotCommentSopService;
import com.dangdang.ddframe.job.api.ShardingContext; import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob; import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.example.autoconfig.ElasticSimpleJob; import com.example.autoconfig.ElasticSimpleJob;
@ -7,19 +8,20 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.annotation.Resource;
@ElasticSimpleJob(jobName = "TiktokHotCommentVideoJob", cron = "0 0/1 * * * ? ") @ElasticSimpleJob(jobName = "TiktokHotCommentVideoJob1", cron = "0 0 0/1 * * ? ", shardingTotalCount = 1, overwrite = true, jobEvent = false)
@Slf4j @Slf4j
@Component @Component
public class TiktokHotCommentVideoJob implements SimpleJob { public class TiktokHotCommentVideoJob implements SimpleJob {
@Resource
private TiktokHotCommentSopService hotCommentSopService;
private static TiktokHotCommentVideoJob hotCommentVideoJob; private static TiktokHotCommentVideoJob hotCommentVideoJob;
@PostConstruct @PostConstruct
public void init(){ public void init() {
hotCommentVideoJob = this; hotCommentVideoJob = this;
} }

@ -1,134 +1,134 @@
package com.baiye.job.dy_tool_member; //package com.baiye.job.dy_tool_member;
//
import cn.hutool.core.collection.CollUtil; //import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil; //import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; //import cn.hutool.core.util.ObjectUtil;
import com.baiye.api.TiktokRequestClient; //import com.baiye.api.TiktokRequestClient;
import com.baiye.api.request.TiktokPrivateLetterRequest; //import com.baiye.api.request.TiktokPrivateLetterRequest;
import com.baiye.api.response.TiktokPrivateLetterResponse; //import com.baiye.api.response.TiktokPrivateLetterResponse;
import com.baiye.core.constant.DefaultNumberConstants; //import com.baiye.core.constant.DefaultNumberConstants;
import com.baiye.core.constant.TiktokRequestConstants; //import com.baiye.core.constant.TiktokRequestConstants;
import com.baiye.dto.TiktokMemberDTO; //import com.baiye.dto.TiktokMemberDTO;
import com.baiye.entity.TiktokEquipmentEntity; //import com.baiye.entity.TiktokEquipmentEntity;
import com.baiye.entity.TiktokPrivateLetter; //import com.baiye.entity.TiktokPrivateLetter;
import com.baiye.entity.TiktokPrivateLetterParameter; //import com.baiye.entity.TiktokPrivateLetterParameter;
import com.baiye.properties.TiktokProperties; //import com.baiye.properties.TiktokProperties;
import com.baiye.service.TiktokEquipmentService; //import com.baiye.service.TiktokEquipmentService;
import com.baiye.service.TiktokMemberService; //import com.baiye.service.TiktokMemberService;
import com.baiye.service.TiktokPrivateLetterParameterService; //import com.baiye.service.TiktokPrivateLetterParameterService;
import com.baiye.service.TiktokPrivateLetterService; //import com.baiye.service.TiktokPrivateLetterService;
import com.dangdang.ddframe.job.api.ShardingContext; //import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob; //import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.example.autoconfig.ElasticSimpleJob; //import com.example.autoconfig.ElasticSimpleJob;
import com.google.common.collect.Lists; //import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; //import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus; //import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
import javax.annotation.PostConstruct; //import javax.annotation.PostConstruct;
import javax.annotation.Resource; //import javax.annotation.Resource;
import java.util.List; //import java.util.List;
//
/** ///**
* // * 此方法与私信方式类似
* // * 获取不是好友的私信
* @author Enzo // * @author Enzo
* @date : 2022/9/30 // * @date : 2022/9/30
*/ // */
@Slf4j //@Slf4j
@Component //@Component
@ElasticSimpleJob(jobName = "tiktokNotFriendPrivateLetterJop", cron = "0 0/10 * * * ? ") //@ElasticSimpleJob(jobName = "tiktokNotFriendPrivateLetterJop", cron = "0 0/10 * * * ? ")
public class TiktokNotFriendPrivateLetterJop implements SimpleJob { //public class TiktokNotFriendPrivateLetterJop implements SimpleJob {
//
//
@Value("${snowflake.workerId}") // @Value("${snowflake.workerId}")
private int workerId; // private int workerId;
//
@Value("${snowflake.datacenterId}") // @Value("${snowflake.datacenterId}")
private int datacenterId; // private int datacenterId;
//
@Resource // @Resource
private TiktokProperties tiktokProperties; // private TiktokProperties tiktokProperties;
//
@Resource // @Resource
private TiktokMemberService tiktokMemberService; // private TiktokMemberService tiktokMemberService;
//
@Resource // @Resource
private TiktokEquipmentService tiktokEquipmentService; // private TiktokEquipmentService tiktokEquipmentService;
//
private static TiktokNotFriendPrivateLetterJop tiktokNotFriendPrivateLetterJop; // private static TiktokNotFriendPrivateLetterJop tiktokNotFriendPrivateLetterJop;
//
@Resource // @Resource
private TiktokPrivateLetterService tiktokPrivateLetterService; // private TiktokPrivateLetterService tiktokPrivateLetterService;
//
@Resource // @Resource
private TiktokPrivateLetterParameterService tiktokPrivateLetterParameterService; // private TiktokPrivateLetterParameterService tiktokPrivateLetterParameterService;
//
@PostConstruct // @PostConstruct
public void init() { // public void init() {
tiktokNotFriendPrivateLetterJop = this; // tiktokNotFriendPrivateLetterJop = this;
} // }
//
@Override // @Override
public void execute(ShardingContext shardingContext) { // public void execute(ShardingContext shardingContext) {
List<TiktokPrivateLetter> list = Lists.newArrayList(); // List<TiktokPrivateLetter> list = Lists.newArrayList();
List<TiktokEquipmentEntity> equipmentEntityList = // List<TiktokEquipmentEntity> equipmentEntityList =
tiktokNotFriendPrivateLetterJop.tiktokEquipmentService.findBySignInStatus(DefaultNumberConstants.ONE_NUMBER); // tiktokNotFriendPrivateLetterJop.tiktokEquipmentService.findBySignInStatus(DefaultNumberConstants.ONE_NUMBER);
if (CollUtil.isNotEmpty(equipmentEntityList)) { // if (CollUtil.isNotEmpty(equipmentEntityList)) {
for (TiktokEquipmentEntity entity : equipmentEntityList) { // for (TiktokEquipmentEntity entity : equipmentEntityList) {
// 好友私信请求 // // 好友私信请求
TiktokPrivateLetterRequest privateLetterRequest = new TiktokPrivateLetterRequest(); // TiktokPrivateLetterRequest privateLetterRequest = new TiktokPrivateLetterRequest();
TiktokPrivateLetterRequest.PrivateLetterDTO letterDTO = privateLetterRequest.new PrivateLetterDTO(); // TiktokPrivateLetterRequest.PrivateLetterDTO letterDTO = privateLetterRequest.new PrivateLetterDTO();
//
String dyVendorId = entity.getDyVendorId(); // String dyVendorId = entity.getDyVendorId();
TiktokPrivateLetterParameter byVendorId = tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterParameterService. // TiktokPrivateLetterParameter byVendorId = tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterParameterService.
selectByVendorId(entity.getDyVendorId(), DefaultNumberConstants.TWO_NUMBER); // selectByVendorId(entity.getDyVendorId(), DefaultNumberConstants.TWO_NUMBER);
letterDTO.setMaxTime((long) DefaultNumberConstants.ZERO_NUMBER); // letterDTO.setMaxTime((long) DefaultNumberConstants.ZERO_NUMBER);
if (ObjectUtil.isNotNull(byVendorId) // if (ObjectUtil.isNotNull(byVendorId)
&& ObjectUtil.isNotNull(byVendorId.getMaxTime())) { // && ObjectUtil.isNotNull(byVendorId.getMaxTime())) {
letterDTO.setMaxTime(byVendorId.getMaxTime()); // letterDTO.setMaxTime(byVendorId.getMaxTime());
} // }
letterDTO.setVendorId(dyVendorId); // letterDTO.setVendorId(dyVendorId);
privateLetterRequest.setData(letterDTO); // privateLetterRequest.setData(letterDTO);
//
// 构建请求 // // 构建请求
TiktokPrivateLetterResponse notFriendResponse = TiktokRequestClient.createTiktokResponse // TiktokPrivateLetterResponse notFriendResponse = TiktokRequestClient.createTiktokResponse
(TiktokRequestConstants.TIK_TOK_GET_RECENT_STRANGER_MESSAGE, privateLetterRequest, tiktokProperties); // (TiktokRequestConstants.TIK_TOK_GET_RECENT_STRANGER_MESSAGE, privateLetterRequest, tiktokProperties);
if (ObjectUtil.isNotNull(notFriendResponse.getSuccess()) // if (ObjectUtil.isNotNull(notFriendResponse.getSuccess())
&& Boolean.TRUE.equals(notFriendResponse.getSuccess()) // && Boolean.TRUE.equals(notFriendResponse.getSuccess())
&& notFriendResponse.getStatus() == HttpStatus.OK.value()) { // && notFriendResponse.getStatus() == HttpStatus.OK.value()) {
TiktokPrivateLetterResponse.PrivateLetterResponse responseData = notFriendResponse.getData(); // TiktokPrivateLetterResponse.PrivateLetterResponse responseData = notFriendResponse.getData();
if (CollUtil.isNotEmpty(responseData.getConvList())) { // if (CollUtil.isNotEmpty(responseData.getConvList())) {
// 解析数据 // // 解析数据
TiktokPrivateLetterResponse.PrivateLetterResponse.TikTokMessageDTO tikTokMessageDTO // TiktokPrivateLetterResponse.PrivateLetterResponse.TikTokMessageDTO tikTokMessageDTO
= responseData.getConvList().get(DefaultNumberConstants.ZERO_NUMBER); // = responseData.getConvList().get(DefaultNumberConstants.ZERO_NUMBER);
for (TiktokPrivateLetterResponse.PrivateLetterResponse. // for (TiktokPrivateLetterResponse.PrivateLetterResponse.
TikTokMessageDTO.MessageDTO dto : tikTokMessageDTO.getMsgList()) { // TikTokMessageDTO.MessageDTO dto : tikTokMessageDTO.getMsgList()) {
String text = dto.getText().getText(); // String text = dto.getText().getText();
Long nextId = IdUtil.getSnowflake(workerId, datacenterId).nextId(); // Long nextId = IdUtil.getSnowflake(workerId, datacenterId).nextId();
TiktokMemberDTO tiktokMemberDTO = tiktokNotFriendPrivateLetterJop.tiktokMemberService. // TiktokMemberDTO tiktokMemberDTO = tiktokNotFriendPrivateLetterJop.tiktokMemberService.
saveTiktokMemberByTiktok(String.valueOf(dto.getSenderId()), entity.getDyVendorId()); // saveTiktokMemberByTiktok(String.valueOf(dto.getSenderId()), entity.getDyVendorId());
// 构建实体 // // 构建实体
TiktokPrivateLetter privateLetter = TiktokPrivateLetter.builder().id(nextId). // TiktokPrivateLetter privateLetter = TiktokPrivateLetter.builder().id(nextId).
senderId(dto.getSenderId()).receiverId // senderId(dto.getSenderId()).receiverId
(Long.parseLong(entity.getDyUserId())).msg(text).memberId // (Long.parseLong(entity.getDyUserId())).msg(text).memberId
(ObjectUtil.isNotNull(tiktokMemberDTO) ? Long.parseLong(tiktokMemberDTO.getId()) : nextId). // (ObjectUtil.isNotNull(tiktokMemberDTO) ? Long.parseLong(tiktokMemberDTO.getId()) : nextId).
tiktokId(dto.getSenderId()).status(DefaultNumberConstants.ONE_NUMBER).msgType(dto.getText().getType()). // tiktokId(dto.getSenderId()).status(DefaultNumberConstants.ONE_NUMBER).msgType(dto.getText().getType()).
isRead(DefaultNumberConstants.ZERO_NUMBER).msgTime(dto.getTime()).build(); // isRead(DefaultNumberConstants.ZERO_NUMBER).msgTime(dto.getTime()).build();
// 发送消息 // // 发送消息
tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterService.sendMessage(tiktokMemberDTO, privateLetter); // tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterService.sendMessage(tiktokMemberDTO, privateLetter);
list.add(privateLetter); // list.add(privateLetter);
} // }
Long maxTime = responseData.getMaxTime(); // Long maxTime = responseData.getMaxTime();
// 修改发送时间 // // 修改发送时间
tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterParameterService. // tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterParameterService.
saveOrUpdateParameter(byVendorId, dyVendorId, maxTime, DefaultNumberConstants.TWO_NUMBER); // saveOrUpdateParameter(byVendorId, dyVendorId, maxTime, DefaultNumberConstants.TWO_NUMBER);
// 批量保存私信内容 // // 批量保存私信内容
tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterService.batchInsertPrivateLetter(list); // tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterService.batchInsertPrivateLetter(list);
} // }
} // }
} // }
} // }
} // }
} //}

@ -1,135 +1,135 @@
package com.baiye.job.dy_tool_member; //package com.baiye.job.dy_tool_member;
//
import cn.hutool.core.collection.CollUtil; //import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil; //import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; //import cn.hutool.core.util.ObjectUtil;
import com.baiye.api.TiktokRequestClient; //import com.baiye.api.TiktokRequestClient;
import com.baiye.api.request.TiktokPrivateLetterRequest; //import com.baiye.api.request.TiktokPrivateLetterRequest;
import com.baiye.api.response.TiktokPrivateLetterResponse; //import com.baiye.api.response.TiktokPrivateLetterResponse;
import com.baiye.core.constant.DefaultNumberConstants; //import com.baiye.core.constant.DefaultNumberConstants;
import com.baiye.core.constant.TiktokRequestConstants; //import com.baiye.core.constant.TiktokRequestConstants;
import com.baiye.dto.TiktokMemberDTO; //import com.baiye.dto.TiktokMemberDTO;
import com.baiye.entity.TiktokEquipmentEntity; //import com.baiye.entity.TiktokEquipmentEntity;
import com.baiye.entity.TiktokPrivateLetter; //import com.baiye.entity.TiktokPrivateLetter;
import com.baiye.entity.TiktokPrivateLetterParameter; //import com.baiye.entity.TiktokPrivateLetterParameter;
import com.baiye.properties.TiktokProperties; //import com.baiye.properties.TiktokProperties;
import com.baiye.service.TiktokEquipmentService; //import com.baiye.service.TiktokEquipmentService;
import com.baiye.service.TiktokMemberService; //import com.baiye.service.TiktokMemberService;
import com.baiye.service.TiktokPrivateLetterParameterService; //import com.baiye.service.TiktokPrivateLetterParameterService;
import com.baiye.service.TiktokPrivateLetterService; //import com.baiye.service.TiktokPrivateLetterService;
import com.dangdang.ddframe.job.api.ShardingContext; //import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob; //import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.example.autoconfig.ElasticSimpleJob; //import com.example.autoconfig.ElasticSimpleJob;
import com.google.common.collect.Lists; //import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; //import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus; //import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component; //import org.springframework.stereotype.Component;
//
import javax.annotation.PostConstruct; //import javax.annotation.PostConstruct;
import javax.annotation.Resource; //import javax.annotation.Resource;
import java.util.List; //import java.util.List;
//
/** ///**
* // * 十分钟私信任务
* // *
* @author Enzo // * @author Enzo
* @date : 2022/9/30 // * @date : 2022/9/30
*/ // */
@Slf4j //@Slf4j
@Component //@Component
@ElasticSimpleJob(jobName = "tiktokPrivateLetterJop", cron = "0 0/10 * * * ? ") //@ElasticSimpleJob(jobName = "tiktokPrivateLetterJop", cron = "0 0/10 * * * ? ")
public class TiktokPrivateLetterJop implements SimpleJob { //public class TiktokPrivateLetterJop implements SimpleJob {
//
//
@Value("${snowflake.workerId}") // @Value("${snowflake.workerId}")
private int workerId; // private int workerId;
//
@Value("${snowflake.datacenterId}") // @Value("${snowflake.datacenterId}")
private int datacenterId; // private int datacenterId;
//
@Resource // @Resource
private TiktokProperties tiktokProperties; // private TiktokProperties tiktokProperties;
//
@Resource // @Resource
private TiktokMemberService tiktokMemberService; // private TiktokMemberService tiktokMemberService;
//
@Resource // @Resource
private TiktokEquipmentService tiktokEquipmentService; // private TiktokEquipmentService tiktokEquipmentService;
//
private static TiktokPrivateLetterJop privateLetterJop; // private static TiktokPrivateLetterJop privateLetterJop;
//
@Resource // @Resource
private TiktokPrivateLetterService tiktokPrivateLetterService; // private TiktokPrivateLetterService tiktokPrivateLetterService;
//
@Resource // @Resource
private TiktokPrivateLetterParameterService tiktokPrivateLetterParameterService; // private TiktokPrivateLetterParameterService tiktokPrivateLetterParameterService;
//
@PostConstruct // @PostConstruct
public void init() { // public void init() {
privateLetterJop = this; // privateLetterJop = this;
} // }
//
@Override // @Override
public void execute(ShardingContext shardingContext) { // public void execute(ShardingContext shardingContext) {
List<TiktokPrivateLetter> list = Lists.newArrayList(); // List<TiktokPrivateLetter> list = Lists.newArrayList();
List<TiktokEquipmentEntity> equipmentEntityList = // List<TiktokEquipmentEntity> equipmentEntityList =
privateLetterJop.tiktokEquipmentService.findBySignInStatus(DefaultNumberConstants.ONE_NUMBER); // privateLetterJop.tiktokEquipmentService.findBySignInStatus(DefaultNumberConstants.ONE_NUMBER);
if (CollUtil.isNotEmpty(equipmentEntityList)) { // if (CollUtil.isNotEmpty(equipmentEntityList)) {
for (TiktokEquipmentEntity entity : equipmentEntityList) { // for (TiktokEquipmentEntity entity : equipmentEntityList) {
// 好友私信请求 // // 好友私信请求
TiktokPrivateLetterRequest privateLetterRequest = new TiktokPrivateLetterRequest(); // TiktokPrivateLetterRequest privateLetterRequest = new TiktokPrivateLetterRequest();
TiktokPrivateLetterRequest.PrivateLetterDTO letterDTO = privateLetterRequest.new PrivateLetterDTO(); // TiktokPrivateLetterRequest.PrivateLetterDTO letterDTO = privateLetterRequest.new PrivateLetterDTO();
//
String dyVendorId = entity.getDyVendorId(); // String dyVendorId = entity.getDyVendorId();
TiktokPrivateLetterParameter byVendorId = privateLetterJop.tiktokPrivateLetterParameterService. // TiktokPrivateLetterParameter byVendorId = privateLetterJop.tiktokPrivateLetterParameterService.
selectByVendorId(entity.getDyVendorId(), DefaultNumberConstants.ONE_NUMBER); // selectByVendorId(entity.getDyVendorId(), DefaultNumberConstants.ONE_NUMBER);
letterDTO.setMaxTime((long) DefaultNumberConstants.ZERO_NUMBER); // letterDTO.setMaxTime((long) DefaultNumberConstants.ZERO_NUMBER);
//
if (ObjectUtil.isNotNull(byVendorId) // if (ObjectUtil.isNotNull(byVendorId)
&& ObjectUtil.isNotNull(byVendorId.getMaxTime())) { // && ObjectUtil.isNotNull(byVendorId.getMaxTime())) {
letterDTO.setMaxTime(byVendorId.getMaxTime()); // letterDTO.setMaxTime(byVendorId.getMaxTime());
} // }
letterDTO.setVendorId(dyVendorId); // letterDTO.setVendorId(dyVendorId);
privateLetterRequest.setData(letterDTO); // privateLetterRequest.setData(letterDTO);
//
// 构建请求 // // 构建请求
TiktokPrivateLetterResponse privateLetterResponse = TiktokRequestClient.createTiktokResponse // TiktokPrivateLetterResponse privateLetterResponse = TiktokRequestClient.createTiktokResponse
(TiktokRequestConstants.TIK_TOK_GET_FRIEND_MESSAGE, privateLetterRequest, tiktokProperties); // (TiktokRequestConstants.TIK_TOK_GET_FRIEND_MESSAGE, privateLetterRequest, tiktokProperties);
if (ObjectUtil.isNotNull(privateLetterResponse.getSuccess()) // if (ObjectUtil.isNotNull(privateLetterResponse.getSuccess())
&& Boolean.TRUE.equals(privateLetterResponse.getSuccess()) // && Boolean.TRUE.equals(privateLetterResponse.getSuccess())
&& privateLetterResponse.getStatus() == HttpStatus.OK.value()) { // && privateLetterResponse.getStatus() == HttpStatus.OK.value()) {
TiktokPrivateLetterResponse.PrivateLetterResponse data = privateLetterResponse.getData(); // TiktokPrivateLetterResponse.PrivateLetterResponse data = privateLetterResponse.getData();
if (CollUtil.isNotEmpty(data.getConvList())) { // if (CollUtil.isNotEmpty(data.getConvList())) {
// 解析数据 // // 解析数据
TiktokPrivateLetterResponse.PrivateLetterResponse.TikTokMessageDTO tikTokMessageDTO // TiktokPrivateLetterResponse.PrivateLetterResponse.TikTokMessageDTO tikTokMessageDTO
= data.getConvList().get(DefaultNumberConstants.ZERO_NUMBER); // = data.getConvList().get(DefaultNumberConstants.ZERO_NUMBER);
for (TiktokPrivateLetterResponse.PrivateLetterResponse. // for (TiktokPrivateLetterResponse.PrivateLetterResponse.
TikTokMessageDTO.MessageDTO dto : tikTokMessageDTO.getMsgList()) { // TikTokMessageDTO.MessageDTO dto : tikTokMessageDTO.getMsgList()) {
String text = dto.getText().getText(); // String text = dto.getText().getText();
Long nextId = IdUtil.getSnowflake(workerId, datacenterId).nextId(); // Long nextId = IdUtil.getSnowflake(workerId, datacenterId).nextId();
TiktokMemberDTO tiktokMemberDTO = privateLetterJop.tiktokMemberService. // TiktokMemberDTO tiktokMemberDTO = privateLetterJop.tiktokMemberService.
saveTiktokMemberByTiktok(String.valueOf(dto.getSenderId()), entity.getDyVendorId()); // saveTiktokMemberByTiktok(String.valueOf(dto.getSenderId()), entity.getDyVendorId());
// 构建实体 // // 构建实体
TiktokPrivateLetter privateLetter = TiktokPrivateLetter.builder().id(nextId). // TiktokPrivateLetter privateLetter = TiktokPrivateLetter.builder().id(nextId).
senderId(dto.getSenderId()).receiverId // senderId(dto.getSenderId()).receiverId
(Long.parseLong(entity.getDyUserId())).msg(text).memberId // (Long.parseLong(entity.getDyUserId())).msg(text).memberId
(ObjectUtil.isNotNull(tiktokMemberDTO) ? Long.parseLong(tiktokMemberDTO.getId()) : nextId). // (ObjectUtil.isNotNull(tiktokMemberDTO) ? Long.parseLong(tiktokMemberDTO.getId()) : nextId).
tiktokId(dto.getSenderId()).status(DefaultNumberConstants.ONE_NUMBER).msgType(dto.getText().getType()). // tiktokId(dto.getSenderId()).status(DefaultNumberConstants.ONE_NUMBER).msgType(dto.getText().getType()).
isRead(DefaultNumberConstants.ZERO_NUMBER).msgTime(dto.getTime()).build(); // isRead(DefaultNumberConstants.ZERO_NUMBER).msgTime(dto.getTime()).build();
// 发送消息 // // 发送消息
privateLetterJop.tiktokPrivateLetterService.sendMessage(tiktokMemberDTO, privateLetter); // privateLetterJop.tiktokPrivateLetterService.sendMessage(tiktokMemberDTO, privateLetter);
list.add(privateLetter); // list.add(privateLetter);
} // }
Long maxTime = data.getMaxTime(); // Long maxTime = data.getMaxTime();
// 修改发送时间 // // 修改发送时间
privateLetterJop.tiktokPrivateLetterParameterService. // privateLetterJop.tiktokPrivateLetterParameterService.
saveOrUpdateParameter(byVendorId, dyVendorId, maxTime, DefaultNumberConstants.ONE_NUMBER); // saveOrUpdateParameter(byVendorId, dyVendorId, maxTime, DefaultNumberConstants.ONE_NUMBER);
// 批量保存私信内容 // // 批量保存私信内容
privateLetterJop.tiktokPrivateLetterService.batchInsertPrivateLetter(list); // privateLetterJop.tiktokPrivateLetterService.batchInsertPrivateLetter(list);
} // }
} // }
} // }
} // }
} // }
} //}

@ -0,0 +1,23 @@
,
\`-,
| `\
| \
__/.- - -.\,__
_.-'` `'"'--..,__
.-'` `'--.,_
.'` _ _ ___ `)
.' .'` `'-. (_` _`) _.-'
.' '--. '. .-.`"`@ .-'""-,
.------~' ,.---' '-._ _.' / `'--'"""".-'
/` ' /` _,..-----.,__ `''''`/ ;__,..--''--'`
`'--.,__ ' |-'` `'---'| |
`\ \ \ /
| | '-'
\ |
yqy `\ |
\/
年少太轻狂 误入IT行
白发森森立 两眼直茫茫
语言数十种 无一称擅长
三十而立时 无房单身郎

@ -1,9 +1,11 @@
package com.baiye.dao; package com.baiye.dao;
import com.baiye.entity.SopEntity; import com.baiye.entity.SopEntity;
import com.baiye.vo.LabelSopVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* @author jt * @author jt
@ -11,4 +13,7 @@ import org.apache.ibatis.annotations.Param;
@Mapper @Mapper
public interface SopMapper extends BaseMapper<SopEntity> { public interface SopMapper extends BaseMapper<SopEntity> {
void updateBatchLabelId(List<LabelSopVo> list);
void updateBatch(List<SopEntity> list);
} }

@ -28,6 +28,9 @@ public class SopDto {
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long sopId; private Long sopId;
@ApiModelProperty(value = "标签组ID")
private Long labelId;
/** /**
* sop * sop
*/ */

@ -108,4 +108,8 @@ public class SopEntity implements Serializable {
@TableField("status") @TableField("status")
@ApiModelProperty(value = "sop状态 0-未执行 1-执行中") @ApiModelProperty(value = "sop状态 0-未执行 1-执行中")
private Integer status; private Integer status;
@TableField("label_id")
@ApiModelProperty(value = "标签组ID")
private Long labelId;
} }

@ -1,10 +1,10 @@
package com.baiye.entity; package com.baiye.entity;
import com.baiye.core.base.MybatisBaseEntity;
import com.baiye.core.constant.AddGroup; import com.baiye.core.constant.AddGroup;
import com.baiye.core.constant.UpdateGroup; import com.baiye.core.constant.UpdateGroup;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baiye.core.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -21,7 +21,7 @@ import javax.validation.constraints.NotNull;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)
@TableName("tb_label") @TableName("tb_label")
public class TiktokLabelEntity extends BaseEntity { public class TiktokLabelEntity extends MybatisBaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -40,7 +40,6 @@ public class TiktokLabelEntity extends BaseEntity {
private Long userId; private Long userId;
@ApiModelProperty(value = "所属标签组ID") @ApiModelProperty(value = "所属标签组ID")
@NotNull(groups = AddGroup.class, message = "标签组ID不能为空")
private Long labelOrganizeId; private Long labelOrganizeId;
} }

@ -3,6 +3,7 @@ package com.baiye.entity;
import com.baiye.core.base.MybatisBaseEntity; import com.baiye.core.base.MybatisBaseEntity;
import com.baiye.core.constant.AddGroup; import com.baiye.core.constant.AddGroup;
import com.baiye.core.constant.UpdateGroup; import com.baiye.core.constant.UpdateGroup;
import com.baiye.vo.LabelSopVo;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
@ -12,10 +13,13 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import javax.validation.Valid;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null; import javax.validation.constraints.Null;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* @author yqy * @author yqy
@ -31,15 +35,27 @@ public class TiktokLabelOrganizeEntity extends MybatisBaseEntity {
@ApiModelProperty(value = "标签组主键ID") @ApiModelProperty(value = "标签组主键ID")
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
@Null(groups = UpdateGroup.class, message = "ID不能为空") @NotNull(groups = UpdateGroup.class, message = "ID不能为空")
private Long id; private Long id;
@ApiModelProperty(value = "标签组名称") @ApiModelProperty(value = "标签组名称")
@NotNull(groups = AddGroup.class, message = "小组名称不能为空") @NotNull(groups = AddGroup.class, message = "小组名称不能为空")
private String name; private String name;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "标签集合") @ApiModelProperty(value = "标签集合")
@TableField(exist = false) @TableField(exist = false)
//@Valid
private List<TiktokLabelEntity> labelList = new ArrayList<>(); private List<TiktokLabelEntity> labelList = new ArrayList<>();
@ApiModelProperty(value = "sop集合")
@TableField(exist = false)
private List<LabelSopVo> sopList = new ArrayList<>();
@ApiModelProperty(value = "更新时要删除的标签ID集合")
@TableField(exist = false)
private Set<Long> delLabelIdSet = new HashSet<>();
} }

@ -0,0 +1,21 @@
package com.baiye.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class LabelSopVo {
@JsonSerialize(using = ToStringSerializer.class)
private Long sopId;
private String sopName;
@ApiModelProperty(value = "0:评论sop 1:热评sop")
private Integer sopType;
@ApiModelProperty(value = "标签组ID")
private Long labelOrganizeId;
}

@ -14,6 +14,21 @@ import java.util.List;
*/ */
public interface TiktokLabelOrganizeService extends IService<TiktokLabelOrganizeEntity> { public interface TiktokLabelOrganizeService extends IService<TiktokLabelOrganizeEntity> {
/**
*
*/
void add(TiktokLabelOrganizeEntity labelOrganizeEntity);
/**
*
*/
void updateInfo(TiktokLabelOrganizeEntity labelOrganizeEntity);
/**
*
*/
void del(Long id);
/** /**
* *
*/ */
@ -23,4 +38,9 @@ public interface TiktokLabelOrganizeService extends IService<TiktokLabelOrganize
* () * ()
*/ */
List<TiktokLabelOrganizeEntity> labelList(); List<TiktokLabelOrganizeEntity> labelList();
/**
* sop
*/
Object findSop();
} }

@ -367,7 +367,6 @@ public class TiktokHotCommentSopServiceImpl extends ServiceImpl<TiktokHotComment
if (CollUtil.isNotEmpty(scriptEntities)) { if (CollUtil.isNotEmpty(scriptEntities)) {
commentEntity.setOrganizeId(scriptEntities.get(0).getFollowCommentOrganize()); commentEntity.setOrganizeId(scriptEntities.get(0).getFollowCommentOrganize());
} }
redisUtils.set(DefaultKeyConstants.SOP_COMMENT_KEY + cid, DefaultNumberConstants.ZERO_NUMBER);
saveList.add(commentEntity); saveList.add(commentEntity);
break; break;
} }
@ -377,6 +376,7 @@ public class TiktokHotCommentSopServiceImpl extends ServiceImpl<TiktokHotComment
// 2.3、插入信息 // 2.3、插入信息
if (CollUtil.isNotEmpty(saveList)) { if (CollUtil.isNotEmpty(saveList)) {
commentMapper.insertAll(saveList); commentMapper.insertAll(saveList);
saveList.forEach(st-> redisUtils.set(DefaultKeyConstants.SOP_COMMENT_KEY + st.getCid(), DefaultNumberConstants.ZERO_NUMBER));
} }
} }

@ -1,14 +1,18 @@
package com.baiye.service.impl; package com.baiye.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baiye.core.constant.DefaultNumberConstants;
import com.baiye.core.page.PageResult; import com.baiye.core.page.PageResult;
import com.baiye.core.util.StringUtils; import com.baiye.core.util.StringUtils;
import com.baiye.dao.SopMapper;
import com.baiye.dao.TiktokLabelOrganizeMapper; import com.baiye.dao.TiktokLabelOrganizeMapper;
import com.baiye.dto.TiktokLabelOrganizeDto; import com.baiye.dto.TiktokLabelOrganizeDto;
import com.baiye.entity.SopEntity;
import com.baiye.entity.TiktokLabelEntity; import com.baiye.entity.TiktokLabelEntity;
import com.baiye.entity.TiktokLabelOrganizeEntity; import com.baiye.entity.TiktokLabelOrganizeEntity;
import com.baiye.service.TiktokLabelOrganizeService; import com.baiye.service.TiktokLabelOrganizeService;
import com.baiye.service.TiktokLabelService; import com.baiye.service.TiktokLabelService;
import com.baiye.vo.LabelSopVo;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -16,10 +20,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -32,6 +35,87 @@ public class TiktokLabelOrganizeServiceImpl
extends ServiceImpl<TiktokLabelOrganizeMapper, TiktokLabelOrganizeEntity> implements TiktokLabelOrganizeService { extends ServiceImpl<TiktokLabelOrganizeMapper, TiktokLabelOrganizeEntity> implements TiktokLabelOrganizeService {
private final TiktokLabelService labelService; private final TiktokLabelService labelService;
private final SopMapper sopMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void add(TiktokLabelOrganizeEntity labelOrganizeEntity) {
//1、插入标签组信息
this.save(labelOrganizeEntity);
//2、添加标签信息
List<TiktokLabelEntity> labelList = labelOrganizeEntity.getLabelList();
if (CollUtil.isNotEmpty(labelList)) {
labelList.forEach(lt -> lt.setLabelOrganizeId(labelOrganizeEntity.getId()));
labelService.saveBatch(labelList);
}
//3、更新绑定的sop信息
List<LabelSopVo> sopList = labelOrganizeEntity.getSopList();
if (CollUtil.isNotEmpty(sopList)) {
Map<Integer, List<LabelSopVo>> map = sopList.stream().collect(Collectors.groupingBy(LabelSopVo::getSopType));
//3.1、评论sop的组绑定
List<LabelSopVo> sopVos = map.get(DefaultNumberConstants.ZERO_NUMBER);
sopVos.forEach(ss -> ss.setLabelOrganizeId(labelOrganizeEntity.getId()));
if (CollUtil.isNotEmpty(sopVos)) {
sopMapper.updateBatchLabelId(sopVos);
}
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateInfo(TiktokLabelOrganizeEntity labelOrganizeEntity) {
Long organizeId = labelOrganizeEntity.getId();
//1、修改标签组信息
this.updateById(labelOrganizeEntity);
//2、修改标签绑定
Set<Long> delLabelIdSet = labelOrganizeEntity.getDelLabelIdSet();
if (CollUtil.isNotEmpty(delLabelIdSet)) {
labelService.removeByIds(delLabelIdSet);
}
List<TiktokLabelEntity> labelList = labelOrganizeEntity.getLabelList();
if (CollUtil.isNotEmpty(labelList)) {
List<TiktokLabelEntity> saveLabel = labelList.stream().filter(lt -> lt.getId() == null).collect(Collectors.toList());
saveLabel.forEach(sl -> sl.setLabelOrganizeId(organizeId));
labelService.saveBatch(saveLabel);
}
//3、修改sop绑定
List<LabelSopVo> sopList = labelOrganizeEntity.getSopList();
if (CollUtil.isNotEmpty(sopList)) {
Map<Integer, List<LabelSopVo>> sopMap = sopList.stream().collect(Collectors.groupingBy(LabelSopVo::getSopType));
//3.1、修改评论sop绑定
List<LabelSopVo> sopVos = sopMap.get(DefaultNumberConstants.ZERO_NUMBER);
if (CollUtil.isNotEmpty(sopVos)) {
List<SopEntity> sopEntities = sopMapper.selectList(new QueryWrapper<SopEntity>().eq("label_id", organizeId));
sopVos.forEach(ss -> ss.setLabelOrganizeId(organizeId));
sopMapper.updateBatchLabelId(sopVos);
List<SopEntity> differenceList = sopEntities.stream().filter(ss ->
!sopVos.stream().map(LabelSopVo::getSopId).collect(Collectors.toList()).contains(ss.getSopId())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(differenceList)) {
differenceList.forEach(dt -> dt.setLabelId(0L));
sopMapper.updateBatch(differenceList);
}
}
} else {
List<SopEntity> sopEntities = sopMapper.selectList(new QueryWrapper<SopEntity>().eq("label_id", organizeId));
if (CollUtil.isNotEmpty(sopEntities)) {
sopEntities.forEach(ss -> ss.setLabelId(0L));
sopMapper.updateBatch(sopEntities);
}
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void del(Long id) {
//1、删除标签组
this.removeById(id);
//2、删除标签
labelService.remove(new QueryWrapper<TiktokLabelEntity>().eq("label_organize_id", id));
//3、解除sop绑定
List<SopEntity> sopList = sopMapper.selectList(new QueryWrapper<SopEntity>().eq("label_id", id));
sopList.forEach(ss -> ss.setLabelId(0L));
sopMapper.updateBatch(sopList);
}
/** /**
* *
@ -41,20 +125,39 @@ public class TiktokLabelOrganizeServiceImpl
Page<TiktokLabelOrganizeEntity> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize()); Page<TiktokLabelOrganizeEntity> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize());
String name = labelOrganizeDto.getName(); String name = labelOrganizeDto.getName();
Date endTime = labelOrganizeDto.getEndTime();
Date beginTime = labelOrganizeDto.getBeginTime();
QueryWrapper<TiktokLabelOrganizeEntity> wrapper = new QueryWrapper<>(); QueryWrapper<TiktokLabelOrganizeEntity> wrapper = new QueryWrapper<>();
if (StringUtils.isNotBlank(name)){ if (StringUtils.isNotBlank(name)) {
wrapper.like("name",name); wrapper.like("name", name);
}
if (beginTime != null && endTime != null){
wrapper.ge("create_time", beginTime);
wrapper.le("create_time", endTime);
} }
wrapper.orderByDesc("create_time"); wrapper.orderByDesc("create_time");
IPage<TiktokLabelOrganizeEntity> iPage = this.page(page, wrapper); IPage<TiktokLabelOrganizeEntity> iPage = this.page(page, wrapper);
return PageResult.success // 列表插入标签信息和sop信息
(iPage.getTotal(), iPage.getPages(), iPage.getRecords()); List<TiktokLabelEntity> labelEntities = labelService.list(new QueryWrapper<>());
Map<Long, List<TiktokLabelEntity>> labelOrganizeMap = labelEntities.stream().collect(Collectors.groupingBy(TiktokLabelEntity::getLabelOrganizeId));
List<SopEntity> sopEntities = sopMapper.selectList(new QueryWrapper<SopEntity>().isNotNull("label_id"));
Map<Long, List<SopEntity>> sopMap = sopEntities.stream().collect(Collectors.groupingBy(SopEntity::getLabelId));
List<TiktokLabelOrganizeEntity> records = iPage.getRecords();
if (CollUtil.isNotEmpty(records)) {
for (TiktokLabelOrganizeEntity record : records) {
List<LabelSopVo> list = new ArrayList<>();
Long labelOrganizeId = record.getId();
if (labelOrganizeMap.containsKey(labelOrganizeId)) {
record.setLabelList(labelOrganizeMap.get(labelOrganizeId));
}
if (sopMap.containsKey(labelOrganizeId)) {
List<SopEntity> sopEntityList = sopMap.get(labelOrganizeId);
for (SopEntity sopEntity : sopEntityList) {
LabelSopVo labelSopVo = new LabelSopVo();
labelSopVo.setSopId(sopEntity.getSopId());
labelSopVo.setSopName(sopEntity.getSopName());
labelSopVo.setSopType(DefaultNumberConstants.ZERO_NUMBER);
list.add(labelSopVo);
}
}
record.setSopList(list);
}
}
return PageResult.success(iPage.getTotal(), iPage.getPages(), iPage.getRecords());
} }
/** /**
@ -79,4 +182,20 @@ public class TiktokLabelOrganizeServiceImpl
} }
return list; return list;
} }
@Override
public Object findSop() {
List<LabelSopVo> list = new ArrayList<>();
List<SopEntity> sopEntities = sopMapper.selectList(new QueryWrapper<SopEntity>().eq("label_id", 0));
if (CollUtil.isNotEmpty(sopEntities)) {
for (SopEntity sopEntity : sopEntities) {
LabelSopVo labelSopVo = new LabelSopVo();
labelSopVo.setSopId(sopEntity.getSopId());
labelSopVo.setSopName(sopEntity.getSopName());
labelSopVo.setSopType(DefaultNumberConstants.ZERO_NUMBER);
list.add(labelSopVo);
}
}
return list;
}
} }

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.baiye.dao.SopMapper">
<update id="updateBatchLabelId">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update tb_sop set label_id = #{item.labelOrganizeId} where sop_id = #{item.sopId}
</foreach>
</update>
<update id="updateBatch">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update tb_sop
<set>
<if test="item.labelId != null">
label_id = #{item.labelId}
</if>
</set>
where sop_id = #{item.sopId}
</foreach>
</update>
</mapper>
Loading…
Cancel
Save