123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- package com.huimv.farm.damsubsidy.controller;
- import cn.hutool.core.util.ObjectUtil;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import cn.hutool.core.date.DateUtil;
- import cn.hutool.core.lang.UUID;
- import com.google.gson.Gson;
- import com.google.gson.GsonBuilder;
- import com.huimv.farm.damsubsidy.common.token.TokenSign;
- import com.huimv.farm.damsubsidy.common.utils.*;
- import com.huimv.farm.damsubsidy.entity.BaseAnimal;
- import com.huimv.farm.damsubsidy.entity.BillLandingInspection;
- import com.huimv.farm.damsubsidy.service.IBaseAnimalService;
- import com.huimv.farm.damsubsidy.service.IBillLandingInspectionService;
- import org.apache.http.HttpResponse;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.entity.StringEntity;
- import org.apache.http.impl.client.HttpClientBuilder;
- import org.apache.http.util.EntityUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.util.StringUtils;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import javax.servlet.http.HttpServletRequest;
- import java.io.*;
- import java.net.*;
- import java.util.*;
- /**
- * <p>
- * 落地检 前端控制器
- * </p>
- *
- * @author author
- * @since 2023-04-26
- */
- @RestController
- @RequestMapping("/bill-landing-inspection")
- @CrossOrigin
- public class BillLandingInspectionController {
- @Autowired
- private IBillLandingInspectionService iBillLandingInspectionService;
- @Autowired
- private IBaseAnimalService baseAnimalService;
- @Autowired
- private UploadImage uploadImage;
- @PostMapping("/addApplication")
- public Result addApplication(HttpServletRequest httpServletRequest, @RequestParam("inspectionNum") String inspectionNum,
- @RequestParam("cargoOwner") String cargoOwner,
- @RequestParam("ownerPhone") String ownerPhone,
- @RequestParam("animalType") String animalType,
- @RequestParam("animalNumberUp") String animalNumberUp,
- @RequestParam("useTo") String useTo,
- @RequestParam("startTran") String startTran,
- @RequestParam("reachTran") String reachTran,
- @RequestParam("veterId") String veter,
- @RequestParam("eartags") String eartags,
- @RequestParam(value = "quarantineImage", required = false) MultipartFile quarantineImage,
- @RequestParam(value = "image1", required = false) MultipartFile image1,
- @RequestParam(value ="image2", required = false) MultipartFile image2,
- @RequestParam(value ="image3", required = false) MultipartFile image3,
- @RequestParam(value ="image4", required = false) MultipartFile image4,
- @RequestParam(value ="image5", required = false) MultipartFile image5) throws IOException {
- return iBillLandingInspectionService.addApplication(httpServletRequest,inspectionNum,cargoOwner,ownerPhone,animalType,animalNumberUp,useTo,startTran,reachTran,veter,eartags,quarantineImage,image1,image2,image3,image4,image5);
- }
- @PostMapping("/cancelApplication")
- public Result cancelApplication(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
- return iBillLandingInspectionService.cancelApplication(httpServletRequest,paramsMap);
- }
- //根据检疫证号返回全部耳标
- @PostMapping("/getEartagNoBy")
- public Result getEartagNoBy(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
- return iBillLandingInspectionService.getEartagNoBy(httpServletRequest,paramsMap);
- }
- @PostMapping("agreeApplication")
- public Result agreeApplication(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
- return iBillLandingInspectionService.agreeApplication(httpServletRequest,paramsMap);
- }
- @PostMapping("/listApplication")
- public Result listApplication(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
- return iBillLandingInspectionService.listApplication(httpServletRequest,paramsMap);
- }
- @PostMapping("/listDetail")
- public Result listDetail(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
- String id = paramsMap.get("id");
- return new Result(ResultCode.SUCCESS,iBillLandingInspectionService.getById(id));
- }
- @PostMapping("/rejectApplication")
- public Result rejectApplication(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap){
- return iBillLandingInspectionService.rejectApplication(httpServletRequest,paramsMap);
- }
- @PostMapping("/listReadyApplication")
- public Result listReadyApplication(){
- return iBillLandingInspectionService.listReadyApplication();
- }
- @PostMapping("/listPersonal")
- public Result listPersonal(HttpServletRequest httpServletRequest){
- return new Result(ResultCode.SUCCESS,iBillLandingInspectionService.list(new QueryWrapper<BillLandingInspection>()
- .eq("inspection_sch",4)
- .eq("create_user",TokenSign.getMemberIdByJwtToken(httpServletRequest))
- .isNull("reject_reason")
- .eq("is_delete",0)));
- }
- @Autowired
- private IBillLandingInspectionService billLandingInspectionService;
- @RequestMapping("/list")
- public Result list(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
- return billLandingInspectionService.list(httpServletRequest, paramsMap);
- }
- @RequestMapping("/listById")
- public Result listById(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
- return billLandingInspectionService.listById(httpServletRequest, paramsMap);
- }
- @RequestMapping("/addPay")
- public Result addPay(HttpServletRequest httpServletRequest,
- @RequestParam(name = "idCordBackUrl",required = false) MultipartFile idCordBackUrl,
- @RequestParam("id") String id) throws IOException {
- Map<String, String> map = new HashMap<>();
- if (ObjectUtil.isNotEmpty(idCordBackUrl)) {
- String content = uploadImage.getImageCom(idCordBackUrl);;
- map.put("url", content);
- } else {
- String content = null;
- map.put("url", "");
- }
- map.put("id", id);
- return billLandingInspectionService.addPay(httpServletRequest, map);
- }
- @PostMapping("/QRImage")
- public Result QRImage(@RequestParam(name = "url") MultipartFile url) throws Exception {
- UploadImage uploadImage = new UploadImage();
- String img = uploadImage.uploadImg(url);
- System.out.println(img);
- download(img,"ceshi.jpg","/home/image/test/");
- String daying = daying("/home/image/test/ceshi.jpg");
- JSONObject jsonObject = JSON.parseObject(daying);
- Object error_code = jsonObject.get("error_code");
- if (Integer.parseInt(error_code.toString()) == 0) {
- Object action = jsonObject.get("data");
- JSONObject jsonObject1 = JSON.parseObject(action.toString());
- Object action1 = jsonObject1.get("ret");
- Map<String, String> map = new HashMap<>();
- JSONArray jsonArray = JSON.parseArray(action1.toString());
- for (int i = 0; i < jsonArray.size(); i++) {
- Object action2 = jsonArray.get(i);
- JSONObject jsonObject2 = JSON.parseObject(action2.toString());
- Object key = jsonObject2.get("word_name");
- Object action3 = jsonArray.get(i);
- JSONObject jsonObject3 = JSON.parseObject(action3.toString());
- Object value = jsonObject3.get("word");
- if (key.toString().equals("type")) {
- String s = value.toString();
- if (s.equals("肉牛")) {
- value = 0;
- } else if (s.equals("肉羊")) {
- value = 1;
- } else {
- value = 2;
- }
- }
- if (key.toString().equals("unit")) {
- WordToNum wordToNum = new WordToNum();
- Integer integer = wordToNum.ToNumber(value.toString());
- value = integer;
- }
- map.put(key.toString(), value.toString());
- }
- return new Result(ResultCode.SUCCESS,map);
- } else {
- return new Result(10001, "图片无法识别信息,请手动输入!!", false);
- }
- }
- public String daying(String filePath) throws Exception {
- // iocr识别apiUrl
- String recogniseUrl = "https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise";
- byte[] imgData = FileUtil.readFileByBytes(filePath);
- String imgStr = Base64Util.encode(imgData);
- // 请求模板参数
- String recogniseParams = "templateSign=822d6966a38a49fff811f77cf6119687&image=" + URLEncoder.encode(imgStr, "UTF-8");
- // 请求分类器参数
- String classifierParams = "classifierId=your_classfier_id&url=" + URLEncoder.encode(imgStr, "UTF-8");
- String accessToken = AccessTokenUtils.getAuth();
- // 请求模板识别
- String result = HttpUtil.post(recogniseUrl, accessToken, recogniseParams);
- // 请求分类器识别
- // String result = HttpUtil.post(recogniseUrl, accessToken, classifierParams);
- System.out.println(result);
- return result;
- }
- public static void download(String urlString, String filename,String savePath) throws Exception {
- // 构造URL
- URL url = new URL(urlString);
- // 打开连接
- URLConnection con = url.openConnection();
- //设置请求超时为5s
- con.setConnectTimeout(5*1000);
- // 输入流
- InputStream is = con.getInputStream();
- // 1K的数据缓冲
- byte[] bs = new byte[1024];
- // 读取到的数据长度
- int len;
- // 输出的文件流
- File sf=new File(savePath);
- if(!sf.exists()){
- sf.mkdirs();
- }
- // 获取图片的扩展名
- String extensionName = filename.substring(filename.lastIndexOf(".") + 1);
- // 新的图片文件名 = 编号 +"."图片扩展名
- // String newFileName = "bbb"+ "." + extensionName;
- OutputStream os = new FileOutputStream(/*sf.getPath()+"\\"*/savePath+filename);
- // 开始读取
- while ((len = is.read(bs)) != -1) {
- os.write(bs, 0, len);
- }
- // 完毕,关闭所有链接
- os.close();
- is.close();
- }
- // public static void main(String[] args) throws Exception {
- //// String aaa = "{\\\"data\\\":{\\\"ret\\\":[{\\\"probability\\\":{\\\"average\\\":0.9982159734,\\\"min\\\":0.9973089695,\\\"variance\\\":2.523568412E-7},\\\"location\\\":{\\\"top\\\":153,\\\"left\\\":1367,\\\"width\\\":229,\\\"height\\\":54},\\\"word_name\\\":\\\"number\\\",\\\"word\\\":\\\"6203664332\\\"},{\\\"probability\\\":{\\\"average\\\":0.9938939214,\\\"min\\\":0.9840265512,\\\"variance\\\":0.00004146178617},\\\"location\\\":{\\\"top\\\":401,\\\"left\\\":642,\\\"width\\\":163,\\\"height\\\":39},\\\"word_name\\\":\\\"unit\\\",\\\"word\\\":\\\"贰拾叁头\\\"},{\\\"probability\\\":{\\\"average\\\":0.9983806014,\\\"min\\\":0.9952685237,\\\"variance\\\":0.000001251832941},\\\"location\\\":{\\\"top\\\":281,\\\"left\\\":1171,\\\"width\\\":207,\\\"height\\\":36},\\\"word_name\\\":\\\"phone\\\",\\\"word\\\":\\\"18993224116\\\"},{\\\"probability\\\":{\\\"average\\\":0.999233,\\\"min\\\":0.993178,\\\"variance\\\":0.0000020},\\\"location\\\":{\\\"top\\\":663,\\\"left\\\":238,\\\"width\\\":297,\\\"height\\\":30},\\\"word_name\\\":\\\"earNum\\\",\\\"word\\\":\\\"262070202080845-867\\\"},{\\\"probability\\\":{\\\"average\\\":0.9994745255,\\\"min\\\":0.9987326264,\\\"variance\\\":1.896736848E-7},\\\"location\\\":{\\\"top\\\":506,\\\"left\\\":239,\\\"width\\\":229,\\\"height\\\":41},\\\"word_name\\\":\\\"startAddress\\\",\\\"word\\\":\\\"张掖市甘州区\\\"},{\\\"probability\\\":{\\\"average\\\":0.9997746348,\\\"min\\\":0.9987488985,\\\"variance\\\":1.789176167E-7},\\\"location\\\":{\\\"top\\\":955,\\\"left\\\":497,\\\"width\\\":168,\\\"height\\\":40},\\\"word_name\\\":\\\"carNum\\\",\\\"word\\\":\\\"甘G25786\\\"},{\\\"probability\\\":{\\\"average\\\":0.9998318553,\\\"min\\\":0.9996492863,\\\"variance\\\":1.672335692E-8},\\\"location\\\":{\\\"top\\\":309,\\\"left\\\":237,\\\"width\\\":114,\\\"height\\\":35},\\\"word_name\\\":\\\"userName\\\",\\\"word\\\":\\\"王金丽\\\"},{\\\"probability\\\":{\\\"average\\\":0.9999725819,\\\"min\\\":0.9999496937,\\\"variance\\\":5.238689482E-10},\\\"location\\\":{\\\"top\\\":404,\\\"left\\\":235,\\\"width\\\":83,\\\"height\\\":44},\\\"word_name\\\":\\\"type\\\",\\\"word\\\":\\\"肉牛\\\"},{\\\"probability\\\":{\\\"average\\\":0.999918282,\\\"min\\\":0.9998790026,\\\"variance\\\":1.542876049E-9},\\\"location\\\":{\\\"top\\\":379,\\\"left\\\":1305,\\\"width\\\":79,\\\"height\\\":47},\\\"word_name\\\":\\\"value\\\",\\\"word\\\":\\\"饲养\\\"},{\\\"probability\\\":{\\\"average\\\":0.9967396855,\\\"min\\\":0.9711526632,\\\"variance\\\":0.00004481409997},\\\"location\\\":{\\\"top\\\":598,\\\"left\\\":239,\\\"width\\\":646,\\\"height\\\":48},\\\"word_name\\\":\\\"endAddress\\\",\\\"word\\\":\\\"定西市通渭县金丽养殖农民专业合作社\\\"}],\\\"templateSign\\\":\\\"822d6966a38a49fff811f77cf6119687\\\",\\\"templateName\\\":\\\"动物检疫合格证明\\\",\\\"scores\\\":1.0,\\\"isStructured\\\":true,\\\"logId\\\":\\\"168506403112474\\\",\\\"templateMatchDegree\\\":0.9999999999999956,\\\"clockwiseAngle\\\":0.0},\\\"error_code\\\":0,\\\"error_msg\\\":\\\"\\\",\\\"log_id\\\":\\\"168506403112474\\\"}\"";
- //// JSONObject jsonObject = new JSONObject(aaa);
- //// System.out.println("yyyyy: " + jsonObject.toString());
- // /*String s = "https://img.ifarmcloud.com/images/2023-05/f9ff6e91-1c05-4b03-b698-89b55075adeb.jpg";
- // String[] split = s.split("/");
- // System.out.println(split[5]);*/
- //// BillLandingInspectionController billLandingInspectionController = new BillLandingInspectionController();
- // String daying = "{\"data\":{\"ret\":[{\"probability\":{\"average\":0.9982159734,\"min\":0.9973089695,\"variance\":2.523568412E-7},\"location\":{\"top\":153,\"left\":1367,\"width\":229,\"height\":54},\"word_name\":\"number\",\"word\":\"6203664332\"},{\"probability\":{\"average\":0.9938939214,\"min\":0.9840265512,\"variance\":0.00004146178617},\"location\":{\"top\":401,\"left\":642,\"width\":163,\"height\":39},\"word_name\":\"unit\",\"word\":\"贰拾叁头\"},{\"probability\":{\"average\":0.9983806014,\"min\":0.9952685237,\"variance\":0.000001251832941},\"location\":{\"top\":281,\"left\":1171,\"width\":207,\"height\":36},\"word_name\":\"phone\",\"word\":\"18993224116\"},{\"probability\":{\"average\":0.999233,\"min\":0.993178,\"variance\":0.0000020},\"location\":{\"top\":663,\"left\":238,\"width\":297,\"height\":30},\"word_name\":\"earNum\",\"word\":\"262070202080845-867\"},{\"probability\":{\"average\":0.9994745255,\"min\":0.9987326264,\"variance\":1.896736848E-7},\"location\":{\"top\":506,\"left\":239,\"width\":229,\"height\":41},\"word_name\":\"startAddress\",\"word\":\"张掖市甘州区\"},{\"probability\":{\"average\":0.9997746348,\"min\":0.9987488985,\"variance\":1.789176167E-7},\"location\":{\"top\":955,\"left\":497,\"width\":168,\"height\":40},\"word_name\":\"carNum\",\"word\":\"甘G25786\"},{\"probability\":{\"average\":0.9998318553,\"min\":0.9996492863,\"variance\":1.672335692E-8},\"location\":{\"top\":309,\"left\":237,\"width\":114,\"height\":35},\"word_name\":\"userName\",\"word\":\"王金丽\"},{\"probability\":{\"average\":0.9999725819,\"min\":0.9999496937,\"variance\":5.238689482E-10},\"location\":{\"top\":404,\"left\":235,\"width\":83,\"height\":44},\"word_name\":\"type\",\"word\":\"肉牛\"},{\"probability\":{\"average\":0.999918282,\"min\":0.9998790026,\"variance\":1.542876049E-9},\"location\":{\"top\":379,\"left\":1305,\"width\":79,\"height\":47},\"word_name\":\"value\",\"word\":\"饲养\"},{\"probability\":{\"average\":0.9967396855,\"min\":0.9711526632,\"variance\":0.00004481409997},\"location\":{\"top\":598,\"left\":239,\"width\":646,\"height\":48},\"word_name\":\"endAddress\",\"word\":\"定西市通渭县金丽养殖农民专业合作社\"}],\"templateSign\":\"822d6966a38a49fff811f77cf6119687\",\"templateName\":\"动物检疫合格证明\",\"scores\":1.0,\"isStructured\":true,\"logId\":\"168506610976412\",\"templateMatchDegree\":0.9999999999999956,\"clockwiseAngle\":0.0},\"error_code\":0,\"error_msg\":\"\",\"log_id\":\"168506610976412\"}";
- // System.out.println(daying);
- // JSONObject jsonObject = JSON.parseObject(daying);
- // Object action = jsonObject.get("data");
- // System.out.println(action.toString());
- // JSONObject jsonObject1 = JSON.parseObject(action.toString());
- // Object action1 = jsonObject1.get("ret");
- // System.out.println(action1);
- // Map<String, String> map = new HashMap<>();
- // JSONArray jsonArray = JSON.parseArray(action1.toString());
- // for (int i = 0; i < jsonArray.size(); i++) {
- // JSONObject one = new JSONObject();
- // Object action2 = jsonArray.get(i);
- // JSONObject jsonObject2 = JSON.parseObject(action2.toString());
- // Object key = jsonObject2.get("word_name");
- // System.out.println(key);
- // Object action3 = jsonArray.get(i);
- // JSONObject jsonObject3 = JSON.parseObject(action3.toString());
- // Object value = jsonObject3.get("word");
- // System.out.println(value);
- // map.put(key.toString(), value.toString());
- // }
- // System.out.println(map);
- // }
- //
- // @RequestMapping("/test")
- // public Result test() {
- // String daying = "{\"data\":{\"ret\":[{\"probability\":{\"average\":0.9982159734,\"min\":0.9973089695,\"variance\":2.523568412E-7},\"location\":{\"top\":153,\"left\":1367,\"width\":229,\"height\":54},\"word_name\":\"number\",\"word\":\"6203664332\"},{\"probability\":{\"average\":0.9938939214,\"min\":0.9840265512,\"variance\":0.00004146178617},\"location\":{\"top\":401,\"left\":642,\"width\":163,\"height\":39},\"word_name\":\"unit\",\"word\":\"贰拾叁头\"},{\"probability\":{\"average\":0.9983806014,\"min\":0.9952685237,\"variance\":0.000001251832941},\"location\":{\"top\":281,\"left\":1171,\"width\":207,\"height\":36},\"word_name\":\"phone\",\"word\":\"18993224116\"},{\"probability\":{\"average\":0.999233,\"min\":0.993178,\"variance\":0.0000020},\"location\":{\"top\":663,\"left\":238,\"width\":297,\"height\":30},\"word_name\":\"earNum\",\"word\":\"262070202080845-867\"},{\"probability\":{\"average\":0.9994745255,\"min\":0.9987326264,\"variance\":1.896736848E-7},\"location\":{\"top\":506,\"left\":239,\"width\":229,\"height\":41},\"word_name\":\"startAddress\",\"word\":\"张掖市甘州区\"},{\"probability\":{\"average\":0.9997746348,\"min\":0.9987488985,\"variance\":1.789176167E-7},\"location\":{\"top\":955,\"left\":497,\"width\":168,\"height\":40},\"word_name\":\"carNum\",\"word\":\"甘G25786\"},{\"probability\":{\"average\":0.9998318553,\"min\":0.9996492863,\"variance\":1.672335692E-8},\"location\":{\"top\":309,\"left\":237,\"width\":114,\"height\":35},\"word_name\":\"userName\",\"word\":\"王金丽\"},{\"probability\":{\"average\":0.9999725819,\"min\":0.9999496937,\"variance\":5.238689482E-10},\"location\":{\"top\":404,\"left\":235,\"width\":83,\"height\":44},\"word_name\":\"type\",\"word\":\"肉牛\"},{\"probability\":{\"average\":0.999918282,\"min\":0.9998790026,\"variance\":1.542876049E-9},\"location\":{\"top\":379,\"left\":1305,\"width\":79,\"height\":47},\"word_name\":\"value\",\"word\":\"饲养\"},{\"probability\":{\"average\":0.9967396855,\"min\":0.9711526632,\"variance\":0.00004481409997},\"location\":{\"top\":598,\"left\":239,\"width\":646,\"height\":48},\"word_name\":\"endAddress\",\"word\":\"定西市通渭县金丽养殖农民专业合作社\"}],\"templateSign\":\"822d6966a38a49fff811f77cf6119687\",\"templateName\":\"动物检疫合格证明\",\"scores\":1.0,\"isStructured\":true,\"logId\":\"168506610976412\",\"templateMatchDegree\":0.9999999999999956,\"clockwiseAngle\":0.0},\"error_code\":0,\"error_msg\":\"\",\"log_id\":\"168506610976412\"}";
- // System.out.println(daying);
- // JSONObject jsonObject = JSON.parseObject(daying);
- // Object action = jsonObject.get("data");
- // System.out.println(action.toString());
- // JSONObject jsonObject1 = JSON.parseObject(action.toString());
- // Object action1 = jsonObject1.get("ret");
- // System.out.println(action1);
- // Map<String, String> map = new HashMap<>();
- // JSONArray jsonArray = JSON.parseArray(action1.toString());
- // for (int i = 0; i < jsonArray.size(); i++) {
- // Object action2 = jsonArray.get(i);
- // JSONObject jsonObject2 = JSON.parseObject(action2.toString());
- // Object key = jsonObject2.get("word_name");
- // System.out.println(key);
- // Object action3 = jsonArray.get(i);
- // JSONObject jsonObject3 = JSON.parseObject(action3.toString());
- // Object value = jsonObject3.get("word");
- // if (key.toString().equals("type")) {
- // String s = value.toString();
- // if (s.equals("肉牛")) {
- // value = 0;
- // } else if (s.equals("肉羊")) {
- // value = 1;
- // } else {
- // value = 2;
- // }
- // }
- // if (key.toString().equals("unit")) {
- // WordToNum wordToNum = new WordToNum();
- // Integer integer = wordToNum.ToNumber(value.toString());
- // value = integer;
- // }
- // System.out.println(value);
- // map.put(key.toString(), value.toString());
- // }
- // System.out.println(map);
- // return new Result(ResultCode.SUCCESS,map);
- // }
- }
|