1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package com.xy.service;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.xy.dto.DeviceChargingDto;
- import com.xy.dto.DeviceChargingHistoryDto;
- import com.xy.dto.DeviceInfoDto;
- import com.xy.entity.DeviceCharging;
- import com.xy.entity.DeviceChargingHistory;
- import com.xy.entity.SysDictRedis;
- import com.xy.job.DeviceChargingJob;
- import com.xy.mapper.DeviceChargingMapper;
- import com.xy.utils.*;
- import com.xy.utils.enums.DictEnum;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.AllArgsConstructor;
- 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.util.List;
- import java.util.Map;
- import static com.xy.utils.PlusBeans.*;
- /**
- * <p>
- * 设备计费表 服务实现类
- * </p>
- *
- * @author lijin
- * @since 2023-04-14
- */
- @Service
- @Api(tags = "设备计费表")
- @AllArgsConstructor(onConstructor_ = @Lazy)
- public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper, DeviceCharging> implements DeviceChargingService {
- private DeviceChargingJob deviceChargingJob;
- private DeviceChargingHistoryServiceImpl deviceChargingHistoryService;
- @PostMapping("charging")
- @ApiOperation("手动计费")
- public R charging(@RequestBody @Validated DeviceChargingDto.Charging charging) {
- List<Long> deviceIds = charging.getDeviceIds();
- deviceChargingJob.deviceCharging(1, deviceIds.size(), deviceIds);
- return R.ok();
- }
- @PostMapping("page")
- @ApiOperation("分页查询")
- public R<PageBean<DeviceChargingDto.PageVo>> page(@RequestBody DeviceChargingDto.Page page) {
- IPage<DeviceChargingDto.PageVo> iPage = baseMapper.page(toIPage(page.getPage()), page);
- List<DeviceChargingDto.PageVo> records = iPage.getRecords();
- if (Emptys.check(records)) {
- Map<String, SysDictRedis> stringSysDictRedisMap = SysDictUtils.get(DictEnum.DEVICE_CHARGING.getKey());
- for (DeviceChargingDto.PageVo record : records) {
- DeviceInfoDto.Vo deviceInfo = record.getDeviceInfo();
- //封装最新计费历史信息
- LambdaQueryWrapper<DeviceChargingHistory> lambdaQueryWrapper = new LambdaQueryWrapper<DeviceChargingHistory>()
- .eq(DeviceChargingHistory::getDeviceId, deviceInfo.getDeviceId())
- .orderByDesc(DeviceChargingHistory::getCreateTime)
- .last("limit 1");
- DeviceChargingHistory deviceChargingHistory = deviceChargingHistoryService.getOne(lambdaQueryWrapper);
- if (deviceChargingHistory != null) {
- record.setDeviceChargingHistory(copy(DeviceChargingHistoryDto.Vo.class, deviceChargingHistory));
- }
- //封装计费标准金额
- SysDictRedis sysDictRedis = stringSysDictRedisMap.get(deviceInfo.getDeviceType().toString());
- if (sysDictRedis != null) {
- record.setChargingMoney(Integer.valueOf(sysDictRedis.getValue()));
- }
- //封装缴费状态
- DeviceChargingDto.Vo deviceCharging = record.getDeviceCharging();
- if (deviceCharging != null) {
- int contrast = DataTime.stringContrast(DataTime.toString(page.getThisTime()), DataTime.toString(deviceCharging.getTimeout()));
- record.setChargingStatus(contrast < 0);
- }
- }
- }
- return R.ok(toPageBean(iPage));
- }
- }
|