package com.isu.gaswellwatch.service.impl; import cn.dev33.satoken.stp.StpUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.isu.gaswellwatch.config.SnowflakeConfig; import com.isu.gaswellwatch.constants.UserConstant; import com.isu.gaswellwatch.dao.DeviceDao; import com.isu.gaswellwatch.dao.DeviceOptLogDao; import com.isu.gaswellwatch.entity.DeviceOptLog; import com.isu.gaswellwatch.service.BlockService; import com.isu.gaswellwatch.service.DeviceOptLogService; import com.isu.gaswellwatch.service.UserService; import com.isu.gaswellwatch.vo.BlockVO; import com.isu.gaswellwatch.vo.DeviceVO; import com.isu.gaswellwatch.vo.UserLoginInfoVO; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; @Service("deviceOptLogService") @Transactional(rollbackFor = Exception.class) public class DeviceOptLogServiceImpl extends ServiceImpl implements DeviceOptLogService { @Resource private DeviceOptLogDao deviceOptLogDao; @Resource private UserService userService; @Resource private DeviceDao deviceDao; @Resource private BlockService blockService; @Resource private SnowflakeConfig snowflakeConfig; @Override public void saveGasWellOptLog(Integer isOpen, Long deviceId,String source) { UserLoginInfoVO userLoginInfoVO = (UserLoginInfoVO) StpUtil.getTokenSession().get(UserConstant.TOKEN_SESSION); DeviceVO deviceVO = this.deviceDao.getDeviceById(deviceId); DeviceOptLog deviceOptLog = new DeviceOptLog(); deviceOptLog.setId(this.snowflakeConfig.snowflakeId()); deviceOptLog.setDeviceId(deviceId); deviceOptLog.setUsername(userLoginInfoVO.getUserVO().getUsername()); deviceOptLog.setName(userLoginInfoVO.getUserVO().getNickname()); BlockVO blockVO = this.blockService.selectBlockById(deviceVO.getGasWell().getBlockId()); deviceOptLog.setBlock("苏里格气田-" + blockVO.getName()); deviceOptLog.setGasWell(deviceVO.getGasWell().getName()); deviceOptLog.setDeviceDetail(deviceVO.getDeviceType().getName() + "-" + deviceVO.getProduct().getName()); deviceOptLog.setGasStation(deviceVO.getGasStation()); String content = ""; if("device".equalsIgnoreCase(source)){ content = isOpen == 1 ? "检测到气井开启" : "检测到气井关闭"; }else{ content = isOpen == null ? "设置成功" : (isOpen == 1 ? "开井成功" : "关井成功"); } deviceOptLog.setContent(content); this.deviceOptLogDao.insert(deviceOptLog); } @Override public Page page(Page page, Date start, Date end, Long deviceId) { return this.deviceDao.deviceOptLogPage(page, start, end, deviceId); } }