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