SysGeographyPositionController.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package com.ydtech.modules.admin.controller.websocket;
  2. import com.ydtech.core.page.HttpResult;
  3. import com.ydtech.modules.admin.model.SysGeographyPosition;
  4. import com.ydtech.modules.admin.model.SysGeographyPositionRecord;
  5. import com.ydtech.modules.admin.model.dto.*;
  6. import com.ydtech.modules.admin.model.vo.*;
  7. import com.ydtech.modules.admin.service.SysGeographyPositionService;
  8. import com.ydtech.modules.base.controller.BaseController;
  9. import com.ydtech.modules.order.entity.BasePageResult;
  10. import com.ydtech.utils.StringUtils;
  11. import io.swagger.annotations.Api;
  12. import io.swagger.annotations.ApiOperation;
  13. import org.springframework.web.bind.annotation.*;
  14. import javax.annotation.Resource;
  15. import java.text.ParseException;
  16. import java.text.SimpleDateFormat;
  17. import java.util.Date;
  18. import java.util.List;
  19. @RestController
  20. @RequestMapping("/geography")
  21. @Api(tags = "APP地理经纬度")
  22. public class SysGeographyPositionController extends BaseController {
  23. @Resource
  24. private SysGeographyPositionService sysGeographyPositionService;
  25. @PostMapping("/queryPosition")
  26. @ApiOperation(value = "查询所有用户的位置列表")
  27. public HttpResult<SysGeographyPositionVo> queryPosition(@RequestBody SysGeographyPositionDto sysGeographyPositionDto) {
  28. return HttpResult.ok("success", this.sysGeographyPositionService.queryPosition(sysGeographyPositionDto));
  29. }
  30. @PostMapping("/queryPositionList")
  31. @ApiOperation(value = "查询单个用户的所有位置")
  32. public HttpResult<BasePageResult<SysGeographyPositionRecord>> queryPositionList(@RequestBody SysGeographyPositionPageDto sysGeographyPositionPageDto) {
  33. if (sysGeographyPositionPageDto.getPageNum() == 0) {
  34. sysGeographyPositionPageDto.setPageNum(1);
  35. }
  36. if (sysGeographyPositionPageDto.getPageSize() == 0) {
  37. sysGeographyPositionPageDto.setPageSize(10);
  38. }
  39. return HttpResult.ok("success", this.sysGeographyPositionService.queryPositionList(sysGeographyPositionPageDto));
  40. }
  41. @PostMapping("/queryPcNum")
  42. @ApiOperation(value = "人员数量概览")
  43. public HttpResult<SysPcAddressNumVo> queryPcNum(@RequestBody SysGeographyPositionDto sysGeographyPositionDto) {
  44. return HttpResult.ok("success", this.sysGeographyPositionService.queryPcNum(sysGeographyPositionDto));
  45. }
  46. @PostMapping("/queryRegionInfo")
  47. @ApiOperation(value = "区域人员概览")
  48. public HttpResult<List<RegionInfoVo>> queryRegionInfo(@RequestBody SysGeographyPositionDto sysGeographyPositionDto) {
  49. return HttpResult.ok("success", this.sysGeographyPositionService.queryRegionInfo(sysGeographyPositionDto));
  50. }
  51. @PostMapping("/locations")
  52. @ApiOperation(value = "APP地址范围查询")
  53. public HttpResult<List<SysGeographyPositionInfoVo>> getLocationsWithinRadius(@RequestBody AdressRangeDto adressRangeDto) {
  54. return HttpResult.ok("success",sysGeographyPositionService.findLocationsWithinRadius(adressRangeDto));
  55. }
  56. @PostMapping("/queryGeographyInfo")
  57. @ApiOperation(value = "查询同一经纬度人员信息")
  58. public HttpResult<BasePageResult<SysGeographyPositionInfoVo>> queryPcAddressInfo(@RequestBody PcAddressInfoDto addressInfoDto) {
  59. if (addressInfoDto.getPageNum() == 0) {
  60. addressInfoDto.setPageNum(1);
  61. }
  62. if (addressInfoDto.getPageSize() == 0) {
  63. addressInfoDto.setPageSize(10);
  64. }
  65. return HttpResult.ok("success", this.sysGeographyPositionService.queryPcAddressInfo(addressInfoDto));
  66. }
  67. @PostMapping("/queryGeographyRecord")
  68. @ApiOperation(value = "历史人员:查询同一经纬度人员信息")
  69. public HttpResult<BasePageResult<SysGeographyPositionInfoVo>> queryGeographyRecord(@RequestBody PcAddressInfoDto addressInfoDto) {
  70. if (addressInfoDto.getPageNum() == 0) {
  71. addressInfoDto.setPageNum(1);
  72. }
  73. if (addressInfoDto.getPageSize() == 0) {
  74. addressInfoDto.setPageSize(10);
  75. }
  76. String startTime = addressInfoDto.getStartTime();
  77. String endTime = addressInfoDto.getEndTime();
  78. Date date = new Date();
  79. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  80. if (StringUtils.isEmpty(startTime)) {
  81. addressInfoDto.setStartTime(simpleDateFormat.format(date));
  82. }else {
  83. startTime = addressInfoDto.getStartTime() + " 00:00:01";
  84. Date parse = null;
  85. try {
  86. parse = simpleDateFormat.parse(startTime);
  87. } catch (ParseException e) {
  88. throw new RuntimeException(e);
  89. }
  90. addressInfoDto.setStartTime(simpleDateFormat.format(parse));
  91. }
  92. if (StringUtils.isEmpty(endTime)) {
  93. addressInfoDto.setEndTime(simpleDateFormat.format(date));
  94. }else {
  95. endTime = endTime + " 23:59:59";
  96. Date parse = null;
  97. try {
  98. parse = simpleDateFormat.parse(endTime);
  99. } catch (ParseException e) {
  100. throw new RuntimeException(e);
  101. }
  102. addressInfoDto.setEndTime(simpleDateFormat.format(parse));
  103. }
  104. return HttpResult.ok("success", this.sysGeographyPositionService.queryGeographyRecord(addressInfoDto));
  105. }
  106. @GetMapping("/getGeographyPosition")
  107. @ApiOperation(value = "历史在线人数")
  108. public HttpResult<AppGeographyHistoryInfoVo> getGeographyPosition(@RequestParam(value = "startTime",required = false) String startTime,
  109. @RequestParam(value = "endTime",required = false) String endTime,
  110. @RequestParam(value = "source",required = false) String source) {
  111. return HttpResult.ok("success", this.sysGeographyPositionService.getGeographyPosition(startTime,endTime,source));
  112. }
  113. @GetMapping("/getOnlinePeople")
  114. @ApiOperation(value = "APP在线用户")
  115. public HttpResult<List<SysGeographyPosition>> getOnlinePeople() {
  116. return HttpResult.ok("success", this.sysGeographyPositionService.getOnlinePeople());
  117. }
  118. }