| import cn.hutool.cache.Cache;  | 
| import cn.hutool.cache.CacheUtil;  | 
| import cn.hutool.core.bean.BeanPath;  | 
| import cn.hutool.core.bean.BeanUtil;  | 
| import cn.hutool.core.codec.Base64Decoder;  | 
| import cn.hutool.core.collection.CollUtil;  | 
| import cn.hutool.core.convert.Convert;  | 
| import cn.hutool.core.date.DateTime;  | 
| import cn.hutool.core.date.DateUnit;  | 
| import cn.hutool.core.date.DateUtil;  | 
| import cn.hutool.core.io.FileUtil;  | 
| import cn.hutool.core.lang.Console;  | 
| import cn.hutool.core.lang.WeightRandom;  | 
| import cn.hutool.core.map.MapUtil;  | 
| import cn.hutool.core.text.StrFormatter;  | 
| import cn.hutool.core.util.*;  | 
| import cn.hutool.core.util.RandomUtil;  | 
| import cn.hutool.extra.emoji.EmojiUtil;  | 
| import cn.hutool.http.HttpRequest;  | 
| import cn.hutool.http.HttpUtil;  | 
| import cn.hutool.json.JSON;  | 
| import cn.hutool.json.JSONArray;  | 
| import cn.hutool.json.JSONObject;  | 
| import cn.hutool.json.JSONUtil;  | 
| import cn.hutool.poi.excel.BigExcelWriter;  | 
| import cn.hutool.poi.excel.ExcelUtil;  | 
| import cn.hutool.poi.excel.ExcelWriter;  | 
| import com.aliyuncs.exceptions.ClientException;  | 
| import com.xzx.gc.common.Result;  | 
| import com.xzx.gc.common.constant.Constants;  | 
| import com.xzx.gc.common.constant.OrderEnum;  | 
| import com.xzx.gc.common.constant.SmsConstant;  | 
| import com.xzx.gc.common.dto.gdmap.*;  | 
| import com.xzx.gc.common.exception.RestException;  | 
| import com.xzx.gc.common.utils.*;  | 
| import com.xzx.gc.common.utils.ali.SmsUtil;  | 
| import com.xzx.gc.common.utils.gdmap.GdMapUtil;  | 
| import com.xzx.gc.common.utils.gdmap.GdTraceUtil;  | 
| import com.xzx.gc.common.utils.image.QrCodeBaseUtils;  | 
| import com.xzx.gc.common.utils.image.QrCodeGraphicsUtils;  | 
| import com.xzx.gc.entity.AddressInfo;  | 
| import com.xzx.gc.entity.HomeServiceInfo;  | 
| import com.xzx.gc.entity.PartnerFence;  | 
| import com.xzx.gc.entity.UserInfo;  | 
| import com.xzx.gc.util.BeanUtils;  | 
| import lombok.Data;  | 
| import lombok.extern.slf4j.Slf4j;  | 
| import net.coobird.thumbnailator.Thumbnails;  | 
| import org.apache.commons.lang3.RandomStringUtils;  | 
| import org.junit.Test;  | 
| import org.locationtech.spatial4j.context.SpatialContext;  | 
| import org.locationtech.spatial4j.distance.DistanceUtils;  | 
| import org.locationtech.spatial4j.shape.Rectangle;  | 
| import sun.misc.Regexp;  | 
|   | 
| import javax.imageio.ImageIO;  | 
| import java.awt.*;  | 
| import java.awt.image.BufferedImage;  | 
| import java.io.File;  | 
| import java.io.StringWriter;  | 
| import java.io.UnsupportedEncodingException;  | 
| import java.math.BigDecimal;  | 
| import java.math.RoundingMode;  | 
| import java.net.URL;  | 
| import java.sql.Connection;  | 
| import java.sql.DriverManager;  | 
| import java.sql.ResultSet;  | 
| import java.sql.Statement;  | 
| import java.util.List;  | 
| import java.util.*;  | 
| import java.util.regex.Pattern;  | 
| import java.util.stream.Collectors;  | 
|   | 
| @Slf4j  | 
| public class CodeTest {  | 
|   | 
|   | 
|     @Test  | 
|     public void 测试数组() throws ClientException {  | 
|         Map map=new HashMap();  | 
|         map.put("code", "123");  | 
|         SmsUtil.send("18163623487", map, "SMS_178990101", "1");  | 
|   | 
| //        List<PartnerFence> select = new ArrayList<>();  | 
| //        List<String> collect = select.stream().map(x -> x.getFenceId()).distinct().collect(Collectors.toList());  | 
| //        System.out.println(collect.size());  | 
|   | 
|         String format = DateUtil.format(new Date(), DateUtils.DATE_FORMAT_H);  | 
|         System.out.println(format);  | 
|   | 
|         String format1 = DateUtil.format(DateUtil.offsetDay(new Date(), 1), DateUtils.DATE_FORMAT_YMD);  | 
|         format1=format1+" 08:00:00";  | 
|         System.out.println(format1);  | 
|         System.out.println(DateUtil.offsetHour(DateUtil.parse(format1),2));  | 
|     }  | 
|   | 
|   | 
|   | 
|     @Test  | 
|     public void data(){  | 
|   | 
|   | 
|         List<UserInfo> list=new ArrayList<>();  | 
|         UserInfo userInfo=new UserInfo();  | 
|         userInfo.setMobilePhone("百分之10");  | 
|         userInfo.setUserId("6.2");  | 
|         list.add(userInfo);  | 
|   | 
|         userInfo=new UserInfo();  | 
|         userInfo.setMobilePhone("百分之10");  | 
|         userInfo.setUserId("6.3");  | 
|         userInfo.setRegsterType(1);  | 
|         list.add(userInfo);  | 
|   | 
|         UserInfo userInfo1 = list.stream().filter(x -> x.getUserId().equals("6.3")).collect(Collectors.toList()).get(0);  | 
|         int registType = Convert.toInt(userInfo1.getRegsterType());  | 
|         userInfo1.setRegsterType(registType++);  | 
|   | 
|         for (UserInfo info : list) {  | 
|             System.out.println(info.getRegsterType());  | 
|         }  | 
|   | 
|     }  | 
|   | 
|   | 
|     public  String a11(){  | 
|         try {  | 
|   | 
|             return "3";  | 
|         }catch (Exception e){  | 
|   | 
|         }finally {  | 
|             System.out.println("4");  | 
|         }  | 
|         return "0";  | 
|     }  | 
|   | 
|     @Test  | 
|     public void ex(){  | 
|         Map<String, Object> row1 = new LinkedHashMap<>();  | 
|         row1.put("姓名", "张三");  | 
|         row1.put("年龄", 23);  | 
|         row1.put("成绩", 88.32);  | 
|         row1.put("是否合格", true);  | 
|         row1.put("考试日期", DateUtil.date());  | 
|   | 
|         Map<String, Object> row2 = new LinkedHashMap<>();  | 
|         row2.put("姓名", "李四");  | 
|         row2.put("年龄", 33);  | 
|         row2.put("成绩", 59.50);  | 
|         row2.put("是否合格", false);  | 
|         row2.put("考试日期", DateUtil.date());  | 
|   | 
|         ArrayList<Map<String, Object>> rows = CollUtil.newArrayList(row1, row2);  | 
|   | 
|         System.out.println(rows);  | 
|   | 
|         // 通过工具类创建writer  | 
|         ExcelWriter writer = ExcelUtil.getWriter("d:/writeMapTest.xlsx");  | 
| // 合并单元格后的标题行,使用默认标题样式  | 
|         writer.merge(row1.size() - 1, "一班成绩单");  | 
| // 一次性写出内容,使用默认样式,强制输出标题  | 
|         writer.write(rows, true);  | 
| // 关闭writer,释放内存  | 
|         writer.close();  | 
|   | 
|    }  | 
|   | 
|    @Test  | 
|    public void ex2(){  | 
|        List<?> row1 = CollUtil.newArrayList("aa", "bb", "cc", "dd", DateUtil.date(), 3.22676575765);  | 
|        List<?> row2 = CollUtil.newArrayList("aa1", "bb1", "cc1", "dd1", DateUtil.date(), 250.7676);  | 
|        List<?> row3 = CollUtil.newArrayList("aa2", "bb2", "cc2", "dd2", DateUtil.date(), 0.111);  | 
|        List<?> row4 = CollUtil.newArrayList("aa3", "bb3", "cc3", "dd3", DateUtil.date(), 35);  | 
|        List<?> row5 = CollUtil.newArrayList("aa4", "bb4", "cc4", "dd4", DateUtil.date(), 28.00);  | 
|   | 
|        List<List<?>> rows = CollUtil.newArrayList(row1, row2, row3, row4, row5);  | 
|   | 
|        BigExcelWriter writer= ExcelUtil.getBigWriter("e:/xxx.xlsx");  | 
| // 一次性写出内容,使用默认样式  | 
|        writer.write(rows);  | 
| // 关闭writer,释放内存  | 
|        writer.close();  | 
|   | 
|    }  | 
|   | 
|     @Test  | 
|     public void testSort(){  | 
|         Object sw = sw(0);  | 
|         Integer integer = Convert.toInt(sw);  | 
|         System.out.println(integer);  | 
|   | 
|         System.out.println(DateUtil.today());  | 
|   | 
| //        Map<String,Object> map=MapUtil.newHashMap();  | 
| //        map.put("time","4月2号11时43分");  | 
| //        map.put("money","4800");  | 
| //        map.put("fix","5000");  | 
| //        String content = StrUtil.format("尊敬的客户,截至{time},您的账户余额为:{money}元,已不足{fix},请及时充值,以免影响您的业务和正常交易", map);  | 
| //        SmsUtil.sendPoint("18163623487", content);  | 
|         List<UserInfo> list=new ArrayList<>();  | 
|         UserInfo userInfo=new UserInfo();  | 
|         userInfo.setUserType("1");  | 
|         userInfo.setMobilePhone("1");  | 
|         userInfo.setRegistTime("2019-09-27 12:44:22");  | 
|         list.add(userInfo);  | 
|   | 
|         userInfo=new UserInfo();  | 
|         userInfo.setUserType("1");  | 
| //        userInfo.setMobilePhone("2");  | 
|         userInfo.setRegistTime("2019-10-27 10:44:22");  | 
| //        list.add(userInfo);  | 
|   | 
|         userInfo=new UserInfo();  | 
|         userInfo.setUserType("2");  | 
| //        userInfo.setMobilePhone("2");  | 
|         userInfo.setRegistTime("2019-10-27 10:44:22");  | 
|         list.add(userInfo);  | 
|   | 
|         List<String> list3=new ArrayList<>();  | 
|         list3.add("123");  | 
|         list3.add("1234");  | 
|         String join = CollUtil.join(list3, ",");  | 
|         System.out.println(join);  | 
|   | 
|         if(false||true){  | 
|             System.out.println("aaacc");  | 
|         }  | 
|   | 
|   | 
| //        List<BigDecimal> list2=new ArrayList<>();  | 
| //  | 
| //        list2.add(new BigDecimal("3"));  | 
| //        list2.add(new BigDecimal("32"));  | 
| //        list2.add(new BigDecimal("1"));  | 
| //  | 
| //        CollUtil.sort(list2,new IndexedComparator<>().reversed());  | 
| //  | 
| //        System.out.println(CollUtil.getFirst(list2));  | 
| //  | 
| //        Dict dict=Dict.create();  | 
| //        List<BigDecimal> list3= (List<BigDecimal>) dict.get("fz");  | 
| //        System.out.println(list3);  | 
| //  | 
| //  | 
| //        System.out.println("group");  | 
| //  | 
| //        List<List<UserInfo>> registTime1 = CollUtils.groupByField(list, "registTime","1");  | 
| //        System.out.println(registTime1);  | 
| //  | 
| //  | 
| //        PartnerConfig partnerConfig=new PartnerConfig();  | 
| //        partnerConfig.setDelFlag(Convert.toByte(0));  | 
| //  | 
| //        System.out.println("错误"+partnerConfig.getDelFlag());  | 
|   | 
|     }  | 
|   | 
|   | 
|     @Test  | 
|     public void 权重(){  | 
|   | 
|         UserInfo userInfo=new UserInfo();  | 
|         userInfo.setMobilePhone("百分之10");  | 
|         userInfo.setUserId("6.2");  | 
|   | 
|         UserInfo userInfo2=new UserInfo();  | 
|         userInfo2.setMobilePhone("百分之30");  | 
|         userInfo2.setUserId("3.222222");  | 
|   | 
|         UserInfo userInfo3=new UserInfo();  | 
|         userInfo3.setMobilePhone("百分之60");  | 
|         userInfo3.setUserId("1");  | 
|   | 
|         ArrayList<UserInfo> userInfos = CollUtil.newArrayList(userInfo, userInfo2, userInfo3);  | 
|   | 
|         WeightRandom.WeightObj<UserInfo> weightObj= new WeightRandom.WeightObj(userInfo,0.01);  | 
|         WeightRandom.WeightObj<UserInfo> weightObj2= new WeightRandom.WeightObj(userInfo2,0.3);  | 
|         WeightRandom.WeightObj<UserInfo> weightObj3= new WeightRandom.WeightObj(userInfo3,0.6);  | 
|         WeightRandom<UserInfo> random = RandomUtil.weightRandom(CollUtil.newArrayList(weightObj, weightObj2, weightObj3));  | 
|   | 
|         for (int i = 0; i < 10; i++) {  | 
|             UserInfo next = random.next();  | 
| //            System.out.println(next.getMobilePhone());  | 
|         }  | 
|   | 
| //        CollUtil.sort(userInfos,new PropertyComparator<>("userId"));  | 
|   | 
|         CollUtil.sort(userInfos, (o1, o2) -> {  | 
|             if(Convert.toBigDecimal(o1.getUserId()).compareTo(Convert.toBigDecimal(o2.getUserId()))>0){  | 
|                 return -1;  | 
|             }else if(Convert.toBigDecimal(o1.getUserId()).compareTo(Convert.toBigDecimal(o2.getUserId()))==0){  | 
|                 return 0;  | 
|             }else {  | 
|                 return 1;  | 
|             }  | 
|         });  | 
|   | 
|         for (UserInfo info : userInfos) {  | 
|             System.out.println(info.getUserId());  | 
|         }  | 
|   | 
|     }  | 
|   | 
|     public Object sw(int a){  | 
|         switch (a){  | 
|             case 0:  | 
|                 System.out.println("00");  | 
|                 return "22";  | 
|             case 1 :  | 
|                 System.out.println("11");  | 
|                 break;  | 
|         }  | 
|         System.out.println("2233");  | 
|         return null;  | 
|     }  | 
|   | 
|     @Test  | 
|     public void changeName(){  | 
|   | 
| //        String dir="D:\\mp3\\aa";  | 
| //        String pre="img_";  | 
| //  | 
| //        File file = FileUtil.file(dir);  | 
| //        File[] files = file.listFiles();  | 
| //        int i=1;  | 
| //        for (File file1 : files) {  | 
| //                FileUtil.rename(file1,pre+i+".jpg",false,true);  | 
| //                i++;  | 
| //        }  | 
|   | 
| //        String trade_account_log_queue = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "trade_account_log_queue");  | 
| //        System.out.println(trade_account_log_queue);  | 
| //  | 
| //        DateTime dateTime = DateUtil.offsetMonth(new Date(), -3);  | 
| //        System.out.println(dateTime.toJdkDate());  | 
|   | 
| //        String phone="2,3";  | 
| //        String[] strings = StrUtil.splitToArray(phone, Convert.toChar(","));  | 
| //  | 
| //        for (String string : strings) {  | 
| //            System.out.println(string);  | 
| //        }  | 
|   | 
|         List<PartnerFence> select=CollUtil.newArrayList();  | 
|   | 
|         String join = CollUtil.join(select, "、");  | 
|         System.out.println(join);  | 
|   | 
| //        PartnerFence partnerFence=new PartnerFence();  | 
| //        partnerFence.setFenceId("2");  | 
| //        select.add(partnerFence);  | 
| //        PartnerFence partnerFence2=new PartnerFence();  | 
| //        partnerFence2.setFenceId("3");  | 
| //        select.add(partnerFence2);  | 
| //        List<String> collect = select.stream().map(x -> x.getFenceId()).distinct().collect(Collectors.toList());  | 
| //        for (String s : collect) {  | 
| //            System.out.println(s);  | 
| //        }  | 
|     }  | 
|   | 
|   | 
|     public void mysql() throws Exception {  | 
|         Class.forName("com.mysql.cj.jdbc.Driver");  | 
|         System.out.println("成功加载MySQL驱动!");  | 
|   | 
|         String url="jdbc:mysql://localhost:3306/t_xzxdev?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true";    //JDBC的URL  | 
|         Connection conn;  | 
|   | 
|         conn = DriverManager.getConnection(url,    "root","admin!@#00");//url 账号 密码  | 
|         Statement stmt = conn.createStatement(); //创建Statement对象  | 
|         System.out.println("成功连接到数据库 !");  | 
|   | 
|         String sql = "select * from xzx_user_trace_info where  create_time='2020-07-04'";    //要执行的SQL  | 
|         ResultSet rs = stmt.executeQuery(sql);//创建数据对象  | 
|         while (rs.next()){  | 
|             String key=rs.getString(3);  | 
|             String service=rs.getString(4);  | 
|             String tid=rs.getString(5);  | 
|             String traceId=rs.getString(6);  | 
|             CommonTraceDto commonTraceDto=new CommonTraceDto();  | 
|             commonTraceDto.setKey(key);  | 
|             commonTraceDto.setSid(service);  | 
|             commonTraceDto.setTid(tid);  | 
|             commonTraceDto.setTrid(traceId);  | 
|             GdTraceUtil.deleteTrace(commonTraceDto);  | 
|         }  | 
|         rs.close();  | 
|         stmt.close();  | 
|         conn.close();  | 
|   | 
|     }  | 
|   | 
|     @Test  | 
|     public void testgd(){  | 
| //        Result a64d28b2e036f4688b05916ef321b17d = GdTraceUtil.findTerminal("a64d28b2e036f4688b05916ef321b17d", "163516", "270101239", "");  | 
| //        Console.log(a64d28b2e036f4688b05916ef321b17d);  | 
|   | 
|         String key="73c5b455875594781c87d24903680274";  | 
| //  | 
| //         GdTraceUtil.createTraceProp(key, "163817", "address", "string");  | 
| //         GdTraceUtil.createTraceProp(key, "163998", "address", "string");  | 
| //         GdTraceUtil.createTraceProp(key, "164018", "address", "string");  | 
|   | 
|          key="921f67e45fe9afe7d2730658e147ca2a";  | 
|         Result<JSONArray> fence = GdMapUtil.findFence(key, null, null);  | 
|         Console.log(fence);  | 
|     }  | 
|   | 
|   | 
|     @Test  | 
|     public void testdel() throws Exception {  | 
| //        GdTraceUtil.deleteTrace()  | 
|         mysql();  | 
|     }  | 
|   | 
|   | 
|     @Test  | 
|     public  void 是否在围栏(){  | 
| //        System.out.println("123");  | 
| //        String key="d985739d075432bcbb3c0e8115c22bf1";  | 
| //        String sid="160778";  | 
| //        Result se1 = GdTraceUtil.createService(key, "se3");  | 
| //        Result se2 = GdTraceUtil.createService(key, "se4");  | 
| //        GdTraceUtil.createTerminal(key,se1.getData().toString(),"董杰回收员2");  | 
| //        GdTraceUtil.findTerminal(key,se1.getData().toString(),"董杰回收员2");  | 
| //        GdTraceUtil.findTerminal(key,se2.getData().toString(),"董杰回收员2");  | 
|   | 
| //        String testKey="ab5180b0423f279143d006177f330b7a";  | 
|         String key="a64d28b2e036f4688b05916ef321b17d";  | 
| //        Result<JSONArray> result = GdMapUtil.findFence(keyReal, null, null);  | 
| //        JSONArray data = result.getData();  | 
| //        for (Object datum : data) {  | 
| //            Console.log(datum);  | 
| //            JSONObject jsonObject = JSONUtil.parseObj(datum);  | 
| //            String gid = jsonObject.getStr("gid");  | 
| //            if(!gid.equals("dabaff06-bda3-40c3-bc43-57818a0a2c6f")){  | 
| //                GdMapUtil.deleteFence(testKey,gid);  | 
| //            }  | 
| //        }  | 
|   | 
|         //宁乡正式  | 
|         key="f28decf4aed2d20104c16d3532682810";  | 
|         String lon="112.550025";  | 
|         String lat="28.251580";  | 
|         Result inFence = GdMapUtil.isInFence(lon + "," + lat + "," + DateUtil.currentSeconds(), GdMapUtil.getDiu(key),key);  | 
| //        GdTraceUtil.deleteTerminal(key,sid,"1");  | 
|   | 
| //        Result<JSONArray> fence = GdMapUtil.findFence(key, null, null);  | 
| //        for (Object o : fence.getData()) {  | 
| //            JSONObject jsonObject= (JSONObject) o;  | 
| //            System.out.println(jsonObject.getStr("points"));  | 
| //        }  | 
|   | 
| //        GdMapUtil.deleteFence(key,"c34683d4-7385-415f-88e0-04990403dca6");  | 
|     }  | 
|   | 
|   | 
|     @Test  | 
|     public void  测试查询围栏(){  | 
|         String key="ab5180b0423f279143d006177f330b7a";  | 
|         String gid="dabaff06-bda3-40c3-bc43-57818a0a2c6f";  | 
|         Result<JSONArray> fence = GdMapUtil.findFence(key, gid, null);  | 
|         for (Object o : fence.getData()) {  | 
|             JSONObject jsonObject= (JSONObject) o;  | 
|             System.out.println(jsonObject.getStr("points"));  | 
|         }  | 
|     }  | 
|   | 
|   | 
|     @Test  | 
|     public void 拷贝(){  | 
|         HomeServiceInfo byId=new HomeServiceInfo();  | 
|         byId.setShowFlag(Convert.toShort(1));  | 
|         byId.setId(Convert.toLong(100));  | 
|   | 
|         HomeServiceInfo homeServiceAddDTO=new HomeServiceInfo();  | 
|         homeServiceAddDTO.setShowFlag(Convert.toShort(2));  | 
|   | 
|         BeanUtil.copyProperties(byId,homeServiceAddDTO,BeanUtils.getNotNullPropertyNames(homeServiceAddDTO));  | 
|   | 
|         System.out.println(homeServiceAddDTO.getId());  | 
|         System.out.println(homeServiceAddDTO.getShowFlag());  | 
|     }  | 
|   | 
|     @Test  | 
|     public void 创建服务(){  | 
|         //开福区测试key  | 
|         String key="d985739d075432bcbb3c0e8115c22bf1";  | 
|         Result service1 = GdTraceUtil.createService(key, key+"_"+OrderEnum.推广员全天轨迹.getValue()); //2  | 
|         Result service2 = GdTraceUtil.createService(key, key+"_"+OrderEnum.回收员订单轨迹.getValue()); //1  | 
|         Result service3 = GdTraceUtil.createService(key, key+"_"+OrderEnum.回收员全天轨迹.getValue());  //3  | 
|     }  | 
|   | 
|     @Test  | 
|     public void 创建终端(){  | 
|         //开福区测试key  | 
|         String key="d985739d075432bcbb3c0e8115c22bf1";  | 
|         String sid="164776";  | 
|         GdTraceUtil.createTerminal(key,sid,"USER1260718805714862080");  | 
|     }  | 
|   | 
|     @Test  | 
|     public void testService(){  | 
| //        FindTraceDto findTraceDto = new FindTraceDto();  | 
| //        findTraceDto.setKey("a64d28b2e036f4688b05916ef321b17d");  | 
| //        findTraceDto.setSid("163477");  | 
| //        findTraceDto.setTid("270247841");  | 
| //        findTraceDto.setTrid("300");  | 
| //        Result<List<TrackDto>> trace = GdTraceUtil.findTrace(findTraceDto);  | 
| //        List<TrackDto> data = trace.getData();  | 
| //        Console.log(data);  | 
|   | 
|         /**  f28decf4aed2d20104c16d3532682810  | 
|          13:35:19.871 [main] DEBUG com.xzx.gc.common.utils.gdmap.GdTraceUtil - 查询服务成功,id:164598,名字:回收员订单轨迹  | 
|          13:35:19.876 [main] DEBUG com.xzx.gc.common.utils.gdmap.GdTraceUtil - 查询服务成功,id:164618,名字:推广员全天轨迹  | 
|          13:35:19.876 [main] DEBUG com.xzx.gc.common.utils.gdmap.GdTraceUtil - 查询服务成功,id:164638,名字:回收员全天轨迹  | 
|          */  | 
| //        Result<JSONArray> result = GdTraceUtil.findService("ec8dbc1f5b3c681df48f40f8f6045b49");  | 
|   | 
| //        String key="ab5180b0423f279143d006177f330b7a";  | 
| //        GdTraceUtil.createService(key,key+"_"+OrderEnum.推广员全天轨迹.name());  | 
| //        GdTraceUtil.createService(key,key+"_"+OrderEnum.回收员订单轨迹.name());  | 
| //        GdTraceUtil.createService(key,key+"_"+OrderEnum.回收员全天轨迹.name());  | 
|   | 
| //        FindTraceDto findTraceDto = new FindTraceDto();  | 
| //        findTraceDto.setKey("a64d28b2e036f4688b05916ef321b17d");  | 
| //        findTraceDto.setSid("164837");  | 
| //        findTraceDto.setTid("270310092");  | 
| //        findTraceDto.setTrid("60");  | 
| //        GdTraceUtil.findTrace(findTraceDto);  | 
|     }  | 
|   | 
|   | 
|     @Test  | 
|     public void test(){  | 
|   | 
|     }  | 
|   | 
|     @Test  | 
|     public void testAuth(){  | 
| //        String version="v1.41";  | 
| //        if(StrUtil.isNotBlank(version)&&version.startsWith("v")) {  | 
| //            double versionDouble = 0;  | 
| //            try {  | 
| //                versionDouble = Convert.toDouble(version.substring(1));  | 
| //            } catch (Exception e) {  | 
| //            }  | 
| //            if (NumberUtil.compare(versionDouble, Convert.toDouble("1.2")) > 0) {  | 
| //                System.out.println(111);  | 
| //            }  | 
| //        }  | 
|   | 
| //        GdReverseGEODto gdReverseGEODto = new GdReverseGEODto();  | 
| //        gdReverseGEODto.setLocation("112.941143666111111111" + "," + "28.128611073482222221");  | 
| //        Result areaInfo = GdMapUtil.getAreaInfo(gdReverseGEODto, 3);  | 
| //        if (areaInfo.getCode() == 0) {  | 
| //            String townName = (String) areaInfo.getData();  | 
| //            System.out.println(townName);  | 
| //        }  | 
| //        Long a=3L;  | 
| //        System.out.println(a==3);  | 
| //        System.out.println(a.equals(3));  | 
| //  | 
| //  | 
| //        String s="aa【反倒是反倒是】;\nb【aa】;\nbc【cc】;\n";  | 
| //  | 
| //        String s1 = s.replaceAll("【.+?】", "");  | 
| //        System.out.println(s1);  | 
|   | 
| //        DateTime parse3 = DateUtil.parse("2020-01-20 09:22:57", DateUtils.DATE_FORMAT_YMD);  | 
| //        DateTime nowData = DateUtil.parse(DateUtil.now(), DateUtils.DATE_FORMAT_YMD);  | 
| //  | 
| //        //当天下单用户量  | 
| //        if (DateUtil.isSameDay(parse3, nowData)) {  | 
| ////            System.out.println(22);  | 
| //        }  | 
| //  | 
| //        String s = DateUtil.parse("2020-01-20 09:22:57", DateUtils.DATE_FORMAT_YMD).toString(DateUtils.DATE_FORMAT_YMD);  | 
| //  | 
| //  | 
| //  | 
| ////        System.out.println(s);  | 
| //  | 
| //        DateTime parse = DateUtil.parse("2020-01-20 09:22:57", DateUtils.DATE_FORMAT_YMDHMS);  | 
| //        DateTime dateTime = DateUtil.offsetHour(parse, 12);  | 
| //        System.out.println(dateTime.toString());  | 
|   | 
|   | 
| //        UserInfo userInfo=new UserInfo();  | 
| //        userInfo.setMobilePhone("123");  | 
| //  | 
| //        String a=userInfo.getMobilePhone();  | 
| //        a=a+"44";  | 
| //        System.out.println(userInfo.getMobilePhone());  | 
|   | 
| //        double distance= Double.MAX_VALUE;  | 
| //        System.out.println(distance);  | 
|     }  | 
|   | 
|     @Test  | 
|     public void testSms() throws ClientException {  | 
| //        Map map=new HashMap();  | 
| //        map.put("date","2019-10-12 18:00:00");  | 
| ////        map.put( "valid_code", "12345");  | 
| //        String templateCode=Constants.ORDER_SMS_CANCLE_ZT_TEMPLATE;  | 
| ////        String templateCode=Constants.ORDER_SMS_ZT_TEMPLATE;  | 
| //        String phoneNum="18163623487";  | 
| ////        SmsUtil.send(phoneNum, map, templateCode, CommonEnum.助通短信.getValue());  | 
| //  | 
| //  | 
| //  | 
| //        String s1 = NumberUtil.roundStr("4.222222", 0, RoundingMode.DOWN);  | 
| ////        System.out.println(s1);  | 
| //  | 
| //        String parse = DateUtil.parse("2019-10-18 8:00:00", DateUtils.DATE_FORMAT_YMD).toDateStr();  | 
| //        System.out.println(parse);  | 
|   | 
| //        Long a=3L;  | 
| //        Long a2=new Long("3");  | 
| //  | 
| //        System.out.println(a.equals(a2));  | 
| //        System.out.println(a==a2);  | 
|   | 
| //        Map map = new HashMap();  | 
| //        map.put("date", DateUtil.now());  | 
| //        String templateCode = Constants.ORDER_SMS_CANCLE_ZT_TEMPLATE;  | 
| //            String phoneNum ="18163623487";  | 
| //            SmsUtil.send(phoneNum, map, templateCode, CommonEnum.助通短信.getValue());  | 
|         Map<String,Object> map=new HashMap<>();  | 
|         map.put("a","123");  | 
|         String a= (String) map.get("a");  | 
|         System.out.println(a);  | 
|         map.clear();  | 
|         map.put("b","456");  | 
|         a= (String) map.get("b");  | 
|         String a1= (String) map.get("a");  | 
|         System.out.println(a);  | 
|         System.out.println("=="+map.size());  | 
|     }  | 
|   | 
|     @Test  | 
|     public  void chin(){  | 
|         //ReUtil.RE_CHINESE  | 
| //        String s=" / by zero";  | 
| //        String s1="失败";  | 
| //        String s2="失败:订单:"+123;  | 
| //        boolean match = isChinese(s);  | 
| //        System.out.println(match);  | 
| //        match = isChinese(s1);  | 
| //        System.out.println(match);  | 
| //        match =  isChinese(s2);  | 
| //        System.out.println(match);  | 
|   | 
|         UserInfo user=new UserInfo();  | 
|         user.setMobilePhone("456");  | 
|         String mobilePhone = user.getMobilePhone();  | 
|         user.setMobilePhone("123");  | 
|         System.out.println(mobilePhone);  | 
|   | 
|         String json="{         \"startRow\": 1,         \"navigatepageNums\": [             1         ],         \"prePage\": 0,         \"hasNextPage\": false,         \"nextPage\": 0,         \"pageSize\": 10,         \"endRow\": 1,         \"list\": [             {                 \"orderType\": \"1\",                 \"createUserId\": \"35\",                 \"queueNum\": 1,                 \"address\": \"皇爵花园酒店(省政府店)\",                 \"receiver\": \"22\",                 \"distance\": \"14.382\",                 \"star\": \"4.5\",                 \"orderId\": \"DD1215092224803602432\",                 \"orderItemList\": [                 ],                 \"receiverName\": \"要你好看\",                 \"latitude\": \"28.116697\",                 \"orderStatus\": \"2\",                 \"relaPhone\": \"15616122416\",                 \"type\": 0,                 \"appraiseFlag\": false,                 \"relaName\": \"说过的\",                 \"receiverPhone\": \"15616122416\",                 \"createTime\": \"2020-01-09 10:05:36\",                 \"reserveTime\": \"01-09 15:10:00\",                 \"reserveTimeForYear\": \"2020-01-09 15:10:00\",                 \"completeOrderNum\": 0,                 \"addressArea\": \"湖南省长沙市天心区正塘坡路188省政府东门、天心区政府北门\",                 \"longitude\": \"112.989917\"             }         ],         \"pageNum\": 1,         \"navigatePages\": 8,         \"navigateFirstPage\": 1,         \"total\": 1,         \"pages\": 1,         \"size\": 1,         \"isLastPage\": true,         \"hasPreviousPage\": false,         \"navigateLastPage\": 1,         \"isFirstPage\": true     }";  | 
|         String s = JSONUtil.toJsonPrettyStr(json);  | 
|   | 
|         JSON parse = JSONUtil.parse(json);  | 
|   | 
| //        String s1 = JSONUtil.toJsonStr(parse, 10);  | 
|         String s1="";  | 
|         final StringWriter sw = new StringWriter();  | 
|         synchronized (sw.getBuffer()) {  | 
|               s1 =  parse.write(sw, 4, 10).toString();  | 
|         }  | 
|   | 
|         System.out.println(s1);  | 
|   | 
|     }  | 
|   | 
|     @Test  | 
|     public void init(){  | 
| //        SystemUtil.dumpSystemInfo();  | 
| //        String s="DD1205284627149881344,DD1205293808070295552,DD1205306356664500224,DD1205309314437349376,DD1205309997513310208,DD1205334232738693120,DD1205343573566947328,DD1205355320264753152,DD1205358748927918080,DD1205363389166125056,DD1205377222937018368,DD1205403644896346112,DD1205408141030850560,DD1205413478102335488,DD1205439123851182080,DD1205826909783588864,DD1206006978862776320,DD1206015561448947712,DD1206106253340835840,DD1206114363128283136,DD1206130462351818752,DD1206130632695087104,DD1206205858132918272,DD1206366520192663552,DD1206394308408770560,DD1206399246501281792,DD1206401582418231296,DD1206408873813082112,DD1206411105472217088,DD1206436449965178880,DD1206456871020527616,DD1206478581585281024,DD1206492784303931392,DD1206501305384828928,DD1206503893706604544,DD1206514464707444736,DD1206727638916399104,DD1206733844959592448,DD1206740309631959040,DD1206768272201089024,DD1206802031961047040,DD1206806635373264896,DD1206817943925686272,DD1206824291254009856,DD1206826430575542272,DD1206832332280037376,DD1206838742954934272,DD1206847019201724416,DD1206851561762979840,DD1206871285628534784,DD1206877357193953280,DD1206901865900539904,DD1207099026097438720,DD1207101762754969600,DD1207101865762881536,DD1207121802808131584,DD1207133869803962368,DD1207138722303311872,DD1207146429227859968,DD1207171357767499776,DD1207173865759965184,DD1207198889858433024,DD1207199761464164352,DD1207199950157512704,DD1207206604815073280,DD1207207277640155136";  | 
| //        System.out.println(s.split(",").length);  | 
|   | 
| //        String s="3.2222222222222";  | 
| //        String s2="3.22234";  | 
| //        String s3="3";  | 
| //        String s4="3.333236";  | 
| //  | 
| //        System.out.println(NumberUtil.toBigDecimal(NumberUtil.roundStr(s, 6, RoundingMode.DOWN)));  | 
| //        System.out.println(Convert.toDouble(NumberUtil.roundStr(s2, 6, RoundingMode.DOWN)));  | 
| //        System.out.println(Convert.toDouble(NumberUtil.roundStr(s3, 6, RoundingMode.DOWN)));  | 
| //        System.out.println(NumberUtil.roundStr(s4, 6, RoundingMode.DOWN));  | 
|   | 
| //        List<String> list=new ArrayList<>();  | 
|   | 
|         BigDecimal bigDecimal=new BigDecimal("455");  | 
|         BigDecimal round = NumberUtil.round(bigDecimal, 2, RoundingMode.DOWN);  | 
|         System.out.println(round);  | 
| //        list.add("1");  | 
| //  | 
| //        for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) {  | 
| //            String next =  iterator.next();  | 
| //            iterator.remove();  | 
| //        }  | 
| //  | 
| //        for (String s : list) {  | 
| //            System.out.println(s);  | 
| //        }  | 
|   | 
|   | 
|     }  | 
|   | 
|   | 
|     // 根据Unicode编码完美的判断中文汉字和符号  | 
|     private static boolean isChinese(char c) {  | 
|         Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);  | 
|         if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS  | 
|                 || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS  | 
|                 || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A  | 
|                 || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B  | 
|                 || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION  | 
|                 || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS  | 
|                 || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {  | 
|             return true;  | 
|         }  | 
|         return false;  | 
|     }  | 
|   | 
|   | 
|     //    完整的判断中文汉字和符号  | 
|     public static boolean isChinese(String strName) {  | 
|         char[] ch = strName.toCharArray();  | 
|         for (int i = 0; i < ch.length; i++) {  | 
|             char c = ch[i];  | 
|             if (isChinese(c)) {  | 
|                 return true;  | 
|             }  | 
|         }  | 
|         return false;  | 
|     }  | 
|   | 
|   | 
|     @Test  | 
|     public void 生成海报() throws Exception {  | 
| //        String spuName = "大哥哥";  | 
| ////        String linkUrl = "https://w.url.cn/s/AiNukkx";  | 
| //        boolean logoStatus = false;  | 
| //        String logoPath = "https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLG86dQHEcYs1rmEMcYBwXHUnzmwo8ujQwRhmm7bMnsRsCqmHCpNicy71HR5ZNNibeAG0ykEiacr3pUw/132";  | 
| //        String backgroundUrl = "d:/poster_login_bg.png";  | 
| ////        String spuPicUrl = folderPath + "/item.jpg";  | 
| //        String spuLeaguerPrice = "大哥哥";  | 
| //        String spuPrice = "邀请你加入小棕熊环保一起赚钱";  | 
| //       byte[] linkUrl= CodeTest.generateAcode2("123","pages/index/index","");  | 
| ////        GraphicsUtils.createPosterByRedTemplate(linkUrl, logoStatus, logoPath, backgroundUrl, "",  | 
| ////                spuLeaguerPrice, spuPrice, spuName);  | 
| //  | 
| //        System.out.println("2".equals(null));  | 
| //        BigDecimal rewardMoneyBigDecimal=new BigDecimal("0.234500000");  | 
| //        BigDecimal mul=new BigDecimal("1");  | 
| //        BigDecimal add = NumberUtil.mul(rewardMoneyBigDecimal, mul);  | 
| //        System.out.println(Convert.toStr(add));  | 
| //        BigDecimal bigDecimal = Convert.toBigDecimal("0");  | 
| //        String s = NumberUtil.roundStr(Convert.toStr(bigDecimal), 2, RoundingMode.DOWN);  | 
| //        System.out.println(s);  | 
|   | 
| //        Map map=new HashMap();  | 
| //        map.put("other_number",Convert.toStr("2.332","0"));  | 
| //        map.put("amount","1.9");  | 
| //        map.put("others",Convert.toStr("321.11","0"));  | 
| ////            SmsUtil.send("18163623487", map, "4338", "2");  | 
| //  | 
| //        String content=StrUtil.format("【小棕熊到家】回收员帮你下的订单已完成,回收重量{other_number}kg,金额{amount}元,返利{others}元",map);  | 
| //        SmsUtil.sendPoint("18163623487",content);  | 
|   | 
|   | 
|         String[] s22=new String[]{"18684731218","18273181385","18008483553","18390886257","18670339967","15211094627","15274808342","13975860004","13755060468","18216239027"};  | 
|         String[] s33=new String[10];  | 
|         s33[0]="https://wx.qlogo.cn/mmopen/vi_32/U5jyRWgg4zsFA44k5ySflpC7NMNicibS6YDUMFnaDnokJaBW69J7OQbklYibNQ0qbgo270asYJibfv58t3JeMAGvXg/132";  | 
|         s33[1]="https://wx.qlogo.cn/mmopen/vi_32/XIRRvR0SYoy1ia6GxFX1bGiak6MJFibIq1uzYxsSjoghTewib4TMG1wib3MCOM7KTVMibrrJUE36a708DsRFIt8WyV7Q/132";  | 
|         s33[2]="https://wx.qlogo.cn/mmopen/vi_32/M28iciaQHnYx9ibOxwQG2j8ZQKq8fMykM6cUYGxsI9PUiar5yh4pV35FgPEShlRQE2n1xicKcibNGia3YmJKWqI3Dkreg/132";  | 
|         s33[3]="https://wx.qlogo.cn/mmopen/vi_32/0iaiauALtEFdWl06BQwc7Tl4FPscDbFID4icUasCZWkrxgg2gMziaKIDhy259A3MxnceLNZBIYXgKA6gbfNHPnYaNg/132";  | 
|         s33[4]="https://wx.qlogo.cn/mmopen/vi_32/nQKC0vQbYH5CC491ftO1jLV3euu3zwJaG95wu3X22cqDFKykqhCbJAobr0nwQSiaIq3aG9O5MRiajSHNdo6Y1GZg/132";  | 
|         s33[5]="https://wx.qlogo.cn/mmopen/vi_32/wTfCic9AZ7tuQxNr2TVJHx8dLGXCW1rKYBtkaQYoclp0JjhRZomvzGlVHOd2GlObQoX6UbxqLzQNrg7GYEkdoqQ/132";  | 
|         s33[6]="https://wx.qlogo.cn/mmopen/vi_32/icTj2kgLGptIPaJMtSlykOpic7wglAfxAHVhXIlk1HDohwUZVvSQBnnPgGUIkZDgjDpZ31rTicXgWhBzX548LArCQ/132";  | 
|         s33[7]="https://wx.qlogo.cn/mmopen/vi_32/WLofJh4MdlLMcGUCDBOibtHj0MsKN7NvMdw3IWck3uewXbfZOF7x1Ym5pQHvIibmr2IhZkicRSBka36bOh7Gv6IMA/132";  | 
|         s33[8]="https://wx.qlogo.cn/mmopen/vi_32/WaoJzYaQHictDAUE1jU5kvwuBJHmMnaibmCFvfYrNnbWUm0xWVoJl2b6w44lNOaG86ASvibUzFvU12jWPIh08BSmw/132";  | 
|         s33[9]="https://wx.qlogo.cn/mmopen/vi_32/D3NLzo5CozKPic4nn92EO9HibWhxAv9nSCh1XEiaFwFvOzWbFCyDiaQro391GR0ItaoATLoCXnGicqiaWamDLvI8GrZg/132";  | 
|   | 
| //        String[] s22=new String[]{"13755023860"};  | 
| //        String[] s33=new String[1];  | 
| //        s33[0]="https://wx.qlogo.cn/mmopen/vi_32/EDlCibFBaaa9h7A697WaZicQh0V4oUqBs3RakW1MOAILQ2gWld90GS5nHky0jACQsIvqgSLx6xPlp1N6oV6aqPww/132";  | 
|   | 
|   | 
|   | 
|         for (int i = 0; i < s22.length; i++) {  | 
|             String s1=s22[i];  | 
|             String aa=s33[i];  | 
|             if("1".equals(aa)){  | 
|                 aa="http://localhost/static/微信图片_20191221221856.jpg";  | 
|                 System.out.println(s1);  | 
|             }  | 
|             //海报图名称  | 
|             String imageName="/"+s1 +"_poster.jpg";  | 
|   | 
|   | 
|             //二维码图名称  | 
|             String imgName="/user_" + s1 + "_acode.jpg";  | 
|             generateAcode("poster=" + s1, "pages/login/login", imgName,  "800px");  | 
|             String path=Constants.IMG_UPLOAD_PATH+imgName;  | 
| //            String backgroundUrl=Constants.IMG_TEMPALRE_PATH+"/微信图片_20191221220256.jpg";  | 
|             String backgroundUrl=Constants.IMG_TEMPALRE_PATH+"/user_share_poster_bg.png";  | 
|             try {  | 
|                 s1 = StrUtil.replace(s1, 3, 7, Convert.toChar("*"));  | 
|                 generatePoster(imageName, path, aa, backgroundUrl, s1);  | 
|             } catch (Exception e) {  | 
|                 ExceptionUtils.err("生成分享海报失败",e);  | 
|             }  | 
|         }  | 
|   | 
|   | 
|   | 
|     }  | 
|   | 
|     @Test  | 
|     public void changeMoney(){  | 
| //        System.out.println(  intChange2Str(111));  | 
| //        System.out.println(  intChange2Str(1));  | 
| //        System.out.println(  intChange2Str(10000));  | 
| //        System.out.println(   intChange2Str(100000));  | 
| //  | 
| //        String do6aVAda831U871r = SecurityUtil.decrypt("Do6aVAda831U871r", "tsUdeys3Z0itHh9IoPBoEg==");  | 
| //        System.out.println(do6aVAda831U871r);  | 
|         BigDecimal bigDecimal=new BigDecimal("5.21");  | 
|         BigDecimal bigDecimal2=new BigDecimal("-0.01");  | 
|         BigDecimal sub = NumberUtil.add(bigDecimal, bigDecimal2);  | 
| //        BigDecimal sub2 = NumberUtil.sub(bigDecimal, bigDecimal2);  | 
| //        System.out.println(sub.toString());  | 
| //        System.out.println(sub2.toString());  | 
| //        BigDecimal shareRatio=new BigDecimal("0.004");  | 
| //        shareRatio=NumberUtil.round(shareRatio,2, RoundingMode.HALF_UP);  | 
| //        System.out.println(shareRatio);  | 
|   | 
|         if(2==2){  | 
|             System.out.println("456");  | 
| //            return;  | 
|         }  | 
|         System.out.println("789");  | 
|         int type=0;  | 
|         switch (type){  | 
|             case 0:  | 
|                 if(1==1){  | 
|                     break;  | 
|                 }  | 
|                 System.out.println("123");  | 
|                 break;  | 
|         }  | 
|   | 
|     }  | 
|   | 
|     private String intChange2Str(int number) {  | 
|         String str = "";  | 
|         if (number <= 0) {  | 
|             str = "";  | 
|         } else if (number < 10000) {  | 
|             str = number + "阅读";  | 
|         } else {  | 
|             double d = (double) number;  | 
|             double num = d / 10000;//1.将数字转换成以万为单位的数字  | 
|   | 
|             BigDecimal b = new BigDecimal(num);  | 
|             double f1 = b.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();//2.转换后的数字四舍五入保留小数点后一位;  | 
|             str = f1 + "万阅读";  | 
|         }  | 
|         return str;  | 
|     }  | 
|     @Test  | 
|     public void test121(){  | 
| //        String s="1,2,3";  | 
| //        String s1="2,4,5";  | 
| //        String s2="7,4,5";  | 
| //  | 
| //  | 
| //        Collection<String> intersection = CollUtil.intersection(Arrays.asList(s.split(",")), Arrays.asList(s1.split(",")));  | 
| //  | 
| //        System.out.println(intersection.toArray().length);  | 
| //        for (String s3 : intersection) {  | 
| //            System.out.println(s3);  | 
| //        }  | 
| //        Collection<String> intersection2 = CollUtil.intersection(Arrays.asList(s.split(",")), Arrays.asList(s2.split(",")));  | 
| //        System.out.println(intersection2.toArray().length);  | 
| //  | 
| //        Result inFence = GdMapUtil.isInFence("112.980288" + "," + "28.239595" + "," + DateUtil.currentSeconds(), GdMapUtil.getDiu("123"),Constants.GD_MAP_KEY);  | 
| //        System.out.println(inFence.getData().toString());  | 
|   | 
| //        List<OrderInfo> byIds =new ArrayList<>();  | 
| //        OrderInfo orderInfo=new OrderInfo();  | 
| //        orderInfo.setCreateUserId("1");  | 
| //        orderInfo.setOrderId("1");  | 
| //        byIds.add(orderInfo);  | 
| //  | 
| //        orderInfo=new OrderInfo();  | 
| //        orderInfo.setCreateUserId("2");  | 
| //        orderInfo.setOrderId("2");  | 
| //        byIds.add(orderInfo);  | 
| //  | 
| //  | 
| //        orderInfo=new OrderInfo();  | 
| //        orderInfo.setCreateUserId("1");  | 
| //        orderInfo.setOrderId("3");  | 
| //        byIds.add(orderInfo);  | 
| //  | 
| //        orderInfo=new OrderInfo();  | 
| //        orderInfo.setCreateUserId("1");  | 
| //        orderInfo.setOrderId("4");  | 
| //        byIds.add(orderInfo);  | 
| //  | 
| //        //先筛选是被推广的用户  | 
| //        ArrayList<OrderInfo> collect = byIds.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(OrderInfo::getCreateUserId))), ArrayList::new));  | 
| //  | 
| //        for (OrderInfo info : collect) {  | 
| //            System.out.println(info.getCreateUserId()+"==="+info.getOrderId());  | 
| //        }  | 
|   | 
|         GdGEODto gdGEODto=new GdGEODto();  | 
| //        if(StrUtil.isNotBlank(addressReq.getCityName())) {  | 
| //            gdGEODto.setCity(addressReq.getCityName());  | 
| //        }  | 
|   | 
|         gdGEODto.setAddress("湖南省长沙市雨花区奥林匹克花园11栋104门面");  | 
|         Result locationByAddress = GdMapUtil.getLocationByAddress(gdGEODto);  | 
|         if(locationByAddress.getCode()==0&&locationByAddress.getData()!=null){  | 
|             System.out.println(locationByAddress.getData().toString().split(",")[0]);  | 
|             System.out.println(locationByAddress.getData().toString().split(",")[1]);  | 
|         }  | 
|   | 
|         GdReverseGEODto gdReverseGEODto = new GdReverseGEODto();  | 
|         gdReverseGEODto.setLocation(locationByAddress.getData().toString().split(",")[0]+","+locationByAddress.getData().toString().split(",")[1]);  | 
|         Result areaInfo = GdMapUtil.getAreaInfo(gdReverseGEODto, 0);  | 
|         if(areaInfo.getCode()==0) {  | 
|             AddressInfo addressInfo1 = (AddressInfo) areaInfo.getData();  | 
|             String adcode = addressInfo1.getAdcode();  | 
|             System.out.println(adcode);  | 
|         }  | 
|     }  | 
|   | 
|     @Test  | 
|     public void testTime(){  | 
| //        String s="2019-12-23 13:56:18";  | 
| //        String date=DateUtil.now();  | 
| //        long between = DateUtil.between(DateUtil.parse(s,DateUtils.DATE_FORMAT_YMDHMS), DateUtil.parse(date,DateUtils.DATE_FORMAT_YMDHMS), DateUnit.SECOND);  | 
| //        System.out.println(between);  | 
| //  | 
| //  | 
| //        String emoji = EmojiUtil.toUnicode(":smile:");//😄  | 
| //        System.out.println(emoji);  | 
| //        System.out.println("1"+EmojiUtil.removeAllEmojis(emoji));  | 
| //  | 
| //        System.out.println(DateUtil.date().toDateStr());  | 
| //  | 
| //        DateTime parse = DateUtil.parse(s, DateUtils.DATE_FORMAT_YMD);  | 
| //        System.out.println(parse);  | 
| //        Set<String> strings=new HashSet<>();  | 
| //        strings.add("a");  | 
| //        strings.add("a");  | 
| ////        System.out.println(strings.size());  | 
| //  | 
| //        System.out.println(Convert.toInt("1.4"));  | 
| //        System.out.println(Convert.toInt("2.8"));  | 
| //  | 
| //        StrBuilder strBuilder=StrBuilder.create();  | 
| //        strBuilder.append("33,22,11,");  | 
| //        String s = strBuilder.subString(0, strBuilder.length() - 1);  | 
| //        System.out.println(s);  | 
|   | 
| //        DateTime parse = DateUtil.parse("2019-12-30 13:40:54", DateUtils.DATE_FORMAT_YMD);  | 
| //        DateTime parse2= DateUtil.parse(DateUtil.now(),DateUtils.DATE_FORMAT_YMD);  | 
| //        if(!DateUtil.isSameDay(parse,parse2)){  | 
| //            System.out.println(111);  | 
| //        }  | 
| //  | 
| //        String s = JSONUtil.toJsonPrettyStr("222");  | 
| //        System.out.println(s);  | 
|   | 
|         String s="b28=";  | 
|         String s1 = Base64Decoder.decodeStr(s);  | 
|         System.out.println(s1);  | 
|     }  | 
|   | 
|     /**  | 
|      * @param imgName 图片名称  | 
|      * @param codePath  二维码路径  | 
|      * @param avata 头像全路径  | 
|      * @param backgroundUrl 背景图地址  | 
|      * @param spuName  文字  | 
|      * @throws Exception  | 
|      */  | 
|     public  String generatePoster(String imgName,String codePath, String avata,  | 
|                                   String backgroundUrl, String spuName)  | 
|             throws Exception {  | 
|         String urlPrefix="";  | 
|         String imgPath=Constants.IMG_UPLOAD_PATH+imgName;  | 
|         //背景图  | 
|         BufferedImage bufferImage = QrCodeBaseUtils.imageToBufferedImage(backgroundUrl);  | 
|         Graphics2D graphics = bufferImage.createGraphics();  | 
|         graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);  | 
|         //小程序码  | 
|         BufferedImage qrCodeImage = ImageIO.read(new File(codePath));  | 
|         graphics.drawImage(qrCodeImage, 100, 340, null);  | 
|         //头像  | 
|         BufferedImage logoBufferImage = Thumbnails.of(new URL(avata)).size(150, 150).asBufferedImage();  | 
|         graphics.drawImage(logoBufferImage, 57, 94, null);  | 
|         //文字  | 
|         Font font = new Font("黑体", Font.BOLD, 40);  | 
|         graphics.setFont(font);  | 
|         graphics.setPaint(Color.black);  | 
|         graphics.drawString(spuName, 230, 160);  | 
|         QrCodeGraphicsUtils.savePic(bufferImage, 1, "jpg", 0.8, imgPath);  | 
|         graphics.dispose();  | 
|         return urlPrefix+"/"+imgName;  | 
|     }  | 
|   | 
|     public  String generateAcode(String scene,String path,String imgName,String width){  | 
|         String urlPrefix="";  | 
|         String imgPath=Constants.IMG_UPLOAD_PATH+imgName;  | 
|         if(!FileUtil.exist(imgPath)){  | 
|             //调用二维码接口  | 
|             String url = StrFormatter.format("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={}", getAccessToken());  | 
|             cn.hutool.json.JSONObject obj = JSONUtil.createObj();  | 
|             //最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,  | 
|             // 其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)  | 
|             obj.put("scene", scene);  | 
|             //必须是已经发布的小程序存在的页面(否则报错),例如 pages/index/index,  | 
|             // 根路径前不要填加 /,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面  | 
|             obj.put("path", path);  | 
|             //最小 280px,最大 1280px  | 
|             obj.put("width", width);  | 
|             obj.put("auto_color", false);  | 
|             cn.hutool.json.JSONObject obj2 = JSONUtil.createObj();  | 
|             obj2.put("r", 0);  | 
|             obj2.put("g", 0);  | 
|             obj2.put("b", 0);  | 
|             obj.put("line_color", obj2);  | 
|             //是否需要透明底色,为 true 时,生成透明底色的小程序码  | 
|             obj.put("is_hyaline", false);  | 
|             byte[] data = HttpRequest.post(url).body(obj.toString(), "application/json").execute().bodyBytes();  | 
|             FileUtil.writeBytes(data, imgPath);  | 
|         }  | 
|         return urlPrefix+"/"+imgName;  | 
|     }  | 
|   | 
|     /**  | 
|      * 获取微信token  | 
|      * @return  | 
|      */  | 
|     public static  String getAccessToken(){  | 
|         //获取微信accessToken  | 
|             String url=StrFormatter.format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={}",Constants.WX_APPID,Constants.WX_SECRET);  | 
|             String s = HttpUtil.get(url);  | 
|             cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(s);  | 
|             String access_token = jsonObject.getStr("access_token");  | 
|             String expires_in = jsonObject.getStr("expires_in");  | 
|         return access_token;  | 
|     }  | 
|   | 
|     @Test  | 
|     public void abc(){  | 
|         //获取微信accessToken  | 
| //        String url=StrFormatter.format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={}",Constants.WX_APPID,Constants.WX_SECRET);  | 
| //        String s = HttpUtil.get(url);  | 
| //        cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(s);  | 
| //        String access_token = jsonObject.getStr("access_token");  | 
| //        String expires_in = jsonObject.getStr("expires_in");  | 
|   | 
|         String url=StrFormatter.format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={}",Constants.WX_APPID,Constants.WX_SECRET);  | 
| //        String s = HttpUtil.get(url);  | 
| //        cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(s);  | 
| //        String access_token = jsonObject.getStr("access_token");  | 
| //        String expires_in = jsonObject.getStr("expires_in");  | 
| //        System.out.println(expires_in);  | 
|   | 
|         ArrayList<String> strings = CollUtil.newArrayList("1", "2");  | 
|   | 
|         for (Iterator<String> iterator = strings.iterator(); iterator.hasNext(); ) {  | 
|             String next =  iterator.next();  | 
|   | 
|   | 
|             if(next.equals("2")){  | 
|                 iterator.remove();  | 
|                 continue;  | 
|             }  | 
|   | 
|             System.out.println("哈哈");  | 
|   | 
|   | 
|         }  | 
|   | 
|         System.out.println(strings.size());  | 
|     }  | 
|   | 
|     public  static  byte[] generateAcode2(String scene,String path,String imgName){  | 
|         String imgPath=Constants.IMG_UPLOAD_PATH+imgName;  | 
|         //调用二维码接口  | 
|         String url = StrFormatter.format("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={}", getAccessToken());  | 
|         cn.hutool.json.JSONObject obj = JSONUtil.createObj();  | 
|         //最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,  | 
|         // 其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)  | 
|         obj.put("scene", scene);  | 
|         //必须是已经发布的小程序存在的页面(否则报错),例如 pages/index/index,  | 
|         // 根路径前不要填加 /,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面  | 
|         obj.put("path", path);  | 
|         //最小 280px,最大 1280px  | 
|         obj.put("width", "800px");  | 
|         obj.put("auto_color", false);  | 
|         cn.hutool.json.JSONObject obj2 = JSONUtil.createObj();  | 
|         obj2.put("r", 0);  | 
|         obj2.put("g", 0);  | 
|         obj2.put("b", 0);  | 
|         obj.put("line_color", obj2);  | 
|         //是否需要透明底色,为 true 时,生成透明底色的小程序码  | 
|         obj.put("is_hyaline", false);  | 
|         byte[] data = HttpRequest.post(url).body(obj.toString(), "application/json").execute().bodyBytes();  | 
|         return data;  | 
|     }  | 
|   | 
|   | 
|     @Test  | 
|     public void 查看附件1公里(){  | 
|         //筛选附近1公里的  | 
|         double lon = Convert.toDouble("112.994338");  | 
|         double lat=Convert.toDouble("28.151839");  | 
|         //单位千米  | 
|         int radius = 1;  | 
|         SpatialContext geo = SpatialContext.GEO;  | 
|         Rectangle rectangle = geo.getDistCalc().calcBoxByDistFromPt(geo.makePoint(lon, lat), radius * DistanceUtils.KM_TO_DEG, geo, null);  | 
|             double latitude = Convert.toDouble("28.151792534722222",Convert.toDouble(0));  | 
|             double longitude = Convert.toDouble("112.99511881510416",Convert.toDouble(0));  | 
|         System.out.println(rectangle.getMinX() + "-" + rectangle.getMaxX());// 经度范围  | 
|         System.out.println(rectangle.getMinY() + "-" + rectangle.getMaxY());// 纬度范围  | 
|             if(NumberUtil.compare(latitude,rectangle.getMinY())<0){  | 
|                 System.out.println("超出");  | 
|             }else if(NumberUtil.compare(latitude,rectangle.getMaxY())>0){  | 
|                 System.out.println("超出");  | 
|             }else if(NumberUtil.compare(longitude,rectangle.getMinX())<0){  | 
|                 System.out.println("超出");  | 
|             }else if(NumberUtil.compare(longitude,rectangle.getMaxX())>0){  | 
|                 System.out.println("超出");  | 
|             }else{  | 
|                 System.out.println("成功");  | 
|             }  | 
|   | 
|   | 
|     }  | 
|   | 
|     @Test  | 
|     public void test111(){  | 
|         Double a= Convert.toDouble(StrUtil.removePrefix("v1.4", "v"));  | 
|   | 
| //        String c="Abc";  | 
| //        String a1 = MD5Util.getMD5String(c);  | 
| //        System.out.println(a1);  | 
| //        String s = SecureUtil.md5(c).toUpperCase();  | 
| //        System.out.println(s);  | 
|   | 
|         String s = EmojiUtil.toUnicode(":laughing:");  | 
|         System.out.println(s);  | 
|     }  | 
|   | 
|     @Test  | 
|     public void join(){  | 
|         List<UserInfo> list=new ArrayList();  | 
|         UserInfo userInfo=new UserInfo();  | 
|         userInfo.setUserId("1");  | 
|         UserInfo userInfo2=new UserInfo();  | 
| //        userInfo2.setUserId("");  | 
|         UserInfo userInfo3=new UserInfo();  | 
|         userInfo3.setUserId("3");  | 
| //        list.add(userInfo);  | 
|         list.add(userInfo2);  | 
| //        list.add(userInfo3);  | 
|         String roleIds = list.stream().map(x->x.getUserId()). collect(Collectors.joining(","));  | 
|         String[] split = roleIds.split(",");  | 
|         for (String s : split) {  | 
|             System.out.println(s);  | 
|             System.out.println(s.equals("null"));  | 
|         }  | 
|   | 
|         String obj="2019-10-22 11:0:33";  | 
|         DateTime parse = DateUtil.parse(obj.toString(), DateUtils.DATE_FORMAT_YMDHMS);  | 
|         System.out.println(parse);  | 
|   | 
|         GdReverseGEODto gdReverseGEODto = new GdReverseGEODto();  | 
|         gdReverseGEODto.setLocation("112.99961" + "," + "28.096663");  | 
|         Result areaInfo = GdMapUtil.getAreaInfo(gdReverseGEODto, 3);  | 
|         System.out.println(areaInfo);  | 
|   | 
|     }  | 
|   | 
|     @Test  | 
|     public  void test1() throws UnsupportedEncodingException, InterruptedException {  | 
| //        String payOrderId=IdUtils.generate("ZF",0);  | 
| //        System.out.println(payOrderId);  | 
| //        //回收员  | 
| //        Thread.sleep(2000);  | 
| //        String otherPayOrderId=IdUtils.generate("ZF",0);  | 
| //        while (otherPayOrderId.equals(payOrderId)){  | 
| //            otherPayOrderId=IdUtils.generate("ZF",0);  | 
| //        }  | 
| //        System.out.println(otherPayOrderId);  | 
| //        DateUtil.parse(":00","yyyy-MM-dd HH:mm");  | 
| //        System.out.println(1);  | 
| //        String encode = Base64.encode("测试2");  | 
| //        System.out.println(encode);  | 
| //        boolean base64 = isBase64(encode);  | 
| //        System.out.println(base64);  | 
| //  | 
| //        List<UserTargetInfo> list=new ArrayList<>();  | 
| //        UserTargetInfo userTargetInfo=new UserTargetInfo();  | 
| //        userTargetInfo.setCreateTime("2019-10-11 15:52:31");  | 
| //  | 
| //        UserTargetInfo userTargetInfo2=new UserTargetInfo();  | 
| //        userTargetInfo2.setCreateTime("2019-10-11 15:52:30");  | 
| //  | 
| //        list.add(userTargetInfo);  | 
| //        list.add(userTargetInfo2);  | 
| //  | 
| //        List<UserTargetInfo> collect = list.stream().sorted(Comparator.comparing(UserTargetInfo::getCreateTime).reversed()).collect(Collectors.toList());  | 
| //  | 
| //  | 
| //        for (UserTargetInfo info : collect) {  | 
| //            System.out.println(info.getCreateTime());  | 
| //        }  | 
| //  | 
| //        RedisDS redisDS = Singleton.get(RedisDS.class,new Setting("redis.properties", true), "xzx");  | 
| //        Jedis jedis =redisDS.getJedis();  | 
| //        System.out.println(jedis.get("a"));  | 
|   | 
|   | 
|         String s="\"[{\\\"content\\\":\\\"我们经常都会说职位没有高低贵贱之分,但是当我们看到那些不体面的工作时,还是会从内心里发出抵触。不过不管是什么职业和工作,都有它存在的理由,并且你还不能小瞧了它,人家不仅为环保做出了一份贡献,或许人家的收入可能比你还多呢。虽然干着大家不认为体面的工作—破烂的回收者,但是保护的却是城市的生活环境,我们有个光荣的称号一小棕熊环保回收员,请大家支持我们,为环保贡献自己一份力量。\\\\r\\\\n跟大家说说可回收物品,以废纸为例,回收的废纸需要通过碎解、净化、浮选以及漂白等几步工作才能完成再生处理。1.25吨废纸可节省,4立方的木材,100立方的水,减少60磅的工业废气排放等。看似简单的这几步工序,却能为我们节省不少的社会资源,回收可再次利用的废品有利于节约资源和保护环境。\\\\r\\\\n近几年,习大大非常重视环保工作,习大大在全国生态环境保护大会上提出,「要加快建立健全以生态价值观念为准则的生态文化体系」,树立尊重自然、顺应自然、保护自然的生态价值观,把生态文明建设放在突出地位,才能从根本上减少人为对自然环境的破坏。\\\\r\\\\n环保回收行业需要变革,小棕熊回收用自主研发的创新模式去改善回收行业的现状,小棕熊回收有规范化的运营、专业的回收团队、自建的物流体系,刷新人们印象中环保回收的样子。小棕熊回收团队运用互联网+的概念,将环保回收与互联网结合成一个创新的回收模式,用户只需在小棕熊到家微信小程序上下单 ,环保回收就交给小棕熊处理。\\\\r\\\\n小粽熊让城市更美,天空更蓝\\\\r\\\\n\\\",\\\"createTime\\\":\\\"2019-09-06 14:20:06\\\",\\\"createUserId\\\":\\\"0\\\",\\\"noticeId\\\":6,\\\"noticeType\\\":\\\"1\\\",\\\"picture\\\":\\\"https://res.cnxzx.com/resource/static/img/images-1.png\\\",\\\"title\\\":\\\"我们收的不是破烂儿!请叫我们环保达人\\\"},{\\\"content\\\":\\\"工作正在上海如火如荼开展,引发广泛关注。“史上最严垃圾分类”也会轮到长沙吗?事实上,早在2017年长沙就被列为全国46个垃圾分类重点城市之一。按照要求,2020年,46个重点城市要基本建成垃圾分类处理系统。长沙市城管执法局7月1日透露,长沙垃圾分类工作已步入“快车道”,今年将实现全市633个社区生活垃圾分类全覆盖,同时加快完善分类投放、分类收集、分类运输、分类处置的垃圾分类体系。\\\\r\\\\n长沙市城管执法局环卫处处长钟庭表示,长沙的垃圾分类意识培养与分类体系建设同步。2017年3月,长沙被列为生活垃圾强制分类重点城市之一。与第一批试点城市相比,虽然长沙起步较晚,但在顶层设计、激励配套等方面具有一定优势。“培养居民分类意识和完善分类体系,目前在长沙正同步进行,‘先分后混’会影响分类效果和居民积极性,而后端建设好了前端没有分类,整个分类链条就会脱节。因此,这是一项相互依赖的系统工程。”\\\\r\\\\n据了解,长沙垃圾终端处理已从“卫生填埋”向“清洁焚烧”转变,构建多点支撑的垃圾终端处理体系,预计2021年长沙城区将实现生活垃圾“零填埋”。\\\\r\\\\n\\\",\\\"createTime\\\":\\\"2019-09-06 14:19:13\\\",\\\"createUserId\\\":\\\"0\\\",\\\"noticeId\\\":5,\\\"noticeType\\\":\\\"1\\\",\\\"picture\\\":\\\"https://res.cnxzx.com/resource/static/img/images-2.png\\\",\\\"title\\\":\\\"长沙:垃圾分类工作步入快车道\\\"},{\\\"content\\\":\\\"什么是垃圾分类?\\\\r\\\\n生活垃圾分类是指按照生活垃圾的成分、属性、利用价值对环境影响以及现有处理方式的要求,分离成不同类别的若干类。欧美发达国家与国内城市的生活垃圾分类经验告诉我们:生活垃圾分类是生活垃圾的减量化,资源化、无害化的基础。\\\\r\\\\n生活中我们每天都会产生各种各样的垃圾,如何去分类呢?让小编为您来科普~垃圾分类品种。\\\\r\\\\n生活垃圾的基本分类:可回收物、有害垃圾、湿垃圾和干垃圾。\\\\r\\\\n1有害垃圾:\\\\r\\\\n主要包括:废硒鼓、废电池(镉镍电池、氧化汞电池、铅蓄电池等),废荧光灯管(日光灯管、节能灯等),废温度计,废血压计,废药品及其包装物,废油漆、溶剂及其包装物,废杀虫剂、消毒剂及其包装物,废胶片及废相纸等。\\\\r\\\\n2可回收物:\\\\r\\\\n主要包括:废纸、废塑料、废金属、废旧纺织物、废玻璃、废弃电器电子类产品(包括废弃计算机、打印机、复印机、传真机、扫描仪、投影仪、电视机、空调机等)、废纸塑铝复合包装等适宜回收循环利用和资源化利用类的废弃物。\\\\r\\\\n3湿垃圾\\\\r\\\\n主要包括:食品加工、饮食服务、单位供餐等活动中的食物残余和食品加工废料等餐厨垃圾。\\\\r\\\\n4干垃圾\\\\r\\\\n主要包括:污损后不宜回收利用的包装物、餐巾纸、厕纸、尿不湿、竹木和陶瓷碎片等除可回收物、有害垃圾、湿垃圾以外的其他生活垃圾。\\\\r\\\\n\\\",\\\"createTime\\\":\\\"2019-09-06 14:17:52\\\",\\\"createUserId\\\":\\\"0\\\",\\\"noticeId\\\":4,\\\"noticeType\\\":\\\"1\\\",\\\"picture\\\":\\\"https://res.cnxzx.com/resource/static/img/images-3.png\\\",\\\"title\\\":\\\"垃圾分类小知识\\\"},{\\\"content\\\":\\\"最近,网上热议上海人快被垃圾分类逼疯了,甚至有人因此而逃离上海。而原本看着热闹的其他城市“吃瓜群众”惊闻,全国46个重点城市,其实一个也跑不掉,包括长沙。\\\\r\\\\n作为全国46个重点推进生活垃圾分类城市之一,长沙自2017年起正式启动垃圾分类试点工作,之后陆续出台一系列方案和办法,并将宣传活动深入开展至全市各机关、社区、学校、商圈、企业。本月,长沙启动生活垃圾分类“五进”宣传活动,至十月份,每月各区县(市)将分别开展丰富的宣传活动,使市民能够深入了解垃圾分类的意义,引导居民从身边做起、从点滴做起,自觉、科学地开展生活垃圾分类。\\\\r\\\\n今天,记者走访长沙市岳麓区航空母舰小区发现,一场浩大的“撤桶运动”已在小区铺开。航空母舰小区有着20多年历史,全小区共136户居民。过去,为方便居民投放垃圾,每层电梯口都设有垃圾桶。但自从岳麓区开始推行垃圾分类后,小区决定推行“撤桶并点”行动,撤走各楼层垃圾桶,设置集中的垃圾分类投放点。\\\\r\\\\n走进航空母舰小区大门,可以看到设在楼外的垃圾分类定点投放站,里面摆放有4个不同颜色的垃圾桶,分别存放厨余垃圾、其他垃圾、可回收物、有害垃圾。旁边的洗手池内,还摆放有香皂供居民和工作人员进行清洁。“撤桶并点是推行垃圾分类的必经也是必要之路。”来自长沙市源方环保公益发展中心的志愿者李媛表示,这一做法集中解决了楼层垃圾投放难以监管、难以取证的问题;同时,还有利于改善居住环境,减轻保洁压力,确保消防安全。“虽然短期来说,可能需要一定的适应期,但从长远角度来看,一定有利于居民生活。”\\\\r\\\\n\\\",\\\"createTime\\\":\\\"2019-08-27 16:17:52\\\",\\\"createUserId\\\":\\\"1\\\",\\\"noticeId\\\":3,\\\"noticeType\\\":\\\"1\\\",\\\"picture\\\":\\\"https://res.cnxzx.com/resource/static/img/images-4.png\\\",\\\"title\\\":\\\"别再看热闹!长沙生活垃圾分类五进宣传活动来了\\\"},{\\\"content\\\":\\\"做一桶环保酵素相当于种了10棵树,做一升环保酵素可以净化1000升河水。”4月22日“世界地球日”即将来临,今天,2018年长沙市开福区“五老”助学队党支部进校园宣讲活动走进清水塘第二小学,湖南商学院副教授陶开宇为孩子们上了一堂别开生面的环保课。\\\\r\\\\n“孩子们,我们平时生活中留下的蔬果垃圾,都可以利用起来,制作成环保酵素。”现场,每个学生都带来了红糖、矿泉水、果皮和小毛巾,在陶开宇的指导下,孩子们跟着志愿者老师一步一步学习制作环保酵素。“环保酵素产生的液体和气体应用非常广泛,不仅可以帮助减少垃圾、作为洗洁剂使用,还能净化水体。”志愿者老师还用现场制作的环保酵素清洗带有污垢的锅盖,让孩子们大开眼界。\\\\r\\\\n“我们要从源头上减少垃圾,减少环境污染。”“保护环境要做到循环用水、垃圾分类、低碳出行、绿色能源。”“我要把今天学到的教给爸爸妈妈和身边的朋友。”孩子们兴致很高,纷纷表示收获很大。\\\\r\\\\n\\\",\\\"createTime\\\":\\\"2019-08-26 15:17:52\\\",\\\"createUserId\\\":\\\"1\\\",\\\"noticeId\\\":2,\\\"noticeType\\\":\\\"1\\\",\\\"picture\\\":\\\"https://res.cnxzx.com/resource/static/img/images-5.png\\\",\\\"title\\\":\\\"果皮垃圾可以变废为宝\\\"},{\\\"content\\\":\\\"“生活垃圾分类体系建设一定要体现科学性与合理性,关键在于‘便利’‘有效’‘利用’和‘无害’。”陈勇认为,生活垃圾分类的方式不应过于复杂,否则难以长期坚持。“在一些地方实行的精细分类固然好,但是会增加处理成本与市民负担,其次也很难保证100%利用。”\\\\r\\\\n目前,长沙推行的是“干湿分类为主、四分类为辅”的分类方式。“分类的首要问题在于‘干湿分离’,也就一定要把干垃圾和湿垃圾分开。其次则是将有害垃圾、大件垃圾分类投放。”陈勇说,餐厨垃圾、厨余垃圾等“湿垃圾”是生活垃圾处置的“七寸”所在,必须探索有针对性的处理技术与模式。针对湿垃圾处置,陈勇建议在收运前端进行脱水处理,不仅能实现源头减量60%至70%,还能减少运输过程中的“跑冒滴漏”。垃圾分类结束多年“慢跑”,开始步入“快车道”。如何实现有效减量化、资源化、无害化处置,已成为当下不少城市面临的现实难题。\\\\r\\\\n“实行垃圾分类,关系广大人民群众生活环境,关系节约使用资源,也是社会文明水平的一个重要体现。”习近平总书记对垃圾分类高度关注。作为全国46个生活垃圾强制分类重点城市之一,长沙也正加速搭建生活垃圾分类投放、分类收集、分类运输、分类处理“全链条”。今日,中国工程院院士陈勇接受长沙晚报记者专访,为长沙加速推进垃圾分类、建设更加科学合理的分类体系支招。\\\\r\\\\n\\\",\\\"createTime\\\":\\\"2019-08-25 14:17:52\\\",\\\"createUserId\\\":\\\"1\\\",\\\"noticeId\\\":1,\\\"noticeType\\\":\\\"1\\\",\\\"picture\\\":\\\"https://res.cnxzx.com/resource/static/img/images-6.png\\\",\\\"title\\\":\\\"院士为长沙垃圾分类支招:推行上门收集\\\"}]\"";  | 
|   | 
| //        com.alibaba.fastjson.JSONObject sysNoticeVos = com.alibaba.fastjson.JSONObject.parseObject(s);  | 
|   | 
|         if("3".equals(null)){  | 
|             System.out.println(223);  | 
|         }  | 
|   | 
| //        System.out.println(sysNoticeVos);  | 
| //        for (SysNoticeVo sysNoticeVo : sysNoticeVos) {  | 
| //            System.out.println(sysNoticeVo.getContent());  | 
| //        }  | 
|   | 
|         RestException e=new RestException();  | 
|         e.setMsg("123");  | 
|         ExceptionUtils.err(e.getMsg(),e);  | 
|   | 
|     }  | 
|   | 
|     public static boolean isBase64(String str) {  | 
|         String base64Pattern = "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$";  | 
|         return Pattern.matches(base64Pattern, str);  | 
|   | 
|   | 
|     }  | 
|   | 
|     @Test  | 
|     public  void test2(){  | 
| //        String s=RandomUtil.randomString(16);  | 
| //        System.out.println(s);  | 
| //        String encrypt = SecurityUtil.encrypt("ah0tsfwicokld4oa", "123");  | 
| //        //RkDK4VU513B6RVsy75DEJg==  | 
| //        System.out.println(encrypt);  | 
|   | 
| //        LogUtils.writeIp("192.168.1.110","请求头部对");  | 
| //  | 
| //        String date="2019-01-02 11:22:33";  | 
| //        String s = DateUtil.parseDateTime(date).toString(DateUtils.DATE_FORMAT_HM);  | 
| //        System.out.println(s);  | 
| //  | 
| //        String s1 = StrUtil.split(date, " ")[0];  | 
| //        System.out.println(s1);  | 
| //  | 
| //        List list=new ArrayList();  | 
| //        list.clear();  | 
| //  | 
| //  | 
| //        UserInfo userInfo=new UserInfo();  | 
| //        userInfo.setUserId("11");  | 
| //        log.info("哈哈{}",userInfo);  | 
|   | 
|         int weight=0;  | 
|         String portData="wn00000070kgwn00000070kgwn00000070kgwn00000070kgwn00000070kgwn00000070kgwn00000070kgwn00000070kgwn00000070kgwn00000070kgwn0";  | 
|         while ((weight=test(portData))!=-1){  | 
|             break;  | 
|         }  | 
|         System.out.println(weight);  | 
|   | 
|   | 
|     }  | 
|   | 
|   | 
|     public int test(String s){  | 
|         String[] kgwns = s.split("kgwn");  | 
|         if(kgwns!=null&&kgwns.length>2){  | 
|             String kgwn = kgwns[1];  | 
|             String substring = kgwn.substring(kgwn.length() - 4);  | 
|             int i = Integer.parseInt(substring);  | 
|             return i;  | 
|         }  | 
|         return -1;  | 
|   | 
|     }  | 
|   | 
|     @Test  | 
|     public  void test3(){  | 
|         Cache<String, String> lruCache = CacheUtil.newLRUCache(3);  | 
| //通过实例化对象创建  | 
| //LRUCache<String, String> lruCache = new LRUCache<String, String>(3);  | 
|         lruCache.put("key1", "value1", DateUnit.SECOND.getMillis() * 3);  | 
|         lruCache.put("key2", "value2", DateUnit.SECOND.getMillis() * 3);  | 
|         lruCache.put("key3", "value3", DateUnit.SECOND.getMillis() * 3);  | 
|         lruCache.get("key1");//使用时间推近  | 
|         lruCache.put("key4", "value4", DateUnit.SECOND.getMillis() * 3);  | 
|   | 
| //由于缓存容量只有3,当加入第四个元素的时候,根据LRU规则,最少使用的将被移除(2被移除)  | 
|         String value2 = lruCache.get("key2");//null  | 
|         String value3 = lruCache.get("key3");//null  | 
|   | 
|         System.out.println(value2);  | 
|         System.out.println(value3);  | 
|   | 
|     }  | 
|   | 
|     @Test  | 
|     public void test4() throws UnsupportedEncodingException {  | 
| ////        Validator.validateEmail("aa","邮箱格式不正确");  | 
| //        String s = "5eow3f5y4a9kqa9x";  | 
| //        System.out.println(s);  | 
| //        String encrypt = SecurityUtil.encrypt(s, "456");  | 
| ////BFjvPvXcSRxrKnWlxYP14MxjxE97YCdNoNL6FFXt6LI=  | 
| //        String decrypt = SecurityUtil.decrypt(s, "BFjvPvXcSRxrKnWlxYP14MxjxE97YCdNoNL6FFXt6LI");  | 
| //  | 
| //        System.out.println(decrypt);  | 
|   | 
|         String s=RandomStringUtils.randomAlphanumeric(32);  | 
|         byte[] gzip = ZipUtil.gzip(s, "UTF-8");  | 
|         String s1 =new String(gzip,"UTF-8");  | 
|         System.out.println(s1);  | 
|   | 
|     }  | 
|   | 
|   | 
|     @Data  | 
|     class ExamInfoDict{  | 
|         private int id;  | 
|         private int examType;  | 
|         private int answerIs;  | 
|     }  | 
|   | 
|     @Data  | 
|     class UserInfoDict{  | 
|         int id;  | 
|         String photoPath;  | 
|         List<ExamInfoDict> list;  | 
|     }  | 
|   | 
|     @Test  | 
|     public  void ts5(){  | 
|         //------------------------------------------------- 考试信息列表  | 
|         ExamInfoDict examInfoDict = new ExamInfoDict();  | 
|         examInfoDict.setId(1);  | 
|         examInfoDict.setExamType(0);  | 
|         examInfoDict.setAnswerIs(1);  | 
|   | 
|         ExamInfoDict examInfoDict1 = new ExamInfoDict();  | 
|         examInfoDict1.setId(2);  | 
|         examInfoDict1.setExamType(0);  | 
|         examInfoDict1.setAnswerIs(0);  | 
|   | 
|         ExamInfoDict examInfoDict2 = new ExamInfoDict();  | 
|         examInfoDict2.setId(3);  | 
|         examInfoDict2.setExamType(1);  | 
|         examInfoDict2.setAnswerIs(0);  | 
|   | 
|         List<ExamInfoDict> examInfoDicts = new ArrayList<ExamInfoDict>();  | 
|         examInfoDicts.add(examInfoDict);  | 
|         examInfoDicts.add(examInfoDict1);  | 
|         examInfoDicts.add(examInfoDict2);  | 
|   | 
| //------------------------------------------------- 用户信息  | 
|         UserInfoDict userInfoDict = new UserInfoDict();  | 
|         userInfoDict.setId(1);  | 
|         userInfoDict.setPhotoPath("yx.mm.com");  | 
|         userInfoDict.setList(examInfoDicts);  | 
|   | 
|         Map<String, Object> tempMap = new HashMap<String, Object>();  | 
|         tempMap.put("userInfo", userInfoDict);  | 
|         tempMap.put("flag", 1);  | 
|   | 
|         BeanPath resolver = new BeanPath("userInfo.list[0].id");  | 
|         Object result = resolver.get(tempMap);//ID为1  | 
|   | 
|         System.out.println(result);  | 
|   | 
|         List<ExamInfoDict> property = (List<ExamInfoDict>) BeanUtil.getProperty(tempMap, "userInfo.list");  | 
|   | 
|         Console.log(property);  | 
|   | 
|     }  | 
|   | 
|     @Test  | 
|     public  void test5(){  | 
| //        StrBuilder strBuilder = StrBuilder.create();  | 
| //        int i=-1;  | 
| //        if (i < 0) {  | 
| //            i += 256;  | 
| //        }  | 
| //        if (i < 16)  | 
| //            strBuilder.append("0");  | 
| //            strBuilder.append("123");  | 
| //  | 
| //        System.out.println(strBuilder.toString());  | 
|   | 
| //        String encrypt = SecurityUtil.encrypt(Constants.PWD_DECRET, "{\"userId\":22}");  | 
| //        System.out.println(encrypt);  | 
| //        String decrypt = SecurityUtil.decrypt(Constants.PWD_DECRET, "2eoF8F5Z3bsY9/UDrd6h4g==");  | 
|   | 
|         String s= "{\"userId\":\"27\",\"devCode\":\"abcdefg\"}";  | 
|         String s1 = SecurityUtil.encrypt(Constants.PWD_DECRET,s);  | 
|   | 
|         System.out.println(s1);  | 
|     }  | 
|   | 
|     @Test  | 
|     public void test6(){  | 
| //        String mo="18163623487";  | 
| //        String replace = StrUtil.replace(mo, 3, 7, Convert.toChar("*"));  | 
| //        System.out.println(replace);  | 
| //  | 
| ////        String decrypt = SecurityUtil.decrypt(Constants.PWD_DECRET, "KHEZGG/d4dW8AupSg9yISA==");  | 
| ////        System.out.println(decrypt);  | 
| //        String s="{\"userId\":51}";  | 
| //        String encrypt = SecurityUtil.encrypt(Constants.PWD_DECRET, s);  | 
| //  | 
| //        System.out.println(encrypt);  | 
| //        RSA rsa = new RSA();  | 
| //        String privateKeyBase64 = rsa.getPrivateKeyBase64();  | 
| //        String publicKeyBase64 = rsa.getPublicKeyBase64();  | 
| //  | 
| //        System.out.println(privateKeyBase64);  | 
| //        System.out.println(publicKeyBase64);  | 
|   | 
| //        String encrypt = SecurityUtil.encrypt("123");  | 
| //        System.out.println(encrypt);  | 
| //  | 
| //        RSA rsa = new RSA(null,Constants.RSA_PUBLIC_SECRET);  | 
| //         encrypt = rsa.encryptBase64("123", KeyType.PublicKey);  | 
| //  | 
| //        System.out.println(encrypt);  | 
| //  | 
| //        String s="HMIWlPv7Y8RQa1IqVqfn0UV48+CKAg4gW+vEo5KoY5HP27ELim1JhWdBUaqqCsydwOYi10/ytraRgiot8798NxmJ5wCYUvizUhF6u9yvku0tLdfjl2uoSkVryo8M/dYZRob28G7rYEJ6uDLvSgO5WejbyIAPd+PfRtsbAlceDls=";  | 
| //        String decrypt = SecurityUtil.decrypt(s);  | 
| //        System.out.println(decrypt);  | 
| //  | 
| //        String encrypt1 = SecurityUtil.encrypt("123");  | 
| //  | 
| //        System.out.println(encrypt1);  | 
|   | 
| //        String xzx = RandomStringUtils.randomAlphanumeric(32);  | 
|   | 
| //        System.out.println(xzx);  | 
|   | 
|   | 
| //  | 
| //        String bfcC6lKF3J4QZ38Z1 = SecurityUtil.encrypt(Constants.PWD_DECRET, "123456");  | 
| //        System.out.println(bfcC6lKF3J4QZ38Z1);  | 
| //        String bfcC6lKF3J4QZ38Z = SecurityUtil.decrypt(Constants.PWD_DECRET, bfcC6lKF3J4QZ38Z1);  | 
| //        System.out.println(bfcC6lKF3J4QZ38Z);  | 
|   | 
|         Long a=3L;  | 
|         System.out.println(a==3);  | 
|         System.out.println(a.equals(3));  | 
|         System.out.println(a.equals("3"));  | 
|   | 
| //        String aa = SecurityUtil.decrypt(encrypt);  | 
| //        System.out.println(aa);  | 
|   | 
| //        String encrypt = SecurityUtil.encrypt(Constants.PWD_DECRET, "123");  | 
| //  | 
| //        System.out.println(encrypt);  | 
| //  | 
| //         encrypt = SecurityUtil.encrypt(Constants.PWD_DECRET, "123");  | 
| //  | 
| //        System.out.println(encrypt);  | 
|   | 
|   | 
|     }  | 
|   | 
|     @Test  | 
|     public void test7(){  | 
|         double lon = Convert.toDouble("112.935633");  | 
|         double lat=Convert.toDouble("28.131605");  | 
|         //单位千米  | 
|         int radius = 1;  | 
|         SpatialContext geo = SpatialContext.GEO;  | 
|         Rectangle rectangle = geo.getDistCalc().calcBoxByDistFromPt(geo.makePoint(lon, lat), radius * DistanceUtils.KM_TO_DEG, geo, null);  | 
|   | 
|         System.out.println(rectangle);  | 
|     }  | 
|   | 
|     @Test  | 
|     public void testJVM(){  | 
|   | 
| //        Console.log("**************java信息******************");  | 
| //        Console.log(SystemUtil.getJavaRuntimeInfo());  | 
| //        Console.log("**************系统信息******************");  | 
| //        Console.log(SystemUtil.getOsInfo());  | 
| //        Console.log("**************用户信息******************");  | 
| //        Console.log(SystemUtil.getUserInfo());  | 
| //        Console.log("**************主机信息******************");  | 
| //        Console.log(SystemUtil.getHostInfo());  | 
| //        Console.log("**************内存信息******************");  | 
| //        Console.log(SystemUtil.getRuntimeInfo());  | 
| //  | 
| //        String c=a();  | 
| //        System.out.println(c);  | 
|   | 
| //        String s=RandomStringUtils.randomAlphanumeric(16);  | 
| //        System.out.println(s);  | 
| //        String encrypt = SecurityUtil.encrypt(s, "123456");  | 
| //        System.out.println(encrypt);  | 
|   | 
|         String s= "{\"userId\":\"USER1194135295260758016\",\"devCode\":\"abcdefg\"}";  | 
|         String s1 = SecurityUtil.encrypt(Constants.PWD_DECRET,s);  | 
|   | 
|         System.out.println(s1);  | 
|   | 
|         try {  | 
|             String extra=",x2ixEmv2yp2S6bmjwmsFUmZ3idqWnrKfcGd9zseLj6Z9nUEBMuS6Kyr/lLg1Lu8nHWkqEjDhlrJjplHClrV4+Q==";  | 
|             extra=StrUtil.removePrefix(extra,",");  | 
|             String decrypt = SecurityUtil.decrypt(Constants.PWD_DECRET, extra);  | 
|             JSONObject parse = JSONUtil.parseObj(decrypt);  | 
|            String userId=parse.getStr("userId");  | 
|         } catch (Exception e) {  | 
|             ExceptionUtils.err("解码失败",e);  | 
|         }  | 
|   | 
| //        String s2="sjbVsNam/bONkX8BziljdZLV7d9uFu6frM4GYY33NpU73UMxXsh8T52hnqhXU5Y";  | 
| //        System.out.println(s2);  | 
| //        String decrypt = SecurityUtil.decrypt(Constants.PWD_DECRET, s1);  | 
| //        System.out.println(decrypt);  | 
|   | 
|   | 
|     }  | 
|   | 
|     @Test  | 
|     public void a(){  | 
| //        String s="0";  | 
| //        String s1="0.00";  | 
| //        int i = Convert.toBigDecimal(s,BigDecimal.ZERO).compareTo(Convert.toBigDecimal(s1,BigDecimal.ZERO));  | 
| //        System.out.println(i);  | 
|   | 
|         WeightInfo weightInfo=new WeightInfo();  | 
|         weightInfo.setBatchNo(UUID.randomUUID().toString());  | 
|         weightInfo.setCreateTime(DateUtil.now());  | 
|         weightInfo.setDevCode("11");  | 
|         weightInfo.setUserId("2");  | 
|         weightInfo.setWeight("3");  | 
|   | 
|         System.out.println(JSONUtil.toJsonPrettyStr(weightInfo));  | 
|   | 
|         String s="22";  | 
|         String s1 = s.split(",")[0];  | 
|         System.out.println(s1);  | 
|     }  | 
|   | 
|     @Test  | 
|     public void  test11(){  | 
|         UserInfo userInfo=new UserInfo();  | 
|         userInfo.setMobilePhone("18163623487");  | 
|         generateByUi(userInfo);  | 
|   | 
|     }  | 
|   | 
|   | 
|   | 
|     public Map<String,String> generateByUi(UserInfo userInfo){  | 
|         log.trace("开始生成海报图:{}",userInfo.getUserId());  | 
|         //海报图名称  | 
|         String userId=userInfo.getUserId();  | 
|         String imageName="/user_" + userId + "_poster.jpg";  | 
|         //二维码图名称  | 
|         String imgName="/user_" + userId + "_acode.jpg";  | 
|         generateAcodeUi("poster=" + userInfo.getMobilePhone(), "pages/login/login", imgName,  "800px");  | 
|         String path=Constants.IMG_UPLOAD_PATH+imgName;  | 
| //        if(StrUtil.isBlank(userInfo.getAvatar())){  | 
| //            userInfo.setAvatar(Constants.IMG_TEMPALRE_VIEW+"/xzx-qr.png");  | 
| //        }  | 
|         userInfo.setMobilePhone(new BusinessUtil().changeMobile(userInfo.getMobilePhone()));  | 
|         String backgroundUrl=Constants.IMG_TEMPALRE_PATH+"/user_share_poster_bg2.png";  | 
|         Map<String, String> s = null;  | 
|         try {  | 
|             s = generatePosterByUi(imageName, path, userInfo.getAvatar(), backgroundUrl, userInfo.getMobilePhone());  | 
|         } catch (Exception e) {  | 
|             ExceptionUtils.err("生成分享海报失败",e);  | 
|         }  | 
|         return s;  | 
|     }  | 
|   | 
|     public static Map<String,String> generatePosterByUi(String imgName, String codePath, String avata,  | 
|                                                  String backgroundUrl, String spuName)  | 
|             throws Exception {  | 
|         String urlPrefix="http://192.168.0.82/static/upload";  | 
|         String imgPath="/xzx/resource/static/ui/"+imgName;  | 
|         //背景图  | 
|         BufferedImage bufferImage = QrCodeBaseUtils.imageToBufferedImage(backgroundUrl);  | 
|         Graphics2D graphics = bufferImage.createGraphics();  | 
|         graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);  | 
|         //小程序码  | 
|         BufferedImage qrCodeImage = ImageIO.read(new File(codePath));  | 
|         graphics.drawImage(qrCodeImage, 100, 160, null);  | 
|         //头像  | 
| //        BufferedImage logoBufferImage = Thumbnails.of(new URL(avata)).size(150, 150).asBufferedImage();  | 
| //        graphics.drawImage(logoBufferImage, 57, 94, null);  | 
|         //文字  | 
|         Font font = new Font("黑体", Font.BOLD, 34);  | 
|         graphics.setFont(font);  | 
|         graphics.setPaint(Color.black);  | 
|         graphics.drawString(spuName, 670, 954);  | 
|         QrCodeGraphicsUtils.savePic(bufferImage, 1, "jpg", 0.8, imgPath);  | 
|         graphics.dispose();  | 
|         Map<String,String> map=new HashMap<>();  | 
|         map.put("viewUrl",urlPrefix+"/"+imgName);  | 
|         map.put("uploadUrl",imgPath);  | 
|         return  map;  | 
|     }  | 
|   | 
|   | 
|     /**  | 
|      * 生成小程序码  | 
|      * @param scene 参数  | 
|      * @param path  跳转路径  | 
|      * @param imgName  图片唯一名称  | 
|      * @return  | 
|      */  | 
|     public  static  String generateAcodeUi(String scene,String path,String imgName,String width){  | 
|         String urlPrefix="http://192.168.0.82/static/upload";  | 
|         String imgPath=Constants.IMG_UPLOAD_PATH+imgName;  | 
|         if(!FileUtil.exist(imgPath)){  | 
|             //调用二维码接口  | 
|             String url = StrFormatter.format("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={}", getAccessToken());  | 
|             cn.hutool.json.JSONObject obj = JSONUtil.createObj();  | 
|             //最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,  | 
|             // 其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)  | 
|             obj.put("scene", scene);  | 
|             //必须是已经发布的小程序存在的页面(否则报错),例如 pages/index/index,  | 
|             // 根路径前不要填加 /,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面  | 
|             obj.put("path", path);  | 
|             //最小 280px,最大 1280px  | 
|             obj.put("width", width);  | 
|             obj.put("auto_color", false);  | 
|             cn.hutool.json.JSONObject obj2 = JSONUtil.createObj();  | 
|             obj2.put("r", 0);  | 
|             obj2.put("g", 0);  | 
|             obj2.put("b", 0);  | 
|             obj.put("line_color", obj2);  | 
|             //是否需要透明底色,为 true 时,生成透明底色的小程序码  | 
|             obj.put("is_hyaline", false);  | 
|             byte[] data = HttpRequest.post(url).body(obj.toString(), "application/json").execute().bodyBytes();  | 
|             FileUtil.writeBytes(data, imgPath);  | 
|         }  | 
|         return urlPrefix+"/"+imgName;  | 
|     }  | 
|   | 
|   | 
|   | 
|     public Result say(int i){  | 
|         System.out.println(i);  | 
|         if(1==i){  | 
|             say(14);  | 
|             return null;  | 
|         }  | 
|         System.out.println(33);  | 
|         return Result.success("");  | 
|     }  | 
|   | 
|   | 
| }  |