ソースを参照

修改getqsorderlist 返回qsjvli

qmj 1 週間 前
コミット
0e6ffebd64

+ 4 - 22
ruoyi-admin/src/main/java/com/ruoyi/app/order/PosOrderController.java

@@ -934,31 +934,11 @@ public class PosOrderController extends BaseController {
     @Anonymous
     @Anonymous
     @Auth
     @Auth
     @GetMapping("/getqsorderlist")
     @GetMapping("/getqsorderlist")
-    public AjaxResult getqsorderlist(@RequestHeader String token, @RequestParam Integer page, @RequestParam Integer size, @RequestParam(defaultValue = "") String state) {
+    public AjaxResult getqsorderlist(@RequestHeader String token, @RequestParam Integer page, @RequestParam Integer size, @RequestParam(defaultValue = "") String state, @RequestParam(defaultValue = "0") BigDecimal longitude, @RequestParam(defaultValue = "0") BigDecimal latitude) {
         logger.info("骑手token:" + token);
         logger.info("骑手token:" + token);
         JwtUtil jwtUtil = new JwtUtil();
         JwtUtil jwtUtil = new JwtUtil();
         String id = jwtUtil.getusid(token);
         String id = jwtUtil.getusid(token);
-        IPage<PosOrder> palist = new Page<>(page, size);
-        QueryWrapper<PosOrder> queryWrapper = new QueryWrapper<>();
-        queryWrapper.select().orderByDesc("cretim");
-        queryWrapper.eq("qs_id", id).eq("is_display", true);
-        if (!"".equals(state)) {
-            if (state.equals("z234")) {
-                queryWrapper.in("state", 2, 3, 4);
-            } else if (state.equals("z23")) {
-                queryWrapper.in("state", 2, 3);
-            } else if (state.equals("z34")) {
-                queryWrapper.in("state", 3, 4);
-            } else if (state.equals("z6789")) {
-                queryWrapper.in("state", 6, 7, 8, 9);
-            } else if (state.equals("z678911")) {
-                queryWrapper.in("state", 6, 7, 8, 9, 11);
-            } else {
-                queryWrapper.eq("state", state);
-            }
-        }
-        IPage<PosOrder> list = posOrderService.page(palist, queryWrapper);
-        List<PosOrder> orlist = list.getRecords();
+        List<PosOrder> orlist = posOrderMapper.getQsOrderList(id, longitude, latitude, (page - 1) * size, size, state);
         JSONArray arr = new JSONArray();
         JSONArray arr = new JSONArray();
         for (int i = 0; i < orlist.size(); i++) {
         for (int i = 0; i < orlist.size(); i++) {
             JSONObject org = new JSONObject();
             JSONObject org = new JSONObject();
@@ -981,6 +961,8 @@ public class PosOrderController extends BaseController {
             org.put("state", orlist.get(i).getState());
             org.put("state", orlist.get(i).getState());
             org.put("type", orlist.get(i).getType());
             org.put("type", orlist.get(i).getType());
             org.put("jvli", orlist.get(i).getJvli());
             org.put("jvli", orlist.get(i).getJvli());
+            DecimalFormat jl = new DecimalFormat("#.0");
+            org.put("", jl.format(orlist.get(i).getJuli()));
             org.put("freight", orlist.get(i).getFreight());
             org.put("freight", orlist.get(i).getFreight());
             org.put("delryTime", orlist.get(i).getDelryTime());
             org.put("delryTime", orlist.get(i).getDelryTime());
             org.put("diningStatus", orlist.get(i).getDiningStatus());
             org.put("diningStatus", orlist.get(i).getDiningStatus());

+ 19 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/PosOrderMapper.java

@@ -56,6 +56,25 @@ public interface PosOrderMapper  extends BaseMapper<PosOrder>
     //查询超过规定时间未点完成的订单
     //查询超过规定时间未点完成的订单
     @Select("SELECT * FROM pos_order WHERE state=#{state} and ((TIMESTAMPDIFF(MINUTE,cretim,NOW()) >= #{minute} and sd_time is null) or (sd_time is not null and TIMESTAMPDIFF(MINUTE,sd_time,NOW()) >= #{minute}))")  //查询语句
     @Select("SELECT * FROM pos_order WHERE state=#{state} and ((TIMESTAMPDIFF(MINUTE,cretim,NOW()) >= #{minute} and sd_time is null) or (sd_time is not null and TIMESTAMPDIFF(MINUTE,sd_time,NOW()) >= #{minute}))")  //查询语句
     List<PosOrder> getOverOrderTim(@Param("state") Integer state,@Param("minute") Integer minute);
     List<PosOrder> getOverOrderTim(@Param("state") Integer state,@Param("minute") Integer minute);
+
+    //查询骑手订单(带距离计算)
+    @Select("<script>" +
+            "SELECT *,(st_distance(point(longitude,latitude),point(#{longitude},#{latitude}))*111195/1000) as juli " +
+            "FROM pos_order WHERE qs_id=#{qsId} AND is_display=1 " +
+            "<if test='state != null and state != \"\"'>" +
+            "<choose>" +
+            "<when test='state == \"z234\"'>AND state IN (2,3,4)</when>" +
+            "<when test='state == \"z23\"'>AND state IN (2,3)</when>" +
+            "<when test='state == \"z34\"'>AND state IN (3,4)</when>" +
+            "<when test='state == \"z6789\"'>AND state IN (6,7,8,9)</when>" +
+            "<when test='state == \"z678911\"'>AND state IN (6,7,8,9,11)</when>" +
+            "<otherwise>AND state=#{state}</otherwise>" +
+            "</choose>" +
+            "</if>" +
+            "ORDER BY cretim DESC LIMIT #{page},#{size}" +
+            "</script>")
+    List<PosOrder> getQsOrderList(@Param("qsId") String qsId, @Param("longitude") BigDecimal longitude, @Param("latitude") BigDecimal latitude, @Param("page") Integer page, @Param("size") Integer size, @Param("state") String state);
+
     //统计商户当天订单量
     //统计商户当天订单量
     @Select("SELECT IFNULL(COUNT(*),0) FROM pos_order WHERE sh_id=#{shid} AND DATE_FORMAT(cretim, '%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')")  //查询语句
     @Select("SELECT IFNULL(COUNT(*),0) FROM pos_order WHERE sh_id=#{shid} AND DATE_FORMAT(cretim, '%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')")  //查询语句
     int getshoredr(@Param("shid") Long shid);  //反回结果
     int getshoredr(@Param("shid") Long shid);  //反回结果