package com.huimv.center.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huimv.center.mapper.BizDeviceRegisterMapper;
import com.huimv.center.pojo.BizDeviceRegister;
import com.huimv.center.service.BizDeviceRegisterService;
//import com.huimv.center.utils.DateUtil;
import com.huimv.center.utils.IDUtil;
import com.huimv.eartag2.common.utils.DateUtil;
import com.huimv.eartag2.common.utils.Result;
import com.huimv.eartag2.common.utils.ResultCode;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* 服务实现类
*
*
* @author zn
* @since 2022-06-21
*/
@Service
public class BizDeviceRegisterServiceImpl extends ServiceImpl implements BizDeviceRegisterService {
@Autowired
private BizDeviceRegisterMapper bizDeviceRegisterMapper;
@Autowired
private com.huimv.center.utils.ResultUtil ResultUtil;
// @Autowired
// private DateUtil dateUtil;
@Autowired
private IDUtil idUtil;
@Autowired
private com.huimv.center.utils.DateUtil dateUtil;
/**
* @Method : add
* @Description :
* @Params : [chipId, deviceCode, serverIp, serverPort, remark]
* @Return : com.huimv.eartag2.common.utils.Result
*
* @Author : ZhuoNing
* @Date : 2022/6/23
* @Time : 20:47
*/
@Override
public Result add(String farmName,String farmCode,String chipId, String deviceCode, String serverIp, String serverPort, String remark) throws ParseException {
DateUtil dateUtil = new DateUtil();
BizDeviceRegister deviceRegister = new BizDeviceRegister();
deviceRegister.setChipId(chipId);
deviceRegister.setDeviceCode(deviceCode);
deviceRegister.setRegisterDate(dateUtil.getTodayDatetime());
deviceRegister.setServerIp(serverIp);
deviceRegister.setServerPort(serverPort);
deviceRegister.setRemark(remark);
deviceRegister.setAskTimes(0);
deviceRegister.setAnswerTimes(0);
deviceRegister.setFarmCode(farmCode);
deviceRegister.setFarmName(farmName);
return ResultUtil.result(bizDeviceRegisterMapper.insert(deviceRegister));
}
/**
* @Method : edit
* @Description :
* @Params : [id, chipId, deviceCode, serverIp, serverPort, remark]
* @Return : com.huimv.eartag2.common.utils.Result
*
* @Author : ZhuoNing
* @Date : 2022/6/23
* @Time : 21:00
*/
@Override
public Result edit(Integer id, String chipId, String deviceCode, String serverIp, String serverPort, String remark) throws ParseException {
DateUtil dateUtil = new DateUtil();
BizDeviceRegister deviceRegister = bizDeviceRegisterMapper.selectById(id);
deviceRegister.setChipId(chipId);
deviceRegister.setDeviceCode(deviceCode);
deviceRegister.setRegisterDate(dateUtil.getTodayDatetime());
deviceRegister.setServerIp(serverIp);
deviceRegister.setServerPort(serverPort);
deviceRegister.setRemark(remark);
int rows = bizDeviceRegisterMapper.updateById(deviceRegister);
return ResultUtil.result(rows);
}
/**
* @Method : remove
* @Description :
* @Params : [ids]
* @Return : com.huimv.eartag2.common.utils.Result
*
* @Author : ZhuoNing
* @Date : 2022/6/26
* @Time : 15:12
*/
@Override
public Result remove(String ids){
return ResultUtil.result(bizDeviceRegisterMapper.deleteBatchIds(idUtil.convert(ids)));
}
/**
* @Method : listAll
* @Description :
* @Params : [pageNo, pageSize, farmCode, chipId, deviceCode, startDate, endDate]
* @Return : com.huimv.eartag2.common.utils.Result
*
* @Author : ZhuoNing
* @Date : 2022/6/26
* @Time : 14:50
*/
@Override
public Result listAll(Integer pageNo, Integer pageSize, String farmName, String farmCode, String chipId, String deviceCode, String startDate, String endDate){
if(pageNo == 0){
pageNo = 1;
}
startDate = dateUtil.buildStartDate(startDate);
endDate = dateUtil.buildEndDate(endDate);
Page page = new Page<>(pageNo, pageSize);
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.like(StringUtils.isNotBlank(farmName),"farm_name", farmName);
queryWrapper.like(StringUtils.isNotBlank(chipId),"chip_id", chipId);
queryWrapper.like(StringUtils.isNotBlank(deviceCode),"device_code", deviceCode);
queryWrapper.like(StringUtils.isNotBlank(farmCode),"farm_code", farmCode);
queryWrapper.ge(StringUtils.isNotBlank(startDate),"last_time", startDate);
queryWrapper.le(StringUtils.isNotBlank(endDate),"last_time", endDate);
//创建时间降序
queryWrapper.orderByDesc("id");
Page pageBizDeviceRegister = bizDeviceRegisterMapper.selectPage(page, queryWrapper);
return new Result(ResultCode.SUCCESS,pageBizDeviceRegister);
}
/**
* @Method : getServerAndIpByChipId
* @Description :
* @Params : [idCode]
* @Return : java.util.Map
*
* @Author : ZhuoNing
* @Date : 2022/6/23
* @Time : 20:45
*/
@Override
public Map getServerAndIpByChipId(String idCode) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("chip_id", idCode);
queryWrapper.orderByDesc("id");
queryWrapper.last("LIMIT 1");
// 查询注册设备
List deviceRegisterList = bizDeviceRegisterMapper.selectList(queryWrapper);
Map resultMap = new HashMap();
if(deviceRegisterList.size() > 0){
BizDeviceRegister deviceRegister = deviceRegisterList.get(0);
resultMap.put("ip",deviceRegister.getServerIp());
resultMap.put("port",deviceRegister.getServerPort());
resultMap.put("deviceCode",deviceRegister.getDeviceCode());
resultMap.put("farmCode",deviceRegister.getFarmCode());
resultMap.put("farmName",deviceRegister.getFarmName());
}
return resultMap;
}
/**
* @Method : updateDeviceRegisterTimes
* @Description :
* @Params : [chipId]
* @Return : com.huimv.eartag2.common.utils.Result
*
* @Author : ZhuoNing
* @Date : 2022/6/23
* @Time : 20:45
*/
@Override
public Result updateDeviceRegisterTimes(String chipId) throws ParseException {
DateUtil dateUtil = new DateUtil();
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("chip_id", chipId);
// 查询注册设备
BizDeviceRegister deviceRegister = bizDeviceRegisterMapper.selectOne(queryWrapper);
if(deviceRegister.getFirstTime() == null){
deviceRegister.setFirstTime(dateUtil.getTodayDatetime());
}
deviceRegister.setLastTime(dateUtil.getTodayDatetime());
Integer times = deviceRegister.getAskTimes();
if(times == null){
times = 0;
}
deviceRegister.setAskTimes(++times);
int rows = bizDeviceRegisterMapper.updateById(deviceRegister);
return ResultUtil.result(rows);
}
/**
* @Method : updateDeviceAnswerTimes
* @Description : 修改应答次数
* @Params : [chipId]
* @Return : com.huimv.eartag2.common.utils.Result
*
* @Author : ZhuoNing
* @Date : 2022/6/24
* @Time : 14:00
*/
@Override
public Result updateDeviceAnswerTimes(String chipId) throws ParseException {
DateUtil dateUtil = new DateUtil();
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("chip_id", chipId);
// 查询注册设备
BizDeviceRegister deviceRegister = bizDeviceRegisterMapper.selectOne(queryWrapper);
if(deviceRegister.getFirstTimeAnswer()== null){
deviceRegister.setFirstTimeAnswer(dateUtil.getTodayDatetime());
}
deviceRegister.setLastTimeAnswer(dateUtil.getTodayDatetime());
Integer times = deviceRegister.getAnswerTimes();
if(times == null){
times = 0;
}
deviceRegister.setAnswerTimes(++times);
int rows = bizDeviceRegisterMapper.updateById(deviceRegister);
return ResultUtil.result(rows);
}
}