mirror of
https://gitee.com/freshday/radar.git
synced 2025-12-26 07:16:26 +08:00
commit
a039e5842d
@ -4,16 +4,28 @@ package com.pgmmers.radar.controller;
|
||||
import com.pgmmers.radar.dal.bean.DataListRecordQuery;
|
||||
import com.pgmmers.radar.service.common.CommonResult;
|
||||
import com.pgmmers.radar.service.model.DataListsService;
|
||||
import com.pgmmers.radar.util.ExcelImportUtil;
|
||||
import com.pgmmers.radar.util.ExportExcelInfo;
|
||||
import com.pgmmers.radar.vo.model.DataListRecordVO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/services/v1/datalistrecord")
|
||||
@Api(value = "DataListRecordApi", description = "列表内容维护接口相关操作", tags = {"列表内容API"})
|
||||
public class DataListRecordApiController {
|
||||
|
||||
public static Logger logger = LoggerFactory.getLogger(DataListRecordApiController.class);
|
||||
|
||||
@Autowired
|
||||
private DataListsService dataListsService;
|
||||
|
||||
@ -45,4 +57,46 @@ public class DataListRecordApiController {
|
||||
return dataListsService.deleteRecord(id);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* 批量导入黑/白名单管理
|
||||
* @param file 文件
|
||||
* @param dataListId 数据列表ID
|
||||
* @return
|
||||
* @author xushuai
|
||||
*/
|
||||
@PostMapping(value = "/batchImportDataRecord")
|
||||
public CommonResult batchImportDataRecord(@ApiParam(value = "file detail") @RequestPart("file") MultipartFile file, @RequestParam(value = "dataListId", required = true)Long dataListId) {
|
||||
CommonResult result = new CommonResult();
|
||||
result.setSuccess(false);
|
||||
String fileName = file.getOriginalFilename();
|
||||
if (fileName != null && !(fileName.contains(".xls") || fileName.contains(".xlsx"))) {
|
||||
result.setMsg("传入的件格式有误!");
|
||||
return result;
|
||||
}
|
||||
ExportExcelInfo<DataListRecordVO> info = getImportMeta();
|
||||
List<Map<String, Object>> listError = new ArrayList<>();
|
||||
List<DataListRecordVO> list = null;
|
||||
try {
|
||||
list = ExcelImportUtil.excelToList(file.getInputStream(), info, listError, DataListRecordVO.class);
|
||||
} catch (Exception e) {
|
||||
logger.error("导入Excel失败:" + e.getMessage());
|
||||
}
|
||||
if (list == null || list.size() == 0) {
|
||||
result.setMsg("无导入数据!");
|
||||
return result;
|
||||
}
|
||||
if (list.size() > 1000) {
|
||||
result.setMsg("最大导入不能超过" + 1000 + "条");
|
||||
return result;
|
||||
}
|
||||
return dataListsService.batchImportDataRecord(list, dataListId);
|
||||
}
|
||||
|
||||
private ExportExcelInfo<DataListRecordVO> getImportMeta() {
|
||||
ExportExcelInfo<DataListRecordVO> info = new ExportExcelInfo<DataListRecordVO>(null);
|
||||
info.addExcelColumn("dataRecord", "dataRecord");
|
||||
return info;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package com.pgmmers.radar.service.impl.model;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
|
||||
import com.pgmmers.radar.dal.bean.DataListQuery;
|
||||
import com.pgmmers.radar.dal.bean.DataListRecordQuery;
|
||||
import com.pgmmers.radar.dal.model.DataListDal;
|
||||
@ -302,4 +301,22 @@ public class DataListsServiceImpl implements DataListsService, SubscribeHandle {
|
||||
result.setMsg("导入成功");
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult batchImportDataRecord(List<DataListRecordVO> list, Long dataListId) {
|
||||
CommonResult result = new CommonResult();
|
||||
for (DataListRecordVO dataListRecord : list) {
|
||||
int count = dataListDal.saveRecord(dataListRecord);
|
||||
if (count > 0) {
|
||||
// 通知更新
|
||||
DataListsVO dataListVO = dataListDal.get(dataListRecord.getDataListId());
|
||||
dataListRecord.setModelId(dataListVO.getModelId());
|
||||
dataListRecord.setOpt("update");
|
||||
cacheService.publishDataListRecord(dataListRecord);
|
||||
}
|
||||
}
|
||||
result.setSuccess(true);
|
||||
result.setMsg("导入成功");
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,4 +49,6 @@ public interface DataListsService {
|
||||
Map<String, Object> getDataListMap(Long modelId);
|
||||
|
||||
CommonResult batchImportData(List<DataListsVO> list, Long modelId);
|
||||
|
||||
CommonResult batchImportDataRecord(List<DataListRecordVO> list, Long dataListId);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user