import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.lang.Dict;
|
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.json.JSONArray;
|
import com.xzx.gc.common.Result;
|
import com.xzx.gc.common.utils.DateUtils;
|
import com.xzx.gc.common.utils.LocationUtils;
|
import com.xzx.gc.common.utils.gdmap.GdMapUtil;
|
import com.xzx.gc.model.order.OrderInfoReq;
|
import com.xzx.gc.model.order.OrderInfoVo;
|
import com.xzx.gc.model.user.AccountVo;
|
import com.xzx.gc.order.dto.TrackDetailResultDto;
|
import org.junit.Test;
|
import org.springframework.util.CollectionUtils;
|
|
import java.io.IOException;
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
public class JavaTest {
|
|
@Test
|
public void generate(){
|
|
String lon="112.939038";
|
String lat="28.165681";
|
String key="f28decf4aed2d20104c16d3532682810";
|
Result inFence = GdMapUtil.isInFence(lon + "," + lat + "," + DateUtil.currentSeconds(), GdMapUtil.getDiu(key),key);
|
|
String gid="a87f1016-6368-4acf-b273-6fd90d67a9e9";
|
Result<JSONArray> fence = GdMapUtil.findFence(key, gid, "");
|
|
}
|
|
|
public List<Integer> split(int min, int max, int num,int size,List<Integer> list){
|
|
Random r = new Random();
|
int i1 = max - min;
|
int i2 = max + min;
|
|
int n = num/i1 +1;
|
|
int numm = 0;
|
|
for(int i=1;i<n;i++){
|
|
int next = r.nextInt(i1)+min;
|
|
list.add(next);
|
|
numm+=next;
|
|
}
|
|
if(num-numm>i2){
|
|
split(min,max,num-numm,size,list);
|
|
}else{
|
|
list.add(num-numm);
|
|
}
|
|
|
if(list.size()==size-1){
|
int temp=0;
|
for (Integer integer : list) {
|
temp=temp+integer;
|
}
|
list.add(num-temp);
|
}
|
|
return list;
|
|
}
|
|
public int[] splitInteger(int n, int sum,boolean flag) {
|
//随机抽取n-1个小于sum的数
|
List<Integer> list = new ArrayList();
|
//将0和sum加入到里list中
|
list.add(0);
|
//判断生成的正整数集合中是否允许为0,true元素可以为0 false元素不可以为0
|
if (!flag) {
|
sum = sum - n;
|
}
|
list.add(sum);
|
int temp = 0;
|
for (int i = 0; i < n - 1 ; i++) {
|
temp = (int) (Math.random() * sum);
|
list.add(temp);
|
}
|
Collections.sort(list);
|
int[] nums = new int[n];
|
for (int i = 0; i < n; i++) {
|
nums[i] = list.get(i + 1) - list.get(i);
|
if (!flag) {
|
nums[i] += 1;
|
}
|
}
|
return nums;
|
}
|
|
/**
|
* 随机指定范围内N个不重复的数
|
* 最简单最基本的方法
|
* @param min 指定范围最小值
|
* @param max 指定范围最大值
|
* @param n 随机数个数
|
*/
|
public int[] randomCommon(int min, int max, int n){
|
if (n > (max - min + 1) || max < min) {
|
return null;
|
}
|
int[] result = new int[n];
|
int count = 0;
|
while(count < n) {
|
int num = (int) (Math.random() * (max - min)) + min;
|
boolean flag = true;
|
for (int j = 0; j < n; j++) {
|
if(num == result[j]){
|
flag = false;
|
break;
|
}
|
}
|
if(flag){
|
result[count] = num;
|
count++;
|
}
|
}
|
return result;
|
}
|
|
@Test
|
public void aa2(){
|
randomCommon(1,35,10);
|
}
|
|
@Test
|
public void 生产id(){
|
List<TrackDetailResultDto> list=new ArrayList();
|
|
|
TrackDetailResultDto trackDetailResultDto = new TrackDetailResultDto();
|
trackDetailResultDto.setLocatetime(Convert.toStr(System.currentTimeMillis()));
|
trackDetailResultDto.setAddress("123");
|
list.add(trackDetailResultDto);
|
|
trackDetailResultDto = new TrackDetailResultDto();
|
trackDetailResultDto.setLocatetime(Convert.toStr(System.currentTimeMillis()+1));
|
trackDetailResultDto.setAddress("123");
|
list.add(trackDetailResultDto);
|
|
trackDetailResultDto = new TrackDetailResultDto();
|
trackDetailResultDto.setLocatetime(Convert.toStr(System.currentTimeMillis()+2));
|
trackDetailResultDto.setAddress("123");
|
list.add(trackDetailResultDto);
|
|
trackDetailResultDto = new TrackDetailResultDto();
|
trackDetailResultDto.setLocatetime(Convert.toStr(System.currentTimeMillis()+3));
|
trackDetailResultDto.setAddress("456");
|
list.add(trackDetailResultDto);
|
|
trackDetailResultDto = new TrackDetailResultDto();
|
trackDetailResultDto.setLocatetime(Convert.toStr(System.currentTimeMillis()+4));
|
trackDetailResultDto.setAddress("789");
|
list.add(trackDetailResultDto);
|
|
trackDetailResultDto = new TrackDetailResultDto();
|
trackDetailResultDto.setLocatetime(Convert.toStr(System.currentTimeMillis()+10));
|
trackDetailResultDto.setAddress("789");
|
list.add(trackDetailResultDto);
|
|
|
List<TrackDetailResultDto> collect = list.stream().sorted(Comparator.comparing(TrackDetailResultDto::getLocatetime)).collect(Collectors.toList());
|
|
List<TrackDetailResultDto> list2 = new ArrayList<>();
|
list2.add(collect.get(0));
|
for(int i=1;i<collect.size();i++){
|
|
TrackDetailResultDto trackDetailResultDto1 = collect.get(i);
|
String address = trackDetailResultDto1.getAddress();
|
String locatetime = trackDetailResultDto1.getLocatetime();
|
|
|
TrackDetailResultDto trackDetailResultDto2 = list2.get(list2.size() - 1);
|
|
String address1 = trackDetailResultDto2.getAddress();
|
String locatetime1 = trackDetailResultDto2.getLocatetime();
|
|
if(!address.equals(address1)){
|
list2.add(trackDetailResultDto1);
|
}else {
|
trackDetailResultDto2.setLingerTime(NumberUtil.sub(Convert.toLong(locatetime),Convert.toLong(locatetime1)).toString());
|
|
}
|
}
|
|
|
for (TrackDetailResultDto detailResultDto : list2) {
|
System.out.println(detailResultDto.getAddress()+"=="+detailResultDto.getLocatetime()+"=="+detailResultDto.getLingerTime());
|
}
|
|
|
double l = Convert.toDouble(30000) / 1000 / 60;
|
BigDecimal round = NumberUtil.round(l, 1, RoundingMode.DOWN);
|
System.out.println(round.toString());
|
|
|
}
|
|
|
@Test
|
public void test1() throws IOException {
|
|
// Resource[] resources = new PathMatchingResourcePatternResolver().getResources("file:src/main/resources/mapper/order/*.xml");
|
//
|
//
|
// System.out.println(resources.length);
|
//
|
//
|
// BigDecimal bigDecimal = NumberUtil.toBigDecimal("100.967");
|
// BigDecimal bigDecimal2 = NumberUtil.toBigDecimal("100.962");
|
//
|
// System.out.println(NumberUtil.isGreater(bigDecimal,bigDecimal2));
|
|
|
|
// BigDecimal actualMoney = NumberUtil.sub(Convert.toBigDecimal("0.5"), Convert.toBigDecimal("0"));
|
// System.out.println(actualMoney);
|
// BigDecimal bigDecimal=new BigDecimal("0.4");
|
// BigDecimal bigDecimal1 = Convert.toBigDecimal("-" + bigDecimal);
|
// System.out.println(bigDecimal1);
|
|
// Short a=null;
|
// int s = Convert.toInt(a, 0);
|
// System.out.println(s);
|
//
|
// String storageId = generate("RK", 2);
|
// System.out.println(storageId);
|
|
String s="DD1198780571048869888,DD1198836242071027712,DD1198836751217590272,DD1198848021983526912,DD1198857387277156352,DD1198862379035787264,DD1198865412490657792,DD1198873338940882944,DD1199142818904408064,DD1199522841624707072,DD1199605197710688256,DD1199873059687890944,DD1199946276771332096,DD1199971132221030400,DD1200246793422635008,DD1200577031876771840,DD1200594756602822656,DD1200605188663148544,DD1200650922527686656,DD1200720351273811968,DD1201355470170882048,DD1201375498622599168,DD1201402910848712704,DD1201415885257048064,DD1201735743005917184,DD1201757201849516032,DD1201779369262055424";
|
|
String s1="DD1198780571048869888,DD1198836242071027712,DD1198836751217590272,DD1198848021983526912,DD1198857387277156352,DD1198862379035787264,DD1198865412490657792,DD1198873338940882944,DD1199142818904408064,DD1199522841624707072,DD1199605197710688256,DD1199873059687890944,DD1199946276771332096,DD1199971132221030400,DD1200246793422635008,DD1200577031876771840,DD1200594756602822656,DD1200605188663148544,DD1200650922527686656,DD1200720351273811968,DD1201355470170882048,DD1201375498622599168,DD1201402910848712704,DD1201415885257048064,DD1201735743005917184,DD1201757201849516032,DD1201779369262055424";
|
System.out.println(s.equals(s1));
|
|
String reserveTime="2019-11-27 8:00:00";
|
String format = DateUtil.format(DateUtil.parse(reserveTime, DateUtils.DATE_FORMAT_YMDHMS), DateUtils.DATE_FORMAT_MDHMS);
|
System.out.println(format);
|
|
// List<UserInfo> list=new ArrayList<>();
|
// boolean basicType = ObjectUtil.isBasicType(list);
|
// System.out.println(basicType);
|
// try{
|
// throw new RestException(-1, "aaa");
|
// } catch (RestException e) {
|
// ExceptionUtils.err(e.getMsg(),e);
|
// }catch ( BusinessException e){
|
// ExceptionUtils.err(e.getMsg(),e);
|
// }catch (Exception e){
|
// ExceptionUtils.err("提现审核失败",e);
|
// }
|
|
|
}
|
|
|
@Test
|
public void 根据经纬度查询地址测试(){
|
// if(Convert.toInt(3)==null){
|
// System.out.println(22);
|
// }else{
|
// System.out.println(1);
|
// }
|
// GdReverseGEODto gdReverseGEODto = new GdReverseGEODto();
|
// gdReverseGEODto.setLocation("112.985245,28.1491");
|
// Result areaInfo = GdMapUtil.getAreaInfo(gdReverseGEODto, 3);
|
// System.out.println(JSONUtil.toJsonStr(areaInfo));
|
String date="2019-09-22 09:00:00";
|
Date dateDate=DateUtil.parseDateTime(date);
|
DateTime dateTime = DateUtil.offsetDay(dateDate, 1);
|
System.out.println(dateTime.toString());
|
}
|
@Test
|
public void say(){
|
Dict dict = Dict.create();
|
dict.set("a","11");
|
System.out.println(dict);
|
dict.clear();
|
System.out.println(dict);
|
|
String s1="22";
|
String s2="YH1184372951408312320";
|
String fill = StrUtil.fill(s1, Convert.toChar("0"), 15, false);
|
System.out.println(fill);
|
|
String s3 = StrUtil.subWithLength(s2, 0, 15);
|
System.out.println(s3);
|
|
String s = RandomUtil.randomString(64);
|
System.out.println(s);
|
|
String s4 = Convert.toStr(Boolean.TRUE);
|
System.out.println(s4);
|
}
|
|
@Test
|
public void test3(){
|
String a="b";
|
System.out.println(a);
|
|
BigDecimal bigDecimal=new BigDecimal("11.2");
|
BigDecimal bigDecimal2=new BigDecimal("11.3");
|
|
BigDecimal add = NumberUtil.add(bigDecimal, bigDecimal2);
|
|
System.out.println(add.toString());
|
|
// BigDecimal storageMoneyDecimal=NumberUtil.toBigDecimal("44");
|
// System.out.println(storageMoneyDecimal.toString());
|
|
BigDecimal storageMoneyDecimal=NumberUtil.toBigDecimal("1");
|
BigDecimal receiverLimitDecimal=NumberUtil.toBigDecimal("2");
|
BigDecimal limitDecimal=NumberUtil.toBigDecimal("2.9");
|
if (NumberUtil.isGreater(NumberUtil.add(storageMoneyDecimal,receiverLimitDecimal),limitDecimal)) {
|
System.out.println("aa"+1);
|
}
|
}
|
@Test
|
public void test2() throws Exception {
|
// Dict dict=Dict.create();
|
// try {
|
// dict.set("a","123");
|
// int a=5/0;
|
//
|
//
|
// } catch (Exception e) {
|
// System.out.println(1);
|
// throw new Exception("33");
|
// } finally {
|
// System.out.println(dict.get("a"));
|
// }
|
// String money="0";
|
// String moneyStr=NumberUtil.roundStr(money,2,RoundingMode.DOWN);
|
// System.out.println(moneyStr);
|
// String money2="0.2";
|
// moneyStr=NumberUtil.roundStr(money2,2,RoundingMode.DOWN);
|
// System.out.println(moneyStr);
|
List<AccountVo> storageAccount =new ArrayList<>();
|
String storageAccountId = storageAccount.get(0).getAccountId();
|
System.out.println(storageAccountId);
|
}
|
|
@Test
|
public void test4(){
|
|
List<OrderInfoVo> orderList=new ArrayList<>();
|
OrderInfoVo orderInfoVo=new OrderInfoVo();
|
//
|
orderInfoVo.setLatitude("28.194296");
|
orderInfoVo.setLongitude("113.015671");
|
orderInfoVo.setAddress("湖南省长沙市芙蓉区东二环");
|
|
//28.123467,112.923660
|
|
OrderInfoVo orderInfoVo2=new OrderInfoVo();
|
//
|
orderInfoVo2.setLatitude("28.123467");
|
orderInfoVo2.setLongitude("112.923660");
|
orderInfoVo2.setAddress("洋湖");
|
|
orderList.add(orderInfoVo2);
|
orderList.add(orderInfoVo);
|
|
//28.216685,
|
OrderInfoReq orderInfoReq=new OrderInfoReq();
|
orderInfoReq.setLatitude("28.216685");
|
orderInfoReq.setLongitude("113.004684");
|
|
|
//按距离排序
|
if(!CollectionUtils.isEmpty(orderList)){
|
Collections.sort(orderList, new Comparator<OrderInfoVo>() {
|
@Override
|
public int compare(OrderInfoVo o1, OrderInfoVo o2) {
|
double distance = LocationUtils.getDistance(Convert.toDouble(orderInfoReq.getLatitude()), Convert.toDouble(orderInfoReq.getLongitude()), Convert.toDouble(o1.getLatitude()), Convert.toDouble(o1.getLongitude()));
|
System.out.println(distance);
|
double distance2=LocationUtils.getDistance(Convert.toDouble(orderInfoReq.getLatitude()),Convert.toDouble(orderInfoReq.getLongitude()),Convert.toDouble(o2.getLatitude()),Convert.toDouble(o2.getLongitude()));
|
System.out.println(distance2);
|
|
if(distance>distance2){
|
return 1;
|
}else if(distance<distance2){
|
return -1;
|
}else{
|
return 0;
|
}
|
}
|
});
|
}
|
|
for (OrderInfoVo infoVo : orderList) {
|
System.out.println(infoVo.getAddress());
|
}
|
}
|
|
|
@Test
|
public void test5(){
|
double lon = 116.312528, lat = 39.983733; // 经纬度
|
int radius = 5; // 千米
|
|
}
|
|
|
}
|