From 67bc217ccb7a845ad3633b699ed7c7aa518941df Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Fri, 16 Sep 2022 17:16:43 +0800 Subject: [PATCH] 20220902 --- src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java | 8 ++ src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java | 2 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java | 30 +++++++++ src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 43 ++++++++++++++ src/main/java/cc/mrbird/febs/mall/controller/ApiMallTeamLeaderController.java | 15 ++++ src/main/java/cc/mrbird/febs/mall/service/IApiMallTeamLeaderService.java | 2 src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java | 1 src/main/java/cc/mrbird/febs/mall/dto/ApiCreateOrderVerifyDto.java | 19 ++++++ src/main/java/cc/mrbird/febs/mall/dto/ApiLeaderListDto.java | 3 + 9 files changed, 121 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java index a2c68fc..6024226 100644 --- a/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java +++ b/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java @@ -25,6 +25,7 @@ registration.excludePathPatterns("/api/news/**"); registration.excludePathPatterns("/api/member/cashOutSetting"); registration.excludePathPatterns("/api/leader/leaderList"); + registration.excludePathPatterns("/api/leader/leaderListInFence"); registration.excludePathPatterns("/api/leader/leaderTitle"); registration.excludePathPatterns("/api/xcxPay/wxpayCallback"); registration.excludePathPatterns("/api/xcxPay/rechargeCallBack"); diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java index ba25382..7bfe863 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java @@ -33,6 +33,14 @@ private final IApiMallOrderInfoService mallOrderInfoService; private final IXcxPayService iXcxPayService; + + @ApiOperation(value = "创建订单--验证收货地址是否在配送范围内 true | false", notes = "创建订单--验证收货地址是否在配送范围内") + @PostMapping(value = "/createOrderVerify") + public FebsResponse createOrderVerify(@RequestBody ApiCreateOrderVerifyDto apiCreateOrderVerifyDto) { + Boolean verifyState = mallOrderInfoService.createOrderVerify(apiCreateOrderVerifyDto); + return new FebsResponse().success().data(verifyState); + } + @ApiOperation(value = "创建订单", notes = "创建订单") @PostMapping(value = "/createOrder") public FebsResponse createOrder(@RequestBody AddOrderDto addOrderDto) { diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallTeamLeaderController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallTeamLeaderController.java index 70544d8..3354f45 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallTeamLeaderController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallTeamLeaderController.java @@ -35,15 +35,28 @@ return iApiMallTeamLeaderService.applyLeader(apiApplayLeaderDto); } + /** * 团长列表 */ - @ApiOperation(value = "团长列表", notes = "团长列表") + @ApiOperation(value = "团长列表(查询当前位置商品配送范围内的所有团长)", notes = "团长列表(查询当前位置商品配送范围内的所有团长)") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiLeaderListVo.class) }) @PostMapping(value = "/leaderList") public FebsResponse leaderList(@RequestBody @Valid ApiLeaderListDto apiLeaderListDto) { + return iApiMallTeamLeaderService.findSomeLeaderListInPage(apiLeaderListDto); + } + + /** + * 团长列表 + */ + @ApiOperation(value = "团长列表(查询当前经纬度在团长配送范围内的团长)", notes = "团长列表(查询当前经纬度在团长配送范围内的团长)") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = ApiLeaderListVo.class) + }) + @PostMapping(value = "/leaderListInFence") + public FebsResponse leaderListInFence(@RequestBody @Valid ApiLeaderListDto apiLeaderListDto) { return iApiMallTeamLeaderService.findLeaderListInPage(apiLeaderListDto); } diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiCreateOrderVerifyDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiCreateOrderVerifyDto.java new file mode 100644 index 0000000..33dd86d --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiCreateOrderVerifyDto.java @@ -0,0 +1,19 @@ +package cc.mrbird.febs.mall.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +@ApiModel(value = "ApiCreateOrderVerifyDto", description = "参数接收类") +public class ApiCreateOrderVerifyDto { + + @NotNull(message = "参数不能为空") + @ApiModelProperty(value = "地址ID", example = "1") + private Long addressId; + + @ApiModelProperty(value = "提货团长特征码", example = "1") + private String takeUniqueCode; +} diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiLeaderListDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiLeaderListDto.java index 4a902e8..8bb0f12 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/ApiLeaderListDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiLeaderListDto.java @@ -28,4 +28,7 @@ @NotNull(message = "请选择您的地址") private Double latitude; + @ApiModelProperty(hidden = true) + private Double rangeSize; + } diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java index 6779c55..da3baa5 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java @@ -39,4 +39,6 @@ FebsResponse applyRefundOrder(ApplyRefundOrderDto applyRefundOrderDto); FebsResponse cancelRefundOrder(Long id); + + Boolean createOrderVerify(ApiCreateOrderVerifyDto apiCreateOrderVerifyDto); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallTeamLeaderService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallTeamLeaderService.java index 83825fa..e9d495d 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallTeamLeaderService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallTeamLeaderService.java @@ -35,4 +35,6 @@ FebsResponse leaderProfit(); List<ApiOrderProfitVo> findLeaderProfitListInPage(ApiOrderProfitDto apiOrderProfitDto); + + FebsResponse findSomeLeaderListInPage(ApiLeaderListDto apiLeaderListDto); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java index f152ab7..2a3f376 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java @@ -8,10 +8,12 @@ import cc.mrbird.febs.mall.conversion.MallGoodsCommentConversion; import cc.mrbird.febs.mall.conversion.MallOrderInfoConversion; import cc.mrbird.febs.mall.conversion.MallOrderRefundConversion; +import cc.mrbird.febs.mall.conversion.MallTeamLeaderConversion; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.*; +import cc.mrbird.febs.mall.vo.ApiLeaderListVo; import cc.mrbird.febs.mall.vo.OrderDetailVo; import cc.mrbird.febs.mall.vo.OrderListVo; import cc.mrbird.febs.mall.vo.OrderRefundVo; @@ -27,6 +29,8 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -843,4 +847,43 @@ return new FebsResponse().success().message("已取消"); } + @Override + public Boolean createOrderVerify(ApiCreateOrderVerifyDto apiCreateOrderVerifyDto) { + Boolean flag = false; + Long addressId = apiCreateOrderVerifyDto.getAddressId(); + String takeUniqueCode = apiCreateOrderVerifyDto.getTakeUniqueCode(); + + MallAddressInfo mallAddressInfo = mallAddressInfoMapper.selectById(addressId); + if(ObjectUtil.isEmpty(mallAddressInfo)){ + return flag; + } + MallElectronicFence mallElectronicFence = mallElectronicFenceMapper.selectByTeamLeaderCode(takeUniqueCode); + if(ObjectUtil.isEmpty(mallElectronicFence)){ + return flag; + } + //{"data":{"count":1,"results":[{"gfid":800899,"gfname":"87053658_fence","in":0}]},"errcode":10000,"errdetail":null,"errmsg":"OK"} + String resultsStr = iMallElectronicFenceService.fenceToLocation(mallElectronicFence.getGKey(), + mallElectronicFence.getServiceId(), + mallAddressInfo.getLongitude() + "," + mallAddressInfo.getLatitude(), + mallElectronicFence.getGid()); + if("fail".equals(resultsStr)){ + return flag; + } + 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)){ + flag = true; + } + } + return flag; + } + } 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 8c0aa60..53a206e 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 @@ -90,7 +90,6 @@ } - @Override public FebsResponse findLeaderListInPage(ApiLeaderListDto apiLeaderListDto) { //根据当前位置的经纬度查询在所属配送区域内的团长 @@ -291,6 +290,9 @@ apiLeaderInfoVo.setTownship(mallTeamLeader.getTownship()); apiLeaderInfoVo.setDetailAddress(mallTeamLeader.getDetailAddress()); apiLeaderInfoVo.setAddressArea(mallTeamLeader.getAddressArea()); + } + if(ObjectUtil.isEmpty(apiLeaderInfoVo)){ + return new FebsResponse().success(); } return new FebsResponse().success().data(apiLeaderInfoVo); } @@ -495,4 +497,30 @@ return MallLeaderAchieveConversion.INSTANCE.entitysToVos(mallLeaderAchieves.getRecords()); } + @Override + public FebsResponse findSomeLeaderListInPage(ApiLeaderListDto apiLeaderListDto) { + Page<MallTeamLeader> page = new Page<>(apiLeaderListDto.getPageNum(), apiLeaderListDto.getPageSize()); + IPage<MallTeamLeader> mallTeamLeaderIPage = this.baseMapper.selectApiLeaderListInPage(page, apiLeaderListDto); + List<ApiLeaderListVo> apiLeaderListVos = new ArrayList<>(); + + DataDictionaryCustom rangeSwitchDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RANGE_SWITCH.getType(), DataDictionaryEnum.RANGE_SWITCH.getCode()); + if (ObjectUtil.isNotNull(rangeSwitchDic)) { + int rangeSwitch = Integer.parseInt(rangeSwitchDic.getValue()); + if(1 == rangeSwitch){ + DataDictionaryCustom rangeSizeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RANGE_SIZE.getType(), DataDictionaryEnum.RANGE_SIZE.getCode()); + double rangeSize = Double.parseDouble(rangeSizeDic.getValue()); + for(MallTeamLeader mallTeamLeader : mallTeamLeaderIPage.getRecords()){ + Double distance = mallTeamLeader.getDistance(); + if(distance <= rangeSize){ + ApiLeaderListVo apiLeaderListVo = MallTeamLeaderConversion.INSTANCE.entityToApiVo(mallTeamLeader); + apiLeaderListVos.add(apiLeaderListVo); + } + } + }else{ + apiLeaderListVos = MallTeamLeaderConversion.INSTANCE.entitysToVos(mallTeamLeaderIPage.getRecords()); + } + } + return new FebsResponse().success().data(apiLeaderListVos); + } + } -- Gitblit v1.9.1