package com.ydtech.modules.admin.controller; import com.ydtech.core.page.HttpResult; import com.ydtech.modules.admin.constants.SystemType; import com.ydtech.modules.admin.model.SysUser; import com.ydtech.modules.admin.model.dto.*; import com.ydtech.modules.admin.model.po.SysPcAddressHistory; import com.ydtech.modules.admin.model.po.SysPcAddress; import com.ydtech.modules.admin.model.vo.KztUserDeptTreeDto; import com.ydtech.modules.admin.model.vo.PcAddressHistoryInfoVo; import com.ydtech.modules.admin.model.vo.RegionInfoVo; import com.ydtech.modules.admin.service.SysPcAddressHistoryService; import com.ydtech.modules.admin.service.SysPcAddressService; import com.ydtech.modules.admin.service.SysUserService; import com.ydtech.modules.base.controller.BaseController; import com.ydtech.modules.order.entity.BasePageResult; import com.ydtech.utils.StringUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @RestController @RequestMapping("/sys/ipAddr") @RequiredArgsConstructor @Api(tags = "PC登录地址") public class SysPcAddressController extends BaseController{ private final SysPcAddressService sysPcAddressService; private final SysUserService sysUserService; private final SysPcAddressHistoryService sysPcAddressHistoryService; @PostMapping("/queryPosition") @ApiOperation(value = "查询所有用户的位置列表") public HttpResult> queryPosition(@RequestBody SysPcAddressDto sysPcAddressDto) { return HttpResult.ok("success", this.sysPcAddressService.getEveryone(sysPcAddressDto)); } @PostMapping("/queryPositionList") @ApiOperation(value = "查询单个用户的所有位置") public HttpResult> queryPositionList(@RequestBody SysGeographyPositionPageDto sysGeographyPositionPageDto) { if (sysGeographyPositionPageDto.getPageNum() == 0) { sysGeographyPositionPageDto.setPageNum(1); } if (sysGeographyPositionPageDto.getPageSize() == 0) { sysGeographyPositionPageDto.setPageSize(10); } return HttpResult.ok("success", this.sysPcAddressHistoryService.queryPositionList(sysGeographyPositionPageDto)); } @PostMapping(value = "/saveIpInfo") @ApiOperation(value = "保存登录用户位置信息") public HttpResult saveIpInfo(@RequestBody IpInfoDto ipInfoDto) { SysUser user = BaseController.getUser(); if (SystemType.ST_1.getCode().equals(ipInfoDto.getSystemType())) { try { // 保存登录信息 sysPcAddressService.saveSysPcAddress(ipInfoDto,user); }catch (Exception e){} } return HttpResult.ok("保存成功"); } /** * pc地址范围查询 */ @PostMapping("/locations") @ApiOperation(value = "pc地址范围查询") public HttpResult> getLocationsWithinRadius(@RequestBody AdressRangeDto adressRangeDto) { return HttpResult.ok("success",sysPcAddressService.findLocationsWithinRadius(adressRangeDto)); } @PostMapping("/queryPcNum") @ApiOperation(value = "人员数量概览") public HttpResult queryPcNum(@RequestBody SysPcAddressDto sysPcAddressDto) { return HttpResult.ok("success", this.sysPcAddressService.queryPcNum(sysPcAddressDto)); } @PostMapping("/queryRegionInfo") @ApiOperation(value = "区域人员概览") public HttpResult> queryRegionInfo(@RequestBody SysPcAddressDto sysPcAddressDto) { return HttpResult.ok("success", this.sysPcAddressService.queryRegionInfo(sysPcAddressDto)); } @PostMapping("/queryPcAddressInfo") @ApiOperation(value = "查询同一经纬度人员信息") public HttpResult> queryPcAddressInfo(@RequestBody PcAddressInfoDto addressInfoDto) { if (addressInfoDto.getPageNum() == 0) { addressInfoDto.setPageNum(1); } if (addressInfoDto.getPageSize() == 0) { addressInfoDto.setPageSize(10); } return HttpResult.ok("success", this.sysPcAddressService.queryPcAddressInfo(addressInfoDto)); } @PostMapping("/queryPcAddressHistoryInfo") @ApiOperation(value = "历史人员:同一经纬度人员信息") public HttpResult> queryPcAddressHistoryInfo(@RequestBody PcAddressInfoDto addressInfoDto) { if (addressInfoDto.getPageNum() == 0) { addressInfoDto.setPageNum(1); } if (addressInfoDto.getPageSize() == 0) { addressInfoDto.setPageSize(10); } String startTime = addressInfoDto.getStartTime(); String endTime = addressInfoDto.getEndTime(); Date date = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if (StringUtils.isEmpty(startTime)) { addressInfoDto.setStartTime(simpleDateFormat.format(date)); }else { startTime = addressInfoDto.getStartTime() + " 00:00:01"; Date parse = null; try { parse = simpleDateFormat.parse(startTime); } catch (ParseException e) { throw new RuntimeException(e); } addressInfoDto.setStartTime(simpleDateFormat.format(parse)); } if (StringUtils.isEmpty(endTime)) { addressInfoDto.setEndTime(simpleDateFormat.format(date)); }else { endTime = endTime + " 23:59:59"; Date parse = null; try { parse = simpleDateFormat.parse(endTime); } catch (ParseException e) { throw new RuntimeException(e); } addressInfoDto.setEndTime(simpleDateFormat.format(parse)); } return HttpResult.ok("success", this.sysPcAddressService.queryPcAddressHistoryInfo(addressInfoDto)); } @GetMapping("/getPcAddress") @ApiOperation(value = "历史在线人数") public HttpResult getPcAddress(@RequestParam(value = "startTime",required = false) String startTime, @RequestParam(value = "endTime",required = false) String endTime, @RequestParam(value = "source",required = false) String source, @RequestParam(value = "queryId",required = false) String queryId, @RequestParam(value = "type") Integer type) { return HttpResult.ok("success", this.sysPcAddressService.getPcAddress(startTime,endTime,source,queryId,type)); } @GetMapping("/getOnlinePeople") @ApiOperation(value = "PC在线用户") public HttpResult> getOnlinePeople() { return HttpResult.ok("success", this.sysPcAddressService.getOnlinePeople()); } @ApiOperation(value = "pc用户数机构数") @PostMapping(value = "/getUserDeptTree") public HttpResult getUserDeptTree() { return HttpResult.ok(sysPcAddressService.getUserDeptTree()); } }