jinpengyong
2023-08-25 f9f8f90ac63d6ce3274410d3721b173f40db6e41
screen-manage/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java
@@ -1,10 +1,25 @@
package com.moral.api.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.OrganizationUnitAlarm;
import com.moral.api.mapper.OrganizationUnitAlarmMapper;
import com.moral.api.pojo.dto.organizationUnitAlarm.OrganizationUnitAlarmDTO;
import com.moral.api.pojo.dto.organizationUnitAlarm.OrganizationUnitAlarmQueryDTO;
import com.moral.api.pojo.form.organizationUnitAlarm.OrganizationUnitAlarmQueryForm;
import com.moral.api.pojo.form.organizationUnitAlarm.OrganizationUnitAlarmUpdateForm;
import com.moral.api.service.OrganizationUnitAlarmService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.api.util.CacheUtils;
import com.moral.constant.Constants;
import com.moral.constant.ResponseCodeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
 * <p>
@@ -17,4 +32,70 @@
@Service
public class OrganizationUnitAlarmServiceImpl extends ServiceImpl<OrganizationUnitAlarmMapper, OrganizationUnitAlarm> implements OrganizationUnitAlarmService {
    @Autowired
    OrganizationUnitAlarmMapper organizationUnitAlarmMapper;
    @Override
    public OrganizationUnitAlarmQueryDTO query(OrganizationUnitAlarmQueryForm form) {
        //创建返回对象
        OrganizationUnitAlarmQueryDTO dto = new OrganizationUnitAlarmQueryDTO();
        //取参
        Integer pageCount = form.getPage();
        Integer size = form.getSize();
        Integer organizationId = form.getOrganizationId();
        Integer versionId = form.getVersionId();
        //构造查询条件
        QueryWrapper<OrganizationUnitAlarm> wrapper = new QueryWrapper<>();
        wrapper.eq("is_delete", Constants.NOT_DELETE);
        wrapper.eq("organization_id",organizationId);
        wrapper.eq("version_id",versionId);
        Page<OrganizationUnitAlarm> wrapperPage = new Page<>(pageCount, size);
        Page<OrganizationUnitAlarm> resultPage = organizationUnitAlarmMapper.selectPage(wrapperPage, wrapper);
        List<OrganizationUnitAlarm> records = resultPage.getRecords();
        //封装返回结果
        List<OrganizationUnitAlarmDTO> dtos = new ArrayList<>();
        records.forEach(value->dtos.add(new OrganizationUnitAlarmDTO(value)));
        dto.setOrganizationUnitAlarmDTOS(dtos);
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        dto.setCurrent(resultPage.getCurrent());
        dto.setPages(resultPage.getPages());
        dto.setSize(resultPage.getSize());
        dto.setTotal(resultPage.getTotal());
        return dto;
    }
    @Override
    @Transactional
    public OrganizationUnitAlarmDTO update(OrganizationUnitAlarmUpdateForm form) {
        //创建返回对象
        OrganizationUnitAlarmDTO dto = new OrganizationUnitAlarmDTO();
        //取参
        OrganizationUnitAlarm organizationUnitAlarm = form.formConvertEntity();
        //查询更新前的记录用于插入日志
        OrganizationUnitAlarm oldRecord = organizationUnitAlarmMapper.selectById(organizationUnitAlarm.getId());
        //更新
        UpdateWrapper updateWrapper = new UpdateWrapper();
        if(organizationUnitAlarm.getAlarmLevel().equals("[]"))
            updateWrapper.set("alarm_level",null);
        else
            updateWrapper.set("alarm_level",organizationUnitAlarm.getAlarmLevel());
        if(organizationUnitAlarm.getShowUnitKey()!=null)
            updateWrapper.set("show_unit_key",organizationUnitAlarm.getShowUnitKey());
        updateWrapper.eq("id",organizationUnitAlarm.getId());
        organizationUnitAlarmMapper.update(null,updateWrapper);
        //获取更新后的记录用于插入日志
        OrganizationUnitAlarm newRecord = organizationUnitAlarmMapper.selectById(organizationUnitAlarm.getId());
        //刷新deviceInfo缓存
        CacheUtils.refreshDeviceAlarmInfo();
        CacheUtils.refreshSpecialDeviceAlarmInfo();
        //封装返回对象
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
    }
}