package com.hxzk.gps.service.impl.Cabinet;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hxzk.gps.controller.Cabinet.deo.TableSearchResultCabinet;
import com.hxzk.gps.entity.Cabinet.TbCabinet;
import com.hxzk.gps.entity.FaKaJi.TbFakaji;
import com.hxzk.gps.mapper.Cabinet.TbCabinetMapper;
import com.hxzk.gps.result.ListDataResult;
import com.hxzk.gps.result.ResultTable;
import com.hxzk.gps.result.table;
import com.hxzk.gps.service.Cabinet.TbCabinetService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hxzk.gps.service.Cabinet.TbFakajiService;
import com.hxzk.gps.util.GetUser.UserInfoUtil;
import com.hxzk.gps.util.MessageUtils.MessageUtils;
import com.hxzk.gps.util.Result.ReturnMessage;
import com.hxzk.gps.controller.System.SystemLogUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author YuZhiTong
* @since 2025-07-03
*/
@Service
public class TbCabinetServiceImpl extends ServiceImpl implements TbCabinetService {
@Autowired
TbFakajiService fakajiService;
@Override
public ResultTable FindCabinetInfo(TableSearchResultCabinet tableSearchResultCabinet) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("company",UserInfoUtil.getUserCompany());
PageHelper.startPage(tableSearchResultCabinet.getTableList().getPageNum(),tableSearchResultCabinet.getTableList().getPageSize());
PageInfo info = new PageInfo<>(baseMapper.selectList(queryWrapper));
table achortable = new table<>(info.getList(),tableSearchResultCabinet.getTableList().getPageNum(),tableSearchResultCabinet.getTableList().getPageSize(),info.getTotal());
return ListDataResult.resultTableSuccess(achortable, MessageUtils.getMessage("Success"));
}
@Override
public ReturnMessage add(TbCabinet cabinet) {
/*
声明操作状态
* */
boolean isSuccess = false;
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("cabinetnum",cabinet.getCabinetnum());
Integer count = Math.toIntExact(baseMapper.selectCount(queryWrapper));
if (count > 0){
return ReturnMessage.ReturnMessageError("CabinetRepeat");
}
try {
for (int i = 0; i < 60; i++){
TbFakaji fakaji = new TbFakaji();
fakaji.setSlotnumber(String.valueOf(i+1));
fakaji.setDeviceid(cabinet.getCabinetnum());
fakaji.setStatus("0");
fakaji.setCompany(UserInfoUtil.getUserCompany());
fakajiService.getBaseMapper().insert(fakaji);
}
isSuccess = true;
cabinet.setCompany(UserInfoUtil.getUserCompany());
baseMapper.insert(cabinet);
}catch (Exception e){
}
return SystemLogUtil.handleAddResult(isSuccess,"CardAdd",cabinet.getCabinetnum());
}
@Override
public ReturnMessage update(TbCabinet cabinet) {
/*
声明操作状态
* */
boolean isSuccess = false;
try {
// 使用ID进行更新,确保更新的是正确的记录
if (cabinet.getId() != null) {
baseMapper.updateById(cabinet);
isSuccess = true;
} else {
// 如果没有ID,则使用原来的方式
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("cabinetnum",cabinet.getCabinetnum());
baseMapper.update(cabinet,queryWrapper);
isSuccess = true;
}
}catch (Exception e){
System.out.println("更新失败: " + e.getMessage());
}
return SystemLogUtil.handleUpdateResult(isSuccess,"CardUpdate",cabinet.getCabinetnum());
}
@Override
public ReturnMessage delete(TbCabinet cabinet) {
/*
声明操作状态
* */
boolean isSuccess = false;
try {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("cabinetnum",cabinet.getCabinetnum());
baseMapper.delete(queryWrapper);
isSuccess = true;
}catch (Exception e){
}
return SystemLogUtil.handleDeleteResult(isSuccess,"CardDelete",cabinet.getCabinetnum());
}
@Override
public ReturnMessage batchDelete(List ids) {
/*
声明操作状态
* */
boolean isSuccess = false;
try {
// 批量删除
baseMapper.deleteBatchIds(ids);
isSuccess = true;
}catch (Exception e){
System.out.println("批量删除失败: " + e.getMessage());
}
return SystemLogUtil.handleDeleteResult(isSuccess,"CardBatchDelete",ids.toString());
}
}