xiaoyong931011
2022-09-16 67bc217ccb7a845ad3633b699ed7c7aa518941df
20220902
1 files added
8 files modified
123 ■■■■■ changed files
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ApiMallTeamLeaderController.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/ApiCreateOrderVerifyDto.java 19 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/ApiLeaderListDto.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IApiMallTeamLeaderService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java 43 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java 30 ●●●●● patch | view | raw | blame | history
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");
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) {
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);
    }
src/main/java/cc/mrbird/febs/mall/dto/ApiCreateOrderVerifyDto.java
New file
@@ -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;
}
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;
}
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);
}
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);
}
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;
    }
}
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);
    }
}