From 1f7383c5e295f11a66fdfa9b75e596f72b35b4a8 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 15 Sep 2022 16:38:51 +0800
Subject: [PATCH] 20220902
---
src/main/resources/templates/febs/views/modules/leader/leaderUpdate.html | 30 +
src/main/java/cc/mrbird/febs/common/properties/XcxProperties.java | 4
src/main/java/cc/mrbird/febs/mall/vo/AdminMallTeamLeaderVo.java | 2
src/test/java/cc/mrbird/febs/ProfitTest.java | 35 ++
src/main/java/cc/mrbird/febs/mall/dto/MallOrderInfoDto.java | 2
src/main/resources/application-prod.yml | 2
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java | 11
src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java | 2
src/main/resources/application-dev.yml | 2
src/main/resources/templates/febs/views/modules/leader/leaderMapSetting.html | 7
src/main/resources/templates/febs/views/modules/leader/leaderList.html | 15 +
src/main/java/cc/mrbird/febs/mall/service/IMallElectronicFenceService.java | 18 +
src/main/resources/templates/index.html | 4
src/main/java/cc/mrbird/febs/mall/service/impl/IMallElectronicFenceServiceImpl.java | 244 +++++++++++++++++
src/main/java/cc/mrbird/febs/mall/controller/ViewMallTeamLeaderController.java | 11
src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 3
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java | 157 +++++++----
src/main/java/cc/mrbird/febs/mall/mapper/MallElectronicFenceMapper.java | 3
src/main/resources/application-test.yml | 2
src/main/resources/templates/febs/views/modules/leader/leaderFenceAdd.html | 251 +++++++++++++++++
src/main/resources/mapper/modules/MallElectronicFenceMapper.xml | 8
src/main/java/cc/mrbird/febs/mall/entity/MallElectronicFence.java | 3
src/main/resources/templates/febs/views/modules/leader/addLeader.html | 6
src/main/java/cc/mrbird/febs/mall/dto/AdminLeaderAddFenceDto.java | 5
src/main/resources/templates/febs/views/modules/order/orderList.html | 8
src/main/java/cc/mrbird/febs/common/utils/excl/ExcelUtil.java | 3
26 files changed, 756 insertions(+), 82 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/properties/XcxProperties.java b/src/main/java/cc/mrbird/febs/common/properties/XcxProperties.java
index a261795..6393808 100644
--- a/src/main/java/cc/mrbird/febs/common/properties/XcxProperties.java
+++ b/src/main/java/cc/mrbird/febs/common/properties/XcxProperties.java
@@ -26,5 +26,9 @@
private String wecharpayMchid;
//支付秘钥
private String wecharpaySecret;
+ //高德KEY
+ private String gaodeKey;
+ //高德serviceName
+ private String serviceName;
}
diff --git a/src/main/java/cc/mrbird/febs/common/utils/excl/ExcelUtil.java b/src/main/java/cc/mrbird/febs/common/utils/excl/ExcelUtil.java
index 51d799b..51af891 100644
--- a/src/main/java/cc/mrbird/febs/common/utils/excl/ExcelUtil.java
+++ b/src/main/java/cc/mrbird/febs/common/utils/excl/ExcelUtil.java
@@ -224,7 +224,8 @@
private static void buildSheetData(Workbook wb, Sheet sheet, ExcelSheetPO excelSheetPO, ExcelVersion version) {
sheet.setDefaultRowHeight((short) 400);
- sheet.setDefaultColumnWidth((short) 10);
+// sheet.setDefaultColumnWidth((short) 10);
+ sheet.autoSizeColumn(1);
createTitle(sheet, excelSheetPO, wb, version);
createHeader(sheet, excelSheetPO, wb, version);
createBody(sheet, excelSheetPO, wb, version);
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
index 95a5f90..7d8d211 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
@@ -445,7 +445,7 @@
temp.add(item.getLeaderName());
temp.add(item.getLeaderPhone());
temp.add(item.getAddressArea());
- temp.add(item.getProvince()+item.getCity()+item.getTownship()+item.getDetailAddress());
+ temp.add(item.getDetailAddress());
list.add(temp);
adminMallOrderService.updateOrderStateAndDeliveryState(item.getId(), OrderStatusEnum.WAIT_FINISH.getValue(), OrderDeliveryStateEnum.DELIVERY_ING.getValue());
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallTeamLeaderController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallTeamLeaderController.java
index 84bb219..c16d635 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallTeamLeaderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallTeamLeaderController.java
@@ -96,4 +96,15 @@
public String leaderMapSetting() {
return FebsUtil.view("modules/leader/leaderMapSetting");
}
+
+ /**
+ * 团长信息-电子围栏设置
+ */
+ @GetMapping("fenceAdd/{id}")
+ @RequiresPermissions("fenceAdd:add")
+ public String fenceAdd(@PathVariable long id, Model model) {
+ AdminMallTeamLeaderVo data = iAdminMallTeamLeaderService.getMallTeamLederInfoById(id);
+ model.addAttribute("leaderInfo", data);
+ return FebsUtil.view("modules/leader/leaderFenceAdd");
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AdminLeaderAddFenceDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AdminLeaderAddFenceDto.java
index e361286..b69862a 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/AdminLeaderAddFenceDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AdminLeaderAddFenceDto.java
@@ -6,9 +6,6 @@
@Data
@ApiModel(value = "AdminLeaderAddFenceDto", description = "接收参数类")
public class AdminLeaderAddFenceDto {
- private String fenceName;//电子围栏名称
- private Integer fenceType;//电子围栏类型,1:POI围栏,2:行政区围栏,3:圆形围栏,4:多边形围栏
+ private Long id;
private String longlatiarr;//经纬度集合
- private String teamLeaderCode;//团长特征码
- private String gaodeKey;//高德地图Key
}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MallOrderInfoDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MallOrderInfoDto.java
index fd457b6..20981ae 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/MallOrderInfoDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/MallOrderInfoDto.java
@@ -26,6 +26,8 @@
private Integer orderType;
//配送方式 1:自提 2:快递
private Integer deliveryType;
+ //配送方式 1:自提 2:快递
+ private Integer isHome;
private String uniqueCode;
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallElectronicFence.java b/src/main/java/cc/mrbird/febs/mall/entity/MallElectronicFence.java
index cbed3ec..591f444 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallElectronicFence.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallElectronicFence.java
@@ -13,6 +13,7 @@
private Integer delFlag;//逻辑删除标志 1:正常 2已删除
private String longlatiarr;//经纬度集合
private String teamLeaderCode;//团长特征码
- private String gaodeKey;//高德地图Key
+ private String gKey;//高德地图Key
+ private String serviceId;//服务ID
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
index 5e71081..67fbc22 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallElectronicFenceMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallElectronicFenceMapper.java
@@ -2,6 +2,9 @@
import cc.mrbird.febs.mall.entity.MallElectronicFence;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
public interface MallElectronicFenceMapper extends BaseMapper<MallElectronicFence> {
+
+ MallElectronicFence selectByTeamLeaderCode(@Param("teamLeaderCode")String uniqueCode);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IMallElectronicFenceService.java b/src/main/java/cc/mrbird/febs/mall/service/IMallElectronicFenceService.java
new file mode 100644
index 0000000..2386301
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/service/IMallElectronicFenceService.java
@@ -0,0 +1,18 @@
+package cc.mrbird.febs.mall.service;
+
+import cc.mrbird.febs.mall.entity.MallElectronicFence;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface IMallElectronicFenceService extends IService<MallElectronicFence> {
+ String trackServiceAdd(String gaodeKey,String serviceName);
+
+ String trackServiceInfo(String gaodeKey);
+
+ String fenceAdd(String gaodeKey,String serviceId,String fenceName,String points);
+
+ String fenceUpdate(String gaodeKey,String serviceId,String fenceId,String fenceName,String points);
+
+ String fenceList(String gaodeKey,String serviceId,String fenceIds);
+
+ String fenceDelete(String gaodeKey,String serviceId,String fenceId);
+}
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 d3f9a0c..806d8cb 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,7 +4,9 @@
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.properties.XcxProperties;
import cc.mrbird.febs.common.utils.HttpCurlUtil;
+import cc.mrbird.febs.common.utils.SpringContextHolder;
import cc.mrbird.febs.mall.conversion.MallElectronicFenceConversion;
import cc.mrbird.febs.mall.conversion.MallTeamLeaderConversion;
import cc.mrbird.febs.mall.dto.AdminLeaderAddDto;
@@ -14,11 +16,14 @@
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IAdminMallTeamLeaderService;
+import cc.mrbird.febs.mall.service.IMallElectronicFenceService;
import cc.mrbird.febs.mall.vo.AdminMallActSetVo;
import cc.mrbird.febs.mall.vo.AdminMallTeamLeaderVo;
import cc.mrbird.febs.mall.vo.AdminSelectListLeaderVo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
@@ -42,10 +47,7 @@
import java.io.IOException;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
@Slf4j
@Service
@@ -58,6 +60,7 @@
private final MallMemberMapper mallMemberMapper;
private final MallMoneyFlowMapper mallMoneyFlowMapper;
private final MallElectronicFenceMapper mallElectronicFenceMapper;
+ private final IMallElectronicFenceService iMallElectronicFenceService;
@Override
public IPage<AdminMallTeamLeaderVo> getLeaderListInPage(MallTeamLeader mallTeamLeader, QueryRequest request) {
@@ -82,6 +85,10 @@
public AdminMallTeamLeaderVo getMallTeamLederInfoById(long id) {
MallTeamLeader mallTeamLeader = this.baseMapper.selectById(id);
AdminMallTeamLeaderVo adminMallTeamLeaderVo = MallTeamLeaderConversion.INSTANCE.entityToVo(mallTeamLeader);
+ MallElectronicFence mallElectronicFence = mallElectronicFenceMapper.selectByTeamLeaderCode(mallTeamLeader.getUniqueCode());
+ if(ObjectUtil.isNotEmpty(mallElectronicFence)){
+ adminMallTeamLeaderVo.setLonglatiarr(mallElectronicFence.getLonglatiarr());
+ }
return adminMallTeamLeaderVo;
}
@@ -214,63 +221,101 @@
return new FebsResponse().success();
}
- @Override
- public FebsResponse addFence(AdminLeaderAddFenceDto adminLeaderAddFenceDto) {
- String gdFence = createGDFence(adminLeaderAddFenceDto);
- if("fail".equals(gdFence)){
- return new FebsResponse().fail().message("高德创建电子围栏失败!");
+ public static void main(String[] args) {
+
+ String ss = "{\"results\":[{\"name\":\"yiyuanshucai\",\"sid\":792477},{\"name\":\"yiyuanshucai1\",\"sid\":792477}]}";
+ String serviceName = "";
+ JSONObject jsonObject = JSONUtil.parseObj(ss);
+ String results = jsonObject.get("results").toString();
+ JSONArray jsonArray = JSONUtil.parseArray(results);
+ System.out.print(jsonArray);
+ for(Object jsonArray1 : jsonArray){
+ System.out.print(jsonArray1);
+ JSONObject jsonObject1 = JSONUtil.parseObj(jsonArray1);
+ String name = jsonObject1.get("name").toString();
+ System.out.print(name);
+ if("yiyuanshucai".equals(name)){
+ serviceName= name;
+ break;
+ }
}
- 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();
+// String name = jsonObjectStr.get("name").toString();
+// String sid = jsonObjectStr.get("sid").toString();
+// if("yiyuanshucai".equals(name)){
+// System.out.print(name);
+// System.out.print(sid);
+// }
}
- 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;
+ private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class);
+ @Override
+ public FebsResponse addFence(AdminLeaderAddFenceDto adminLeaderAddFenceDto) {
+ //如果电子围栏表为空,
+ //先查询服务是否已经创建,
+ //没有,再创建服务。
+ List<MallElectronicFence> mallElectronicFences = mallElectronicFenceMapper.selectList(new QueryWrapper<>());
+ String serviceId = "";
+ if(CollUtil.isEmpty(mallElectronicFences)){
+ String resultStr = iMallElectronicFenceService.trackServiceInfo(xcxProperties.getGaodeKey());
+ if("fail".equals(resultStr)){
+ return new FebsResponse().fail().message("高德地图查询服务失败");
+ }
+ JSONObject jsonObject = JSONUtil.parseObj(resultStr);
+ String results = jsonObject.get("results").toString();
+ JSONArray jsonArray = JSONUtil.parseArray(results);
+ for(Object jsonArray1 : jsonArray){
+ JSONObject jsonObject1 = JSONUtil.parseObj(jsonArray1);
+ String name = jsonObject1.get("name").toString();
+ String sid = jsonObject1.get("sid").toString();
+ if(xcxProperties.getServiceName().equals(name)){
+ serviceId= sid;
+ break;
+ }
+ }
+ if(StrUtil.isBlank(serviceId)){
+ serviceId = iMallElectronicFenceService.trackServiceAdd(xcxProperties.getGaodeKey(), xcxProperties.getServiceName());
+ }
}else{
- return "fail";
+ serviceId = mallElectronicFences.get(0).getServiceId();
}
+ if("fail".equals(serviceId)){
+ return new FebsResponse().fail().message("高德地图创建服务失败");
+ }
+ Long id = adminLeaderAddFenceDto.getId();
+ MallTeamLeader mallTeamLeader = this.baseMapper.selectById(id);
+ String uniqueCode = mallTeamLeader.getUniqueCode();
+ MallElectronicFence mallElectronicFence = mallElectronicFenceMapper.selectByTeamLeaderCode(uniqueCode);
+ if(ObjectUtil.isEmpty(mallElectronicFence)){
+ //新增
+ //新增围栏
+ String fenceId = iMallElectronicFenceService.fenceAdd(xcxProperties.getGaodeKey(), serviceId
+ , mallTeamLeader.getUniqueCode()+"_fence", adminLeaderAddFenceDto.getLonglatiarr());
+
+ if("fail".equals(fenceId)){
+ return new FebsResponse().fail().message("高德地图创建多边形围栏失败");
+ }
+ MallElectronicFence mallElectronicFenceAdd = new MallElectronicFence();
+ mallElectronicFenceAdd.setFenceName(mallTeamLeader.getUniqueCode()+"_fence");
+ mallElectronicFenceAdd.setFenceType(4);
+ mallElectronicFenceAdd.setGid(fenceId);
+ mallElectronicFenceAdd.setProhibit(1);
+ mallElectronicFenceAdd.setDelFlag(1);
+ mallElectronicFenceAdd.setGKey(xcxProperties.getGaodeKey());
+ mallElectronicFenceAdd.setLonglatiarr(adminLeaderAddFenceDto.getLonglatiarr());
+ mallElectronicFenceAdd.setTeamLeaderCode(uniqueCode);
+ mallElectronicFenceAdd.setServiceId(serviceId);
+ mallElectronicFenceMapper.insert(mallElectronicFenceAdd);
+ }else{
+ String fenceUpdate = iMallElectronicFenceService.fenceUpdate(xcxProperties.getGaodeKey(), serviceId,
+ mallElectronicFence.getGid(), mallElectronicFence.getFenceName(),
+ adminLeaderAddFenceDto.getLonglatiarr());
+ if("fail".equals(fenceUpdate)){
+ return new FebsResponse().fail().message("高德地图更新多边形围栏失败");
+ }
+ mallElectronicFence.setLonglatiarr(adminLeaderAddFenceDto.getLonglatiarr());
+ mallElectronicFenceMapper.updateById(mallElectronicFence);
+ }
+ return new FebsResponse().success();
}
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
index d1b7f41..52a049b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
@@ -438,8 +438,15 @@
null,null,
DateUtil.date());
apiLeaderProfitVo.setMonthProfit(monthProfit);
- BigDecimal waitProfit = mallLeaderAchieveMapper.selectProfitByStateAndDateTimeAndUniqueCode(1,null,loginUser.getInviteId()).setScale(2,BigDecimal.ROUND_DOWN);
- apiLeaderProfitVo.setWaitProfit(waitProfit);
+ String inviteId = loginUser.getInviteId();
+ MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(inviteId);
+ Integer profitSwitch = mallTeamLeader.getProfitSwitch() == null ? 2:mallTeamLeader.getProfitSwitch();
+ if(2 == profitSwitch){
+ apiLeaderProfitVo.setWaitProfit(BigDecimal.ZERO);
+ }else{
+ BigDecimal waitProfit = mallLeaderAchieveMapper.selectProfitByStateAndDateTimeAndUniqueCode(1,null,loginUser.getInviteId()).setScale(2,BigDecimal.ROUND_DOWN);
+ apiLeaderProfitVo.setWaitProfit(waitProfit);
+ }
return new FebsResponse().success().data(apiLeaderProfitVo);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/IMallElectronicFenceServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/IMallElectronicFenceServiceImpl.java
new file mode 100644
index 0000000..5c07a1c
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/IMallElectronicFenceServiceImpl.java
@@ -0,0 +1,244 @@
+package cc.mrbird.febs.mall.service.impl;
+
+import cc.mrbird.febs.common.utils.HttpCurlUtil;
+import cc.mrbird.febs.mall.entity.MallElectronicFence;
+import cc.mrbird.febs.mall.mapper.MallElectronicFenceMapper;
+import cc.mrbird.febs.mall.service.IMallElectronicFenceService;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.http.client.methods.HttpPost;
+import org.springframework.stereotype.Service;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class IMallElectronicFenceServiceImpl extends ServiceImpl<MallElectronicFenceMapper, MallElectronicFence> implements IMallElectronicFenceService {
+ @Override
+ public String trackServiceAdd(String gaodeKey, String serviceName) {
+ String url = "https://tsapi.amap.com/v1/track/service/add?key="+gaodeKey+"&name="+serviceName;
+ HttpPost httpPost = new HttpPost(url);
+ Map<String,String> map = new HashMap<>();
+ map.put("key",gaodeKey);
+ map.put("name",serviceName);
+ String param= JSON.toJSONString(map);
+ log.info(param);
+ String result = null;
+ try {
+ result = HttpCurlUtil.sendPostHttp(url, param);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ log.info("创建服务"+result);
+ cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result);
+ String errcode = maps.get("errcode").toString();
+ if(!"10000".equals(errcode)){
+ return "fail";
+ }
+ 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";
+ }
+ }
+
+ @Override
+ public String trackServiceInfo(String gaodeKey) {
+ 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);
+ log.info("查询服务"+JSON.toJSONString(map));
+ String result = null;
+ try {
+ result = HttpCurlUtil.sendGetHttp(url, map);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ log.info("查询服务"+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();
+ return dataStr;
+ }else{
+ return "fail";
+ }
+ }
+
+ @Override
+ public String fenceAdd(String gaodeKey, String serviceId, String fenceName, String points) {
+ String url = "https://tsapi.amap.com/v1/track/geofence/add/polygon?key="+gaodeKey+"" +
+ "&sid="+serviceId+"&name="+fenceName+"&points="+points;
+ HttpPost httpPost = new HttpPost(url);
+ Map<String,String> map = new HashMap<>();
+ //高德Key
+ //用户在高德地图官网申请Web服务API类型Key
+ map.put("key",gaodeKey);
+ //服务唯一编号
+ //sid为猎鹰service唯一编号
+ map.put("sid",serviceId);
+ //围栏名称
+ //在同一个 sid 下不可重复,不可为空。
+ //支持中文、英文大小字母、英文下划线"_"、英文横线"-"和数字,长度不大于128个字符
+ map.put("name",fenceName);
+ //多边形顶点坐标
+ //格式 X1,Y1;X2,Y2;...
+ //顶点顺序可按顺时针或逆时针排列;
+ //1. 普通地理围栏:顶点个数在3-100个之间,外接矩形面积<100平方公里;
+ //2. 大范围地理围栏:顶点个数在3-100个之间,外接矩形面积小于1000平方公里,请您通过工单与我们联系。
+ map.put("points",points);
+ String param= JSON.toJSONString(map);
+
+ log.info("创建多边形围栏"+param);
+ String result = null;
+ try {
+ result = HttpCurlUtil.sendPostHttp(url, param);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ log.info("创建多边形围栏"+result);
+ cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result);
+ String errCode = maps.get("errcode").toString();
+ if("10000".equals(errCode)){
+ String data = maps.get("data").toString();
+ cn.hutool.json.JSONObject dataObject = JSONUtil.parseObj(data);
+ String gfid = dataObject.get("gfid").toString();
+ if(null!=gfid&&!"".equals(gfid)){
+ return gfid;
+ }else{
+ return "fail";
+ }
+ }else{
+ return "fail";
+ }
+ }
+
+ @Override
+ public String fenceUpdate(String gaodeKey, String serviceId, String fenceId, String fenceName, String points) {
+ String url = "https://tsapi.amap.com/v1/track/geofence/update/polygon?key="+gaodeKey
+ +"&sid="+serviceId+"&gfid="+fenceId+"&name="+fenceName+"&points="+points;
+ HttpPost httpPost = new HttpPost(url);
+ Map<String,String> map = new HashMap<>();
+ //高德Key
+ //用户在高德地图官网申请Web服务API类型Key
+ map.put("key",gaodeKey);
+ //服务唯一编号
+ //sid为猎鹰service唯一编号
+ map.put("sid",serviceId);
+ //围栏id
+ //围栏唯一标识,指定要更新的围栏
+ map.put("gfid",fenceId);
+ //围栏名称
+ //在同一个 sid 下不可重复,不可为空。
+ //支持中文、英文大小字母、英文下划线"_"、英文横线"-"和数字,长度不大于128个字符
+ map.put("name",fenceName);
+ //多边形顶点坐标
+ //格式 X1,Y1;X2,Y2;...
+ //顶点顺序可按顺时针或逆时针排列;
+ //1. 普通地理围栏:顶点个数在3-100个之间,外接矩形面积<100平方公里;
+ //2. 大范围地理围栏:顶点个数在3-100个之间,外接矩形面积小于1000平方公里,请您通过工单与我们联系。
+ map.put("points",points);
+ String param= JSON.toJSONString(map);
+ log.info("更新多边形围栏"+param);
+ String result = null;
+ try {
+ result = HttpCurlUtil.sendPostHttp(url, param);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ log.info("更新多边形围栏"+result);
+ cn.hutool.json.JSONObject maps = JSONUtil.parseObj(result);
+ String errCode = maps.get("errcode").toString();
+ if("10000".equals(errCode)){
+ return errCode;
+ }else{
+ return "fail";
+ }
+ }
+
+ @Override
+ public String fenceList(String gaodeKey, String serviceId, String fenceIds) {
+ String url = "https://tsapi.amap.com/v1/track/geofence/list";
+ HttpPost httpPost = new HttpPost(url);
+ Map<String,String> map = new HashMap<>();
+ //高德Key
+ //用户在高德地图官网申请Web服务API类型Key
+ map.put("key",gaodeKey);
+ //服务唯一编号
+ //sid为猎鹰service唯一编号
+ map.put("sid",serviceId);
+ //围栏的唯一标识
+ //支持一次传入多个,以","分割;
+ //单次最多支持100个,如超出将只截取前100个作为输入。
+ //否;
+ //如传入,则只返回由 gfids 所指定的围栏,不分页(忽略 page 和 pagesize 参数);
+ //如不传,则分页返回所有围栏;
+ map.put("gfids",fenceIds);
+ log.info("查询围栏"+JSON.toJSONString(map));
+ String result = null;
+ try {
+ result = HttpCurlUtil.sendGetHttp(url, map);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ log.info("查询围栏"+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";
+ }
+ }
+
+ @Override
+ public String fenceDelete(String gaodeKey, String serviceId, String fenceId) {
+ String url = "https://tsapi.amap.com/v1/track/geofence/delete";
+ HttpPost httpPost = new HttpPost(url);
+ Map<String,String> map = new HashMap<>();
+ //高德Key
+ //用户在高德地图官网申请Web服务API类型Key
+ map.put("key",gaodeKey);
+ //服务唯一编号
+ //sid为猎鹰service唯一编号
+ map.put("sid",serviceId);
+ //围栏id
+ //围栏唯一标识,指定要更新的围栏
+ map.put("gfids",fenceId);
+ String param= JSON.toJSONString(map);
+ log.info("删除围栏"+param);
+ String result = null;
+ try {
+ result = HttpCurlUtil.sendPostHttp(url, param);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ log.info("删除围栏"+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 gfidsJson = JSONUtil.parseObj(dataStr);
+ String gfidsStr = gfidsJson.get("gfids").toString();
+ return gfidsStr;
+ }else{
+ return "fail";
+ }
+ }
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallTeamLeaderVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallTeamLeaderVo.java
index 20e909c..d135053 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallTeamLeaderVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallTeamLeaderVo.java
@@ -45,4 +45,6 @@
private Integer profitSwitch;
//团长返利百分比如0.15表示15%
private String bonusPercent;
+
+ private String longlatiarr;
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index ecd832d..2a663c3 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -73,3 +73,5 @@
certLocalPath: /home/yyscCert/apiclient_cert.p12
wecharpayMchid: 1631084809
wecharpaySecret: YYSC13875978057YYSC13875978057SH
+ gaodeKey: e024c63342930addc57189c8608cdb01
+ serviceName: yiyuanshucai
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 8f67763..a555859 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -69,3 +69,5 @@
certLocalPath: /home/yyscCert/apiclient_cert.p12
wecharpayMchid: 1631084809
wecharpaySecret: YYSC13875978057YYSC13875978057SH
+ gaodeKey: e024c63342930addc57189c8608cdb01
+ serviceName: yiyuanshucai
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
index e45a001..37cdcb7 100644
--- a/src/main/resources/application-test.yml
+++ b/src/main/resources/application-test.yml
@@ -78,3 +78,5 @@
certLocalPath: /home/yyscCert/apiclient_cert.p12
wecharpayMchid: 1631084809
wecharpaySecret: YYSC13875978057YYSC13875978057SH
+ gaodeKey: e024c63342930addc57189c8608cdb01
+ serviceName: yiyuanshucai
diff --git a/src/main/resources/mapper/modules/MallElectronicFenceMapper.xml b/src/main/resources/mapper/modules/MallElectronicFenceMapper.xml
new file mode 100644
index 0000000..10b5edf
--- /dev/null
+++ b/src/main/resources/mapper/modules/MallElectronicFenceMapper.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cc.mrbird.febs.mall.mapper.MallElectronicFenceMapper">
+
+ <select id="selectByTeamLeaderCode" resultType="cc.mrbird.febs.mall.entity.MallElectronicFence">
+ select * from mall_electronic_fence where team_leader_code=#{teamLeaderCode}
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index 4d2a513..d8b6807 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -85,6 +85,9 @@
<if test="record.deliveryType != null and record.deliveryType != ''">
and a.delivery_type = #{record.deliveryType}
</if>
+ <if test="record.isHome != null and record.isHome != ''">
+ and a.is_home = #{record.isHome}
+ </if>
<if test="record.orderNo != null and record.orderNo != ''">
and a.order_no like CONCAT('%', CONCAT(#{record.orderNo}, '%'))
</if>
diff --git a/src/main/resources/templates/febs/views/modules/leader/addLeader.html b/src/main/resources/templates/febs/views/modules/leader/addLeader.html
index d220728..2cf9004 100644
--- a/src/main/resources/templates/febs/views/modules/leader/addLeader.html
+++ b/src/main/resources/templates/febs/views/modules/leader/addLeader.html
@@ -84,7 +84,7 @@
<div class="layui-form-item">
<label class="layui-form-label febs-form-item-require">地图选择:</label>
<div class="layui-input-block">
- <div class="layui-fluid layui-anim febs-anim" id="febs-map-demo" lay-title="高德地图">
+ <div class="layui-fluid layui-anim febs-anim" id="febs-map-demo-add" lay-title="高德地图">
<div class="layui-row febs-container">
<div class="layui-card">
<div style="padding: .1rem;">
@@ -123,7 +123,7 @@
mallMember = [[${mallMember}]],
upload = layui.upload,
$view = $('#user-addLeader'),
- $viewMap = $('#febs-map-demo'),
+ $viewMap = $('#febs-map-demo-add'),
_deptTree;
$viewMap.find('#container').css({"height": document.documentElement.clientHeight - 97 + 'px'});
@@ -135,7 +135,7 @@
//为地图注册click事件获取鼠标点击出的经纬度坐标
map.on('click', function (e) {
- febs.alert.success('经度:' + e.lnglat.getLng() + ',纬度:' + e.lnglat.getLat()+e.province);
+ febs.alert.success('经度:' + e.lnglat.getLng() + ',纬度:' + e.lnglat.getLat());
$("#longitude").val(e.lnglat.getLng());
$("#latitude").val(e.lnglat.getLat());
diff --git a/src/main/resources/templates/febs/views/modules/leader/leaderFenceAdd.html b/src/main/resources/templates/febs/views/modules/leader/leaderFenceAdd.html
new file mode 100644
index 0000000..e8d4a60
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/leader/leaderFenceAdd.html
@@ -0,0 +1,251 @@
+<style>
+ #user-addLeaderFence {
+ padding: 20px 25px 25px 0;
+ }
+
+ #user-addLeaderFence .layui-treeSelect .ztree li a, .ztree li span {
+ margin: 0 0 2px 3px !important;
+ }
+ #user-addLeaderFence #data-permission-tree-block {
+ border: 1px solid #eee;
+ border-radius: 2px;
+ padding: 3px 0;
+ }
+ #user-addLeaderFence .layui-treeSelect .ztree li span.button.switch {
+ top: 1px;
+ left: 3px;
+ }
+ #user-addLeaderFence img{
+ max-width:200px
+ }
+ .map{
+ width: 50%;
+ height: 500px!important;
+ }
+</style>
+<div class="layui-fluid" id="user-addLeaderFence">
+ <form class="layui-form" action="" lay-filter="user-addLeaderFence-form">
+ <div class="layui-form-item febs-hide">
+ <label class="layui-form-label">id:</label>
+ <div class="layui-input-block">
+ <input type="text" name="id">
+ </div>
+ </div>
+ <div class="layui-form-item febs-hide">
+ <label class="layui-form-label">memberId:</label>
+ <div class="layui-input-block">
+ <input type="text" name="memberId">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">姓名:</label>
+ <div class="layui-input-block">
+ <input type="text" name="name" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" readonly>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">手机号码:</label>
+ <div class="layui-input-block">
+ <input type="text" name="phone" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" readonly>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">自提点名称:</label>
+ <div class="layui-input-block">
+ <input type="text" name="addressArea" lay-verify="required" placeholder="" autocomplete="off" class="layui-input" readonly>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">详细地址:</label>
+ <div class="layui-input-block">
+ <input type="text" id="detailAddress" name="detailAddress" class="layui-input" readonly>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">地图选择:</label>
+ <div class="layui-input-block">
+ <div class="layui-fluid layui-anim febs-anim" id="febs-fenceMap-demo" lay-title="高德地图">
+ <div class="layui-row febs-container">
+ <div class="layui-card">
+ <div style="padding: .1rem;">
+ <div id="container" class="map"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-mid layui-word-aux">鼠标左键点击地图位置,出现【标记*】,则代表选点成功</div>
+ <div class="layui-form-mid layui-word-aux">最少请选择三个点</div>
+ </div>
+ <button class="layui-btn" type="button" id="clearMap">重新设置配送范围</button>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">经度:</label>
+ <div class="layui-input-block">
+ <input type="text" id="longitude" name="longitude" lay-verify="required" placeholder="" class="layui-input" readonly>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">纬度:</label>
+ <div class="layui-input-block">
+ <input type="text" id="latitude" name="latitude" lay-verify="required" placeholder="" class="layui-input" readonly>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">经纬度串:</label>
+ <div class="layui-input-block">
+ <input type="text" id="longlatiarr" name="longlatiarr" lay-verify="required" placeholder="" class="layui-input" readonly>
+ </div>
+ </div>
+ <div class="layui-form-item febs-hide">
+ <button class="layui-btn" lay-submit="" lay-filter="user-addLeaderFence-submit" id="submit"></button>
+ </div>
+ </form>
+</div>
+<script data-th-inline="javascript">
+ layui.use(['febs', 'form', 'formSelects', 'treeSelect', 'eleTree', 'upload'], function () {
+ var $ = layui.$,
+ febs = layui.febs,
+ layer = layui.layer,
+ form = layui.form,
+ leaderInfo = [[${leaderInfo}]],
+ upload = layui.upload,
+ $view = $('#user-addLeaderFence'),
+ $viewMap = $('#febs-fenceMap-demo'),
+ $clearMap = $('#clearMap')
+
+ $viewMap.find('#container').css({"height": document.documentElement.clientHeight - 97 + 'px'});
+
+ var map = new AMap.Map("container", {
+ center: [leaderInfo.longitude, leaderInfo.latitude], //初始地图中心点
+ resizeEnable: true,
+ zoom: 16.8 //初始地图级别
+ });
+ //配送范围回显
+ var pathPolygon = [];
+ var polygonClear;
+ // 构造点标记
+ //为地图注册click事件获取鼠标点击出的经纬度坐标
+ var i = 0;
+ var markerList = [];
+ map.on('click', function (e) {
+ // febs.alert.success('经度:' + e.lnglat.getLng() + ',纬度:' + e.lnglat.getLat());
+ var positonList = [];
+ positonList.push(e.lnglat.getLng());
+ positonList.push(e.lnglat.getLat());
+ i = i +1;
+ var addMaker = new AMap.Marker({
+ map: map,
+ content: '标记'+i,
+ icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png',
+ position: [positonList[0], positonList[1]],
+ offset: new AMap.Pixel(-13, -30)
+ });
+ markerList.push(addMaker);
+ });
+
+ //为地图注册click事件获取鼠标点击出的经纬度坐标
+ var path = [];
+ var pathStr = "";
+ var lines = [];
+ map.on('click', function (e) {
+ let lngLat = new AMap.LngLat(e.lnglat.getLng(),e.lnglat.getLat());
+ path.push(lngLat);
+ pathStr = pathStr + lngLat+";";
+ console.log(path.toString());
+ console.log(pathStr);
+ var polyline = new AMap.Polyline({
+ path: path,
+ borderWeight: 3, // 线条宽度,默认为 1
+ strokeColor: 'blue', // 线条颜色
+ lineJoin: 'round' // 折线拐点连接处样式
+ })
+ map.add(polyline);
+ lines.push(polyline)
+ document.getElementById("longlatiarr").value=pathStr;
+ });
+
+ form.render();
+ initUserValue();
+ $clearMap.on('click', function (e) {
+ map.remove(lines);
+ lines = []
+ path = []
+ pathStr = ""
+ document.getElementById("longlatiarr").value=pathStr;
+ map.add(lines);
+
+ map.remove(markerList);
+ markerList = [];
+ i = 0;
+
+ map.remove(polygonClear);
+ })
+ function initUserValue() {
+ var marker = new AMap.Marker({
+ position: map.getCenter(),
+ icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png',
+ anchor:'bottom-center',
+ offset: new AMap.Pixel(0, 0)
+ });
+
+ marker.setMap(map);
+
+ // 设置鼠标划过点标记显示的文字提示
+ marker.setTitle('团长位置');
+
+ // 设置label标签
+ // label默认蓝框白底左上角显示,样式className为:amap-marker-label
+ marker.setLabel({
+ direction:'right',
+ offset: new AMap.Pixel(10, 0), //设置文本标注偏移量
+ content: "<div class='info'>团长位置</div>", //设置文本标注内容
+ });
+
+ //配送范围回显
+ // var pathPolygon = [];
+ let fenceLongLat = leaderInfo.longlatiarr;
+ let splitList = [];
+ splitList = fenceLongLat.split(';');
+ if(splitList.length > 0){
+ for(let splitIndex = 0;splitIndex < splitList.length-1;splitIndex++){
+ let splitLngLat = splitList[splitIndex].split(',');
+ console.log(splitLngLat[0]);
+ console.log(splitLngLat[1]);
+ let lngLat = new AMap.LngLat(splitLngLat[0],splitLngLat[1]);
+ pathPolygon.push(lngLat)
+ }
+ }
+ var polygon = new AMap.Polygon({
+ path: pathPolygon,
+ fillColor: '#00B2D5', // 多边形填充颜色
+ fillOpacity : 0.5, // 多边形填充透明度,取值范围 [0,1] ,0表示完全透明,1表示不透明。默认为0.5
+ strokeStyle : 'dashed', // 轮廓线样式,实线:solid,虚线:dashed
+ borderWeight: 2, // 线条宽度,默认为 1
+ strokeColor: 'green', // 线条颜色
+ });
+ polygonClear = polygon;
+ map.add(polygon);
+
+ form.val("user-addLeaderFence-form", {
+ "id": leaderInfo.id,
+ "memberId": leaderInfo.memberId,
+ "name": leaderInfo.name,
+ "addressArea": leaderInfo.addressArea,
+ "detailAddress": leaderInfo.detailAddress,
+ "longitude": leaderInfo.longitude,
+ "latitude": leaderInfo.latitude,
+ "longlatiarr": leaderInfo.longlatiarr,
+ "phone": leaderInfo.phone
+ });
+ }
+
+ form.on('submit(user-addLeaderFence-submit)', function (data) {
+ febs.post(ctx + 'admin/leader/addFence', data.field, function () {
+ layer.closeAll();
+ febs.alert.success('操作成功');
+ $('#febs-leader').find('#reset').click();
+ });
+ return false;
+ });
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/leader/leaderList.html b/src/main/resources/templates/febs/views/modules/leader/leaderList.html
index 9300a92..c7ca5e1 100644
--- a/src/main/resources/templates/febs/views/modules/leader/leaderList.html
+++ b/src/main/resources/templates/febs/views/modules/leader/leaderList.html
@@ -117,6 +117,18 @@
}
});
}
+ if (layEvent === 'fenceAdd') {
+ febs.modal.open('设置配送范围', 'modules/leader/fenceAdd/' + data.id, {
+ btn: ['提交', '取消'],
+ area:['100%','100%'],
+ yes: function (index, layero) {
+ $('#user-addLeaderFence').find('#submit').trigger('click');
+ },
+ btn2: function () {
+ layer.closeAll();
+ }
+ });
+ }
if (layEvent === 'leaderCancel') {
febs.modal.confirm('拉黑', '团长被拉黑,将无法再次申请团长', function () {
leaderCancel(data.id);
@@ -200,12 +212,13 @@
}else if(d.state === 1) {
return ''
+ '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="leaderUpdate" shiro:hasPermission="user:update">修改</button>'
+ + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="fenceAdd" shiro:hasPermission="user:update">设置配送范围</button>'
+ '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="leaderCancel" shiro:hasPermission="user:update">拉黑</button>'
// + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="leaderGoodsUpdate" shiro:hasPermission="user:update">团长商品设置</button>'
}else{
return '';
}
- },minWidth: 160,align:'center'}
+ },minWidth: 200,align:'center'}
]]
});
}
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 0f0f8f6..b87ebca 100644
--- a/src/main/resources/templates/febs/views/modules/leader/leaderMapSetting.html
+++ b/src/main/resources/templates/febs/views/modules/leader/leaderMapSetting.html
@@ -35,8 +35,10 @@
$view.find('#container').css({"height": document.documentElement.clientHeight - 97 + 'px'});
var map = new AMap.Map("container", {
- center: [116.368904,39.913423],
- zoom: 16.8
+ // center: [116.368904,39.913423],
+
+ resizeEnable: true,
+ zoom: 14
});
var polyEditor = new AMap.PolyEditor(map);
@@ -67,6 +69,7 @@
});
// 将折线添加至地图实例
map.add(polyline);
+ console.log(path.toString());
});
diff --git a/src/main/resources/templates/febs/views/modules/leader/leaderUpdate.html b/src/main/resources/templates/febs/views/modules/leader/leaderUpdate.html
index 7cc1977..d14cf55 100644
--- a/src/main/resources/templates/febs/views/modules/leader/leaderUpdate.html
+++ b/src/main/resources/templates/febs/views/modules/leader/leaderUpdate.html
@@ -18,6 +18,10 @@
#febs-leader-update img{
max-width:200px
}
+ .map{
+ width: 50%;
+ height: 500px!important;
+ }
</style>
<div class="layui-fluid" id="febs-leader-update">
@@ -78,7 +82,7 @@
<div class="layui-form-item">
<label class="layui-form-label febs-form-item-require">地图选择:</label>
<div class="layui-input-block">
- <div class="layui-fluid layui-anim febs-anim" id="febs-map-demo" lay-title="高德地图">
+ <div class="layui-fluid layui-anim febs-anim" id="febs-map-demo-update" lay-title="高德地图">
<div class="layui-row febs-container">
<div class="layui-card">
<div style="padding: .1rem;">
@@ -123,7 +127,7 @@
form = layui.form,
leaderInfo = [[${leaderInfo}]],
$view = $('#febs-leader-update'),
- $viewMap = $('#febs-map-demo'),
+ $viewMap = $('#febs-map-demo-update'),
upload = layui.upload,
_deptTree;
@@ -131,7 +135,7 @@
var map = new AMap.Map("container", {
center: [leaderInfo.longitude, leaderInfo.latitude],
resizeEnable: true,
- zoom: 14 //初始地图级别
+ zoom: 16.8 //初始地图级别
});
//为地图注册click事件获取鼠标点击出的经纬度坐标
map.on('click', function (e) {
@@ -158,6 +162,7 @@
}
function geocoder_CallBack(data) {
var address = data.regeocode.formattedAddress; //返回地址描述
+ febs.alert.success('地址:' +address);
document.getElementById("detailAddress").value=address;
}
@@ -180,6 +185,25 @@
initUserValue();
function initUserValue() {
+ var marker = new AMap.Marker({
+ position: map.getCenter(),
+ icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png',
+ anchor:'bottom-center',
+ offset: new AMap.Pixel(0, 0)
+ });
+
+ marker.setMap(map);
+
+ // 设置鼠标划过点标记显示的文字提示
+ marker.setTitle('团长位置');
+
+ // 设置label标签
+ // label默认蓝框白底左上角显示,样式className为:amap-marker-label
+ marker.setLabel({
+ direction:'right',
+ offset: new AMap.Pixel(10, 0), //设置文本标注偏移量
+ content: "<div class='info'>团长位置</div>", //设置文本标注内容
+ });
//图片回显
if(leaderInfo.addressPic != null || leaderInfo.addressPic != ''){
$('#addressPicImage').append('<img src="'+ leaderInfo.addressPic +'" class="layui-upload-img" style="width: 100px">')
diff --git a/src/main/resources/templates/febs/views/modules/order/orderList.html b/src/main/resources/templates/febs/views/modules/order/orderList.html
index 29b9a14..172a151 100644
--- a/src/main/resources/templates/febs/views/modules/order/orderList.html
+++ b/src/main/resources/templates/febs/views/modules/order/orderList.html
@@ -42,10 +42,10 @@
<div class="layui-inline">
<label class="layui-form-label layui-form-label-sm">配送方式</label>
<div class="layui-input-inline">
- <select name="deliveryType">
+ <select name="isHome">
<option value="">请选择</option>
- <option value="1">自提</option>
- <option value="2">快递</option>
+ <option value="1">送货上门</option>
+ <option value="2">自提</option>
</select>
</div>
</div>
@@ -366,7 +366,7 @@
orderNo: $searchForm.find('input[name="orderNo"]').val().trim(),
payResult: $searchForm.find("select[name='payResult']").val(),
status: $searchForm.find("select[name='status']").val(),
- deliveryType: $searchForm.find("select[name='deliveryType']").val(),
+ isHome: $searchForm.find("select[name='isHome']").val(),
uniqueCode: $searchForm.find("select[name='uniqueCode']").val(),
};
}
diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html
index 0dbb47f..a110623 100644
--- a/src/main/resources/templates/index.html
+++ b/src/main/resources/templates/index.html
@@ -17,10 +17,10 @@
<!-- 高德地图,key为演示作用,请勿滥用-->
<script type="text/javascript">
window._AMapSecurityConfig = {
- securityJsCode:'8fd9b92f6e07b1f18d3ae39b42ff71bc',
+ securityJsCode:'50d73a585f300cccf7fc2bf31d0c38c8',
}
</script>
- <script src="https://webapi.amap.com/maps?v=1.4.15&key=04934a2cf5cfa8a29ffcf0fdcfaabb5f&plugin=AMap.Autocomplete,AMap.PolyEditor,AMap.Geocoder,AMap.PolylineEditor"></script>
+ <script src="https://webapi.amap.com/maps?v=1.4.15&key=e32064fc8a9dfe7af7d2d0a947b8df32&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"/>
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index e9f366a..ed8ba71 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -5,8 +5,10 @@
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.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.entity.*;
import cc.mrbird.febs.mall.mapper.*;
@@ -200,18 +202,47 @@
private IXcxPayService iXcxPayService;
@Autowired
private MallGoodsMapper mallGoodsMapper;
+ @Autowired
+ private IAdminMallTeamLeaderService iAdminMallTeamLeaderService;
@Test
public void qrcodeBase64(){
- Integer integer = mallGoodsMapper.upDateStockAndVolumeByGoodsId(35L, 3);
- System.out.println(integer);
+// 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);
+ }
+ 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";
+ }
}
--
Gitblit v1.9.1