From 28681434422184b33a3338417f681ca1837bc91e Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 13 Sep 2022 18:21:20 +0800
Subject: [PATCH] 20220902

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java |   83 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 79 insertions(+), 4 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java
index 954aabd..d3f9a0c 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java
@@ -4,14 +4,14 @@
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
 import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
+import cc.mrbird.febs.common.utils.HttpCurlUtil;
+import cc.mrbird.febs.mall.conversion.MallElectronicFenceConversion;
 import cc.mrbird.febs.mall.conversion.MallTeamLeaderConversion;
 import cc.mrbird.febs.mall.dto.AdminLeaderAddDto;
+import cc.mrbird.febs.mall.dto.AdminLeaderAddFenceDto;
 import cc.mrbird.febs.mall.dto.AdminLeaderUpdateDto;
 import cc.mrbird.febs.mall.dto.ApiApplayLeaderDto;
-import cc.mrbird.febs.mall.entity.MallGoodsCategory;
-import cc.mrbird.febs.mall.entity.MallLeaderStock;
-import cc.mrbird.febs.mall.entity.MallMember;
-import cc.mrbird.febs.mall.entity.MallTeamLeader;
+import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
 import cc.mrbird.febs.mall.service.IAdminMallTeamLeaderService;
 import cc.mrbird.febs.mall.vo.AdminMallActSetVo;
@@ -19,19 +19,33 @@
 import cc.mrbird.febs.mall.vo.AdminSelectListLeaderVo;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.http.Consts;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.utils.HttpClientUtils;
+import org.apache.http.entity.ContentType;
+import org.apache.http.message.BasicNameValuePair;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Slf4j
 @Service
@@ -43,6 +57,7 @@
     private final MallGoodsMapper mallGoodsMapper;
     private final MallMemberMapper mallMemberMapper;
     private final MallMoneyFlowMapper mallMoneyFlowMapper;
+    private final MallElectronicFenceMapper mallElectronicFenceMapper;
 
     @Override
     public IPage<AdminMallTeamLeaderVo> getLeaderListInPage(MallTeamLeader mallTeamLeader, QueryRequest request) {
@@ -198,4 +213,64 @@
         this.baseMapper.updateById(mallTeamLeader);
         return new FebsResponse().success();
     }
+
+    @Override
+    public FebsResponse addFence(AdminLeaderAddFenceDto adminLeaderAddFenceDto) {
+        String gdFence = createGDFence(adminLeaderAddFenceDto);
+        if("fail".equals(gdFence)){
+            return new FebsResponse().fail().message("高德创建电子围栏失败!");
+        }
+        MallElectronicFence mallElectronicFence = MallElectronicFenceConversion.INSTANCE.dtoToEntity(adminLeaderAddFenceDto);
+        mallElectronicFence.setDelFlag(1);
+        mallElectronicFence.setProhibit(1);
+        mallElectronicFence.setGid(gdFence);
+        mallElectronicFence.setGaodeKey(adminLeaderAddFenceDto.getGaodeKey());
+        mallElectronicFenceMapper.insert(mallElectronicFence);
+        return new FebsResponse().success();
+    }
+
+    public String createGDFence(AdminLeaderAddFenceDto adminLeaderAddFenceDto){
+        String url = "https://restapi.amap.com/v4/geofence/meta?key=";
+        String gaodeKey = adminLeaderAddFenceDto.getGaodeKey();
+        url =url+gaodeKey;
+        HttpPost httpPost = new HttpPost(url);
+        Map<String,String> map = new HashMap<>();
+        String fenceName = adminLeaderAddFenceDto.getFenceName();
+        map.put("name",fenceName);
+        String longlatiarr = adminLeaderAddFenceDto.getLonglatiarr();
+        if(null!=longlatiarr&&!"".equals(longlatiarr)){
+            map.put("points",longlatiarr);
+        }
+        map.put("enable","true");
+        map.put("valid_time","2054-12-30");
+        map.put("repeat","Mon,Tues,Wed,Thur,Fri,Sat,Sun");
+        //map.put("time","00:00,11:59;13:00,20:59");
+        map.put("desc",fenceName);
+        map.put("alert_condition","enter;leave");
+        System.out.println(map);
+        String  param= JSON.toJSONString(map);
+        String result = null;
+        try {
+            result = HttpCurlUtil.sendPostHttp(url, param);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        System.out.println("==高德返回"+result);
+        JSONObject maps = JSONUtil.parseObj(result);
+        String errmsg = maps.get("errmsg").toString();
+        String str2 = maps.get("data").toString();
+        JSONObject maps2 = JSONUtil.parseObj(str2);
+        String statusGaode = maps2.get("status").toString();
+        String gid="";
+        if(statusGaode.equals("0")){
+            gid = maps2.get("gid").toString();
+        }
+        if(null!=gid&&!"".equals(gid)){
+            return gid;
+        }else{
+            return "fail";
+        }
+    }
+
 }

--
Gitblit v1.9.1