|
@@ -1,11 +1,26 @@
|
|
|
package com.huimv.eartag2.manage2.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.lang.func.VoidFunc0;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.huimv.eartag2.common.utils.Result;
|
|
|
+import com.huimv.eartag2.common.utils.ResultCode;
|
|
|
import com.huimv.eartag2.manage2.pojo.SysBaseConfig;
|
|
|
import com.huimv.eartag2.manage2.mapper.SysBaseConfigMapper;
|
|
|
import com.huimv.eartag2.manage2.service.SysBaseConfigService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.huimv.eartag2.manage2.vo.SysBaseConfigVo;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.data.domain.PageRequest;
|
|
|
+import org.springframework.data.domain.Pageable;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.persistence.criteria.Order;
|
|
|
+import javax.persistence.criteria.Predicate;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
* 服务实现类
|
|
@@ -17,4 +32,112 @@ import org.springframework.stereotype.Service;
|
|
|
@Service
|
|
|
public class SysBaseConfigServiceImpl extends ServiceImpl<SysBaseConfigMapper, SysBaseConfig> implements SysBaseConfigService {
|
|
|
|
|
|
+ @Resource
|
|
|
+ private SysBaseConfigMapper sysBaseConfigMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result add(List<Map<String, String>> mapList) {
|
|
|
+ //SysBaseConfigEntity
|
|
|
+ //存入数据库
|
|
|
+ String fitId = UUID.randomUUID().toString();
|
|
|
+ for (Map<String, String> stringStringMap : mapList) {
|
|
|
+ SysBaseConfig sysBaseConfigEntity = new SysBaseConfig();
|
|
|
+ sysBaseConfigEntity.setConfigName(stringStringMap.get("configName"));
|
|
|
+ sysBaseConfigEntity.setConfigKey(stringStringMap.get("configKey"));
|
|
|
+ sysBaseConfigEntity.setConfigValue(stringStringMap.get("configValue"));
|
|
|
+ sysBaseConfigEntity.setAreaName(stringStringMap.get("areaName"));
|
|
|
+ sysBaseConfigEntity.setRowId(fitId);
|
|
|
+ sysBaseConfigMapper.insert(sysBaseConfigEntity);
|
|
|
+ }
|
|
|
+ return new Result(ResultCode.SUCCESS);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result remove(List<Integer> id) {
|
|
|
+ sysBaseConfigMapper.deleteBatchIds(id);
|
|
|
+ return new Result(ResultCode.SUCCESS);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result update(List<Map<String, String>> maps) {
|
|
|
+ for (Map<String, String> map : maps) {
|
|
|
+ String id = map.get("id");
|
|
|
+ SysBaseConfig baseConfigDo = sysBaseConfigMapper.selectById(id);
|
|
|
+ baseConfigDo.setConfigName(map.get("configName"));
|
|
|
+ baseConfigDo.setConfigKey(map.get("configKey"));
|
|
|
+ baseConfigDo.setConfigValue(map.get("configValue"));
|
|
|
+ baseConfigDo.setAreaName(map.get("areaName"));
|
|
|
+ sysBaseConfigMapper.updateById(baseConfigDo);
|
|
|
+ }
|
|
|
+ return new Result(ResultCode.SUCCESS);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result list(Map<String, String> paramsMap) {
|
|
|
+ //先分页查询
|
|
|
+
|
|
|
+ if (paramsMap.get("ip")!= null){
|
|
|
+ String ip = paramsMap.get("ip");
|
|
|
+ }
|
|
|
+ Integer pageNo = Integer.valueOf(paramsMap.get("pageNo"));
|
|
|
+ if ( pageNo == 0){
|
|
|
+ pageNo = 1;
|
|
|
+ }
|
|
|
+ // Page<SysBaseConfig> page = new Page<>(pageNo, Integer.valueOf(paramsMap.get("pageSize")));
|
|
|
+ QueryWrapper<SysBaseConfig> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.like(StringUtils.isNotBlank(paramsMap.get("farmName")),"farm_name", paramsMap.get("farmName"));
|
|
|
+ queryWrapper.like(StringUtils.isNotBlank(paramsMap.get("farmCode")),"farm_code", paramsMap.get("farmCode"));
|
|
|
+ queryWrapper.like(StringUtils.isNotBlank(paramsMap.get("ip")),"ip", paramsMap.get("ip"));
|
|
|
+ //创建时间降序
|
|
|
+ queryWrapper.orderByDesc("id");
|
|
|
+
|
|
|
+ //获取到的只是当前传入参数的值的那条数据、需要再根据每个对象中的row_id获取到当前一组的数据、再进行拼装
|
|
|
+ List<SysBaseConfig> pageBizDeviceRegister = sysBaseConfigMapper.selectList(queryWrapper);
|
|
|
+
|
|
|
+ List<String> rowIds = pageBizDeviceRegister.stream().map(SysBaseConfig::getRowId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ //根据row_id分组查询数据
|
|
|
+ List<SysBaseConfig> sysBaseConfigs = sysBaseConfigMapper.selectByRowIdList(rowIds);
|
|
|
+ //将查询出来的数据 按照row_id进行分组
|
|
|
+ Map<String, List<SysBaseConfig>> groupResult = sysBaseConfigs.stream().collect(Collectors.groupingBy(SysBaseConfig::getRowId));
|
|
|
+
|
|
|
+ //Map<String, List<SysBaseConfig>> groupResult = content.stream().collect(Collectors.groupingBy(SysBaseConfig::getRowId));
|
|
|
+
|
|
|
+ Set<String> strings = groupResult.keySet();
|
|
|
+
|
|
|
+ //最终返回的拼装好的数据
|
|
|
+ ArrayList<SysBaseConfigVo> resultList = new ArrayList<>();
|
|
|
+ strings.forEach(rId->{
|
|
|
+ List<SysBaseConfig> sysBaseConfigEntities = groupResult.get(rId);
|
|
|
+ SysBaseConfigVo sysBaseConfigVo = convertSysBaseConfigVo(sysBaseConfigEntities);
|
|
|
+ resultList.add(sysBaseConfigVo);
|
|
|
+ });
|
|
|
+
|
|
|
+ return new Result(ResultCode.SUCCESS,resultList);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result getDateById(List<Integer> ids) {
|
|
|
+ ArrayList<SysBaseConfig> sysBaseConfigEntities = new ArrayList<>();
|
|
|
+ for (Integer id : ids) {
|
|
|
+ SysBaseConfig sysBaseConfig = sysBaseConfigMapper.selectById(id);
|
|
|
+ sysBaseConfigEntities.add(sysBaseConfig);
|
|
|
+ }
|
|
|
+ SysBaseConfigVo sysBaseConfigVo = convertSysBaseConfigVo(sysBaseConfigEntities);
|
|
|
+ return new Result(ResultCode.SUCCESS,sysBaseConfigVo);
|
|
|
+ }
|
|
|
+
|
|
|
+ private SysBaseConfigVo convertSysBaseConfigVo(List<SysBaseConfig> list){
|
|
|
+ Map<String, String> map = list.stream().collect(Collectors.toMap(SysBaseConfig::getConfigKey, SysBaseConfig::getConfigValue));
|
|
|
+ SysBaseConfigVo sysBaseConfigVo = new SysBaseConfigVo();
|
|
|
+ sysBaseConfigVo.setId(map.get("id"));
|
|
|
+ sysBaseConfigVo.setFarmCode(map.get("farmId"));
|
|
|
+ sysBaseConfigVo.setFarmName(map.get("configName"));
|
|
|
+ sysBaseConfigVo.setIp(map.get("ip"));
|
|
|
+ sysBaseConfigVo.setPort(map.get("port"));
|
|
|
+ return sysBaseConfigVo;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|