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/controller/AdminMallTeamLeaderController.java | 11 +++
src/main/java/cc/mrbird/febs/mall/entity/MallElectronicFence.java | 18 ++++++
src/main/java/cc/mrbird/febs/mall/conversion/MallElectronicFenceConversion.java | 13 ++++
src/main/java/cc/mrbird/febs/mall/service/IAdminMallTeamLeaderService.java | 3 +
src/main/resources/templates/index.html | 2
src/main/java/cc/mrbird/febs/mall/dto/AdminLeaderAddFenceDto.java | 14 ++++
src/main/resources/templates/febs/views/modules/leader/leaderMapSetting.html | 5 -
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java | 83 ++++++++++++++++++++++++++-
src/main/java/cc/mrbird/febs/mall/mapper/MallElectronicFenceMapper.java | 7 ++
9 files changed, 148 insertions(+), 8 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallTeamLeaderController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallTeamLeaderController.java
index 9a49369..4e7e9e4 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallTeamLeaderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallTeamLeaderController.java
@@ -6,6 +6,7 @@
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
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.*;
@@ -133,4 +134,14 @@
return new FebsResponse().success();
}
+
+ /**
+ * 团长--设置电子围栏
+ */
+ @PostMapping("addFence")
+ @ControllerEndpoint(operation = "团长信息--设置电子围栏", exceptionMessage = "设置失败")
+ public FebsResponse addFence(@Valid AdminLeaderAddFenceDto adminLeaderAddFenceDto) {
+ return iAdminMallTeamLeaderService.addFence(adminLeaderAddFenceDto);
+ }
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/conversion/MallElectronicFenceConversion.java b/src/main/java/cc/mrbird/febs/mall/conversion/MallElectronicFenceConversion.java
new file mode 100644
index 0000000..1a0554b
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/conversion/MallElectronicFenceConversion.java
@@ -0,0 +1,13 @@
+package cc.mrbird.febs.mall.conversion;
+
+import cc.mrbird.febs.mall.dto.AdminLeaderAddFenceDto;
+import cc.mrbird.febs.mall.entity.MallElectronicFence;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+@Mapper
+public abstract class MallElectronicFenceConversion {
+ public static final MallElectronicFenceConversion INSTANCE = Mappers.getMapper(MallElectronicFenceConversion.class);
+
+ public abstract MallElectronicFence dtoToEntity(AdminLeaderAddFenceDto adminLeaderAddFenceDto);
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AdminLeaderAddFenceDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AdminLeaderAddFenceDto.java
new file mode 100644
index 0000000..e361286
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AdminLeaderAddFenceDto.java
@@ -0,0 +1,14 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "AdminLeaderAddFenceDto", description = "接收参数类")
+public class AdminLeaderAddFenceDto {
+ private String fenceName;//电子围栏名称
+ private Integer fenceType;//电子围栏类型,1:POI围栏,2:行政区围栏,3:圆形围栏,4:多边形围栏
+ private String longlatiarr;//经纬度集合
+ private String teamLeaderCode;//团长特征码
+ private String gaodeKey;//高德地图Key
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallElectronicFence.java b/src/main/java/cc/mrbird/febs/mall/entity/MallElectronicFence.java
new file mode 100644
index 0000000..cbed3ec
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallElectronicFence.java
@@ -0,0 +1,18 @@
+package cc.mrbird.febs.mall.entity;
+
+import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+//电子围栏
+@Data
+@TableName("mall_electronic_fence")
+public class MallElectronicFence extends BaseEntity {
+ private String fenceName;//电子围栏名称
+ private Integer fenceType;//电子围栏类型,1:POI围栏,2:行政区围栏,3:圆形围栏,4:多边形围栏
+ private Integer prohibit;//是否禁用(1:启用 2:禁用)
+ private Integer delFlag;//逻辑删除标志 1:正常 2已删除
+ private String longlatiarr;//经纬度集合
+ private String teamLeaderCode;//团长特征码
+ private String gaodeKey;//高德地图Key
+ private String gid;//高德地图ID
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallElectronicFenceMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallElectronicFenceMapper.java
new file mode 100644
index 0000000..5e71081
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallElectronicFenceMapper.java
@@ -0,0 +1,7 @@
+package cc.mrbird.febs.mall.mapper;
+
+import cc.mrbird.febs.mall.entity.MallElectronicFence;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface MallElectronicFenceMapper extends BaseMapper<MallElectronicFence> {
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallTeamLeaderService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallTeamLeaderService.java
index 4c1f46c..5ff9324 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallTeamLeaderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallTeamLeaderService.java
@@ -3,6 +3,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
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.entity.MallLeaderStock;
import cc.mrbird.febs.mall.entity.MallTeamLeader;
@@ -32,4 +33,6 @@
FebsResponse startProfit(Long id);
FebsResponse closeProfit(Long id);
+
+ FebsResponse addFence(AdminLeaderAddFenceDto adminLeaderAddFenceDto);
}
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";
+ }
+ }
+
}
diff --git a/src/main/resources/templates/febs/views/modules/leader/leaderMapSetting.html b/src/main/resources/templates/febs/views/modules/leader/leaderMapSetting.html
index 52543aa..0f0f8f6 100644
--- a/src/main/resources/templates/febs/views/modules/leader/leaderMapSetting.html
+++ b/src/main/resources/templates/febs/views/modules/leader/leaderMapSetting.html
@@ -40,7 +40,6 @@
});
var polyEditor = new AMap.PolyEditor(map);
-
//为地图注册click事件获取鼠标点击出的经纬度坐标
var path = [];
// 折线的节点坐标数组,每个元素为 AMap.LngLat 对象
@@ -87,8 +86,6 @@
$createPolygon.on('click', function () {
febs.alert.success('点击新建');
- polyEditor.close();
- polyEditor.open();
});
$open.on('click', function () {
@@ -105,6 +102,8 @@
lineJoin: 'round' // 折线拐点连接处样式
});
// 将折线添加至地图实例
+ // map.cleanData(polyline);
+
map.add(polyline);
});
diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html
index df87d76..0dbb47f 100644
--- a/src/main/resources/templates/index.html
+++ b/src/main/resources/templates/index.html
@@ -20,7 +20,7 @@
securityJsCode:'8fd9b92f6e07b1f18d3ae39b42ff71bc',
}
</script>
- <script src="https://webapi.amap.com/maps?v=1.4.15&key=04934a2cf5cfa8a29ffcf0fdcfaabb5f&plugin=AMap.Autocomplete,AMap.PolyEditor,AMap.Geocoder"></script>
+ <script src="https://webapi.amap.com/maps?v=1.4.15&key=04934a2cf5cfa8a29ffcf0fdcfaabb5f&plugin=AMap.Autocomplete,AMap.PolyEditor,AMap.Geocoder,AMap.PolylineEditor"></script>
<link href="https://unpkg.com/@wangeditor/editor@5.0.1/dist/css/style.css" rel="stylesheet">
<script src="https://unpkg.com/@wangeditor/editor@latest/dist/index.js"></script>
<link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/>
--
Gitblit v1.9.1