抖音列表上号实体类修改

master
yqy 2 years ago
parent b5c693926e
commit 888af7de6c

@ -4,12 +4,10 @@ import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@EnableDiscoveryClient
@MapperScan("com.baiye.dao")
@EnableAsync
public class TiktokMemberApiApplication {
public static void main(String[] args) {
SpringApplication.run(TiktokMemberApiApplication.class,args);

@ -2,7 +2,7 @@ package com.baiye.controller;
import com.baiye.core.base.api.Result;
import com.baiye.core.constant.UpdateGroup;
import com.baiye.entity.TiktokEquipmentEntity9999;
import com.baiye.entity.TiktokEquipmentEntity;
import com.baiye.service.TiktokEquipmentService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor;
@ -22,7 +22,7 @@ public class TiktokEquipmentController {
*
*/
@PostMapping("/pageList/{current}/{limit}")
public Result<Object> getAccountList(@PathVariable int current, @PathVariable int limit, @RequestBody TiktokEquipmentEntity9999 tiktokAccountEntity){
public Result<Object> getAccountList(@PathVariable int current, @PathVariable int limit, @RequestBody TiktokEquipmentEntity tiktokAccountEntity){
return Result.data(tiktokEquipmentService.getEquipmentList(current, limit, tiktokAccountEntity));
}
@ -30,8 +30,8 @@ public class TiktokEquipmentController {
*
*/
@PostMapping("/update")
public Result<?> update(@Validated({UpdateGroup.class}) @RequestBody TiktokEquipmentEntity9999 tiktokAccountEntity){
QueryWrapper<TiktokEquipmentEntity9999> wrapper = new QueryWrapper<>();
public Result<?> update(@Validated({UpdateGroup.class}) @RequestBody TiktokEquipmentEntity tiktokAccountEntity){
QueryWrapper<TiktokEquipmentEntity> wrapper = new QueryWrapper<>();
wrapper.eq("dy_user_id", tiktokAccountEntity.getDyUserId());
tiktokEquipmentService.update(tiktokAccountEntity, wrapper);
return Result.success();

@ -0,0 +1,55 @@
package com.baiye.asynctask;
import cn.hutool.core.collection.CollUtil;
import com.baiye.dao.TiktokEquipmentMapper;
import com.baiye.entity.TiktokEquipmentEntity;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Component
@Slf4j
public class TiktokEquipmentTask extends ServiceImpl<TiktokEquipmentMapper, TiktokEquipmentEntity> {
@Autowired
private TiktokEquipmentMapper tiktokEquipmentMapper;
/**
*
*
* @param isSave userIdList 0:1:
* @param userIdList Id
* @param tiktokEquipmentEntities
*/
@Transactional(rollbackFor = Exception.class)
@Async(value = "tiktokPoolExecutor")
public void dataDealWith(int isSave, Set<String> userIdList, List<TiktokEquipmentEntity> tiktokEquipmentEntities) {
if (CollUtil.isNotEmpty(tiktokEquipmentEntities)) {
// 1、数据库数据为空查询的全部插入
if (CollUtil.isEmpty(userIdList) && isSave == 0) {
this.saveBatch(tiktokEquipmentEntities);
return;
}
// 2、远程调用数据和数据库不相同的插入数据
List<TiktokEquipmentEntity> collect = tiktokEquipmentEntities.stream().filter(userInfo ->
!new ArrayList<>(userIdList).contains(userInfo.getDyUserId())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(collect)) {
this.saveBatch(collect);
}
// 3、远程调用和数据库相同的更新数据调用的最新数据
List<TiktokEquipmentEntity> entities = tiktokEquipmentEntities.stream().filter(ts -> new ArrayList<>(userIdList).contains(ts.getDyUserId())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(entities)) {
tiktokEquipmentMapper.updateByUserId(entities, userIdList);
}
}
}
}

@ -36,8 +36,8 @@ public class ThreadPoolConfig {
private String saveThreadNamePrefix;
@Bean(value = "poolExecutor")
public Executor poolExecutor(){
@Bean(value = "tiktokPoolExecutor")
public Executor tiktokPoolExecutor(){
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
saveCorePoolSize,
saveMaxPoolSize,

@ -1,6 +1,6 @@
package com.baiye.dao;
import com.baiye.entity.TiktokEquipmentEntity9999;
import com.baiye.entity.TiktokEquipmentEntity;
import com.baiye.vo.TiktokEquipmentVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@ -11,11 +11,11 @@ import java.util.Map;
import java.util.Set;
@Mapper
public interface TiktokEquipmentMapper extends BaseMapper<TiktokEquipmentEntity9999> {
public interface TiktokEquipmentMapper extends BaseMapper<TiktokEquipmentEntity> {
List<TiktokEquipmentVo> getEquipmentList();
List<Map<Long,Object>> findOrganizeCount();
void updateByUserId(@Param("entities") List<TiktokEquipmentEntity9999> entities, @Param("userIds") Set<String> userIdList);
void updateByUserId(@Param("entities") List<TiktokEquipmentEntity> entities, @Param("userIds") Set<String> userIdList);
}

@ -1,19 +1,19 @@
package com.baiye.service;
import com.baiye.core.page.PageResult;
import com.baiye.entity.TiktokEquipmentEntity9999;
import com.baiye.entity.TiktokEquipmentEntity;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Map;
public interface TiktokEquipmentService extends IService<TiktokEquipmentEntity9999> {
public interface TiktokEquipmentService extends IService<TiktokEquipmentEntity> {
/**
*
* @param tiktokAccountEntity
* @return
*/
PageResult getEquipmentList(int current, int limit, TiktokEquipmentEntity9999 tiktokAccountEntity);
PageResult getEquipmentList(int current, int limit, TiktokEquipmentEntity tiktokAccountEntity);
/**
* ID0

@ -4,14 +4,14 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
import com.baiye.asynctask.TiktokEquipmentTask;
import com.baiye.core.base.api.Result;
import com.baiye.core.constant.HttpStatus;
import com.baiye.core.page.PageResult;
import com.baiye.core.page.PageUtil;
import com.baiye.core.util.BeanUtils;
import com.baiye.core.util.StringUtils;
import com.baiye.dao.TiktokEquipmentMapper;
import com.baiye.entity.TiktokEquipmentEntity9999;
import com.baiye.entity.TiktokEquipmentEntity;
import com.baiye.service.TiktokEquipmentService;
import com.baiye.service.TiktokUserService;
import com.baiye.vo.TiktokEquipmentVo;
@ -19,7 +19,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -29,14 +29,15 @@ import java.util.stream.Collectors;
@Service
@Slf4j
@RequiredArgsConstructor
public class TiktokEquipmentServiceImpl extends ServiceImpl<TiktokEquipmentMapper, TiktokEquipmentEntity9999> implements TiktokEquipmentService {
public class TiktokEquipmentServiceImpl extends ServiceImpl<TiktokEquipmentMapper, TiktokEquipmentEntity> implements TiktokEquipmentService {
private final TiktokUserService tiktokUserService;
private final TiktokEquipmentMapper tiktokEquipmentMapper;
private final TiktokEquipmentTask task;
@Override
@Transactional(rollbackFor = Exception.class)
public PageResult getEquipmentList(int current, int limit, TiktokEquipmentEntity9999 tiktokEquipmentEntity) {
public PageResult getEquipmentList(int current, int limit, TiktokEquipmentEntity tiktokEquipmentEntity) {
int isSave = 0;
// 数据库和远程调用相同的数据Id集合
Set<String> userIdList = new HashSet<>();
@ -47,9 +48,9 @@ public class TiktokEquipmentServiceImpl extends ServiceImpl<TiktokEquipmentMappe
JSONArray jsonArray = JSONUtil.parseArray(result.getData());
List<TiktokEquipmentVo> tiktokEquipmentVos = JSONUtil.toList(jsonArray, TiktokEquipmentVo.class);
// list保存数据不做修改后面处理时用
List<TiktokEquipmentEntity9999> list = new ArrayList<>();
List<TiktokEquipmentEntity> list = new ArrayList<>();
for (TiktokEquipmentVo tiktokEquipmentVo : tiktokEquipmentVos) {
TiktokEquipmentEntity9999 equipmentEntity = new TiktokEquipmentEntity9999();
TiktokEquipmentEntity equipmentEntity = new TiktokEquipmentEntity();
BeanUtils.copyProperties(tiktokEquipmentVo, equipmentEntity);
equipmentEntity.setDeviceStatus("0");
list.add(equipmentEntity);
@ -88,7 +89,7 @@ public class TiktokEquipmentServiceImpl extends ServiceImpl<TiktokEquipmentMappe
}
}
//6、异步插入信息传第四步交集id和调用的数据集合去重后插入数据
dataDealWith(isSave, userIdList, list);
task.dataDealWith(isSave, userIdList, list);
//条件查询,筛选数据
List<TiktokEquipmentVo> returnInfo = returnInfo(tiktokEquipmentVos, tiktokEquipmentEntity);
return PageResult.success((long) tiktokEquipmentVos.size(), PageUtil.toPage(current - 1, limit, returnInfo));
@ -104,9 +105,9 @@ public class TiktokEquipmentServiceImpl extends ServiceImpl<TiktokEquipmentMappe
@Override
public void updateByOrganizeId(Long organizeId) {
TiktokEquipmentEntity9999 tiktokEquipmentEntity = new TiktokEquipmentEntity9999();
TiktokEquipmentEntity tiktokEquipmentEntity = new TiktokEquipmentEntity();
tiktokEquipmentEntity.setOrganizeId(0L);
QueryWrapper<TiktokEquipmentEntity9999> wrapper = new QueryWrapper<>();
QueryWrapper<TiktokEquipmentEntity> wrapper = new QueryWrapper<>();
wrapper.eq("organize_id", organizeId); // 设置查询条件
this.update(tiktokEquipmentEntity, wrapper);
}
@ -123,7 +124,7 @@ public class TiktokEquipmentServiceImpl extends ServiceImpl<TiktokEquipmentMappe
return returnMap;
}
public List<TiktokEquipmentVo> returnInfo(List<TiktokEquipmentVo> equipmentVoList, TiktokEquipmentEntity9999 condition) {
public List<TiktokEquipmentVo> returnInfo(List<TiktokEquipmentVo> equipmentVoList, TiktokEquipmentEntity condition) {
List<TiktokEquipmentVo> list = new ArrayList<>();
String screenName = condition.getScreenName();
String deviceStatus = condition.getDeviceStatus();
@ -156,31 +157,32 @@ public class TiktokEquipmentServiceImpl extends ServiceImpl<TiktokEquipmentMappe
return list;
}
/**
*
* @param isSave userIdList 0:1:
* @param userIdList Id
* @param tiktokEquipmentEntities
*/
@Transactional(rollbackFor = Exception.class)
@Async(value = "poolExecutor")
public void dataDealWith(int isSave, Set<String> userIdList, List<TiktokEquipmentEntity9999> tiktokEquipmentEntities) {
// 数据库数据为空,查询的全部插入
if (CollUtil.isEmpty(userIdList) && isSave == 0) {
this.saveBatch(tiktokEquipmentEntities);
return;
}
// 远程调用数据和数据库不相同的插入数据
List<TiktokEquipmentEntity9999> collect = tiktokEquipmentEntities.stream().filter(userInfo ->
!new ArrayList<>(userIdList).contains(userInfo.getDyUserId())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(collect)){
this.saveBatch(collect);
}
// 远程调用和数据库相同的更新数据调用的最新数据
if (CollUtil.isNotEmpty(tiktokEquipmentEntities)){
List<TiktokEquipmentEntity9999> entities = tiktokEquipmentEntities.stream().filter(ts -> new ArrayList<>(userIdList).contains(ts.getDyUserId())).collect(Collectors.toList());
tiktokEquipmentMapper.updateByUserId(entities,userIdList);
}
}
// /**
// * 异步处理数据
// * @param isSave userIdList为空的两种判断 0:全部插入数据库1:向下执行即可
// * @param userIdList 数据库和远程调用相同的数据Id集合
// * @param tiktokEquipmentEntities
// */
// @Transactional(rollbackFor = Exception.class)
// @Async(value = "tiktokPoolExecutor")
// public void dataDealWith(int isSave, Set<String> userIdList, List<TiktokEquipmentEntity> tiktokEquipmentEntities) {
// log.info("=================插入线程是:{}=================", Thread.currentThread().getName());
// // 数据库数据为空,查询的全部插入
// if (CollUtil.isEmpty(userIdList) && isSave == 0) {
// this.saveBatch(tiktokEquipmentEntities);
// return;
// }
// // 远程调用数据和数据库不相同的插入数据
// List<TiktokEquipmentEntity> collect = tiktokEquipmentEntities.stream().filter(userInfo ->
// !new ArrayList<>(userIdList).contains(userInfo.getDyUserId())).collect(Collectors.toList());
// if (CollUtil.isNotEmpty(collect)){
// this.saveBatch(collect);
// }
//
// // 远程调用和数据库相同的更新数据调用的最新数据
// if (CollUtil.isNotEmpty(tiktokEquipmentEntities)){
// List<TiktokEquipmentEntity> entities = tiktokEquipmentEntities.stream().filter(ts -> new ArrayList<>(userIdList).contains(ts.getDyUserId())).collect(Collectors.toList());
// tiktokEquipmentMapper.updateByUserId(entities,userIdList);
// }
// }
}

Loading…
Cancel
Save