修复正在使用中的设备问题

This commit is contained in:
墨大叔 2024-07-15 17:56:58 +08:00
parent 8a0a9475ad
commit 099249122f
2 changed files with 31 additions and 16 deletions

View File

@ -571,9 +571,10 @@ public class TransactionBillServiceImpl implements TransactionBillService {
// 修改设备充值状态成功
if (success) {
transactionBillMapper.updateDeviceRechargeStatus(bill.getBillId(), TransactionBillDeviceRechargeStatus.SUCCESS.getStatus());
SmDeviceVO device = deviceService.selectSmDeviceByDeviceId(bill.getDeviceId());
this.updateSuitTimeAfterDevice(billId, device.getExpireTime());
this.updateSuitTimeBeforeDevice(billId, device.getExpireTime());
transactionBillMapper.updateDeviceRechargeStatus(bill.getBillId(), TransactionBillDeviceRechargeStatus.SUCCESS.getStatus());
}
return true;
@ -583,13 +584,19 @@ public class TransactionBillServiceImpl implements TransactionBillService {
* 在设备充值成功后更新套餐时间
* 开始时间 = 设备过期时间 - 套餐时间过期时间 = 设备过期时间
*/
private int updateSuitTimeAfterDevice(Long billId, LocalDateTime deviceExpireTime) {
TransactionBill bill = new TransactionBill();
bill.setBillId(billId);
bill.setSuitStartTime(deviceExpireTime.plusMinutes(-bill.getSuitTime().longValue()));
bill.setSuitEndTime(deviceExpireTime);
bill.setSuitExpireTime(deviceExpireTime);
return transactionBillMapper.updateSmTransactionBill(bill);
private int updateSuitTimeBeforeDevice(Long billId, LocalDateTime deviceExpireTime) {
TransactionBillVo bill = this.selectSmTransactionBillByBillId(billId);
if (bill == null) {
return 0;
}
LocalDateTime endTime = deviceExpireTime.plusMinutes(bill.getSuitTime().longValue());
TransactionBill data = new TransactionBill();
data.setBillId(billId);
data.setSuitStartTime(deviceExpireTime);
data.setSuitEndTime(endTime);
data.setSuitExpireTime(endTime);
return transactionBillMapper.updateSmTransactionBill(data);
}
/**
@ -826,6 +833,7 @@ public class TransactionBillServiceImpl implements TransactionBillService {
* @return
*/
@Override
@Transactional
public boolean bluetoothRechargeSuccess(String billNo) {
Boolean execute = transactionTemplate.execute(status -> {
TransactionBill bill = selectSmTransactionBillByBillNo(billNo);
@ -838,7 +846,7 @@ public class TransactionBillServiceImpl implements TransactionBillService {
// 更新套餐时间
SmDeviceVO afterDevice = deviceService.selectSmDeviceByDeviceId(bill.getDeviceId());
this.updateSuitTimeAfterDevice(bill.getBillId(), afterDevice.getExpireTime());
this.updateSuitTimeBeforeDevice(bill.getBillId(), afterDevice.getExpireTime());
boolean addTime = deviceService.addTime(bill.getDeviceId(), bill.getSuitTime(), false);
ServiceUtil.assertion(!addTime, "修改剩余时间失败");

View File

@ -7,12 +7,12 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.core.domain.ValidGroup;
import com.ruoyi.common.utils.ServiceUtil;
import com.ruoyi.ss.device.domain.SmDeviceBO;
import com.ruoyi.ss.device.domain.dto.DeviceBatchUpdateModelDTO;
import com.ruoyi.ss.device.service.DeviceAssembler;
import com.ruoyi.ss.device.domain.SmDeviceQuery;
import com.ruoyi.ss.device.domain.vo.SmDeviceVO;
import com.ruoyi.ss.device.service.DeviceValidator;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.security.access.prepost.PreAuthorize;
@ -30,8 +30,6 @@ import com.ruoyi.common.core.page.TableDataInfo;
/**
* 设备Controller
*
* @author 邱贞招
* @date 2024-02-21
*/
@RestController
@RequestMapping("/system/device")
@ -40,9 +38,6 @@ public class SmDeviceController extends BaseController
@Autowired
private DeviceService smDeviceService;
@Autowired
private DeviceValidator deviceValidator;
@Autowired
private DeviceAssembler deviceAssembler;
@ -149,32 +144,44 @@ public class SmDeviceController extends BaseController
}
@ApiOperation("绑定SN码")
@PreAuthorize("@ss.hasPermi('system:device:bindSn')")
@PutMapping("/{deviceId}/bindSn/{sn}")
public AjaxResult bindSn(@PathVariable @ApiParam("设备ID") Long deviceId, @PathVariable @ApiParam("SN") String sn) {
return success(smDeviceService.bindSn(deviceId, sn));
}
@ApiOperation("设备充值时长")
@PreAuthorize("@ss.hasPermi('system:device:addTime')")
@PutMapping("/addTime/{deviceId}")
public AjaxResult addTime(@PathVariable @ApiParam("设备id") Long deviceId, @ApiParam("电量(度)") BigDecimal amount) {
return toAjax(smDeviceService.addTimeByUser(deviceId, amount, true, "管理员手动充值"));
}
@ApiOperation("设备时长归零")
@PreAuthorize("@ss.hasPermi('system:device:reset')")
@PutMapping("/{deviceId}/reset")
public AjaxResult reset(@PathVariable @ApiParam("设备id") Long deviceId) {
return success(smDeviceService.reset(deviceId));
}
@ApiOperation("设备开关")
@PreAuthorize("@ss.hasPermi('system:device:switch')")
@PutMapping("/{deviceId}/switch")
public AjaxResult switchDevice(@PathVariable Long deviceId, @RequestParam Boolean open) {
return toAjax(smDeviceService.switchDevice(deviceId, open));
}
@ApiOperation("设备批量修改型号")
@PreAuthorize("@ss.hasPermi('system:device:edit')")
@PutMapping("/batchUpdateModel")
public AjaxResult batchUpdateModel(@RequestBody @Validated DeviceBatchUpdateModelDTO dto) {
return success(smDeviceService.batchUpdateModel(dto));
}
@ApiOperation("解除设备绑定")
@PreAuthorize("@ss.hasPermi('system:device:unbind')")
@DeleteMapping("/{deviceId}/unbind")
public AjaxResult unbind(@PathVariable @ApiParam("设备id") Long deviceId) {
return toAjax(smDeviceService.unbind(deviceId));
}
}