商家app 订单列表,更换地方

This commit is contained in:
Jack 2025-07-11 10:44:28 +08:00
parent d3076a5567
commit 897f346aa0
3 changed files with 68 additions and 38 deletions

View File

@ -1,6 +1,7 @@
package com.suisung.mall.shop.order.controller.admin; package com.suisung.mall.shop.order.controller.admin;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -17,10 +18,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -293,5 +291,22 @@ public class ShopOrderBaseController extends BaseControllerImpl {
return CommonResult.success(shopOrderBaseService.checkPicking()); return CommonResult.success(shopOrderBaseService.checkPicking());
} }
// 商家版接口 开始
@ApiOperation(value = "查询移动商家端订单数据(新)", notes = "查询移动商家端订单数据(新)")
@RequestMapping(value = "/mch/order/list", method = RequestMethod.POST)
public CommonResult selectMchOrderPageList(@RequestBody JSONObject params) {
Map<String, Object> respMap = new HashMap<>();
// 订单分页数据
Long expireSeconds = 1500L; // 60秒*25分钟 = 1500秒
respMap.put("order_page_list", shopOrderBaseService.selectMchOrderPageList(params.getInt("storeId"), params.getStr("keyword"), params.getInt("delivery"), params.getInt("status"), expireSeconds, params.getInt("pageNum"), params.getInt("pageSize")));
// 订单数量
respMap.put("order_count", shopOrderBaseService.mchOrderCountByStoreId(params.getInt("storeId")));
return CommonResult.success(respMap);
}
// 商家版接口 结束
} }

View File

@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.suisung.mall.common.api.CommonResult; import com.suisung.mall.common.api.CommonResult;
@ -24,7 +23,10 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.io.Serializable; import java.io.Serializable;
import java.util.HashMap; import java.util.HashMap;
@ -217,17 +219,17 @@ public class UserOrderController extends BaseControllerImpl {
return CommonResult.success(shopOrderBaseService.listsOrderAndsProduct(pageNum, pageSize)); return CommonResult.success(shopOrderBaseService.listsOrderAndsProduct(pageNum, pageSize));
} }
@ApiOperation(value = "查询移动商家端订单数据(新)", notes = "查询移动商家端订单数据(新)") // @ApiOperation(value = "查询移动商家端订单数据(新)", notes = "查询移动商家端订单数据(新)")
@RequestMapping(value = "/mch/order/list", method = RequestMethod.POST) // @RequestMapping(value = "/mch/order/list", method = RequestMethod.POST)
public CommonResult selectMchOrderPageList(@RequestBody JSONObject params) { // public CommonResult selectMchOrderPageList(@RequestBody JSONObject params) {
Map<String, Object> respMap = new HashMap<>(); // Map<String, Object> respMap = new HashMap<>();
// 订单分页数据 // // 订单分页数据
Long expireSeconds = 1200L; // 60秒*20分钟 = 1200秒 // Long expireSeconds = 1500L; // 60秒*25分钟 = 1500秒
respMap.put("order_page_list", shopOrderBaseService.selectMchOrderPageList(params.getInt("storeId"), params.getStr("keyword"), params.getInt("delivery"), params.getInt("status"), expireSeconds, params.getInt("pageNum"), params.getInt("pageSize"))); // respMap.put("order_page_list", shopOrderBaseService.selectMchOrderPageList(params.getInt("storeId"), params.getStr("keyword"), params.getInt("delivery"), params.getInt("status"), expireSeconds, params.getInt("pageNum"), params.getInt("pageSize")));
// 订单数量 // // 订单数量
respMap.put("order_count", shopOrderBaseService.mchOrderCountByStoreId(params.getInt("storeId"))); // respMap.put("order_count", shopOrderBaseService.mchOrderCountByStoreId(params.getInt("storeId")));
return CommonResult.success(respMap); // return CommonResult.success(respMap);
} // }
@ApiOperation(value = "查询移动商家端订单详情数据", notes = "查询移动商家端订单详情数据") @ApiOperation(value = "查询移动商家端订单详情数据", notes = "查询移动商家端订单详情数据")
@RequestMapping(value = "/getOrderDetail", method = RequestMethod.GET) @RequestMapping(value = "/getOrderDetail", method = RequestMethod.GET)

