商家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;
import cn.hutool.core.convert.Convert;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -17,10 +18,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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 org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
@ -293,5 +291,22 @@ public class ShopOrderBaseController extends BaseControllerImpl {
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.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.ApiOperation;
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.util.HashMap;
@ -217,17 +219,17 @@ public class UserOrderController extends BaseControllerImpl {
return CommonResult.success(shopOrderBaseService.listsOrderAndsProduct(pageNum, pageSize));
}
@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 = 1200L; // 60秒*20分钟 = 1200秒
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);
}
// @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);
// }
@ApiOperation(value = "查询移动商家端订单详情数据", notes = "查询移动商家端订单详情数据")
@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 delivery 配送方式1-同城配送2-物流配送
* @param status 查询状态1-进行中时效内2-异常订单已超时的3-退款订单
* @param expireSeconds 配送超时秒数单位秒
* @param status 查询状态1-进行中2-异常订单3-退款订单
* @param expireSeconds 配送超时秒数
* @param pageNum 页码
* @param pageSize 页大小
* @return
* @return 分页订单数据异常时返回空分页
*/
@Override
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-已取消/已作废;
Page<MchOrderInfoDTO> page = new Page<>(pageNum, pageSize);
try {
// 初始化分页对象
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())) {
pageList.getRecords().forEach(mchOrderInfoDTO -> {
if ((StateCode.DELIVERY_TYPE_EXP == mchOrderInfoDTO.getDelivery_type_id()
|| StateCode.DELIVERY_TYPE_EXP == mchOrderInfoDTO.getDelivery_type_id())
&& (mchOrderInfoDTO.getOrder_state_id() == StateCode.ORDER_STATE_FINISH
|| mchOrderInfoDTO.getOrder_state_id() == StateCode.ORDER_STATE_SHIPPED)
) {
// 发快递普通物流的物流轨迹
mchOrderInfoDTO.setLogistics_traces(kdApiExpressSearchService.getLogisticsTraces(mchOrderInfoDTO.getOrder_id()));
// 查询订单基础数据
IPage<MchOrderInfoDTO> pageList = shopOrderBaseMapper.selectMchOrderPageList(
storeId, keyword, delivery, status, expireSeconds, page);
if (pageList == null || CollUtil.isEmpty(pageList.getRecords())) {
return pageList;
}
// 处理订单列表数据
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); // 返回空分页
}
}
/**