抖音列表上号实体类修改

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.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication @SpringBootApplication
@EnableDiscoveryClient @EnableDiscoveryClient
@MapperScan("com.baiye.dao") @MapperScan("com.baiye.dao")
@EnableAsync
public class TiktokMemberApiApplication { public class TiktokMemberApiApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(TiktokMemberApiApplication.class,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.base.api.Result;
import com.baiye.core.constant.UpdateGroup; import com.baiye.core.constant.UpdateGroup;
import com.baiye.entity.TiktokEquipmentEntity9999; import com.baiye.entity.TiktokEquipmentEntity;
import com.baiye.service.TiktokEquipmentService; import com.baiye.service.TiktokEquipmentService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -22,7 +22,7 @@ public class TiktokEquipmentController {
* *
*/ */
@PostMapping("/pageList/{current}/{limit}") @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)); return Result.data(tiktokEquipmentService.getEquipmentList(current, limit, tiktokAccountEntity));
} }
@ -30,8 +30,8 @@ public class TiktokEquipmentController {
* *
*/ */
@PostMapping("/update") @PostMapping("/update")
public Result<?> update(@Validated({UpdateGroup.class}) @RequestBody TiktokEquipmentEntity9999 tiktokAccountEntity){ public Result<?> update(@Validated({UpdateGroup.class}) @RequestBody TiktokEquipmentEntity tiktokAccountEntity){
QueryWrapper<TiktokEquipmentEntity9999> wrapper = new QueryWrapper<>(); QueryWrapper<TiktokEquipmentEntity> wrapper = new QueryWrapper<>();
wrapper.eq("dy_user_id", tiktokAccountEntity.getDyUserId()); wrapper.eq("dy_user_id", tiktokAccountEntity.getDyUserId());
tiktokEquipmentService.update(tiktokAccountEntity, wrapper); tiktokEquipmentService.update(tiktokAccountEntity, wrapper);
return Result.success(); 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; private String saveThreadNamePrefix;
@Bean(value = "poolExecutor") @Bean(value = "tiktokPoolExecutor")
public Executor poolExecutor(){ public Executor tiktokPoolExecutor(){
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor( ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
saveCorePoolSize, saveCorePoolSize,
saveMaxPoolSize, saveMaxPoolSize,

@ -1,6 +1,6 @@
package com.baiye.dao; package com.baiye.dao;
import com.baiye.entity.TiktokEquipmentEntity9999; import com.baiye.entity.TiktokEquipmentEntity;
import com.baiye.vo.TiktokEquipmentVo; import com.baiye.vo.TiktokEquipmentVo;
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;
@ -11,11 +11,11 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
@Mapper @Mapper
public interface TiktokEquipmentMapper extends BaseMapper<TiktokEquipmentEntity9999> { public interface TiktokEquipmentMapper extends BaseMapper<TiktokEquipmentEntity> {
List<TiktokEquipmentVo> getEquipmentList(); List<TiktokEquipmentVo> getEquipmentList();
List<Map<Long,Object>> findOrganizeCount(); 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; package com.baiye.service;
import com.baiye.core.page.PageResult; import com.baiye.core.page.PageResult;
import com.baiye.entity.TiktokEquipmentEntity9999; import com.baiye.entity.TiktokEquipmentEntity;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Map; import java.util.Map;
public interface TiktokEquipmentService extends IService<TiktokEquipmentEntity9999> { public interface TiktokEquipmentService extends IService<TiktokEquipmentEntity> {
/** /**
* *
* @param tiktokAccountEntity * @param tiktokAccountEntity
* @return * @return
*/ */
PageResult getEquipmentList(int current, int limit, TiktokEquipmentEntity9999 tiktokAccountEntity); PageResult getEquipmentList(int current, int limit, TiktokEquipmentEntity tiktokAccountEntity);
/** /**
* ID0 * ID0

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

Loading…
Cancel
Save