|  |  |  | 
|---|
|  |  |  | import cc.mrbird.febs.common.enumerates.FlowTypeEnum; | 
|---|
|  |  |  | import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; | 
|---|
|  |  |  | import cc.mrbird.febs.common.enumerates.OrderStatusEnum; | 
|---|
|  |  |  | import cc.mrbird.febs.common.exception.FebsException; | 
|---|
|  |  |  | import cc.mrbird.febs.common.utils.HttpCurlUtil; | 
|---|
|  |  |  | import cc.mrbird.febs.common.utils.MallUtils; | 
|---|
|  |  |  | import cc.mrbird.febs.common.utils.RedisUtils; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.dto.AdminLeaderAddFenceDto; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.dto.ApiLeaderRefundOrderDto; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.dto.ApiRechargeWalletDto; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.entity.*; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.mapper.*; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.service.*; | 
|---|
|  |  |  | import cc.mrbird.febs.pay.model.BrandWCPayRequestData; | 
|---|
|  |  |  | import cc.mrbird.febs.pay.model.WxGenerateQrCodeDto; | 
|---|
|  |  |  | import cc.mrbird.febs.pay.service.IXcxPayService; | 
|---|
|  |  |  | import cc.mrbird.febs.pay.util.WechatConfigure; | 
|---|
|  |  |  | 
|---|
|  |  |  | import cn.hutool.core.date.DateTime; | 
|---|
|  |  |  | import cn.hutool.core.date.DateUtil; | 
|---|
|  |  |  | import cn.hutool.core.util.ObjectUtil; | 
|---|
|  |  |  | import cn.hutool.json.JSONUtil; | 
|---|
|  |  |  | import com.alibaba.fastjson.JSON; | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IXcxPayService iXcxPayService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private MallGoodsMapper mallGoodsMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IAdminMallTeamLeaderService iAdminMallTeamLeaderService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Test | 
|---|
|  |  |  | public void qrcodeBase64(){ | 
|---|
|  |  |  | WxGenerateQrCodeDto wxGenerateQrCodeDto = new WxGenerateQrCodeDto(); | 
|---|
|  |  |  | wxGenerateQrCodeDto.setPage("pages/index/index"); | 
|---|
|  |  |  | wxGenerateQrCodeDto.setScene("15"); | 
|---|
|  |  |  | FebsResponse febsResponse = iXcxPayService.generateQrCode(wxGenerateQrCodeDto); | 
|---|
|  |  |  | String data = febsResponse.get("data").toString(); | 
|---|
|  |  |  | System.out.println(data); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        Integer integer = mallGoodsMapper.upDateStockAndVolumeByGoodsId(35L, 3); | 
|---|
|  |  |  | //        System.out.println(integer); | 
|---|
|  |  |  | //        WxGenerateQrCodeDto wxGenerateQrCodeDto = new WxGenerateQrCodeDto(); | 
|---|
|  |  |  | //        wxGenerateQrCodeDto.setPage("pages/product/details"); | 
|---|
|  |  |  | //        wxGenerateQrCodeDto.setScene("35"); | 
|---|
|  |  |  | //        FebsResponse febsResponse = iXcxPayService.generateQrCode(wxGenerateQrCodeDto); | 
|---|
|  |  |  | //        String data = febsResponse.get("data").toString(); | 
|---|
|  |  |  | //        System.out.println(data); | 
|---|
|  |  |  | //        trackServiceInfo("e024c63342930addc57189c8608cdb01",null); | 
|---|
|  |  |  | //        String e024c63342930addc57189c8608cdb01 = trackServiceDel("e024c63342930addc57189c8608cdb01", "792477"); | 
|---|
|  |  |  | //        System.out.println(e024c63342930addc57189c8608cdb01); | 
|---|
|  |  |  | String ss = fenceDel("95ede7157929f5f6b6c758971be924b1", "795278","795554"); | 
|---|
|  |  |  | System.out.println(ss); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //电子围栏删除 | 
|---|
|  |  |  | public String fenceDel(String gaodeKey, String sid,String fenceId) { | 
|---|
|  |  |  | String url = "https://tsapi.amap.com/v1/track/geofence/delete?key="+gaodeKey+"&sid="+sid+"&gfids="+fenceId; | 
|---|
|  |  |  | HttpPost httpPost = new HttpPost(url); | 
|---|
|  |  |  | Map<String,String> map = new HashMap<>(); | 
|---|
|  |  |  | map.put("key",gaodeKey); | 
|---|
|  |  |  | map.put("sid",sid); | 
|---|
|  |  |  | map.put("gfids",fenceId); | 
|---|
|  |  |  | String  param= JSON.toJSONString(map); | 
|---|
|  |  |  | String result = null; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | result = HttpCurlUtil.sendPostHttp(url, param); | 
|---|
|  |  |  | } catch (IOException e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result); | 
|---|
|  |  |  | System.out.println(maps); | 
|---|
|  |  |  | String errcode = maps.get("errcode").toString(); | 
|---|
|  |  |  | if(!"10000".equals(errcode)){ | 
|---|
|  |  |  | return "fail"; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | return maps.toString(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //服务删除 | 
|---|
|  |  |  | public String trackServiceDel(String gaodeKey, String sid) { | 
|---|
|  |  |  | String url = "https://tsapi.amap.com/v1/track/service/delete?key="+gaodeKey+"&sid="+sid; | 
|---|
|  |  |  | HttpPost httpPost = new HttpPost(url); | 
|---|
|  |  |  | Map<String,String> map = new HashMap<>(); | 
|---|
|  |  |  | map.put("key",gaodeKey); | 
|---|
|  |  |  | map.put("sid",sid); | 
|---|
|  |  |  | String  param= JSON.toJSONString(map); | 
|---|
|  |  |  | String result = null; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | result = HttpCurlUtil.sendPostHttp(url, param); | 
|---|
|  |  |  | } catch (IOException e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result); | 
|---|
|  |  |  | System.out.println(maps); | 
|---|
|  |  |  | String errcode = maps.get("errcode").toString(); | 
|---|
|  |  |  | if(!"10000".equals(errcode)){ | 
|---|
|  |  |  | return "fail"; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | return maps.toString(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        String str2 = maps.get("data").toString(); | 
|---|
|  |  |  | //        cn.hutool.json.JSONObject maps2 = JSONUtil.parseObj(str2); | 
|---|
|  |  |  | //        String serviceId = maps2.get("sid").toString(); | 
|---|
|  |  |  | //        if(null!=serviceId&&!"".equals(serviceId)){ | 
|---|
|  |  |  | //            return serviceId; | 
|---|
|  |  |  | //        }else{ | 
|---|
|  |  |  | //            return "fail"; | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public String trackServiceInfo(String gaodeKey, String serviceName) { | 
|---|
|  |  |  | String url = "https://tsapi.amap.com/v1/track/service/list"; | 
|---|
|  |  |  | HttpPost httpPost = new HttpPost(url); | 
|---|
|  |  |  | Map<String,String> map = new HashMap<>(); | 
|---|
|  |  |  | //高德Key | 
|---|
|  |  |  | //用户在高德地图官网申请Web服务API类型Key | 
|---|
|  |  |  | map.put("key",gaodeKey); | 
|---|
|  |  |  | System.out.println("==高德返回"+map); | 
|---|
|  |  |  | String result = null; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | result = HttpCurlUtil.sendGetHttp(url, map); | 
|---|
|  |  |  | } catch (IOException e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | System.out.println("==高德返回"+result); | 
|---|
|  |  |  | cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result); | 
|---|
|  |  |  | String errCode = maps.get("errcode").toString(); | 
|---|
|  |  |  | if("10000".equals(errCode)){ | 
|---|
|  |  |  | String dataStr = maps.get("data").toString(); | 
|---|
|  |  |  | cn.hutool.json.JSONObject dataResults = JSONUtil.parseObj(dataStr); | 
|---|
|  |  |  | String resultsStr = dataResults.get("results").toString(); | 
|---|
|  |  |  | return resultsStr; | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | return "fail"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Test | 
|---|
|  |  |  | public void qrcode(){ | 
|---|
|  |  |  | MallMember member = mallMemberMapper.selectById(58L); | 
|---|
|  |  |  | Long id = 320L; | 
|---|
|  |  |  | MallMember member = mallMemberMapper.selectById(402L); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        ApiRechargeWalletDto apiRechargeWalletDto = new ApiRechargeWalletDto(); | 
|---|
|  |  |  | //        apiRechargeWalletDto.setAmount(new BigDecimal(1)); | 
|---|
|  |  |  | //        apiRechargeWalletDto.setMemberId(402L); | 
|---|
|  |  |  | //        BrandWCPayRequestData brandWCPayRequestData = null; | 
|---|
|  |  |  | //        try { | 
|---|
|  |  |  | //            brandWCPayRequestData = iXcxPayService.startRechargeWallet(apiRechargeWalletDto); | 
|---|
|  |  |  | //        } catch (Exception e) { | 
|---|
|  |  |  | //            throw new FebsException("支付失败"); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        String wxResultStr = JSONUtil.toJsonStr(brandWCPayRequestData); | 
|---|
|  |  |  | //        String payResultStr = brandWCPayRequestData.getPrepay_id(); | 
|---|
|  |  |  | //        Map<String, Object> map = new HashMap<>(); | 
|---|
|  |  |  | //        map.put("orderInfo", payResultStr); | 
|---|
|  |  |  | //        map.put("wxResultStr", wxResultStr); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Long id = 345417L; | 
|---|
|  |  |  | MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallOrderInfo)){ | 
|---|
|  |  |  | BrandWCPayRequestData brandWCPayRequestData = null; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | brandWCPayRequestData = iXcxPayService.startPayment(mallOrderInfo); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | throw new FebsException("支付失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer status = mallOrderInfo.getStatus(); | 
|---|
|  |  |  | if(OrderStatusEnum.WAIT_SHIPPING.getValue() != status){ | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer deliveryState = mallOrderInfo.getDeliveryState(); | 
|---|
|  |  |  | if(1 != deliveryState){ | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //根据子订单生成退款记录 | 
|---|
|  |  |  | List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id); | 
|---|
|  |  |  | if(CollUtil.isEmpty(mallOrderItemList)){ | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for(MallOrderItem mallOrderItem : mallOrderItemList){ | 
|---|
|  |  |  | QueryWrapper<MallRefundEntity> objectQueryWrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | objectQueryWrapper.eq("member_id",member.getId()); | 
|---|
|  |  |  | objectQueryWrapper.eq("order_id",mallOrderInfo.getId()); | 
|---|
|  |  |  | objectQueryWrapper.eq("item_id",mallOrderItem.getId()); | 
|---|
|  |  |  | MallRefundEntity mallRefund = mallRefundMapper.selectOne(objectQueryWrapper); | 
|---|
|  |  |  | MallRefundEntity mallRefundEntity = new MallRefundEntity(); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallRefund)){ | 
|---|
|  |  |  | mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+mallOrderItem.getId()); | 
|---|
|  |  |  | mallRefundEntity.setMemberId(member.getId()); | 
|---|
|  |  |  | mallRefundEntity.setOrderId(mallOrderInfo.getId()); | 
|---|
|  |  |  | mallRefundEntity.setItemId(mallOrderItem.getId()); | 
|---|
|  |  |  | if("余额支付".equals(mallOrderInfo.getPayMethod())){ | 
|---|
|  |  |  | mallRefundEntity.setType(3); | 
|---|
|  |  |  | }else if("微信支付".equals(mallOrderInfo.getPayMethod())){ | 
|---|
|  |  |  | mallRefundEntity.setType(1); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | mallRefundEntity.setType(3); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallRefundEntity.setState(3); | 
|---|
|  |  |  | mallRefundEntity.setAmount(mallOrderItem.getAmount()); | 
|---|
|  |  |  | mallRefundMapper.insert(mallRefundEntity); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if(mallRefund.getState() == 2){ | 
|---|
|  |  |  | mallRefundEntity.setId(mallRefund.getId()); | 
|---|
|  |  |  | mallRefundEntity.setRefundNo(mallRefund.getRefundNo()); | 
|---|
|  |  |  | mallRefundEntity.setMemberId(mallRefund.getMemberId()); | 
|---|
|  |  |  | mallRefundEntity.setOrderId(mallRefund.getOrderId()); | 
|---|
|  |  |  | mallRefundEntity.setItemId(mallRefund.getItemId()); | 
|---|
|  |  |  | mallRefundEntity.setType(mallRefund.getType()); | 
|---|
|  |  |  | mallRefundEntity.setState(3); | 
|---|
|  |  |  | mallRefundEntity.setAmount(mallRefund.getAmount()); | 
|---|
|  |  |  | mallRefundMapper.updateById(mallRefundEntity); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ApiLeaderRefundOrderDto apiLeaderRefundOrderDto = new ApiLeaderRefundOrderDto(); | 
|---|
|  |  |  | apiLeaderRefundOrderDto.setOrderId(mallOrderInfo.getId()); | 
|---|
|  |  |  | apiLeaderRefundOrderDto.setItemId(mallOrderItem.getId()); | 
|---|
|  |  |  | apiLeaderRefundOrderDto.setAgreeState(1); | 
|---|
|  |  |  | iApiMallTeamLeaderService.leaderRefundOrder(apiLeaderRefundOrderDto); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String s = JSONUtil.toJsonStr(brandWCPayRequestData); | 
|---|
|  |  |  | String prepay_id = brandWCPayRequestData.getPrepay_id(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        if(ObjectUtil.isEmpty(mallOrderInfo)){ | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        Integer status = mallOrderInfo.getStatus(); | 
|---|
|  |  |  | //        if(OrderStatusEnum.WAIT_SHIPPING.getValue() != status){ | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        Integer deliveryState = mallOrderInfo.getDeliveryState(); | 
|---|
|  |  |  | //        if(1 != deliveryState){ | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        //根据子订单生成退款记录 | 
|---|
|  |  |  | //        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id); | 
|---|
|  |  |  | //        if(CollUtil.isEmpty(mallOrderItemList)){ | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        for(MallOrderItem mallOrderItem : mallOrderItemList){ | 
|---|
|  |  |  | //            QueryWrapper<MallRefundEntity> objectQueryWrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | //            objectQueryWrapper.eq("member_id",member.getId()); | 
|---|
|  |  |  | //            objectQueryWrapper.eq("order_id",mallOrderInfo.getId()); | 
|---|
|  |  |  | //            objectQueryWrapper.eq("item_id",mallOrderItem.getId()); | 
|---|
|  |  |  | //            MallRefundEntity mallRefund = mallRefundMapper.selectOne(objectQueryWrapper); | 
|---|
|  |  |  | //            MallRefundEntity mallRefundEntity = new MallRefundEntity(); | 
|---|
|  |  |  | //            if(ObjectUtil.isEmpty(mallRefund)){ | 
|---|
|  |  |  | //                mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+mallOrderItem.getId()); | 
|---|
|  |  |  | //                mallRefundEntity.setMemberId(member.getId()); | 
|---|
|  |  |  | //                mallRefundEntity.setOrderId(mallOrderInfo.getId()); | 
|---|
|  |  |  | //                mallRefundEntity.setItemId(mallOrderItem.getId()); | 
|---|
|  |  |  | //                if("余额支付".equals(mallOrderInfo.getPayMethod())){ | 
|---|
|  |  |  | //                    mallRefundEntity.setType(3); | 
|---|
|  |  |  | //                }else if("微信支付".equals(mallOrderInfo.getPayMethod())){ | 
|---|
|  |  |  | //                    mallRefundEntity.setType(1); | 
|---|
|  |  |  | //                }else{ | 
|---|
|  |  |  | //                    mallRefundEntity.setType(3); | 
|---|
|  |  |  | //                } | 
|---|
|  |  |  | //                mallRefundEntity.setState(3); | 
|---|
|  |  |  | //                mallRefundEntity.setAmount(mallOrderItem.getAmount()); | 
|---|
|  |  |  | //                mallRefundMapper.insert(mallRefundEntity); | 
|---|
|  |  |  | //            }else{ | 
|---|
|  |  |  | //                if(mallRefund.getState() == 2){ | 
|---|
|  |  |  | //                    mallRefundEntity.setId(mallRefund.getId()); | 
|---|
|  |  |  | //                    mallRefundEntity.setRefundNo(mallRefund.getRefundNo()); | 
|---|
|  |  |  | //                    mallRefundEntity.setMemberId(mallRefund.getMemberId()); | 
|---|
|  |  |  | //                    mallRefundEntity.setOrderId(mallRefund.getOrderId()); | 
|---|
|  |  |  | //                    mallRefundEntity.setItemId(mallRefund.getItemId()); | 
|---|
|  |  |  | //                    mallRefundEntity.setType(mallRefund.getType()); | 
|---|
|  |  |  | //                    mallRefundEntity.setState(3); | 
|---|
|  |  |  | //                    mallRefundEntity.setAmount(mallRefund.getAmount()); | 
|---|
|  |  |  | //                    mallRefundMapper.updateById(mallRefundEntity); | 
|---|
|  |  |  | //                } | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            ApiLeaderRefundOrderDto apiLeaderRefundOrderDto = new ApiLeaderRefundOrderDto(); | 
|---|
|  |  |  | //            apiLeaderRefundOrderDto.setOrderId(mallOrderInfo.getId()); | 
|---|
|  |  |  | //            apiLeaderRefundOrderDto.setItemId(mallOrderItem.getId()); | 
|---|
|  |  |  | //            apiLeaderRefundOrderDto.setAgreeState(1); | 
|---|
|  |  |  | //            iApiMallTeamLeaderService.leaderRefundOrder(apiLeaderRefundOrderDto); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | String json = JSON.toJSONString(param); | 
|---|
|  |  |  | ByteArrayInputStream inputStream = sendPost(url, json); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | System.out.println(inputStream); | 
|---|
|  |  |  | //这里判断的是返回的图片还是错误信息,一般错误信息不会大于200 | 
|---|
|  |  |  | if (inputStream.available() <= 200){ | 
|---|
|  |  |  | ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); | 
|---|
|  |  |  | 
|---|
|  |  |  | byteArrayOutputStream.write(buffer,0,i); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String str = new String(byteArrayOutputStream.toByteArray()); | 
|---|
|  |  |  | System.out.println(str); | 
|---|
|  |  |  | //错误信息的格式在官方文档里有 | 
|---|
|  |  |  | JSONObject jsonObject = JSONObject.parseObject(str); | 
|---|
|  |  |  | if ("41030".equals(jsonObject.getString("errcode"))){ | 
|---|
|  |  |  | 
|---|
|  |  |  | //输出到本地的代码 | 
|---|
|  |  |  | FileOutputStream fileOutputStream = new FileOutputStream("D:/123.png"); | 
|---|
|  |  |  | int i; | 
|---|
|  |  |  | byte[] buffer = new byte[200]; | 
|---|
|  |  |  | byte[] buffer = new byte[10240000]; | 
|---|
|  |  |  | while ((i = inputStream.read(buffer)) != -1){ | 
|---|
|  |  |  | fileOutputStream.write(buffer,0,i); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | fileOutputStream.flush(); | 
|---|
|  |  |  | fileOutputStream.close(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | inputStream.close(); | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | inputStream.close(); | 
|---|
|  |  |  | // 把outStream里的数据写入内存 | 
|---|
|  |  |  | byteArrayInputStream = new ByteArrayInputStream(outStream.toByteArray()); | 
|---|
|  |  |  | byte[] data = outStream.toByteArray(); | 
|---|
|  |  |  | String result = new String(Base64.getEncoder().encode(data)); | 
|---|
|  |  |  | result = "data:image/jpeg;base64," + result; | 
|---|
|  |  |  | System.out.println(result); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|