From 7f2d3e9bcb89311a5cbfaa617fde71ea412f9bc3 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 16 Sep 2022 11:01:34 +0800
Subject: [PATCH] 20220902

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java |   59 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 47 insertions(+), 12 deletions(-)

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 52a049b..8c0aa60 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
@@ -2,9 +2,9 @@
 
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.enumerates.*;
+import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.properties.XcxProperties;
 import cc.mrbird.febs.common.utils.LoginUserUtil;
-import cc.mrbird.febs.common.utils.ShareCodeUtil;
 import cc.mrbird.febs.common.utils.SpringContextHolder;
 import cc.mrbird.febs.mall.conversion.MallLeaderAchieveConversion;
 import cc.mrbird.febs.mall.conversion.MallOrderInfoConversion;
@@ -12,19 +12,20 @@
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
-import cc.mrbird.febs.mall.service.IAdminMallOrderService;
 import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
 import cc.mrbird.febs.mall.service.IApiMallTeamLeaderService;
 import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
 import cc.mrbird.febs.mall.vo.*;
 import cc.mrbird.febs.pay.model.OrderStateDto;
 import cc.mrbird.febs.pay.service.IXcxPayService;
-import cc.mrbird.febs.pay.util.WechatConfigure;
 import cc.mrbird.febs.pay.util.WeixinServiceUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 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.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -36,10 +37,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Slf4j
 @Service
@@ -64,6 +62,8 @@
     private final MallMoneyFlowMapper mallMoneyFlowMapper;
     private final MallGoodsMapper mallGoodsMapper;
     private final MallGoodsSkuMapper mallGoodsSkuMapper;
+    private final MallElectronicFenceMapper mallElectronicFenceMapper;
+    private final IMallElectronicFenceServiceImpl iMallElectronicFenceService;
 
     @Override
     @Transactional
@@ -89,11 +89,47 @@
         return new FebsResponse().success().message("申请成功");
     }
 
+
+
     @Override
-    public List<ApiLeaderListVo> findLeaderListInPage(ApiLeaderListDto apiLeaderListDto) {
-        Page<MallTeamLeader> page = new Page<>(apiLeaderListDto.getPageNum(), apiLeaderListDto.getPageSize());
-        IPage<MallTeamLeader> mallTeamLeaderIPage = this.baseMapper.selectApiLeaderListInPage(page, apiLeaderListDto);
-        return MallTeamLeaderConversion.INSTANCE.entitysToVos(mallTeamLeaderIPage.getRecords());
+    public FebsResponse findLeaderListInPage(ApiLeaderListDto apiLeaderListDto) {
+        //根据当前位置的经纬度查询在所属配送区域内的团长
+        List<MallElectronicFence> mallElectronicFences = mallElectronicFenceMapper.selectAllOnlineLeader();
+        List<ApiLeaderListVo> apiLeaderListVos = new ArrayList<>();
+        if(CollUtil.isEmpty(mallElectronicFences)){
+            return new FebsResponse().success().data(apiLeaderListVos);
+        }
+        StringBuffer fenceIdStringBuffer = new StringBuffer();
+        for(MallElectronicFence mallElectronicFence : mallElectronicFences){
+            fenceIdStringBuffer.append(mallElectronicFence.getGid()).append(",");
+        }
+        String fenceIdStr = fenceIdStringBuffer.substring(0, fenceIdStringBuffer.length() - 1);
+        //{"data":{"count":1,"results":[{"gfid":800899,"gfname":"87053658_fence","in":0}]},"errcode":10000,"errdetail":null,"errmsg":"OK"}
+        String resultsStr = iMallElectronicFenceService.fenceToLocation(mallElectronicFences.get(0).getGKey(),
+                mallElectronicFences.get(0).getServiceId(),
+                apiLeaderListDto.getLongitude() + "," + apiLeaderListDto.getLatitude(),
+                fenceIdStr);
+        if("fail".equals(resultsStr)){
+            return new FebsResponse().success().data(apiLeaderListVos);
+        }
+
+        JSONArray objects = JSONUtil.parseArray(resultsStr);
+        for(Object obj : objects){
+            //{"gfid":800899,"gfname":"87053658_fence","in":0}
+            JSONObject jsonObject = JSONUtil.parseObj(obj);
+            String gfid = jsonObject.get("gfid").toString();
+            String in = jsonObject.get("in").toString();
+            String gfname = jsonObject.get("gfname").toString();
+            //指定坐标是否在围栏中
+            //1:在,
+            //0:不在;
+            if("1".equals(in)){
+                MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectByFenceIdAndFenceNameAndLonAndLat(apiLeaderListDto.getLongitude(), apiLeaderListDto.getLatitude(),gfid,gfname);
+                ApiLeaderListVo apiLeaderListVo = MallTeamLeaderConversion.INSTANCE.entityToApiVo(mallTeamLeader);
+                apiLeaderListVos.add(apiLeaderListVo);
+            }
+        }
+        return new FebsResponse().success().data(apiLeaderListVos);
     }
 
     @Override
@@ -237,7 +273,6 @@
         //经纬度定位
         }else if(longitude != 0 && latitude != 0){
             mallTeamLeader = this.baseMapper.selectLeaderByLonAndLat(longitude,latitude);
-
         //直接进入,默认选择列表第一个
         }else{
             List<MallTeamLeader> mallTeamLeaderList = this.baseMapper.getMallTeamLeaderList();

--
Gitblit v1.9.1