diff --git a/cdp-iaas/authorization-server/src/main/resources/config/application-dev.yml b/cdp-iaas/authorization-server/src/main/resources/config/application-dev.yml index 73e1ac6..3bc28cc 100644 --- a/cdp-iaas/authorization-server/src/main/resources/config/application-dev.yml +++ b/cdp-iaas/authorization-server/src/main/resources/config/application-dev.yml @@ -17,8 +17,8 @@ spring: timeout: 5000 cloud: nacos: +# server-addr: 8.130.96.163:8848 server-addr: 127.0.0.1:8848 -# server-addr: 101.35.109.129:8848 config: server-addr: ${spring.cloud.nacos.server-addr} file-extension: yml diff --git a/cdp-iaas/gateway-server/src/main/resources/config/application-dev.yml b/cdp-iaas/gateway-server/src/main/resources/config/application-dev.yml index 59f4556..e49729f 100644 --- a/cdp-iaas/gateway-server/src/main/resources/config/application-dev.yml +++ b/cdp-iaas/gateway-server/src/main/resources/config/application-dev.yml @@ -14,7 +14,6 @@ spring: password: ${MYSQL_PASSWORD:y7z7noq2} nacos: server-addr: 127.0.0.1:8848 - # server-addr: 101.35.109.129 config: server-addr: ${spring.cloud.nacos.server-addr} file-extension: yml diff --git a/cdp-task/pom.xml b/cdp-task/pom.xml index 5132b26..8ac4ba1 100644 --- a/cdp-task/pom.xml +++ b/cdp-task/pom.xml @@ -20,6 +20,7 @@ org.apache.curator curator-framework + 2.12.0 diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokHotCommentSopController.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokHotCommentSopController.java index d88adb4..5887cfc 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokHotCommentSopController.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokHotCommentSopController.java @@ -107,16 +107,23 @@ public class TiktokHotCommentSopController { @GetMapping("/test") @ApiOperation("测试接口") - public void test(){ - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("implement_type", DefaultNumberConstants.ONE_NUMBER); - List sopEntityList = hotCommentSopService.list(wrapper); - Date date = new Date(); - // 1、取出要执行的sop - List collect = sopEntityList.stream() - .filter(st -> date.compareTo(st.getBeginTime()) > 0 && date.compareTo(st.getEndTime()) < 0) - .collect(Collectors.toList()); - // 2、执行sop规则 - hotCommentSopService.userWorkTask(collect.get(0)); + public void test(@RequestParam("id") Long id){ +// QueryWrapper wrapper = new QueryWrapper<>(); +// wrapper.eq("implement_type", DefaultNumberConstants.ONE_NUMBER); +// List sopEntityList = hotCommentSopService.list(wrapper); +// Date date = new Date(); +// // 1、取出要执行的sop +// List collect = sopEntityList.stream() +// .filter(st -> date.compareTo(st.getBeginTime()) > 0 && date.compareTo(st.getEndTime()) < 0) +// .collect(Collectors.toList()); +// // 2、执行sop规则 +// hotCommentSopService.userWorkTask(collect.get(0)); + + + +// TiktokHotCommentSopEntity sopEntity = hotCommentSopService.getById(id); +// hotCommentSopService.userWorkTask(sopEntity); + + hotCommentSopService.refreshVideo(); } } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokLabelOrganizeController.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokLabelOrganizeController.java index 5c220e7..abfaf11 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokLabelOrganizeController.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokLabelOrganizeController.java @@ -7,6 +7,7 @@ import com.baiye.core.page.PageResult; import com.baiye.dto.TiktokLabelOrganizeDto; import com.baiye.entity.TiktokLabelOrganizeEntity; import com.baiye.service.TiktokLabelOrganizeService; +import com.baiye.service.TiktokLabelService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -32,7 +33,27 @@ public class TiktokLabelOrganizeController { @PostMapping("/save") @ApiOperation("标签组新增") 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(); } @@ -64,13 +85,12 @@ public class TiktokLabelOrganizeController { } /** - * 修改 + * 查询未绑定标签组的sop列表 */ - @PostMapping("/update") - @ApiOperation("标签组信息修改") - public Result update(@Validated({UpdateGroup.class}) @RequestBody TiktokLabelOrganizeEntity labelOrganizeEntity ){ - labelOrganizeService.updateById(labelOrganizeEntity); - return Result.success(); + @GetMapping("/sopList") + @ApiOperation("查询未绑定标签组的sop列表") + public Result findSop(){ + return Result.data(labelOrganizeService.findSop()); } } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/DayLastTimeJob.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/DayLastTimeJob.java similarity index 87% rename from cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/DayLastTimeJob.java rename to cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/DayLastTimeJob.java index 3cbb230..95c2bb2 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/DayLastTimeJob.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/DayLastTimeJob.java @@ -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.simple.SimpleJob; @@ -8,14 +8,12 @@ import org.springframework.stereotype.Component; 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 @Component public class DayLastTimeJob implements SimpleJob { private static DayLastTimeJob dayLastTimeJob; - - @PostConstruct public void init() { dayLastTimeJob = this; diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokEquipmentJob.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/TiktokEquipmentJob.java similarity index 68% rename from cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokEquipmentJob.java rename to cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/TiktokEquipmentJob.java index 30cdd0f..3506f9c 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokEquipmentJob.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/TiktokEquipmentJob.java @@ -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.simple.SimpleJob; import com.example.autoconfig.ElasticSimpleJob; @@ -7,19 +8,20 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; +import javax.annotation.Resource; -@ElasticSimpleJob(jobName = "EquipmentJob", cron = "0 0 0/2 * * ? ") -//@ElasticSimpleJob(jobName = "EquipmentJob", cron = "0/1 * * * * ? ", shardingTotalCount = 1, overwrite = true, jobEvent = false) +@ElasticSimpleJob(jobName = "EquipmentJob1", cron = "0 0 0/2 * * ? ", shardingTotalCount = 1, overwrite = true, jobEvent = false) @Slf4j @Component public class TiktokEquipmentJob implements SimpleJob { - private static TiktokEquipmentJob equipmentJob; - + @Resource + private TiktokEquipmentService equipmentService; + private static TiktokEquipmentJob equipmentJob; @PostConstruct - public void init(){ + public void init() { equipmentJob = this; } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokHotCommentSopJob.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/TiktokHotCommentSopJob.java similarity index 81% rename from cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokHotCommentSopJob.java rename to cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/TiktokHotCommentSopJob.java index dafd332..1be6b1b 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokHotCommentSopJob.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/TiktokHotCommentSopJob.java @@ -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.simple.SimpleJob; import com.example.autoconfig.ElasticSimpleJob; @@ -7,19 +8,20 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; 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 @Component public class TiktokHotCommentSopJob implements SimpleJob { - - + @Resource + private TiktokHotCommentSopService hotCommentSopService; private static TiktokHotCommentSopJob hotCommentSopJob; @PostConstruct - public void init(){ + public void init() { hotCommentSopJob = this; } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokHotCommentVideoJob.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/TiktokHotCommentVideoJob.java similarity index 68% rename from cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokHotCommentVideoJob.java rename to cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/TiktokHotCommentVideoJob.java index 871df6a..294088f 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokHotCommentVideoJob.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/TiktokHotCommentVideoJob.java @@ -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.simple.SimpleJob; import com.example.autoconfig.ElasticSimpleJob; @@ -7,19 +8,20 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; 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 @Component public class TiktokHotCommentVideoJob implements SimpleJob { + @Resource + private TiktokHotCommentSopService hotCommentSopService; private static TiktokHotCommentVideoJob hotCommentVideoJob; - - @PostConstruct - public void init(){ + public void init() { hotCommentVideoJob = this; } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokNotFriendPrivateLetterJop.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokNotFriendPrivateLetterJop.java index 28f3409..a4dc7e0 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokNotFriendPrivateLetterJop.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokNotFriendPrivateLetterJop.java @@ -1,134 +1,134 @@ -package com.baiye.job.dy_tool_member; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.ObjectUtil; -import com.baiye.api.TiktokRequestClient; -import com.baiye.api.request.TiktokPrivateLetterRequest; -import com.baiye.api.response.TiktokPrivateLetterResponse; -import com.baiye.core.constant.DefaultNumberConstants; -import com.baiye.core.constant.TiktokRequestConstants; -import com.baiye.dto.TiktokMemberDTO; -import com.baiye.entity.TiktokEquipmentEntity; -import com.baiye.entity.TiktokPrivateLetter; -import com.baiye.entity.TiktokPrivateLetterParameter; -import com.baiye.properties.TiktokProperties; -import com.baiye.service.TiktokEquipmentService; -import com.baiye.service.TiktokMemberService; -import com.baiye.service.TiktokPrivateLetterParameterService; -import com.baiye.service.TiktokPrivateLetterService; -import com.dangdang.ddframe.job.api.ShardingContext; -import com.dangdang.ddframe.job.api.simple.SimpleJob; -import com.example.autoconfig.ElasticSimpleJob; -import com.google.common.collect.Lists; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpStatus; -import org.springframework.stereotype.Component; - -import javax.annotation.PostConstruct; -import javax.annotation.Resource; -import java.util.List; - -/** - * 此方法与私信方式类似 - * 获取不是好友的私信 - * @author Enzo - * @date : 2022/9/30 - */ -@Slf4j -@Component -@ElasticSimpleJob(jobName = "tiktokNotFriendPrivateLetterJop", cron = "0 0/10 * * * ? ") -public class TiktokNotFriendPrivateLetterJop implements SimpleJob { - - - @Value("${snowflake.workerId}") - private int workerId; - - @Value("${snowflake.datacenterId}") - private int datacenterId; - - @Resource - private TiktokProperties tiktokProperties; - - @Resource - private TiktokMemberService tiktokMemberService; - - @Resource - private TiktokEquipmentService tiktokEquipmentService; - - private static TiktokNotFriendPrivateLetterJop tiktokNotFriendPrivateLetterJop; - - @Resource - private TiktokPrivateLetterService tiktokPrivateLetterService; - - @Resource - private TiktokPrivateLetterParameterService tiktokPrivateLetterParameterService; - - @PostConstruct - public void init() { - tiktokNotFriendPrivateLetterJop = this; - } - - @Override - public void execute(ShardingContext shardingContext) { - List list = Lists.newArrayList(); - List equipmentEntityList = - tiktokNotFriendPrivateLetterJop.tiktokEquipmentService.findBySignInStatus(DefaultNumberConstants.ONE_NUMBER); - if (CollUtil.isNotEmpty(equipmentEntityList)) { - for (TiktokEquipmentEntity entity : equipmentEntityList) { - // 好友私信请求 - TiktokPrivateLetterRequest privateLetterRequest = new TiktokPrivateLetterRequest(); - TiktokPrivateLetterRequest.PrivateLetterDTO letterDTO = privateLetterRequest.new PrivateLetterDTO(); - - String dyVendorId = entity.getDyVendorId(); - TiktokPrivateLetterParameter byVendorId = tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterParameterService. - selectByVendorId(entity.getDyVendorId(), DefaultNumberConstants.TWO_NUMBER); - letterDTO.setMaxTime((long) DefaultNumberConstants.ZERO_NUMBER); - if (ObjectUtil.isNotNull(byVendorId) - && ObjectUtil.isNotNull(byVendorId.getMaxTime())) { - letterDTO.setMaxTime(byVendorId.getMaxTime()); - } - letterDTO.setVendorId(dyVendorId); - privateLetterRequest.setData(letterDTO); - - // 构建请求 - TiktokPrivateLetterResponse notFriendResponse = TiktokRequestClient.createTiktokResponse - (TiktokRequestConstants.TIK_TOK_GET_RECENT_STRANGER_MESSAGE, privateLetterRequest, tiktokProperties); - if (ObjectUtil.isNotNull(notFriendResponse.getSuccess()) - && Boolean.TRUE.equals(notFriendResponse.getSuccess()) - && notFriendResponse.getStatus() == HttpStatus.OK.value()) { - TiktokPrivateLetterResponse.PrivateLetterResponse responseData = notFriendResponse.getData(); - if (CollUtil.isNotEmpty(responseData.getConvList())) { - // 解析数据 - TiktokPrivateLetterResponse.PrivateLetterResponse.TikTokMessageDTO tikTokMessageDTO - = responseData.getConvList().get(DefaultNumberConstants.ZERO_NUMBER); - for (TiktokPrivateLetterResponse.PrivateLetterResponse. - TikTokMessageDTO.MessageDTO dto : tikTokMessageDTO.getMsgList()) { - String text = dto.getText().getText(); - Long nextId = IdUtil.getSnowflake(workerId, datacenterId).nextId(); - TiktokMemberDTO tiktokMemberDTO = tiktokNotFriendPrivateLetterJop.tiktokMemberService. - saveTiktokMemberByTiktok(String.valueOf(dto.getSenderId()), entity.getDyVendorId()); - // 构建实体 - TiktokPrivateLetter privateLetter = TiktokPrivateLetter.builder().id(nextId). - senderId(dto.getSenderId()).receiverId - (Long.parseLong(entity.getDyUserId())).msg(text).memberId - (ObjectUtil.isNotNull(tiktokMemberDTO) ? Long.parseLong(tiktokMemberDTO.getId()) : nextId). - tiktokId(dto.getSenderId()).status(DefaultNumberConstants.ONE_NUMBER).msgType(dto.getText().getType()). - isRead(DefaultNumberConstants.ZERO_NUMBER).msgTime(dto.getTime()).build(); - // 发送消息 - tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterService.sendMessage(tiktokMemberDTO, privateLetter); - list.add(privateLetter); - } - Long maxTime = responseData.getMaxTime(); - // 修改发送时间 - tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterParameterService. - saveOrUpdateParameter(byVendorId, dyVendorId, maxTime, DefaultNumberConstants.TWO_NUMBER); - // 批量保存私信内容 - tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterService.batchInsertPrivateLetter(list); - } - } - } - } - } -} +//package com.baiye.job.dy_tool_member; +// +//import cn.hutool.core.collection.CollUtil; +//import cn.hutool.core.util.IdUtil; +//import cn.hutool.core.util.ObjectUtil; +//import com.baiye.api.TiktokRequestClient; +//import com.baiye.api.request.TiktokPrivateLetterRequest; +//import com.baiye.api.response.TiktokPrivateLetterResponse; +//import com.baiye.core.constant.DefaultNumberConstants; +//import com.baiye.core.constant.TiktokRequestConstants; +//import com.baiye.dto.TiktokMemberDTO; +//import com.baiye.entity.TiktokEquipmentEntity; +//import com.baiye.entity.TiktokPrivateLetter; +//import com.baiye.entity.TiktokPrivateLetterParameter; +//import com.baiye.properties.TiktokProperties; +//import com.baiye.service.TiktokEquipmentService; +//import com.baiye.service.TiktokMemberService; +//import com.baiye.service.TiktokPrivateLetterParameterService; +//import com.baiye.service.TiktokPrivateLetterService; +//import com.dangdang.ddframe.job.api.ShardingContext; +//import com.dangdang.ddframe.job.api.simple.SimpleJob; +//import com.example.autoconfig.ElasticSimpleJob; +//import com.google.common.collect.Lists; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.http.HttpStatus; +//import org.springframework.stereotype.Component; +// +//import javax.annotation.PostConstruct; +//import javax.annotation.Resource; +//import java.util.List; +// +///** +// * 此方法与私信方式类似 +// * 获取不是好友的私信 +// * @author Enzo +// * @date : 2022/9/30 +// */ +//@Slf4j +//@Component +//@ElasticSimpleJob(jobName = "tiktokNotFriendPrivateLetterJop", cron = "0 0/10 * * * ? ") +//public class TiktokNotFriendPrivateLetterJop implements SimpleJob { +// +// +// @Value("${snowflake.workerId}") +// private int workerId; +// +// @Value("${snowflake.datacenterId}") +// private int datacenterId; +// +// @Resource +// private TiktokProperties tiktokProperties; +// +// @Resource +// private TiktokMemberService tiktokMemberService; +// +// @Resource +// private TiktokEquipmentService tiktokEquipmentService; +// +// private static TiktokNotFriendPrivateLetterJop tiktokNotFriendPrivateLetterJop; +// +// @Resource +// private TiktokPrivateLetterService tiktokPrivateLetterService; +// +// @Resource +// private TiktokPrivateLetterParameterService tiktokPrivateLetterParameterService; +// +// @PostConstruct +// public void init() { +// tiktokNotFriendPrivateLetterJop = this; +// } +// +// @Override +// public void execute(ShardingContext shardingContext) { +// List list = Lists.newArrayList(); +// List equipmentEntityList = +// tiktokNotFriendPrivateLetterJop.tiktokEquipmentService.findBySignInStatus(DefaultNumberConstants.ONE_NUMBER); +// if (CollUtil.isNotEmpty(equipmentEntityList)) { +// for (TiktokEquipmentEntity entity : equipmentEntityList) { +// // 好友私信请求 +// TiktokPrivateLetterRequest privateLetterRequest = new TiktokPrivateLetterRequest(); +// TiktokPrivateLetterRequest.PrivateLetterDTO letterDTO = privateLetterRequest.new PrivateLetterDTO(); +// +// String dyVendorId = entity.getDyVendorId(); +// TiktokPrivateLetterParameter byVendorId = tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterParameterService. +// selectByVendorId(entity.getDyVendorId(), DefaultNumberConstants.TWO_NUMBER); +// letterDTO.setMaxTime((long) DefaultNumberConstants.ZERO_NUMBER); +// if (ObjectUtil.isNotNull(byVendorId) +// && ObjectUtil.isNotNull(byVendorId.getMaxTime())) { +// letterDTO.setMaxTime(byVendorId.getMaxTime()); +// } +// letterDTO.setVendorId(dyVendorId); +// privateLetterRequest.setData(letterDTO); +// +// // 构建请求 +// TiktokPrivateLetterResponse notFriendResponse = TiktokRequestClient.createTiktokResponse +// (TiktokRequestConstants.TIK_TOK_GET_RECENT_STRANGER_MESSAGE, privateLetterRequest, tiktokProperties); +// if (ObjectUtil.isNotNull(notFriendResponse.getSuccess()) +// && Boolean.TRUE.equals(notFriendResponse.getSuccess()) +// && notFriendResponse.getStatus() == HttpStatus.OK.value()) { +// TiktokPrivateLetterResponse.PrivateLetterResponse responseData = notFriendResponse.getData(); +// if (CollUtil.isNotEmpty(responseData.getConvList())) { +// // 解析数据 +// TiktokPrivateLetterResponse.PrivateLetterResponse.TikTokMessageDTO tikTokMessageDTO +// = responseData.getConvList().get(DefaultNumberConstants.ZERO_NUMBER); +// for (TiktokPrivateLetterResponse.PrivateLetterResponse. +// TikTokMessageDTO.MessageDTO dto : tikTokMessageDTO.getMsgList()) { +// String text = dto.getText().getText(); +// Long nextId = IdUtil.getSnowflake(workerId, datacenterId).nextId(); +// TiktokMemberDTO tiktokMemberDTO = tiktokNotFriendPrivateLetterJop.tiktokMemberService. +// saveTiktokMemberByTiktok(String.valueOf(dto.getSenderId()), entity.getDyVendorId()); +// // 构建实体 +// TiktokPrivateLetter privateLetter = TiktokPrivateLetter.builder().id(nextId). +// senderId(dto.getSenderId()).receiverId +// (Long.parseLong(entity.getDyUserId())).msg(text).memberId +// (ObjectUtil.isNotNull(tiktokMemberDTO) ? Long.parseLong(tiktokMemberDTO.getId()) : nextId). +// tiktokId(dto.getSenderId()).status(DefaultNumberConstants.ONE_NUMBER).msgType(dto.getText().getType()). +// isRead(DefaultNumberConstants.ZERO_NUMBER).msgTime(dto.getTime()).build(); +// // 发送消息 +// tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterService.sendMessage(tiktokMemberDTO, privateLetter); +// list.add(privateLetter); +// } +// Long maxTime = responseData.getMaxTime(); +// // 修改发送时间 +// tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterParameterService. +// saveOrUpdateParameter(byVendorId, dyVendorId, maxTime, DefaultNumberConstants.TWO_NUMBER); +// // 批量保存私信内容 +// tiktokNotFriendPrivateLetterJop.tiktokPrivateLetterService.batchInsertPrivateLetter(list); +// } +// } +// } +// } +// } +//} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokPrivateLetterJop.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokPrivateLetterJop.java index 5128df5..0191d32 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokPrivateLetterJop.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/dy_tool_member/TiktokPrivateLetterJop.java @@ -1,135 +1,135 @@ -package com.baiye.job.dy_tool_member; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.ObjectUtil; -import com.baiye.api.TiktokRequestClient; -import com.baiye.api.request.TiktokPrivateLetterRequest; -import com.baiye.api.response.TiktokPrivateLetterResponse; -import com.baiye.core.constant.DefaultNumberConstants; -import com.baiye.core.constant.TiktokRequestConstants; -import com.baiye.dto.TiktokMemberDTO; -import com.baiye.entity.TiktokEquipmentEntity; -import com.baiye.entity.TiktokPrivateLetter; -import com.baiye.entity.TiktokPrivateLetterParameter; -import com.baiye.properties.TiktokProperties; -import com.baiye.service.TiktokEquipmentService; -import com.baiye.service.TiktokMemberService; -import com.baiye.service.TiktokPrivateLetterParameterService; -import com.baiye.service.TiktokPrivateLetterService; -import com.dangdang.ddframe.job.api.ShardingContext; -import com.dangdang.ddframe.job.api.simple.SimpleJob; -import com.example.autoconfig.ElasticSimpleJob; -import com.google.common.collect.Lists; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpStatus; -import org.springframework.stereotype.Component; - -import javax.annotation.PostConstruct; -import javax.annotation.Resource; -import java.util.List; - -/** - * 十分钟私信任务 - * - * @author Enzo - * @date : 2022/9/30 - */ -@Slf4j -@Component -@ElasticSimpleJob(jobName = "tiktokPrivateLetterJop", cron = "0 0/10 * * * ? ") -public class TiktokPrivateLetterJop implements SimpleJob { - - - @Value("${snowflake.workerId}") - private int workerId; - - @Value("${snowflake.datacenterId}") - private int datacenterId; - - @Resource - private TiktokProperties tiktokProperties; - - @Resource - private TiktokMemberService tiktokMemberService; - - @Resource - private TiktokEquipmentService tiktokEquipmentService; - - private static TiktokPrivateLetterJop privateLetterJop; - - @Resource - private TiktokPrivateLetterService tiktokPrivateLetterService; - - @Resource - private TiktokPrivateLetterParameterService tiktokPrivateLetterParameterService; - - @PostConstruct - public void init() { - privateLetterJop = this; - } - - @Override - public void execute(ShardingContext shardingContext) { - List list = Lists.newArrayList(); - List equipmentEntityList = - privateLetterJop.tiktokEquipmentService.findBySignInStatus(DefaultNumberConstants.ONE_NUMBER); - if (CollUtil.isNotEmpty(equipmentEntityList)) { - for (TiktokEquipmentEntity entity : equipmentEntityList) { - // 好友私信请求 - TiktokPrivateLetterRequest privateLetterRequest = new TiktokPrivateLetterRequest(); - TiktokPrivateLetterRequest.PrivateLetterDTO letterDTO = privateLetterRequest.new PrivateLetterDTO(); - - String dyVendorId = entity.getDyVendorId(); - TiktokPrivateLetterParameter byVendorId = privateLetterJop.tiktokPrivateLetterParameterService. - selectByVendorId(entity.getDyVendorId(), DefaultNumberConstants.ONE_NUMBER); - letterDTO.setMaxTime((long) DefaultNumberConstants.ZERO_NUMBER); - - if (ObjectUtil.isNotNull(byVendorId) - && ObjectUtil.isNotNull(byVendorId.getMaxTime())) { - letterDTO.setMaxTime(byVendorId.getMaxTime()); - } - letterDTO.setVendorId(dyVendorId); - privateLetterRequest.setData(letterDTO); - - // 构建请求 - TiktokPrivateLetterResponse privateLetterResponse = TiktokRequestClient.createTiktokResponse - (TiktokRequestConstants.TIK_TOK_GET_FRIEND_MESSAGE, privateLetterRequest, tiktokProperties); - if (ObjectUtil.isNotNull(privateLetterResponse.getSuccess()) - && Boolean.TRUE.equals(privateLetterResponse.getSuccess()) - && privateLetterResponse.getStatus() == HttpStatus.OK.value()) { - TiktokPrivateLetterResponse.PrivateLetterResponse data = privateLetterResponse.getData(); - if (CollUtil.isNotEmpty(data.getConvList())) { - // 解析数据 - TiktokPrivateLetterResponse.PrivateLetterResponse.TikTokMessageDTO tikTokMessageDTO - = data.getConvList().get(DefaultNumberConstants.ZERO_NUMBER); - for (TiktokPrivateLetterResponse.PrivateLetterResponse. - TikTokMessageDTO.MessageDTO dto : tikTokMessageDTO.getMsgList()) { - String text = dto.getText().getText(); - Long nextId = IdUtil.getSnowflake(workerId, datacenterId).nextId(); - TiktokMemberDTO tiktokMemberDTO = privateLetterJop.tiktokMemberService. - saveTiktokMemberByTiktok(String.valueOf(dto.getSenderId()), entity.getDyVendorId()); - // 构建实体 - TiktokPrivateLetter privateLetter = TiktokPrivateLetter.builder().id(nextId). - senderId(dto.getSenderId()).receiverId - (Long.parseLong(entity.getDyUserId())).msg(text).memberId - (ObjectUtil.isNotNull(tiktokMemberDTO) ? Long.parseLong(tiktokMemberDTO.getId()) : nextId). - tiktokId(dto.getSenderId()).status(DefaultNumberConstants.ONE_NUMBER).msgType(dto.getText().getType()). - isRead(DefaultNumberConstants.ZERO_NUMBER).msgTime(dto.getTime()).build(); - // 发送消息 - privateLetterJop.tiktokPrivateLetterService.sendMessage(tiktokMemberDTO, privateLetter); - list.add(privateLetter); - } - Long maxTime = data.getMaxTime(); - // 修改发送时间 - privateLetterJop.tiktokPrivateLetterParameterService. - saveOrUpdateParameter(byVendorId, dyVendorId, maxTime, DefaultNumberConstants.ONE_NUMBER); - // 批量保存私信内容 - privateLetterJop.tiktokPrivateLetterService.batchInsertPrivateLetter(list); - } - } - } - } - } -} +//package com.baiye.job.dy_tool_member; +// +//import cn.hutool.core.collection.CollUtil; +//import cn.hutool.core.util.IdUtil; +//import cn.hutool.core.util.ObjectUtil; +//import com.baiye.api.TiktokRequestClient; +//import com.baiye.api.request.TiktokPrivateLetterRequest; +//import com.baiye.api.response.TiktokPrivateLetterResponse; +//import com.baiye.core.constant.DefaultNumberConstants; +//import com.baiye.core.constant.TiktokRequestConstants; +//import com.baiye.dto.TiktokMemberDTO; +//import com.baiye.entity.TiktokEquipmentEntity; +//import com.baiye.entity.TiktokPrivateLetter; +//import com.baiye.entity.TiktokPrivateLetterParameter; +//import com.baiye.properties.TiktokProperties; +//import com.baiye.service.TiktokEquipmentService; +//import com.baiye.service.TiktokMemberService; +//import com.baiye.service.TiktokPrivateLetterParameterService; +//import com.baiye.service.TiktokPrivateLetterService; +//import com.dangdang.ddframe.job.api.ShardingContext; +//import com.dangdang.ddframe.job.api.simple.SimpleJob; +//import com.example.autoconfig.ElasticSimpleJob; +//import com.google.common.collect.Lists; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.http.HttpStatus; +//import org.springframework.stereotype.Component; +// +//import javax.annotation.PostConstruct; +//import javax.annotation.Resource; +//import java.util.List; +// +///** +// * 十分钟私信任务 +// * +// * @author Enzo +// * @date : 2022/9/30 +// */ +//@Slf4j +//@Component +//@ElasticSimpleJob(jobName = "tiktokPrivateLetterJop", cron = "0 0/10 * * * ? ") +//public class TiktokPrivateLetterJop implements SimpleJob { +// +// +// @Value("${snowflake.workerId}") +// private int workerId; +// +// @Value("${snowflake.datacenterId}") +// private int datacenterId; +// +// @Resource +// private TiktokProperties tiktokProperties; +// +// @Resource +// private TiktokMemberService tiktokMemberService; +// +// @Resource +// private TiktokEquipmentService tiktokEquipmentService; +// +// private static TiktokPrivateLetterJop privateLetterJop; +// +// @Resource +// private TiktokPrivateLetterService tiktokPrivateLetterService; +// +// @Resource +// private TiktokPrivateLetterParameterService tiktokPrivateLetterParameterService; +// +// @PostConstruct +// public void init() { +// privateLetterJop = this; +// } +// +// @Override +// public void execute(ShardingContext shardingContext) { +// List list = Lists.newArrayList(); +// List equipmentEntityList = +// privateLetterJop.tiktokEquipmentService.findBySignInStatus(DefaultNumberConstants.ONE_NUMBER); +// if (CollUtil.isNotEmpty(equipmentEntityList)) { +// for (TiktokEquipmentEntity entity : equipmentEntityList) { +// // 好友私信请求 +// TiktokPrivateLetterRequest privateLetterRequest = new TiktokPrivateLetterRequest(); +// TiktokPrivateLetterRequest.PrivateLetterDTO letterDTO = privateLetterRequest.new PrivateLetterDTO(); +// +// String dyVendorId = entity.getDyVendorId(); +// TiktokPrivateLetterParameter byVendorId = privateLetterJop.tiktokPrivateLetterParameterService. +// selectByVendorId(entity.getDyVendorId(), DefaultNumberConstants.ONE_NUMBER); +// letterDTO.setMaxTime((long) DefaultNumberConstants.ZERO_NUMBER); +// +// if (ObjectUtil.isNotNull(byVendorId) +// && ObjectUtil.isNotNull(byVendorId.getMaxTime())) { +// letterDTO.setMaxTime(byVendorId.getMaxTime()); +// } +// letterDTO.setVendorId(dyVendorId); +// privateLetterRequest.setData(letterDTO); +// +// // 构建请求 +// TiktokPrivateLetterResponse privateLetterResponse = TiktokRequestClient.createTiktokResponse +// (TiktokRequestConstants.TIK_TOK_GET_FRIEND_MESSAGE, privateLetterRequest, tiktokProperties); +// if (ObjectUtil.isNotNull(privateLetterResponse.getSuccess()) +// && Boolean.TRUE.equals(privateLetterResponse.getSuccess()) +// && privateLetterResponse.getStatus() == HttpStatus.OK.value()) { +// TiktokPrivateLetterResponse.PrivateLetterResponse data = privateLetterResponse.getData(); +// if (CollUtil.isNotEmpty(data.getConvList())) { +// // 解析数据 +// TiktokPrivateLetterResponse.PrivateLetterResponse.TikTokMessageDTO tikTokMessageDTO +// = data.getConvList().get(DefaultNumberConstants.ZERO_NUMBER); +// for (TiktokPrivateLetterResponse.PrivateLetterResponse. +// TikTokMessageDTO.MessageDTO dto : tikTokMessageDTO.getMsgList()) { +// String text = dto.getText().getText(); +// Long nextId = IdUtil.getSnowflake(workerId, datacenterId).nextId(); +// TiktokMemberDTO tiktokMemberDTO = privateLetterJop.tiktokMemberService. +// saveTiktokMemberByTiktok(String.valueOf(dto.getSenderId()), entity.getDyVendorId()); +// // 构建实体 +// TiktokPrivateLetter privateLetter = TiktokPrivateLetter.builder().id(nextId). +// senderId(dto.getSenderId()).receiverId +// (Long.parseLong(entity.getDyUserId())).msg(text).memberId +// (ObjectUtil.isNotNull(tiktokMemberDTO) ? Long.parseLong(tiktokMemberDTO.getId()) : nextId). +// tiktokId(dto.getSenderId()).status(DefaultNumberConstants.ONE_NUMBER).msgType(dto.getText().getType()). +// isRead(DefaultNumberConstants.ZERO_NUMBER).msgTime(dto.getTime()).build(); +// // 发送消息 +// privateLetterJop.tiktokPrivateLetterService.sendMessage(tiktokMemberDTO, privateLetter); +// list.add(privateLetter); +// } +// Long maxTime = data.getMaxTime(); +// // 修改发送时间 +// privateLetterJop.tiktokPrivateLetterParameterService. +// saveOrUpdateParameter(byVendorId, dyVendorId, maxTime, DefaultNumberConstants.ONE_NUMBER); +// // 批量保存私信内容 +// privateLetterJop.tiktokPrivateLetterService.batchInsertPrivateLetter(list); +// } +// } +// } +// } +// } +//} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/resources/banner.txt b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/resources/banner.txt new file mode 100644 index 0000000..1eee85a --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/resources/banner.txt @@ -0,0 +1,23 @@ + , + \`-, + | `\ + | \ + __/.- - -.\,__ + _.-'` `'"'--..,__ + .-'` `'--.,_ + .'` _ _ ___ `) + .' .'` `'-. (_` _`) _.-' + .' '--. '. .-.`"`@ .-'""-, + .------~' ,.---' '-._ _.' / `'--'"""".-' + /` ' /` _,..-----.,__ `''''`/ ;__,..--''--'` + `'--.,__ ' |-'` `'---'| | + `\ \ \ / + | | '-' + \ | + yqy `\ | + \/ + 年少太轻狂 误入IT行 + 白发森森立 两眼直茫茫 + 语言数十种 无一称擅长 + 三十而立时 无房单身郎 + diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dao/SopMapper.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dao/SopMapper.java index d36c1ab..a553001 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dao/SopMapper.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dao/SopMapper.java @@ -1,9 +1,11 @@ package com.baiye.dao; import com.baiye.entity.SopEntity; +import com.baiye.vo.LabelSopVo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @author jt @@ -11,4 +13,7 @@ import org.apache.ibatis.annotations.Param; @Mapper public interface SopMapper extends BaseMapper { + void updateBatchLabelId(List list); + + void updateBatch(List list); } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/SopDto.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/SopDto.java index 5e8db67..739d52f 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/SopDto.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/SopDto.java @@ -28,6 +28,9 @@ public class SopDto { @JsonSerialize(using = ToStringSerializer.class) private Long sopId; + @ApiModelProperty(value = "标签组ID") + private Long labelId; + /** * sop名称 */ diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/SopEntity.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/SopEntity.java index 1da7050..80003de 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/SopEntity.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/SopEntity.java @@ -108,4 +108,8 @@ public class SopEntity implements Serializable { @TableField("status") @ApiModelProperty(value = "sop状态 0-未执行 1-执行中") private Integer status; + + @TableField("label_id") + @ApiModelProperty(value = "标签组ID") + private Long labelId; } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokLabelEntity.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokLabelEntity.java index 35a1fe6..dbbc455 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokLabelEntity.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokLabelEntity.java @@ -1,10 +1,10 @@ package com.baiye.entity; +import com.baiye.core.base.MybatisBaseEntity; import com.baiye.core.constant.AddGroup; import com.baiye.core.constant.UpdateGroup; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; -import com.baiye.core.base.BaseEntity; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -21,7 +21,7 @@ import javax.validation.constraints.NotNull; @EqualsAndHashCode(callSuper = true) @Accessors(chain = true) @TableName("tb_label") -public class TiktokLabelEntity extends BaseEntity { +public class TiktokLabelEntity extends MybatisBaseEntity { private static final long serialVersionUID = 1L; @@ -40,7 +40,6 @@ public class TiktokLabelEntity extends BaseEntity { private Long userId; @ApiModelProperty(value = "所属标签组ID") - @NotNull(groups = AddGroup.class, message = "标签组ID不能为空") private Long labelOrganizeId; } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokLabelOrganizeEntity.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokLabelOrganizeEntity.java index 6dabfbd..e3cef6e 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokLabelOrganizeEntity.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokLabelOrganizeEntity.java @@ -3,6 +3,7 @@ package com.baiye.entity; import com.baiye.core.base.MybatisBaseEntity; import com.baiye.core.constant.AddGroup; import com.baiye.core.constant.UpdateGroup; +import com.baiye.vo.LabelSopVo; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; @@ -12,10 +13,13 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import javax.validation.Valid; import javax.validation.constraints.NotNull; import javax.validation.constraints.Null; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; /** * @author yqy @@ -31,15 +35,27 @@ public class TiktokLabelOrganizeEntity extends MybatisBaseEntity { @ApiModelProperty(value = "标签组主键ID") @TableId(value = "id", type = IdType.AUTO) - @Null(groups = UpdateGroup.class, message = "ID不能为空") + @NotNull(groups = UpdateGroup.class, message = "组ID不能为空") private Long id; @ApiModelProperty(value = "标签组名称") @NotNull(groups = AddGroup.class, message = "小组名称不能为空") private String name; + @ApiModelProperty(value = "备注") + private String remark; + @ApiModelProperty(value = "标签集合") @TableField(exist = false) + //@Valid private List labelList = new ArrayList<>(); + @ApiModelProperty(value = "sop集合") + @TableField(exist = false) + private List sopList = new ArrayList<>(); + + @ApiModelProperty(value = "更新时要删除的标签ID集合") + @TableField(exist = false) + private Set delLabelIdSet = new HashSet<>(); + } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/vo/LabelSopVo.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/vo/LabelSopVo.java new file mode 100644 index 0000000..bf9b57b --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/vo/LabelSopVo.java @@ -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; +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokLabelOrganizeService.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokLabelOrganizeService.java index 84e3fe6..73e9ee4 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokLabelOrganizeService.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokLabelOrganizeService.java @@ -14,6 +14,21 @@ import java.util.List; */ public interface TiktokLabelOrganizeService extends IService { + /** + * 添加标签组 + */ + void add(TiktokLabelOrganizeEntity labelOrganizeEntity); + + /** + * 修改标签组 + */ + void updateInfo(TiktokLabelOrganizeEntity labelOrganizeEntity); + + /** + * 删除 + */ + void del(Long id); + /** * 分页查询 */ @@ -23,4 +38,9 @@ public interface TiktokLabelOrganizeService extends IService labelList(); + + /** + * 查询未绑定标签组的sop列表 + */ + Object findSop(); } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokHotCommentSopServiceImpl.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokHotCommentSopServiceImpl.java index e50d3ab..2faf45b 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokHotCommentSopServiceImpl.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokHotCommentSopServiceImpl.java @@ -367,7 +367,6 @@ public class TiktokHotCommentSopServiceImpl extends ServiceImpl redisUtils.set(DefaultKeyConstants.SOP_COMMENT_KEY + st.getCid(), DefaultNumberConstants.ZERO_NUMBER)); } } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokLabelOrganizeServiceImpl.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokLabelOrganizeServiceImpl.java index 9688672..989aa37 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokLabelOrganizeServiceImpl.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokLabelOrganizeServiceImpl.java @@ -1,14 +1,18 @@ package com.baiye.service.impl; import cn.hutool.core.collection.CollUtil; +import com.baiye.core.constant.DefaultNumberConstants; import com.baiye.core.page.PageResult; import com.baiye.core.util.StringUtils; +import com.baiye.dao.SopMapper; import com.baiye.dao.TiktokLabelOrganizeMapper; import com.baiye.dto.TiktokLabelOrganizeDto; +import com.baiye.entity.SopEntity; import com.baiye.entity.TiktokLabelEntity; import com.baiye.entity.TiktokLabelOrganizeEntity; import com.baiye.service.TiktokLabelOrganizeService; import com.baiye.service.TiktokLabelService; +import com.baiye.vo.LabelSopVo; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -16,10 +20,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -32,6 +35,87 @@ public class TiktokLabelOrganizeServiceImpl extends ServiceImpl implements TiktokLabelOrganizeService { private final TiktokLabelService labelService; + private final SopMapper sopMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public void add(TiktokLabelOrganizeEntity labelOrganizeEntity) { + //1、插入标签组信息 + this.save(labelOrganizeEntity); + //2、添加标签信息 + List labelList = labelOrganizeEntity.getLabelList(); + if (CollUtil.isNotEmpty(labelList)) { + labelList.forEach(lt -> lt.setLabelOrganizeId(labelOrganizeEntity.getId())); + labelService.saveBatch(labelList); + } + //3、更新绑定的sop信息 + List sopList = labelOrganizeEntity.getSopList(); + if (CollUtil.isNotEmpty(sopList)) { + Map> map = sopList.stream().collect(Collectors.groupingBy(LabelSopVo::getSopType)); + //3.1、评论sop的组绑定 + List 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 delLabelIdSet = labelOrganizeEntity.getDelLabelIdSet(); + if (CollUtil.isNotEmpty(delLabelIdSet)) { + labelService.removeByIds(delLabelIdSet); + } + List labelList = labelOrganizeEntity.getLabelList(); + if (CollUtil.isNotEmpty(labelList)) { + List saveLabel = labelList.stream().filter(lt -> lt.getId() == null).collect(Collectors.toList()); + saveLabel.forEach(sl -> sl.setLabelOrganizeId(organizeId)); + labelService.saveBatch(saveLabel); + } + //3、修改sop绑定 + List sopList = labelOrganizeEntity.getSopList(); + if (CollUtil.isNotEmpty(sopList)) { + Map> sopMap = sopList.stream().collect(Collectors.groupingBy(LabelSopVo::getSopType)); + //3.1、修改评论sop绑定 + List sopVos = sopMap.get(DefaultNumberConstants.ZERO_NUMBER); + if (CollUtil.isNotEmpty(sopVos)) { + List sopEntities = sopMapper.selectList(new QueryWrapper().eq("label_id", organizeId)); + sopVos.forEach(ss -> ss.setLabelOrganizeId(organizeId)); + sopMapper.updateBatchLabelId(sopVos); + List 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 sopEntities = sopMapper.selectList(new QueryWrapper().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().eq("label_organize_id", id)); + //3、解除sop绑定 + List sopList = sopMapper.selectList(new QueryWrapper().eq("label_id", id)); + sopList.forEach(ss -> ss.setLabelId(0L)); + sopMapper.updateBatch(sopList); + } /** * 分页查询 @@ -41,20 +125,39 @@ public class TiktokLabelOrganizeServiceImpl Page page = new Page<>(pageable.getPageNumber(), pageable.getPageSize()); String name = labelOrganizeDto.getName(); - Date endTime = labelOrganizeDto.getEndTime(); - Date beginTime = labelOrganizeDto.getBeginTime(); QueryWrapper wrapper = new QueryWrapper<>(); - if (StringUtils.isNotBlank(name)){ - wrapper.like("name",name); - } - if (beginTime != null && endTime != null){ - wrapper.ge("create_time", beginTime); - wrapper.le("create_time", endTime); + if (StringUtils.isNotBlank(name)) { + wrapper.like("name", name); } wrapper.orderByDesc("create_time"); IPage iPage = this.page(page, wrapper); - return PageResult.success - (iPage.getTotal(), iPage.getPages(), iPage.getRecords()); + // 列表插入标签信息和sop信息 + List labelEntities = labelService.list(new QueryWrapper<>()); + Map> labelOrganizeMap = labelEntities.stream().collect(Collectors.groupingBy(TiktokLabelEntity::getLabelOrganizeId)); + List sopEntities = sopMapper.selectList(new QueryWrapper().isNotNull("label_id")); + Map> sopMap = sopEntities.stream().collect(Collectors.groupingBy(SopEntity::getLabelId)); + List records = iPage.getRecords(); + if (CollUtil.isNotEmpty(records)) { + for (TiktokLabelOrganizeEntity record : records) { + List list = new ArrayList<>(); + Long labelOrganizeId = record.getId(); + if (labelOrganizeMap.containsKey(labelOrganizeId)) { + record.setLabelList(labelOrganizeMap.get(labelOrganizeId)); + } + if (sopMap.containsKey(labelOrganizeId)) { + List 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; } + + @Override + public Object findSop() { + List list = new ArrayList<>(); + List sopEntities = sopMapper.selectList(new QueryWrapper().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; + } } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/resources/mapper/SopMapper.xml b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/resources/mapper/SopMapper.xml new file mode 100644 index 0000000..622243b --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/resources/mapper/SopMapper.xml @@ -0,0 +1,22 @@ + + + + + + + update tb_sop set label_id = #{item.labelOrganizeId} where sop_id = #{item.sopId} + + + + + + update tb_sop + + + label_id = #{item.labelId} + + + where sop_id = #{item.sopId} + + +