package org.springnewfiber.dataadapter.xf.service; import cn.hutool.core.date.DateUtil; import cn.hutool.crypto.digest.DigestUtil; import com.alibaba.nacos.common.utils.UuidUtils; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.time.LocalDateTime; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springnewfiber.dataadapter.config.RequestDataHelper; import org.springnewfiber.dataadapter.xf.entity.DataAccessRecord; import org.springnewfiber.dataadapter.xf.enums.EDataAccessType; import org.springnewfiber.dataadapter.xf.mapper.DataAccessRecordMapper; import javax.annotation.Resource; /** * 数据接入记录 服务实现类 * @since 2022-06-28 15:06:03 * @author admin */ @Service @DS("access") public class DataAccessRecordService extends ServiceImpl<DataAccessRecordMapper, DataAccessRecord> { @Resource @Qualifier("prefixMongoTemplate") private MongoTemplate prefixMongoTemplate; @Async public Integer save(EDataAccessType accessType, String dataType, String content){ // RequestDataHelper.setRequestData(new HashMap<String,Object>() {{ // int year=DateUtil.thisYear(); // int month=DateUtil.thisMonth(); // put("t_data_access_record", "t_data_access_record".concat("_").concat(String.valueOf(year)).concat(String.valueOf(month+1))); // }}); DataAccessRecord dataAccessRecord = new DataAccessRecord(); dataAccessRecord.setId(Integer.valueOf(System.currentTimeMillis()/ 10000000 +""+ Thread.currentThread().getId()%100 +""+ (int)((Math.random()*90)+10) +"")); dataAccessRecord.setAccessType(accessType.getCode()); dataAccessRecord.setDataType(dataType); dataAccessRecord.setContent(content); dataAccessRecord.setContentHash(DigestUtil.md5Hex(content)); dataAccessRecord.setCreateDatetime(new Date()); System.out.println(Thread.currentThread().getId()); // save(dataAccessRecord); prefixMongoTemplate.insert(dataAccessRecord, dataType); return dataAccessRecord.getId(); } public void refreshResult(Integer id, Integer timeConsume, String result){ DataAccessRecord dataAccessRecord = new DataAccessRecord(); dataAccessRecord.setId(id); dataAccessRecord.setTimeConsume(timeConsume); dataAccessRecord.setResult(result); updateById(dataAccessRecord); } }