| | |
| | | import com.ruoyi.system.service.TAppUserEquipmentService; |
| | | import com.ruoyi.system.service.TAppUserLocationService; |
| | | import com.ruoyi.system.service.TAppUserService; |
| | | import com.ruoyi.system.utils.GDMapGeocodingUtil; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | |
| | | import java.time.LocalDate; |
| | | |
| | | import java.util.Iterator; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | return R.ok(location); |
| | | } |
| | | |
| | | /** |
| | | * 用户附近人员定位 |
| | | */ |
| | | @ApiOperation(value = "用户附近人员定位") |
| | | @PostMapping(value = "/open/t-app-user/nearUserLocation") |
| | | public R<List<TAppUser>> nearUserLocation(@RequestParam(value = "lon") String lon , |
| | | @RequestParam(value = "lat") String lat ) { |
| | | List<TAppUser> list = appUserService.list(Wrappers.lambdaQuery(TAppUser.class) |
| | | .eq(TAppUser::getStatus, 1) |
| | | .eq(TAppUser::getState, 1)); |
| | | |
| | | Iterator<TAppUser> iterator = list.iterator(); |
| | | while (iterator.hasNext()) { |
| | | TAppUser appUser = iterator.next(); |
| | | String location = redisCache.getCacheObject(Constants.LOCATION + appUser.getId()); |
| | | if(!StringUtils.hasLength(location)){ |
| | | iterator.remove(); |
| | | }else { |
| | | // 计算距离 |
| | | double startLon = Double.parseDouble(location.split(",")[0]); |
| | | double startLat = Double.parseDouble(location.split(",")[1]); |
| | | double distance = GDMapGeocodingUtil.getDistance(Double.parseDouble(lon), Double.parseDouble(lat), startLon, startLat); |
| | | distance = distance / 1000; |
| | | if(distance>50){ |
| | | iterator.remove(); |
| | | }else { |
| | | appUser.setLon(String.valueOf(startLon)); |
| | | appUser.setLat(String.valueOf(startLat)); |
| | | } |
| | | } |
| | | } |
| | | return R.ok(list); |
| | | } |
| | | |
| | | } |
| | | |