|
|
|
@ -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);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|