diff --git a/cdp-common/cdp-common-core/src/main/java/com/baiye/core/constant/TiktokRequestConstants.java b/cdp-common/cdp-common-core/src/main/java/com/baiye/core/constant/TiktokRequestConstants.java index 1a1264b..5e40701 100644 --- a/cdp-common/cdp-common-core/src/main/java/com/baiye/core/constant/TiktokRequestConstants.java +++ b/cdp-common/cdp-common-core/src/main/java/com/baiye/core/constant/TiktokRequestConstants.java @@ -21,4 +21,15 @@ public interface TiktokRequestConstants { * 手机号登录 */ String DY_PHONE_LOGIN = "/api/device/smsCodeLogin"; + + /** + * 搜索视频 + */ + String SEARCH_VIDEO = "/api/search/searchVideo"; + + /** + * 视频详情 + */ + + String AWEME_DETAIL = "/api/video/awemeDetail"; } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokSopController.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokSopController.java new file mode 100644 index 0000000..cb4342f --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokSopController.java @@ -0,0 +1,33 @@ +package com.baiye.controller; + +import com.baiye.core.base.api.Result; +import com.baiye.core.page.PageResult; +import com.baiye.dto.SopDto; +import com.baiye.query.SopQuery; +import com.baiye.service.TiktokSopService; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * @author jt + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/tiktok/sop") +public class TiktokSopController { + @Resource + private TiktokSopService tiktokSopService; + + @PostMapping("add") + public Result addSop(@RequestBody SopDto sopDto) { + tiktokSopService.addSop(sopDto); + return Result.success(); + } + @GetMapping("query") + public PageResult querySop(SopQuery sopQuery, Pageable pageable){ + return tiktokSopService.querySop(sopQuery, pageable); + } +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/CommentSopJob.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/CommentSopJob.java new file mode 100644 index 0000000..977c48f --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/job/CommentSopJob.java @@ -0,0 +1,88 @@ +package com.baiye.job; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpStatus; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baiye.core.base.api.Result; +import com.baiye.core.constant.TiktokRequestConstants; +import com.baiye.core.constant.TiktokResponse; +import com.baiye.core.util.StringUtils; +import com.baiye.dao.KeyWordMapper; +import com.baiye.dao.ReviewContentMapper; +import com.baiye.dao.SopMapper; +import com.baiye.dao.TiktokEquipmentMapper; +import com.baiye.entity.KeyWordEntity; +import com.baiye.entity.SopEntity; +import com.baiye.entity.TiktokEquipmentEntity; +import com.baiye.properties.TiktokProperties; +import com.baiye.service.TiktokEquipmentService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author jt + */ +@Component +@Slf4j +@RequiredArgsConstructor +public class CommentSopJob { + + private final SopMapper sopMapper; + private final ReviewContentMapper reviewContentMapper; + private final KeyWordMapper keyWordMapper; + private final TiktokEquipmentMapper tiktokEquipmentMapper; + private final TiktokProperties tiktokProperties; + + @Scheduled(cron = "* * 0/1 * * ?") + public void commentSop() { + List sopEntities = sopMapper.selectList(new QueryWrapper<>()); + int hour = DateUtil.date().hour(true); + for (SopEntity sop : sopEntities) { + Integer executionStartTime = sop.getExecutionStartTime(); + Integer executionEndTime = sop.getExecutionEndTime(); + if (executionStartTime > hour || hour > executionEndTime) { + continue; + } + //所有的抖音设备号 + List dyIds = tiktokEquipmentMapper.findVendorIdByOrganizeId(sop.getOrganizeId()); + + //所有的搜索关键词 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("type", 0); + queryWrapper.eq("sop_id", sop.getSopId()); + List keyWordEntityList = keyWordMapper.selectList(queryWrapper); + + for (String dyId : dyIds) { + for (KeyWordEntity keyWord : keyWordEntityList) { + JSONObject childrenJson = new JSONObject(); + childrenJson.putOpt("vendorId", dyId); + childrenJson.putOpt("keyWord", keyWord.getWord()); + childrenJson.putOpt("offset", 0); + childrenJson.putOpt("checkLogin", false); + childrenJson.putOpt("checkProxyInfo", false); + + JSONObject json = new JSONObject(); + json.putOpt("sessionKey", tiktokProperties.getSessionKey()); + json.putOpt("data", childrenJson); + String post = HttpUtil.post(tiktokProperties.getGatewayHost().concat(TiktokRequestConstants.SEARCH_VIDEO), JSONUtil.toJsonStr(json)); + if (StringUtils.isNotBlank(post)) { + TiktokResponse tiktokResponse = JSONUtil.toBean(post, TiktokResponse.class); + if (tiktokResponse.getStatus() == HttpStatus.HTTP_OK) { + JSONObject value = JSONUtil.parseObj(tiktokResponse.getData()) ; + JSONArray awemeList = value.getJSONArray("aweme_list"); + //todo 保存到泛资源库 + } + } + } + } + } + } +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dao/KeyWordMapper.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dao/KeyWordMapper.java new file mode 100644 index 0000000..e412a87 --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dao/KeyWordMapper.java @@ -0,0 +1,21 @@ +package com.baiye.dao; + +import com.baiye.entity.KeyWordEntity; +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 + */ +@Mapper +public interface KeyWordMapper extends BaseMapper { + /** + * 批量添加关键词 + * + * @param list + */ + void insertAll(@Param("list") List list); +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dao/ReviewContentMapper.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dao/ReviewContentMapper.java new file mode 100644 index 0000000..4851899 --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dao/ReviewContentMapper.java @@ -0,0 +1,20 @@ +package com.baiye.dao; + +import com.baiye.entity.ReviewContentEntity; +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 + */ +@Mapper +public interface ReviewContentMapper extends BaseMapper { + /** + * 批量添加回评内容 + * @param list + */ + void insertAll( @Param("list") List list); +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dao/SopMapper.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dao/SopMapper.java new file mode 100644 index 0000000..546e02e --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dao/SopMapper.java @@ -0,0 +1,13 @@ +package com.baiye.dao; + +import com.baiye.entity.SopEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author jt + */ +@Mapper +public interface SopMapper extends BaseMapper { + +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dao/TiktokEquipmentMapper.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dao/TiktokEquipmentMapper.java index bb21d14..516bb86 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dao/TiktokEquipmentMapper.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dao/TiktokEquipmentMapper.java @@ -15,7 +15,14 @@ public interface TiktokEquipmentMapper extends BaseMapper List getEquipmentList(); - List> findOrganizeCount(); + List> findOrganizeCount(); void updateByUserId(@Param("entities") List entities, @Param("userIds") Set userIdList); + + /** + * 根据组id查看抖音id + * @param OrganizeId + * @return + */ + List findVendorIdByOrganizeId(@Param("organizeId") Long OrganizeId); } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dto/SopDto.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dto/SopDto.java new file mode 100644 index 0000000..771fc47 --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/dto/SopDto.java @@ -0,0 +1,100 @@ +package com.baiye.dto; + +import com.baiye.entity.KeyWordEntity; +import com.baiye.entity.ReviewContentEntity; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @author jt + */ +@Data +public class SopDto { + /** + * id + */ + private Long sopId; + + /** + * sop名称 + */ + private String sopName; + + /** + * 执行号组 + */ + private Long organizeId; + /** + * 描述 + */ + private String remake; + + /** + * 点赞数 0-不限制 + */ + private Integer likeNum; + + /** + * 评论天数 0-不限制 + */ + private Integer commentDay; + /** + * 各号执行评论次数 + */ + private Integer executionNum; + + /** + * 执行开始时间 + */ + private Date executionStartTime; + + /** + * 执行结束时间 + */ + private Date executionEndTime; + + /** + * 搜索关键词 + */ + private List searchKeyWords; + /** + * 过滤关键词 + */ + private List filterKeyWords; + /** + * 匹配关键词 + */ + private List matchKeyWords; + + public static class PreciseResource { + private Long id; + private String matchKeyWord; + private List reviewContents; + + public String getMatchKeyWord() { + return matchKeyWord; + } + + public void setMatchKeyWord(String matchKeyWord) { + this.matchKeyWord = matchKeyWord; + } + + public List getReviewContents() { + return reviewContents; + } + + public void setReviewContents(List reviewContents) { + this.reviewContents = reviewContents; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + } +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/entity/KeyWordEntity.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/entity/KeyWordEntity.java new file mode 100644 index 0000000..5513c0d --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/entity/KeyWordEntity.java @@ -0,0 +1,39 @@ +package com.baiye.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author jt + */ +@Data +@TableName("tb_key_word") +public class KeyWordEntity implements Serializable { + + /** + * id + */ + @TableId(type = IdType.INPUT) + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 关键词 + */ + private String word; + + /** + * sopId + */ + private Long sopId; + /** + * 类型 0-搜索关键词 1-过滤关键词 2- 匹配关键词 + */ + private Integer type; +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/entity/ReviewContentEntity.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/entity/ReviewContentEntity.java new file mode 100644 index 0000000..789fc80 --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/entity/ReviewContentEntity.java @@ -0,0 +1,31 @@ +package com.baiye.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * @author jt + */ +@Data +@TableName("tb_review_content") +public class ReviewContentEntity { + + /** + * id + */ + @TableId(value = "id", type = IdType.AUTO) + private String id; + + /** + * 回评内容 + */ + private String content; + + /** + * 关键词id + */ + private Long keyWordId; + +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/entity/SopEntity.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/entity/SopEntity.java new file mode 100644 index 0000000..b1c4bbd --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/entity/SopEntity.java @@ -0,0 +1,73 @@ +package com.baiye.entity; + + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author jt + */ +@Data +@TableName("tb_sop") +public class SopEntity implements Serializable { + + + /** + * id + */ + @TableId(type = IdType.INPUT) + @JsonSerialize(using = ToStringSerializer.class) + private Long sopId; + + /** + * sop名称 + */ + private String sopName; + + /** + * 执行号组 + */ + private Long organizeId; + /** + * 描述 + */ + private String remake; + + /** + * 点赞数 0-不限制 + */ + private Integer likeNum; + + /** + * 评论天数 0-不限制 + */ + private Integer commentDay; + /** + * 各号执行评论次数 + */ + private Integer executionNum; + + /** + * 执行开始时间 + */ + private Integer executionStartTime; + + /** + * 执行结束时间 + */ + private Integer executionEndTime; + + @TableField(value = "create_time", fill = FieldFill.INSERT) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + private Integer status; +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/query/SopQuery.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/query/SopQuery.java new file mode 100644 index 0000000..61c3c57 --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/query/SopQuery.java @@ -0,0 +1,15 @@ +package com.baiye.query; + +import com.baiye.annotation.Query; +import com.baiye.annotation.type.SelectType; +import lombok.Data; + +/** + * @author jt + */ +@Data +public class SopQuery { + + @Query(type = SelectType.INNER_LIKE) + private String sopName; +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokSopService.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokSopService.java new file mode 100644 index 0000000..212c6ba --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokSopService.java @@ -0,0 +1,26 @@ +package com.baiye.service; + +import com.baiye.core.page.PageResult; +import com.baiye.dto.SopDto; +import com.baiye.query.SopQuery; +import org.springframework.data.domain.Pageable; + +/** + * @author jt + */ +public interface TiktokSopService { + + /** + * 新增sop + * @param dto + */ + void addSop(SopDto dto); + + /** + * 分页查询sop + * @param sopQuery + * @param pageable + * @return + */ + PageResult querySop(SopQuery sopQuery, Pageable pageable); +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokSopServiceImpl.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokSopServiceImpl.java new file mode 100644 index 0000000..a2b3a0b --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokSopServiceImpl.java @@ -0,0 +1,162 @@ +package com.baiye.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.IdUtil; + +import cn.hutool.core.util.ObjectUtil; +import com.baiye.core.page.PageResult; +import com.baiye.core.util.BeanUtils; +import com.baiye.dao.KeyWordMapper; +import com.baiye.dao.ReviewContentMapper; +import com.baiye.dao.SopMapper; +import com.baiye.dto.SopDto; +import com.baiye.entity.KeyWordEntity; +import com.baiye.entity.ReviewContentEntity; +import com.baiye.entity.SopEntity; +import com.baiye.query.SopQuery; +import com.baiye.service.TiktokSopService; +import com.baiye.util.PageUtils; +import com.baiye.util.QueryHelpUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * @author jt + */ +@Service +public class TiktokSopServiceImpl extends ServiceImpl implements TiktokSopService { + @Resource + private SopMapper sopMapper; + @Resource + private ReviewContentMapper reviewContentMapper; + @Resource + private KeyWordMapper keyWordMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public void addSop(SopDto dto) { + SopEntity sop; + Long id; + if (ObjectUtil.isNotEmpty(dto) && dto.getSopId() != null) { + //修改 + sop = sopMapper.selectById(dto.getSopId()); + id = dto.getSopId(); + } else { + sop = new SopEntity(); + id = IdUtil.getSnowflake(9, 9).nextId(); + } + BeanUtils.copyProperties(dto, sop); + sop.setSopId(id); + + List keyWordEntityList = new ArrayList<>(); + //搜索关键词 + List searchKeyWords = dto.getSearchKeyWords(); + for (KeyWordEntity value : searchKeyWords) { + if (value.getId() != null) { + continue; + } + Long keyId = IdUtil.getSnowflake(9, 9).nextId(); + value.setId(keyId); + value.setSopId(id); + value.setType(0); + keyWordEntityList.add(value); + } + + //过滤关键词 + List filterKeyWords = dto.getFilterKeyWords(); + for (KeyWordEntity value : filterKeyWords) { + if (value.getId() != null) { + continue; + } + Long keyId = IdUtil.getSnowflake(9, 9).nextId(); + value.setId(keyId); + value.setSopId(id); + value.setType(1); + keyWordEntityList.add(value); + } + + List matchKeyWords = dto.getMatchKeyWords(); + List contents = new ArrayList<>(); + for (SopDto.PreciseResource resource : matchKeyWords) { + Long keyId = resource.getId(); + if (resource.getId() == null) { + KeyWordEntity keyWord = new KeyWordEntity(); + keyId = IdUtil.getSnowflake(9, 9).nextId(); + keyWord.setId(keyId); + keyWord.setWord(resource.getMatchKeyWord()); + keyWord.setSopId(id); + keyWord.setType(2); + keyWordEntityList.add(keyWord); + } + + List reviewContents = resource.getReviewContents(); + for (ReviewContentEntity content : reviewContents) { + if (content.getId() != null) { + continue; + } + ReviewContentEntity reviewContent = new ReviewContentEntity(); + reviewContent.setContent(content.getContent()); + reviewContent.setKeyWordId(keyId); + contents.add(reviewContent); + } + } + sopMapper.insert(sop); + keyWordMapper.insertAll(keyWordEntityList); + reviewContentMapper.insertAll(contents); + } + + @Override + public PageResult querySop(SopQuery sopQuery, Pageable pageable) { + Page page = PageUtils.startPageAndSort(pageable); + QueryWrapper queryWrapper = QueryHelpUtils.getWrapper(sopQuery, SopEntity.class); + Page selectPage = sopMapper.selectPage(page, queryWrapper); + //当前在线情况 + List records = selectPage.getRecords(); + List sopDtos = Convert.toList(SopDto.class, records); + for (SopDto sopDto : sopDtos) { + Long sopId = sopDto.getSopId(); + //查寻关键词和回评 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("sop_id", sopId); + List keyWordEntityList = keyWordMapper.selectList(wrapper); + List keyWordBySearchKeys = new ArrayList<>(); + List keyWordByFilterKeys = new ArrayList<>(); + List keyWordByMatchKeys = new ArrayList<>(); + if (CollUtil.isNotEmpty(keyWordEntityList)) { + + for (KeyWordEntity keyWord : keyWordEntityList) { + if (keyWord.getType() == 0) { + keyWordBySearchKeys.add(keyWord); + } else if (keyWord.getType() == 1) { + keyWordByFilterKeys.add(keyWord); + } else { + + SopDto.PreciseResource preciseResource = new SopDto.PreciseResource(); + preciseResource.setId(keyWord.getId()); + preciseResource.setMatchKeyWord(keyWord.getWord()); + + QueryWrapper wrapperContent = new QueryWrapper<>(); + wrapperContent.eq("key_word_id", keyWord.getId()); + List contentEntities = reviewContentMapper.selectList(wrapperContent); + preciseResource.setReviewContents(contentEntities); + + keyWordByMatchKeys.add(preciseResource); + } + } + } + sopDto.setSearchKeyWords(keyWordBySearchKeys); + sopDto.setFilterKeyWords(keyWordByFilterKeys); + sopDto.setMatchKeyWords(keyWordByMatchKeys); + } + return PageResult.success(selectPage.getTotal(), selectPage.getPages(), sopDtos); + } +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/resources/mapper/KeyWordMapper.xml b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/resources/mapper/KeyWordMapper.xml new file mode 100644 index 0000000..c5441ea --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/resources/mapper/KeyWordMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + insert into tb_key_word (id,word,sop_id,type) + values + + ( #{item.id}, #{item.word},#{item.sopId},#{item.type}) + + + diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/resources/mapper/ReviewContentMapper.xml b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/resources/mapper/ReviewContentMapper.xml new file mode 100644 index 0000000..6057783 --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/resources/mapper/ReviewContentMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + insert into tb_review_content (content,key_word_id) + values + + (#{item.content},#{item.keyWordId}) + + + diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/resources/mapper/TiktokEquipmentMapper.xml b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/resources/mapper/TiktokEquipmentMapper.xml index 1ad6a00..8279910 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/resources/mapper/TiktokEquipmentMapper.xml +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/resources/mapper/TiktokEquipmentMapper.xml @@ -57,5 +57,9 @@ where dy_user_id = #{item.dyUserId} - + \ No newline at end of file