MercMiniDeviceController.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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.DeviceInfoService;
  9. import com.xy.service.DeviceInfoServiceImpl;
  10. import com.xy.service.be.MercFeignService;
  11. import com.xy.utils.MercAuthUtils;
  12. import com.xy.utils.PageBean;
  13. import com.xy.utils.R;
  14. import com.xy.utils.enums.DictSonEnum;
  15. import io.swagger.annotations.Api;
  16. import io.swagger.annotations.ApiOperation;
  17. import lombok.AllArgsConstructor;
  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 DeviceInfoService deviceInfoService;
  35. private final MercFeignService mercFeignService;
  36. private final DeviceInfoServiceImpl deviceInfoServiceImpl;
  37. @ApiOperation("商户设备首页统计")
  38. @PostMapping("mercHomeStatistical")
  39. public R<DeviceInfoDto.MercHomeStatisticalVO> mercHomeStatistical(@RequestBody @Valid DeviceInfoDto.MercHomeQueryDTO dto) {
  40. dto.setMercId(MercAuthUtils.getMercId());
  41. return deviceInfoService.mercHomeStatistical(dto);
  42. }
  43. @PostMapping("searchPage")
  44. @ApiOperation("小程序商户设备搜索")
  45. public R<PageBean<DeviceInfoDto.MerHomeSearchVO>> mercDeviceSearchPage(@RequestBody DeviceInfoDto.Page page) {
  46. page.setMercId(MercAuthUtils.getMercId());
  47. return deviceInfoService.mercDeviceSearchPage(page);
  48. }
  49. @ApiOperation("小程序商户设备详情-设备信息")
  50. @PostMapping("detail")
  51. R<DeviceInfoDto.Vo> detail(@RequestBody DeviceInfoDto.Obj obj) {
  52. obj.setMercId(MercAuthUtils.getMercId());
  53. return deviceInfoService.obj(obj);
  54. }
  55. @ApiOperation("小程序商户设备详情-数据统计")
  56. @PostMapping("dataCount")
  57. R<DeviceInfoDto.DeviceDataCountVO> dataCount(@RequestBody DeviceInfoDto.DeviceDataCountDTO dto) {
  58. dto.setMercId(MercAuthUtils.getMercId());
  59. return deviceInfoService.dataCount(dto);
  60. }
  61. @PostMapping("active")
  62. @ApiOperation("激活设备")
  63. public R active(@RequestBody MercMiniDeviceDto.Active active) {
  64. Long mercId = MercAuthUtils.getMercId();
  65. //商户是否已通过审核
  66. MercDto.Vo mercInfo = mercFeignService.obj(new MercDto.ListDTO().setId(mercId)).getData();
  67. if (!mercInfo.getStatus().equals(String.valueOf(MercStatus.APPROVED.getCode()))) {
  68. return R.fail("商户未通过审核");
  69. }
  70. //机器是否已授权给该商户
  71. DeviceInfoDto.Vo deviceInfo = deviceInfoService.obj(new DeviceInfoDto.Obj().setDeviceId(active.getDeviceId())).getData();
  72. if (!deviceInfo.getMercId().equals(mercId)) {
  73. return R.fail("机器未授权给商户");
  74. }
  75. //机器是否冻结
  76. if (deviceInfo.getFreezeStatus().equals(Integer.valueOf(DictSonEnum.DEVICE_FREEZE_STATUS_2.getKey()))) {
  77. return R.fail("机器已冻结");
  78. }
  79. //激活设备
  80. DeviceInfo updateDeviceInfo = new DeviceInfo()
  81. .setDeviceId(active.getDeviceId())
  82. .setActiveState(Integer.valueOf(DictSonEnum.DEVICE_ACTIVE_STATUS_1.getKey()))
  83. .setBusyState(Integer.valueOf(DictSonEnum.DEVICE_BUSY_STATUS_1.getKey()))
  84. .setActiveTime(LocalDateTime.now())
  85. .setShowStatus(true);
  86. deviceInfoServiceImpl.updateById(updateDeviceInfo);
  87. return R.ok();
  88. }
  89. }