Forráskód Böngészése

feat: 根据经纬度查询某地区订单

Ritchie 1 éve
szülő
commit
cd46964192

+ 33 - 5
src/main/java/com/szwl/controller/TCoinOrderController.java

@@ -4,6 +4,7 @@ package com.szwl.controller;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -14,6 +15,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.szwl.constant.AirwallexConstant;
 import com.szwl.constant.HuifuConstant;
 import com.szwl.feign.bean.SzwlFeign;
+import com.szwl.mapper.TCoinOrderMapper;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.entity.*;
@@ -21,15 +23,15 @@ import com.szwl.service.TAirwallexMchService;
 import com.szwl.service.TAirwallexWalletService;
 import com.szwl.service.TCoinOrderService;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.Iterator;
+import java.util.List;
+import java.util.Objects;
 
 /**
  * <p>
@@ -46,6 +48,8 @@ public class TCoinOrderController {
     TCoinOrderService coinOrderService;
     SzwlFeign szwlFeign;
     TAirwallexWalletService airwallexWalletService;
+    @Resource
+    TCoinOrderMapper coinOrderMapper;
 
     public TCoinOrderController(TCoinOrderService coinOrderService, SzwlFeign szwlFeign, TAirwallexWalletService airwallexWalletService) {
         this.coinOrderService = coinOrderService;
@@ -53,6 +57,30 @@ public class TCoinOrderController {
         this.airwallexWalletService = airwallexWalletService;
     }
 
+    @ApiOperation(value = "查询某范围内的设备的订单总和")
+    @GetMapping("/sumPriceLatLon")
+    public ResponseModel<?> sumPriceLatLon(String latitude1, String latitude2, String longitude1, String longitude2){
+        if (StringUtils.isEmpty(latitude1) || StringUtils.isEmpty(latitude2) || StringUtils.isEmpty(longitude1) || StringUtils.isEmpty(longitude2)) {
+            return R.fail("参数不能为空");
+        }
+
+        // 根据经纬度查设备信息
+        List<TEquipment> equipmentsByLatLon = R.getDataIfSuccess(szwlFeign.getEquipmentByLatLon(latitude1, latitude2, longitude1, longitude2));
+        if (equipmentsByLatLon.isEmpty()) {
+            return R.ok(0);
+        }
+        BigDecimal sumPrice = new BigDecimal(0);
+        for (TEquipment equipment : equipmentsByLatLon) {
+            String clientId = equipment.getClientId();
+            // 根据clientId查订单总额
+            BigDecimal priceByClientId = coinOrderMapper.sumPriceByClientId(clientId);
+
+            if (Objects.nonNull(priceByClientId)) {
+                sumPrice = sumPrice.add(priceByClientId);
+            }
+        }
+        return R.ok(equipmentsByLatLon.size() + "台设备的总销售额是:" + sumPrice);
+    }
 
     @ApiOperation(value = "添加海外订单")
     @PostMapping("/addCoinOrder")

+ 4 - 0
src/main/java/com/szwl/feign/bean/SzwlFeign.java

@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.Date;
+import java.util.List;
 
 
 @FeignClient(name = "szwl-server")
@@ -20,6 +21,9 @@ public interface SzwlFeign {
     @GetMapping("/test/testGetAdmin")
     ResponseModel<?> testGetAdmin(@RequestParam String id);
 
+    @GetMapping("/tEquipment/getEquipmentByLatLon")
+    ResponseModel<List<TEquipment>> getEquipmentByLatLon(@RequestParam String lat1, @RequestParam String lat2, @RequestParam String lon1, @RequestParam String lon2);
+
     @GetMapping("/tEquipment/getEquipmentBool")
     ResponseModel<Boolean> getEquipmentBool(@RequestParam String clientId);
 

+ 3 - 0
src/main/java/com/szwl/mapper/TCoinOrderMapper.java

@@ -3,6 +3,7 @@ package com.szwl.mapper;
 import com.szwl.model.entity.TCoinOrder;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -17,4 +18,6 @@ public interface TCoinOrderMapper extends BaseMapper<TCoinOrder> {
 
     int insertBatchSomeColumn(List<TCoinOrder> entityList);
 
+    BigDecimal sumPriceByClientId(String clientId);
+
 }

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 8 - 0
src/main/java/com/szwl/mapper/xml/TCoinOrderMapper.xml