View File

@ -8531,40 +8531,53 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
} }
/** /**
* 商家版订单列表 * 商家版订单列表查询优化版
* *
* @param storeId * @param storeId 店铺ID
* @param keyword 订单搜索关键字 * @param keyword 订单搜索关键字
* @param delivery 配送方式1-同城配送2-物流配送 * @param delivery 配送方式1-同城配送2-物流配送
* @param status 查询状态1-进行中时效内2-异常订单已超时的3-退款订单 * @param status 查询状态1-进行中2-异常订单3-退款订单
* @param expireSeconds 配送超时秒数单位秒 * @param expireSeconds 配送超时秒数
* @param pageNum 页码 * @param pageNum 页码
* @param pageSize 页大小 * @param pageSize 页大小
* @return * @return 分页订单数据异常时返回空分页
*/ */
@Override @Override
public IPage<MchOrderInfoDTO> selectMchOrderPageList(Integer storeId, String keyword, Integer delivery, Integer status, Long expireSeconds, Integer pageNum, Integer pageSize) { public IPage<MchOrderInfoDTO> selectMchOrderPageList(Integer storeId, String keyword, Integer delivery, Integer status, Long expireSeconds, Integer pageNum, Integer pageSize) {
// order_state_id 订单状态(LIST):2011-待订单审核;2013-待财务审核;2020-待配货/待出库审核;2030-待发货;2040-已发货/待收货确认;2060-已完成/已签收;2070-已取消/已作废; try {
Page<MchOrderInfoDTO> page = new Page<>(pageNum, pageSize); // 初始化分页对象
Page<MchOrderInfoDTO> page = new Page<>(pageNum, pageSize);
IPage<MchOrderInfoDTO> pageList = shopOrderBaseMapper.selectMchOrderPageList(storeId, keyword, delivery, status, expireSeconds, page); // 查询订单基础数据
if (pageList != null && CollUtil.isNotEmpty(pageList.getRecords())) { IPage<MchOrderInfoDTO> pageList = shopOrderBaseMapper.selectMchOrderPageList(
pageList.getRecords().forEach(mchOrderInfoDTO -> { storeId, keyword, delivery, status, expireSeconds, page);
if ((StateCode.DELIVERY_TYPE_EXP == mchOrderInfoDTO.getDelivery_type_id()
|| StateCode.DELIVERY_TYPE_EXP == mchOrderInfoDTO.getDelivery_type_id()) if (pageList == null || CollUtil.isEmpty(pageList.getRecords())) {
&& (mchOrderInfoDTO.getOrder_state_id() == StateCode.ORDER_STATE_FINISH return pageList;
|| mchOrderInfoDTO.getOrder_state_id() == StateCode.ORDER_STATE_SHIPPED) }
) {
// 发快递普通物流的物流轨迹 // 处理订单列表数据
mchOrderInfoDTO.setLogistics_traces(kdApiExpressSearchService.getLogisticsTraces(mchOrderInfoDTO.getOrder_id())); pageList.getRecords().forEach(order -> {
// 处理物流轨迹信息仅限快递配送且已发货/已完成订单
if (StateCode.DELIVERY_TYPE_EXP == order.getDelivery_type_id()
&& (StateCode.ORDER_STATE_FINISH == order.getOrder_state_id()
|| StateCode.ORDER_STATE_SHIPPED == order.getOrder_state_id())) {
try {
order.setLogistics_traces(kdApiExpressSearchService.getLogisticsTraces(order.getOrder_id()));
} catch (Exception e) {
logger.error("获取物流轨迹失败订单ID{}", order.getOrder_id(), e);
}
} }
// 取货号格式化 // 格式化取货号
mchOrderInfoDTO.setOrder_pickup_num_str(fmtPickNum(mchOrderInfoDTO.getOrder_pickup_num())); order.setOrder_pickup_num_str(fmtPickNum(order.getOrder_pickup_num()));
}); });
}
return pageList; return pageList;
} catch (Exception e) {
logger.error("商家订单查询异常", e);
return new Page<>(pageNum, pageSize); // 返回空分页
}
} }
/** /**