package com.xy.service;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xy.collections.list.JArrayList;
import com.xy.collections.list.JList;
import com.xy.collections.map.JHashMap;
import com.xy.collections.map.JMap;
import com.xy.config.DeviceThreadPoolConfig;
import com.xy.device.*;
import com.xy.dto.*;
import com.xy.dto.be.MercDto;
import com.xy.entity.*;
import com.xy.mapper.DeviceChargingMapper;
import com.xy.service.be.MercService;
import com.xy.utils.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.xy.utils.Beans.copy;
import static com.xy.utils.PlusBeans.toIPage;
import static com.xy.utils.PlusBeans.toPageBean;
/**
*
* 设备计费表 服务实现类
*
*
* @author lijin
* @since 2023-04-14
*/
@Slf4j
@Service
@Api(tags = "设备计费表")
@AllArgsConstructor(onConstructor_ = @Lazy)
public class DeviceChargingServiceImpl extends ServiceImpl implements DeviceChargingService {
private DeviceChargingHistoryServiceImpl deviceChargingHistoryService;
private DeviceInfoServiceImpl deviceInfoService;
private DeviceTypeAlgorithmBeforConfigServiceImpl deviceTypeAlgorithmBeforConfigService;
private DeviceChargingConfigServiceImpl deviceChargingConfigService;
private DeviceAlgorithmChargingServiceImpl deviceAlgorithmChargingService;
private DeviceStatusServiceImpl deviceStatusService;
private DeviceSysinfoServiceImpl deviceSysinfoService;
private AlipayDeviceService alipayDeviceService;
private MercFeeConfigService mercFeeConfigService;
private MercService mercService;
@PostMapping("updateTimeout")
@ApiOperation("修改过期时间")
public R updateTimeout(@RequestBody @Validated DeviceChargingDto.UpdateTimeout updateTimeout) {
update(new LambdaUpdateWrapper()
.set(DeviceCharging::getTimeout, updateTimeout.getTimeout())
.in(DeviceCharging::getDeviceId, updateTimeout.getDeviceIds())
);
return R.ok();
}
@PostMapping("del")
@ApiOperation("删除")
public R del(@RequestBody @Validated DeviceChargingDto.Del del) {
removeBatchByIds(del.getDeviceId());
return R.ok();
}
@PostMapping("payCheck")
@ApiOperation("购买反显")
public R