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