MercMiniDeviceController.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package com.xy.controller;
  2. import com.xy.annotate.RestMappingController;
  3. import com.xy.dto.DeviceInfoDto;
  4. import com.xy.dto.MercMiniDeviceDto;
  5. import com.xy.dto.be.MercDto;
  6. import com.xy.entity.DeviceInfo;
  7. import com.xy.enums.MercStatus;
  8. import com.xy.service.DeviceInfoServiceImpl;
  9. import com.xy.service.be.MercFeignService;
  10. import com.xy.utils.MercAuthUtils;
  11. import com.xy.utils.PageBean;
  12. import com.xy.utils.R;
  13. import com.xy.utils.enums.DictSonEnum;
  14. import io.swagger.annotations.Api;
  15. import io.swagger.annotations.ApiOperation;
  16. import lombok.AllArgsConstructor;
  17. import org.springframework.validation.annotation.Validated;
  18. import org.springframework.web.bind.annotation.PostMapping;
  19. import org.springframework.web.bind.annotation.RequestBody;
  20. import javax.validation.Valid;
  21. import java.time.LocalDateTime;
  22. /**
  23. * <p>
  24. * 小程序-设备
  25. * </p>
  26. *
  27. * @author hechunping
  28. * @since 2023/3/4
  29. */
  30. @RestMappingController("merc-mini/device")
  31. @AllArgsConstructor
  32. @Api(tags = "小程序-设备")
  33. public class MercMiniDeviceController {
  34. private final MercFeignService mercFeignService;
  35. private final DeviceInfoServiceImpl deviceInfoService;
  36. @ApiOperation("商户设备首页统计")
  37. @PostMapping("mercHomeStatistical")
  38. public R<DeviceInfoDto.MercHomeStatisticalVO> mercHomeStatistical(@RequestBody @Valid DeviceInfoDto.MercHomeQueryDTO dto) {
  39. dto.setMercId(MercAuthUtils.getMercId());
  40. return deviceInfoService.mercHomeStatistical(dto);
  41. }
  42. @PostMapping("searchPage")
  43. @ApiOperation("小程序商户设备搜索")
  44. public R<PageBean<DeviceInfoDto.MerHomeSearchVO>> mercDeviceSearchPage(@RequestBody DeviceInfoDto.Page page) {
  45. page.setMercId(MercAuthUtils.getMercId());
  46. return deviceInfoService.mercDeviceSearchPage(page);
  47. }
  48. @ApiOperation("小程序商户设备详情-设备信息")
  49. @PostMapping("detail")
  50. R<DeviceInfoDto.Vo> detail(@RequestBody DeviceInfoDto.Obj obj) {
  51. obj.setMercId(MercAuthUtils.getMercId());
  52. return deviceInfoService.obj(obj);
  53. }
  54. @ApiOperation("小程序商户设备详情-数据统计")
  55. @PostMapping("dataCount")
  56. R<DeviceInfoDto.DeviceDataCountVO> dataCount(@RequestBody DeviceInfoDto.DeviceDataCountDTO dto) {
  57. dto.setMercId(MercAuthUtils.getMercId());
  58. return deviceInfoService.dataCount(dto);
  59. }
  60. @PostMapping("active")
  61. @ApiOperation("激活设备")
  62. public R active(@RequestBody MercMiniDeviceDto.Active active) {
  63. DeviceInfo deviceInfo = deviceInfoService.getById(active.getDeviceId());
  64. if (deviceInfo.getActiveState().equals(Integer.valueOf(DictSonEnum.DEVICE_ACTIVE_STATUS_1.getKey()))) {
  65. return R.fail("机器已激活");
  66. }
  67. Long mercId = MercAuthUtils.getMercId();
  68. //商户是否已通过审核
  69. MercDto.Vo mercInfo = mercFeignService.obj(new MercDto.ListDTO().setId(mercId)).getData();
  70. if (!mercInfo.getStatus().equals(String.valueOf(MercStatus.APPROVED.getCode()))) {
  71. return R.fail("商户未通过审核");
  72. }
  73. //机器是否已授权给该商户
  74. if (!deviceInfo.getMercId().equals(mercId)) {
  75. return R.fail("机器未授权给商户");
  76. }
  77. //机器是否冻结
  78. if (deviceInfo.getFreezeStatus().equals(Integer.valueOf(DictSonEnum.DEVICE_FREEZE_STATUS_2.getKey()))) {
  79. return R.fail("机器已冻结");
  80. }
  81. //激活设备
  82. DeviceInfo updateDeviceInfo = new DeviceInfo()
  83. .setDeviceId(active.getDeviceId())
  84. .setActiveState(Integer.valueOf(DictSonEnum.DEVICE_ACTIVE_STATUS_1.getKey()))
  85. .setBusyState(Integer.valueOf(DictSonEnum.DEVICE_BUSY_STATUS_1.getKey()))
  86. .setActiveTime(LocalDateTime.now())
  87. .setShowStatus(true);
  88. deviceInfoService.updateById(updateDeviceInfo);
  89. return R.ok();
  90. }
  91. @PostMapping("modifyBusyStage")
  92. @ApiOperation("运营状态修改")
  93. public R modifyBusyStage(@RequestBody @Validated MercMiniDeviceDto.BusySate busySate) {
  94. Long mercId = MercAuthUtils.getMercId();
  95. Long deviceId = busySate.getDeviceId();
  96. DeviceInfo updateDeviceInfo = new DeviceInfo()
  97. .setDeviceId(deviceId)
  98. .setMercId(mercId)
  99. .setBusyState(busySate.getBusyState());
  100. deviceInfoService.updateById(updateDeviceInfo);
  101. return R.ok();
  102. }
  103. }